From e3b4440dffabef1b505b8ec7f0ef32eb99d39c39 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Wed, 9 Feb 2022 07:15:50 +0000 Subject: [PATCH] [GH-PAGES] Updated website --- master/.buildinfo | 2 +- master/.doctrees/environment.pickle | Bin 77129 -> 96603 bytes .../getting-started/installation.doctree | Bin 5899 -> 5899 bytes .../tutorials/01-vector-add.doctree | Bin 0 -> 27862 bytes .../tutorials/02-fused-softmax.doctree | Bin 0 -> 34027 bytes .../03-matrix-multiplication.doctree | Bin 0 -> 55897 bytes .../tutorials/04-low-memory-dropout.doctree | Bin 0 -> 35766 bytes .../tutorials/05-layer-norm.doctree | Bin 0 -> 32932 bytes .../getting-started/tutorials/index.doctree | Bin 0 -> 15854 bytes .../tutorials/sg_execution_times.doctree | Bin 0 -> 10002 bytes master/.doctrees/index.doctree | Bin 10041 -> 9700 bytes .../chapter-1/introduction.doctree | Bin 33772 -> 33772 bytes .../chapter-2/related-work.doctree | Bin 62848 -> 62848 bytes .../generated/triton.Config.doctree | Bin 13752 -> 13752 bytes .../generated/triton.autotune.doctree | Bin 14156 -> 14156 bytes .../generated/triton.heuristics.doctree | Bin 6493 -> 6493 bytes .../python-api/generated/triton.jit.doctree | Bin 8169 -> 8169 bytes .../generated/triton.language.arange.doctree | Bin 6630 -> 6630 bytes .../triton.language.atomic_add.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_cas.doctree | Bin 8361 -> 8361 bytes .../triton.language.atomic_max.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_min.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_xchg.doctree | Bin 8626 -> 8626 bytes .../triton.language.broadcast_to.doctree | Bin 6793 -> 6793 bytes .../generated/triton.language.cos.doctree | Bin 5106 -> 5106 bytes .../generated/triton.language.dot.doctree | Bin 7532 -> 7532 bytes .../generated/triton.language.exp.doctree | Bin 5121 -> 5121 bytes .../generated/triton.language.load.doctree | Bin 12187 -> 12187 bytes .../generated/triton.language.log.doctree | Bin 5139 -> 5139 bytes .../generated/triton.language.max.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.maximum.doctree | Bin 6382 -> 6382 bytes .../generated/triton.language.min.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.minimum.doctree | Bin 6382 -> 6382 bytes .../triton.language.multiple_of.doctree | Bin 4752 -> 4752 bytes .../triton.language.num_programs.doctree | Bin 5533 -> 5533 bytes .../triton.language.program_id.doctree | Bin 5501 -> 5501 bytes .../generated/triton.language.rand.doctree | Bin 7371 -> 7371 bytes .../generated/triton.language.randint.doctree | Bin 8016 -> 8016 bytes .../triton.language.randint4x.doctree | Bin 7601 -> 7601 bytes .../generated/triton.language.randn.doctree | Bin 7413 -> 7413 bytes .../generated/triton.language.ravel.doctree | Bin 5117 -> 5117 bytes .../generated/triton.language.reshape.doctree | Bin 6151 -> 6151 bytes .../generated/triton.language.sigmoid.doctree | Bin 5138 -> 5138 bytes .../generated/triton.language.sin.doctree | Bin 5100 -> 5100 bytes .../generated/triton.language.softmax.doctree | Bin 5665 -> 5665 bytes .../generated/triton.language.sqrt.doctree | Bin 5133 -> 5133 bytes .../generated/triton.language.store.doctree | Bin 9802 -> 9802 bytes .../generated/triton.language.sum.doctree | Bin 5882 -> 5882 bytes .../generated/triton.language.where.doctree | Bin 9860 -> 9860 bytes .../generated/triton.language.zeros.doctree | Bin 6805 -> 6805 bytes .../triton.testing.Benchmark.doctree | Bin 28729 -> 28729 bytes .../generated/triton.testing.do_bench.doctree | Bin 11700 -> 11700 bytes .../triton.testing.perf_report.doctree | Bin 5731 -> 5731 bytes master/.doctrees/python-api/triton.doctree | Bin 7801 -> 7801 bytes .../python-api/triton.language.doctree | Bin 61816 -> 61816 bytes .../python-api/triton.testing.doctree | Bin 6830 -> 6830 bytes .../02-fused-softmax.ipynb | 161 ++++ .../01-vector-add.py | 131 ++++ .../tutorials_jupyter.zip | Bin 0 -> 55184 bytes .../tutorials_python.zip | Bin 0 -> 45202 bytes .../05-layer-norm.py | 261 +++++++ .../05-layer-norm.ipynb | 54 ++ .../03-matrix-multiplication.ipynb | 129 ++++ .../04-low-memory-dropout.ipynb | 100 +++ .../04-low-memory-dropout.py | 166 +++++ .../03-matrix-multiplication.py | 355 +++++++++ .../02-fused-softmax.py | 191 +++++ .../01-vector-add.ipynb | 140 ++++ .../_images/grouped_vs_row_major_ordering.png | Bin 0 -> 476275 bytes master/_images/sphx_glr_01-vector-add_001.png | Bin 0 -> 23963 bytes .../_images/sphx_glr_01-vector-add_thumb.png | Bin 0 -> 15532 bytes .../_images/sphx_glr_02-fused-softmax_001.png | Bin 0 -> 37679 bytes .../sphx_glr_02-fused-softmax_thumb.png | Bin 0 -> 23974 bytes .../sphx_glr_03-matrix-multiplication_001.png | Bin 0 -> 59582 bytes ...phx_glr_03-matrix-multiplication_thumb.png | Bin 0 -> 34433 bytes .../sphx_glr_04-low-memory-dropout_thumb.png | Bin 0 -> 26794 bytes master/_images/sphx_glr_05-layer-norm_001.png | Bin 0 -> 32618 bytes .../_images/sphx_glr_05-layer-norm_thumb.png | Bin 0 -> 20810 bytes .../tutorials/01-vector-add.rst.txt | 286 ++++++++ .../tutorials/02-fused-softmax.rst.txt | 337 +++++++++ .../03-matrix-multiplication.rst.txt | 529 ++++++++++++++ .../tutorials/04-low-memory-dropout.rst.txt | 271 +++++++ .../tutorials/05-layer-norm.rst.txt | 370 ++++++++++ .../getting-started/tutorials/index.rst.txt | 152 ++++ .../tutorials/sg_execution_times.rst.txt | 20 + master/_static/binder_badge_logo.svg | 1 + master/_static/broken_example.png | Bin 0 -> 21404 bytes master/_static/gallery-binder.css | 6 + master/_static/gallery-dataframe.css | 36 + master/_static/gallery-rendered-html.css | 209 ++++++ master/_static/gallery.css | 204 ++++++ master/_static/no_image.png | Bin 0 -> 4315 bytes master/genindex.html | 5 + master/getting-started/installation.html | 9 +- .../tutorials/01-vector-add.html | 421 +++++++++++ .../tutorials/02-fused-softmax.html | 473 ++++++++++++ .../tutorials/03-matrix-multiplication.html | 681 +++++++++++++++++ .../tutorials/04-low-memory-dropout.html | 453 ++++++++++++ .../tutorials/05-layer-norm.html | 567 +++++++++++++++ master/getting-started/tutorials/index.html | 298 ++++++++ .../tutorials/sg_execution_times.html | 270 +++++++ master/index.html | 7 +- master/objects.inv | Bin 1487 -> 1883 bytes .../chapter-1/introduction.html | 5 + .../chapter-2/related-work.html | 5 + .../python-api/generated/triton.Config.html | 5 + .../python-api/generated/triton.autotune.html | 5 + .../generated/triton.heuristics.html | 5 + master/python-api/generated/triton.jit.html | 5 + .../generated/triton.language.arange.html | 5 + .../generated/triton.language.atomic_add.html | 5 + .../generated/triton.language.atomic_cas.html | 5 + .../generated/triton.language.atomic_max.html | 5 + .../generated/triton.language.atomic_min.html | 5 + .../triton.language.atomic_xchg.html | 5 + .../triton.language.broadcast_to.html | 5 + .../generated/triton.language.cos.html | 5 + .../generated/triton.language.dot.html | 5 + .../generated/triton.language.exp.html | 5 + .../generated/triton.language.load.html | 5 + .../generated/triton.language.log.html | 5 + .../generated/triton.language.max.html | 5 + .../generated/triton.language.maximum.html | 5 + .../generated/triton.language.min.html | 5 + .../generated/triton.language.minimum.html | 5 + .../triton.language.multiple_of.html | 5 + .../triton.language.num_programs.html | 5 + .../generated/triton.language.program_id.html | 5 + .../generated/triton.language.rand.html | 5 + .../generated/triton.language.randint.html | 5 + .../generated/triton.language.randint4x.html | 5 + .../generated/triton.language.randn.html | 5 + .../generated/triton.language.ravel.html | 5 + .../generated/triton.language.reshape.html | 5 + .../generated/triton.language.sigmoid.html | 5 + .../generated/triton.language.sin.html | 5 + .../generated/triton.language.softmax.html | 5 + .../generated/triton.language.sqrt.html | 5 + .../generated/triton.language.store.html | 5 + .../generated/triton.language.sum.html | 5 + .../generated/triton.language.where.html | 5 + .../generated/triton.language.zeros.html | 5 + .../generated/triton.testing.Benchmark.html | 5 + .../generated/triton.testing.do_bench.html | 5 + .../generated/triton.testing.perf_report.html | 5 + master/python-api/triton.html | 9 +- master/python-api/triton.language.html | 5 + master/python-api/triton.testing.html | 5 + master/search.html | 5 + master/searchindex.js | 2 +- v1.1.2/.buildinfo | 2 +- v1.1.2/.doctrees/environment.pickle | Bin 77076 -> 96550 bytes .../getting-started/installation.doctree | Bin 5921 -> 5921 bytes .../tutorials/01-vector-add.doctree | Bin 0 -> 27844 bytes .../tutorials/02-fused-softmax.doctree | Bin 0 -> 34296 bytes .../03-matrix-multiplication.doctree | Bin 0 -> 56178 bytes .../tutorials/04-low-memory-dropout.doctree | Bin 0 -> 35818 bytes .../tutorials/05-layer-norm.doctree | Bin 0 -> 32624 bytes .../getting-started/tutorials/index.doctree | Bin 0 -> 15302 bytes .../tutorials/sg_execution_times.doctree | Bin 0 -> 10002 bytes v1.1.2/.doctrees/index.doctree | Bin 10041 -> 9700 bytes .../chapter-1/introduction.doctree | Bin 33772 -> 33772 bytes .../chapter-2/related-work.doctree | Bin 62848 -> 62848 bytes .../generated/triton.Config.doctree | Bin 12318 -> 12318 bytes .../generated/triton.autotune.doctree | Bin 12222 -> 12222 bytes .../generated/triton.heuristics.doctree | Bin 6493 -> 6493 bytes .../python-api/generated/triton.jit.doctree | Bin 8169 -> 8169 bytes .../generated/triton.language.arange.doctree | Bin 6630 -> 6630 bytes .../triton.language.atomic_add.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_cas.doctree | Bin 8361 -> 8361 bytes .../triton.language.atomic_max.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_min.doctree | Bin 8598 -> 8598 bytes .../triton.language.atomic_xchg.doctree | Bin 8626 -> 8626 bytes .../triton.language.broadcast_to.doctree | Bin 6793 -> 6793 bytes .../generated/triton.language.cos.doctree | Bin 5106 -> 5106 bytes .../generated/triton.language.dot.doctree | Bin 6709 -> 6709 bytes .../generated/triton.language.exp.doctree | Bin 5121 -> 5121 bytes .../generated/triton.language.load.doctree | Bin 11776 -> 11776 bytes .../generated/triton.language.log.doctree | Bin 5139 -> 5139 bytes .../generated/triton.language.max.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.maximum.doctree | Bin 6372 -> 6372 bytes .../generated/triton.language.min.doctree | Bin 5894 -> 5894 bytes .../generated/triton.language.minimum.doctree | Bin 6372 -> 6372 bytes .../triton.language.multiple_of.doctree | Bin 4752 -> 4752 bytes .../triton.language.num_programs.doctree | Bin 5533 -> 5533 bytes .../triton.language.program_id.doctree | Bin 5501 -> 5501 bytes .../generated/triton.language.rand.doctree | Bin 6236 -> 6236 bytes .../generated/triton.language.randint.doctree | Bin 6875 -> 6875 bytes .../triton.language.randint4x.doctree | Bin 6460 -> 6460 bytes .../generated/triton.language.randn.doctree | Bin 6278 -> 6278 bytes .../generated/triton.language.ravel.doctree | Bin 5107 -> 5107 bytes .../generated/triton.language.reshape.doctree | Bin 6151 -> 6151 bytes .../generated/triton.language.sigmoid.doctree | Bin 5128 -> 5128 bytes .../generated/triton.language.sin.doctree | Bin 5100 -> 5100 bytes .../generated/triton.language.softmax.doctree | Bin 5128 -> 5128 bytes .../generated/triton.language.sqrt.doctree | Bin 5133 -> 5133 bytes .../generated/triton.language.store.doctree | Bin 9802 -> 9802 bytes .../generated/triton.language.sum.doctree | Bin 5882 -> 5882 bytes .../generated/triton.language.where.doctree | Bin 9860 -> 9860 bytes .../generated/triton.language.zeros.doctree | Bin 6805 -> 6805 bytes .../triton.testing.Benchmark.doctree | Bin 28729 -> 28729 bytes .../generated/triton.testing.do_bench.doctree | Bin 11700 -> 11700 bytes .../triton.testing.perf_report.doctree | Bin 5731 -> 5731 bytes v1.1.2/.doctrees/python-api/triton.doctree | Bin 7801 -> 7801 bytes .../python-api/triton.language.doctree | Bin 61816 -> 61816 bytes .../python-api/triton.testing.doctree | Bin 6830 -> 6830 bytes .../02-fused-softmax.ipynb | 161 ++++ .../01-vector-add.py | 130 ++++ .../tutorials_jupyter.zip | Bin 0 -> 55197 bytes .../tutorials_python.zip | Bin 0 -> 45219 bytes .../05-layer-norm.py | 251 +++++++ .../05-layer-norm.ipynb | 54 ++ .../03-matrix-multiplication.ipynb | 129 ++++ .../04-low-memory-dropout.ipynb | 100 +++ .../04-low-memory-dropout.py | 164 +++++ .../03-matrix-multiplication.py | 359 +++++++++ .../02-fused-softmax.py | 191 +++++ .../01-vector-add.ipynb | 140 ++++ .../_images/grouped_vs_row_major_ordering.png | Bin 0 -> 476275 bytes v1.1.2/_images/sphx_glr_01-vector-add_001.png | Bin 0 -> 25148 bytes .../_images/sphx_glr_01-vector-add_thumb.png | Bin 0 -> 15840 bytes .../_images/sphx_glr_02-fused-softmax_001.png | Bin 0 -> 38195 bytes .../sphx_glr_02-fused-softmax_thumb.png | Bin 0 -> 24155 bytes .../sphx_glr_03-matrix-multiplication_001.png | Bin 0 -> 58766 bytes ...phx_glr_03-matrix-multiplication_thumb.png | Bin 0 -> 34166 bytes .../sphx_glr_04-low-memory-dropout_thumb.png | Bin 0 -> 26794 bytes v1.1.2/_images/sphx_glr_05-layer-norm_001.png | Bin 0 -> 32706 bytes .../_images/sphx_glr_05-layer-norm_thumb.png | Bin 0 -> 20929 bytes .../tutorials/01-vector-add.rst.txt | 285 ++++++++ .../tutorials/02-fused-softmax.rst.txt | 345 +++++++++ .../03-matrix-multiplication.rst.txt | 533 ++++++++++++++ .../tutorials/04-low-memory-dropout.rst.txt | 269 +++++++ .../tutorials/05-layer-norm.rst.txt | 360 +++++++++ .../getting-started/tutorials/index.rst.txt | 144 ++++ .../tutorials/sg_execution_times.rst.txt | 20 + v1.1.2/_static/binder_badge_logo.svg | 1 + v1.1.2/_static/broken_example.png | Bin 0 -> 21404 bytes v1.1.2/_static/gallery-binder.css | 6 + v1.1.2/_static/gallery-dataframe.css | 36 + v1.1.2/_static/gallery-rendered-html.css | 209 ++++++ v1.1.2/_static/gallery.css | 204 ++++++ v1.1.2/_static/no_image.png | Bin 0 -> 4315 bytes v1.1.2/genindex.html | 5 + v1.1.2/getting-started/installation.html | 9 +- .../tutorials/01-vector-add.html | 420 +++++++++++ .../tutorials/02-fused-softmax.html | 478 ++++++++++++ .../tutorials/03-matrix-multiplication.html | 685 ++++++++++++++++++ .../tutorials/04-low-memory-dropout.html | 452 ++++++++++++ .../tutorials/05-layer-norm.html | 557 ++++++++++++++ v1.1.2/getting-started/tutorials/index.html | 293 ++++++++ .../tutorials/sg_execution_times.html | 270 +++++++ v1.1.2/index.html | 7 +- v1.1.2/objects.inv | Bin 1487 -> 1883 bytes .../chapter-1/introduction.html | 5 + .../chapter-2/related-work.html | 5 + .../python-api/generated/triton.Config.html | 5 + .../python-api/generated/triton.autotune.html | 5 + .../generated/triton.heuristics.html | 5 + v1.1.2/python-api/generated/triton.jit.html | 5 + .../generated/triton.language.arange.html | 5 + .../generated/triton.language.atomic_add.html | 5 + .../generated/triton.language.atomic_cas.html | 5 + .../generated/triton.language.atomic_max.html | 5 + .../generated/triton.language.atomic_min.html | 5 + .../triton.language.atomic_xchg.html | 5 + .../triton.language.broadcast_to.html | 5 + .../generated/triton.language.cos.html | 5 + .../generated/triton.language.dot.html | 5 + .../generated/triton.language.exp.html | 5 + .../generated/triton.language.load.html | 5 + .../generated/triton.language.log.html | 5 + .../generated/triton.language.max.html | 5 + .../generated/triton.language.maximum.html | 5 + .../generated/triton.language.min.html | 5 + .../generated/triton.language.minimum.html | 5 + .../triton.language.multiple_of.html | 5 + .../triton.language.num_programs.html | 5 + .../generated/triton.language.program_id.html | 5 + .../generated/triton.language.rand.html | 5 + .../generated/triton.language.randint.html | 5 + .../generated/triton.language.randint4x.html | 5 + .../generated/triton.language.randn.html | 5 + .../generated/triton.language.ravel.html | 5 + .../generated/triton.language.reshape.html | 5 + .../generated/triton.language.sigmoid.html | 5 + .../generated/triton.language.sin.html | 5 + .../generated/triton.language.softmax.html | 5 + .../generated/triton.language.sqrt.html | 5 + .../generated/triton.language.store.html | 5 + .../generated/triton.language.sum.html | 5 + .../generated/triton.language.where.html | 5 + .../generated/triton.language.zeros.html | 5 + .../generated/triton.testing.Benchmark.html | 5 + .../generated/triton.testing.do_bench.html | 5 + .../generated/triton.testing.perf_report.html | 5 + v1.1.2/python-api/triton.html | 9 +- v1.1.2/python-api/triton.language.html | 5 + v1.1.2/python-api/triton.testing.html | 5 + v1.1.2/search.html | 5 + v1.1.2/searchindex.js | 2 +- 300 files changed, 15022 insertions(+), 14 deletions(-) create mode 100644 master/.doctrees/getting-started/tutorials/01-vector-add.doctree create mode 100644 master/.doctrees/getting-started/tutorials/02-fused-softmax.doctree create mode 100644 master/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree create mode 100644 master/.doctrees/getting-started/tutorials/04-low-memory-dropout.doctree create mode 100644 master/.doctrees/getting-started/tutorials/05-layer-norm.doctree create mode 100644 master/.doctrees/getting-started/tutorials/index.doctree create mode 100644 master/.doctrees/getting-started/tutorials/sg_execution_times.doctree create mode 100644 master/_downloads/034d953b6214fedce6ea03803c712b89/02-fused-softmax.ipynb create mode 100644 master/_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py create mode 100644 master/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip create mode 100644 master/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip create mode 100644 master/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py create mode 100644 master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb create mode 100644 master/_downloads/b51b68bc1c6b1a5e509f67800b6235af/03-matrix-multiplication.ipynb create mode 100644 master/_downloads/bc847dec325798bdc436c4ef5ac8b78a/04-low-memory-dropout.ipynb create mode 100644 master/_downloads/c9aed78977a4c05741d675a38dde3d7d/04-low-memory-dropout.py create mode 100644 master/_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py create mode 100644 master/_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py create mode 100644 master/_downloads/f191ee1e78dc52eb5f7cba88f71cef2f/01-vector-add.ipynb create mode 100644 master/_images/grouped_vs_row_major_ordering.png create mode 100644 master/_images/sphx_glr_01-vector-add_001.png create mode 100644 master/_images/sphx_glr_01-vector-add_thumb.png create mode 100644 master/_images/sphx_glr_02-fused-softmax_001.png create mode 100644 master/_images/sphx_glr_02-fused-softmax_thumb.png create mode 100644 master/_images/sphx_glr_03-matrix-multiplication_001.png create mode 100644 master/_images/sphx_glr_03-matrix-multiplication_thumb.png create mode 100644 master/_images/sphx_glr_04-low-memory-dropout_thumb.png create mode 100644 master/_images/sphx_glr_05-layer-norm_001.png create mode 100644 master/_images/sphx_glr_05-layer-norm_thumb.png create mode 100644 master/_sources/getting-started/tutorials/01-vector-add.rst.txt create mode 100644 master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt create mode 100644 master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt create mode 100644 master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt create mode 100644 master/_sources/getting-started/tutorials/05-layer-norm.rst.txt create mode 100644 master/_sources/getting-started/tutorials/index.rst.txt create mode 100644 master/_sources/getting-started/tutorials/sg_execution_times.rst.txt create mode 100644 master/_static/binder_badge_logo.svg create mode 100644 master/_static/broken_example.png create mode 100644 master/_static/gallery-binder.css create mode 100644 master/_static/gallery-dataframe.css create mode 100644 master/_static/gallery-rendered-html.css create mode 100644 master/_static/gallery.css create mode 100644 master/_static/no_image.png create mode 100644 master/getting-started/tutorials/01-vector-add.html create mode 100644 master/getting-started/tutorials/02-fused-softmax.html create mode 100644 master/getting-started/tutorials/03-matrix-multiplication.html create mode 100644 master/getting-started/tutorials/04-low-memory-dropout.html create mode 100644 master/getting-started/tutorials/05-layer-norm.html create mode 100644 master/getting-started/tutorials/index.html create mode 100644 master/getting-started/tutorials/sg_execution_times.html create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/01-vector-add.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/02-fused-softmax.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/04-low-memory-dropout.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/05-layer-norm.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/index.doctree create mode 100644 v1.1.2/.doctrees/getting-started/tutorials/sg_execution_times.doctree create mode 100644 v1.1.2/_downloads/034d953b6214fedce6ea03803c712b89/02-fused-softmax.ipynb create mode 100644 v1.1.2/_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py create mode 100644 v1.1.2/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip create mode 100644 v1.1.2/_downloads/763344228ae6bc253ed1a6cf586aa30d/tutorials_python.zip create mode 100644 v1.1.2/_downloads/935c0dd0fbeb4b2e69588471cbb2d4b2/05-layer-norm.py create mode 100644 v1.1.2/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb create mode 100644 v1.1.2/_downloads/b51b68bc1c6b1a5e509f67800b6235af/03-matrix-multiplication.ipynb create mode 100644 v1.1.2/_downloads/bc847dec325798bdc436c4ef5ac8b78a/04-low-memory-dropout.ipynb create mode 100644 v1.1.2/_downloads/c9aed78977a4c05741d675a38dde3d7d/04-low-memory-dropout.py create mode 100644 v1.1.2/_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py create mode 100644 v1.1.2/_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py create mode 100644 v1.1.2/_downloads/f191ee1e78dc52eb5f7cba88f71cef2f/01-vector-add.ipynb create mode 100644 v1.1.2/_images/grouped_vs_row_major_ordering.png create mode 100644 v1.1.2/_images/sphx_glr_01-vector-add_001.png create mode 100644 v1.1.2/_images/sphx_glr_01-vector-add_thumb.png create mode 100644 v1.1.2/_images/sphx_glr_02-fused-softmax_001.png create mode 100644 v1.1.2/_images/sphx_glr_02-fused-softmax_thumb.png create mode 100644 v1.1.2/_images/sphx_glr_03-matrix-multiplication_001.png create mode 100644 v1.1.2/_images/sphx_glr_03-matrix-multiplication_thumb.png create mode 100644 v1.1.2/_images/sphx_glr_04-low-memory-dropout_thumb.png create mode 100644 v1.1.2/_images/sphx_glr_05-layer-norm_001.png create mode 100644 v1.1.2/_images/sphx_glr_05-layer-norm_thumb.png create mode 100644 v1.1.2/_sources/getting-started/tutorials/01-vector-add.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/02-fused-softmax.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/05-layer-norm.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/index.rst.txt create mode 100644 v1.1.2/_sources/getting-started/tutorials/sg_execution_times.rst.txt create mode 100644 v1.1.2/_static/binder_badge_logo.svg create mode 100644 v1.1.2/_static/broken_example.png create mode 100644 v1.1.2/_static/gallery-binder.css create mode 100644 v1.1.2/_static/gallery-dataframe.css create mode 100644 v1.1.2/_static/gallery-rendered-html.css create mode 100644 v1.1.2/_static/gallery.css create mode 100644 v1.1.2/_static/no_image.png create mode 100644 v1.1.2/getting-started/tutorials/01-vector-add.html create mode 100644 v1.1.2/getting-started/tutorials/02-fused-softmax.html create mode 100644 v1.1.2/getting-started/tutorials/03-matrix-multiplication.html create mode 100644 v1.1.2/getting-started/tutorials/04-low-memory-dropout.html create mode 100644 v1.1.2/getting-started/tutorials/05-layer-norm.html create mode 100644 v1.1.2/getting-started/tutorials/index.html create mode 100644 v1.1.2/getting-started/tutorials/sg_execution_times.html diff --git a/master/.buildinfo b/master/.buildinfo index 3176adc18..99b376640 100644 --- a/master/.buildinfo +++ b/master/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 4dce8c5cbe57d2011293861b3d5fb4a0 +config: bd537efaf126fb307d18a393c4eacf10 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/environment.pickle b/master/.doctrees/environment.pickle index 909cc1e408ca72b5996b1313fc9d0cb3f575c760..6f7a025ae7ef5da4750480ec939107731fc81fd2 100644 GIT binary patch literal 96603 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 UlyZ|dg(l2Af^c~%QY0BC#P+ynrgytbGt=XF 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

2JR2y ztA*UQf$1vC*0^v)KxCeVIt1=$vNfE^P&B7 zxJasdmX3-)MLWb7=+77N2RD#KPuL)DU&gumCD0I?i2Y2k>Y5dO55K(c9xL`n>8HZR_mN%U3s!Qmg2&Ibls73maW}6N3@JVMQ2(RYqUoG zovfVD8u_;vMNeTuyxbEl`Ta;VzvhANIzc6Ry6pn5#2fIZ=Si-|hisI$(|I^;(UETd3$dLX28>t(S zy#IaA1+I0I+m;qaK9#!OQ2+l*RutX+pJ9v9yOdntGN8~@yeVr#)Go!}I4V1K&3 zfaKgAdAa)7-L^Au3<~)xJ?cX9_%*3%2+iYb8AXP^&$>NrRZ{!NX&kg?Bp9< z6dfTJJeRuS5DVUs6-74-GKc_LijZqy1{9i#ZQPKBHz996gX8FNT`bwTj^k9sW_V6U zgUGS*3#t1z>Dbt^lWw7ul#O{IYZ0R6M^jS}8YCZ)ecMaMT6iUPFtEyXNCd$Q*};FD zx_L=Ec*Rb;IJqw@yZ_hJHHJF$zhp(B$NTR}o-FjnlWO7ncIsxN>iavxegDs?YYg@M zH?pGW?)wbOm0t1Wl*)iYQxUV`Wfczx14?q|+zVvLxi>!eGHE&P(9Zd^=QpITH#7=H zv!dwk{|qeDqd@9i8Bk~{zL8b?Q`$41$J1+N@42039b8?<_XNk6*zar4bE%mVy{=H( z;t>bgQ>$;gUAbMc9+C=?g@1fxacq8ADuc^Hy-(C6d3Q@1LbkJP$2K0cqit`HyH ztSB@eTUk*kKJtlAi^j)@!=XB6IOx#kQx@p!oN&iSBQmwmKB9&;TN)^P%Pv_#TJc)y^bF1 zU}x25=cb{Bk-eyqaqL{5x~>pAhqI#4>>SLBLa~!iUt2VGdLPz#n)$fAzae~(n|Pbg z)B94lFnWqoOXGNYcj~%AJl&rah34rUSy3pS@(FdXJWsn1yA!U@Q#*AFqj^d#jpONT z>bgQaEo4QZdHQ5l6pE*Oir*{GQ#uZ+W9@yP&(n757Dn@wS{ldGA52|Wh^PNDD+

  • V<|(x_j;Ftvx~>pUe<3Rh&C`!&MWJ}gr$H_n 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 diff --git a/master/.doctrees/getting-started/installation.doctree b/master/.doctrees/getting-started/installation.doctree index 760f56db819c441e4bb7df178695912b777a8d60..00fb18b091e6fedc0eecc3f7088b7f9a01a3a61d 100644 GIT binary patch delta 21 ccmeCy>(<*4$jDJ(<*4$jFgzW>QvBkzBDkl5vwL08qaNYXATM diff --git a/master/.doctrees/getting-started/tutorials/01-vector-add.doctree b/master/.doctrees/getting-started/tutorials/01-vector-add.doctree new file mode 100644 index 0000000000000000000000000000000000000000..370c458275af590daadea19d480fc093e23d3191 GIT binary patch literal 27862 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 literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting-started/tutorials/02-fused-softmax.doctree b/master/.doctrees/getting-started/tutorials/02-fused-softmax.doctree new file mode 100644 index 0000000000000000000000000000000000000000..2708dadbfe579ac0a7018ad912a1f0ef34322831 GIT binary patch literal 34027 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 literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree b/master/.doctrees/getting-started/tutorials/03-matrix-multiplication.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fbb9be4cc8f4b36954048c37327d9192910b8dd0 GIT binary patch literal 55897 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

    S}h3If%CK40*~{ffHj)4pObZo%gNw& zr=a#^JMkb5d&&-i{a70wObo}vLY((hpV}%OvTg|TW45A=C48*^|AtD|<9uQFu9DAW-3x_{}h-cJPyj0F)G1BnMo08dVCL z+P85BF^=stJDSzkPEs{*P?uv^wHg3=r*s+u*N#yQGd!l?ytb)_QRROsx0 zm>A3dj%fN--+7(?wBE+Ej#KNdBXv16<^kyIgW-u{!=wAE3(=*~3*mz@gWF^RM%_b2M%K~;Yq62@#C0i2Fq%- z4g5?+KO0^Jzm5lPu|TKb&|5Uu2e`bQW_X&!HXWLwy}WWTJWiKN!slJsru7kUDpnq` zWK_rDxBND5A60%#q{vM(1v;0fAn)Eri&24!xQrXfdnUi4r~>y@1-Dp-DJXQnb3K+W*6zGx{NK14XcljmC?QH5Vbeq4rWfa17nID7#2tA`(=Glx9vqB7~$UNnRF z6VTxZCXr>J35wXILcA<-!oa2CIJ;UVg%8j*q{mB*YQ3Ns4}|3j@IBIDK^3a-Bu`Px zV{wuQL@D6HbmV#nY7n<;7W9&wOQ1tHZ65(M#G)q)I01pK1EO=21(f}AKv?I)2Z0P7 z48)K9LH6TOwgOEF`1R~3>Nt*ENlk(UcNW*du4tNgJ60N7TU(gc(gZlmk54i;FCwRZ zu^E1ZN>GhdqCmHPPZZVTalO5524&t1oyUYG z25=lPhCm4y`dm30J`RSe7Sz~M;NzZI>fSfQK@JUe%ivgP9H{_~BN~;!$j3ZmOZ~*a zd&u8``(V4EPMoBB;K}_IKFBZoDnz$^-G*~NzWl3z^X83+f{$aJ6e9)wD~1(%jO0%N zxi=bh0CNJeM;wYHhWndf61QmA%5FUVPm@G|{7dG0$izjBB@D?Ov}KvN)A-HsBSq{} z+bEd08o5$1N+o#2DaPP-c*v}6HnA{GPI8h2up_}mSdzuzQs5bJGcWJ+Q)mcWftz88 zHaK;YPS}K2)Kkg8;K``1EPtdSr;^S??t(cjZ&izXI2NjqJgpbL39Aazp1u9q=_AP* zx5NFDt$M-wUFU7mt+4%{Kmn*)x_?jkD2>Eo1SV$Zkx5R>!sGfjUs6jzMa0)5R_kebd(4py5{yZrTDovVo08*iR&natKZNw)5K%g3iCCkDD+@ zozKw6Ur@z=MjvY^=oIMVE0pEe>El=ECxPO8jXsD@!qVn;^gpI7U&2Qt9H8cC1(t)v z8@$ciTi|Ui@OBn>8w|`(r*lBr5z)oInF$bV|4u{?OB1ho3E(|!|9@m*tp!IPy0}>Mi zhBG04P}89IaT4aT4lzjd6k=?i3UN_gb1O>r@WcCyj8l>Qb?nEnRTx$=Pj>bez_|7i#K?hw|MY~vgZmk(GFcnA!o`}7y&K_2SLnWL9KVBzMv`&Z)QxiiEeM+^ z(&f~iS(I0td)+?^%I{@Qi<$YLQ{(v(+bF`1@4jX`b*c4Ft_Sp%ISJh7y8suh=!-Ln z1&qQ&9UJAXQX%Y9rrBW;?9l)6?9#&g!evr9pl0*RVA9BSDuANpU`kx{?NpI0McA%R ziX7wn>4{(Jf~@R`U*P$YJ@MEwqQEfijly%2`wnCe?42n|`G463m=?+lnD#++=L={+ z68u&hf_EeEo-7{u1@;;!Npydw3%Zi_zx{5|{*Sr<(?WZKY2RGmmHyD+avzuQHD9@f zd0}{38O%~t2{F2RFvJ2&jRoU*=r$5rxFsGZisRC}vuaY@GQrKjEW#-&Fx4|{{grS- zpQUJX%<6D-XLMd*Njr9f3%74~p``5AZ*|G1gvP-z5*ml+7oJLNDA9&C-;HTwhQ|~q TaT6K0*I?Qg&5(qXC;R^a)L>ZK literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting-started/tutorials/05-layer-norm.doctree b/master/.doctrees/getting-started/tutorials/05-layer-norm.doctree new file mode 100644 index 0000000000000000000000000000000000000000..fcf0989f58e22f7abf01a5847517d9fe304de3ce GIT binary patch literal 32932 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 literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting-started/tutorials/index.doctree b/master/.doctrees/getting-started/tutorials/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9810338a9a2d0404e5bfdd1c235348610b84f4d5 GIT binary patch literal 15854 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 exF{KO8ea(Kh543!EP9hRsRQ~`KLwz literal 0 HcmV?d00001 diff --git a/master/.doctrees/getting-started/tutorials/sg_execution_times.doctree b/master/.doctrees/getting-started/tutorials/sg_execution_times.doctree new file mode 100644 index 0000000000000000000000000000000000000000..89ebcc2f652d7fdb24b909f8f17f4418aeb67066 GIT binary patch literal 10002 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 EKLb%qLI3~& literal 0 HcmV?d00001 diff --git a/master/.doctrees/index.doctree b/master/.doctrees/index.doctree index 00c3c5647731f27cfdb0361e5402acf884e2dbed..90c720e7f9d3e62fc5ff0a72273e5a826259fe1e 100644 GIT binary patch delta 1010 zcmaKrT}V@57{~XX&fMJhoVpLU+C=AUp=MHPL5LR>v%^3T5tq$8`tGEgm=hFAgD|B{ zq~~-aNn&)-rR=6IGJ@zPh={tVE`mykATkNHFX?%YIjx|J^KjnhZ>nG=heeRJ6IE^XR2%ZGndFd9Ul-DQS|r(^&$yRZV9wZH=4UBQM5fX53-UP}QA^oW_f`r5 zCNHS~tJwx^rT_`z+b&2r9ONL}H8qg{o-0WS)SJsVAAv@v3nEq%Trux2Yx!3oo7xg+ zfluagaw;nj$qGo2wzQE}JO|YdT)z2Fk+J;AO@S@iB&=Ek1hTZLENuqYt%3)6L6TC4 zP9%;qBJV>C+%wo=T5p9?w^?n+k_BqrC*YZ_x%ms)DLuv>=?M!@F^F^}MCfWt7akg* ziMY2ud|akqC+N3v`h9}_2&w4L3A!GUB^8@^jv+~R)3?-3gVYmpBmO?ykdt_5^f-76 zHsAsdc$lBoe!v4ZyjN~&F_SLP6YbhYZUtrwYsn(KEF2-Z&}y$HdPv*bNdbJc`#C!Y zzPvhOgRtWO=i^|(R0+2obs9Z~@*N_~=Q^RvY{&^BU4y+gKj9(dTp|q!u|t#V7!lx_ z%g=>3K#dBhbrVzsvrZFC6o;BQ` z=zGLJj+i8vkBbFr{3vXC>&B6>TOf!*GZams64h;3---Til vn-i27LFpHiULi@ntjd7YpwQ^y4HUa#1tqaPk||?XA~6uZF20H)HG?Eq_r8UCatXxR0=+^E2+^jifBP=iRo=`#$-m5iL|0v z!B=%C=ovwAq0*HbQM)RlZWSL0;!Z(~h)WgUig@nCG=jQubGSM8obSK$pPZM`DcL@1 zKQlja&AyK~wXP+5hldlxlgG&7D!5VIS|2xDNi~tm4Y0vvie=3{lfQ{W&~=!6gbS{B zPA{?9c$4CR`wjE#wRm#Fy_){WY>}?O;&}TZ^MKjL?aFj&sFZ?@Zi#jh==Lw8?F3?h z7I@(HlP0-ijCQ)Cps}r_ z!7YtfGdgK+QN!u*;|FXm>0I&|MU4{B0I9Bxo+<#xOThC8+(u87U;%_3EyDJAR}nW{ z^-l12eP)|-AGyjy5guV+{C$-04@OmNMCY0+b;o*4{%MSVKF+_4@vl)E|2D?IqnkgJ z$5@`@b9tUO^A0{U+KeK%MQ&%Dw+N#pENksE6$-a}ew5tf4Z>UBxbrm@VePBwLFFf> z>Z^(KVjzFy0hcCM7T@Tlrw=0%!V|b^W#89-%6U%5rnRq&#REMNBx#R%*mviIT^}BQP zQEhYwSl`?FQWtf^^lCDXrrn2E=Ru|R{ zXo*~!sk#&aPgQ7j#I#TiM(=+hUW}d<5Z{Z@bLJ8A*Z$+o#$0=`rjn zwwI;MC^gE3Wu{TFwR@A?Bd;-y@>Eh~X4GXkvRW>az{z&t0F`i=_$Tufoba;37RWe5 IxIAb1PfN3j&;S4c diff --git a/master/.doctrees/programming-guide/chapter-1/introduction.doctree b/master/.doctrees/programming-guide/chapter-1/introduction.doctree index dc016cd135fea10a845c260b68636c389326f9a4..e356f596874afbe76e81bc59d9252c1724323b2c 100644 GIT binary patch delta 23 ecmaFU&h)08X+t0*N0~`pMz)bj(dJ0T$xQ%o7zo+` delta 23 ecmaFU&h)08X+t0*N4}X!Sw%&1#pX!H$xQ%p^$9Tm diff --git a/master/.doctrees/programming-guide/chapter-2/related-work.doctree b/master/.doctrees/programming-guide/chapter-2/related-work.doctree index bcde19ca13b538d9de4a0bb4a400134a4fd67b27..21ed560334c2b1538d56a28a1789708184e28717 100644 GIT binary patch delta 23 ecmZp8&D`*sc|#y0N0~`pMz)bj(dI}-^)CQzxd_q# delta 23 ecmZp8&D`*sc|#y0N4}X!Sw%&1#pXyx^)CQ#mI)~U diff --git a/master/.doctrees/python-api/generated/triton.Config.doctree b/master/.doctrees/python-api/generated/triton.Config.doctree index 6f32c55fb78b25a235f63cb5f6d9c052ca4ce9b7..629d6549cdfcb7406b722a7839c6732570dcbbed 100644 GIT binary patch delta 133 zcmdmyy(4==Fe68qNnS>_kx9|yd)!)+`P8*HZ(v-9BAT`N0y7&2T;1k-+?!G4^ER{d geddSD1I diff --git a/master/.doctrees/python-api/generated/triton.autotune.doctree b/master/.doctrees/python-api/generated/triton.autotune.doctree index 73bc215a94de53a1389c38302f57f7a7e23e9f0b..4dd22bc00203ca3cbd3ce9f2dc450c1f7f10dc12 100644 GIT binary patch delta 53 vcmX?;cP4K`I3q`yNnS>_kx9|!ct$-YIB)WQ?wrkxEZ^ASBAfqn`)UIK4iFO* delta 53 vcmX?;cP4K`I3q{CnMqkiMRLXFct$-YIB)WQ?wrkxEZ^ASBAfqn`)UIKB&8G? diff --git a/master/.doctrees/python-api/generated/triton.heuristics.doctree b/master/.doctrees/python-api/generated/triton.heuristics.doctree index e3f6d795ff3bcc4c4f57069bdcb4b0c98875786c..42aae1d3fcdafea771d38461d907c315b2a3d9a2 100644 GIT binary patch delta 56 ucmca>bk}G@G$TiuNnS>_kx9|yx6E3Tdl|1F3zTfW%fx|DviU7@fhYiFP88?> delta 56 ucmca>bk}G@G$Tj8nMqkiMRLXDx6E3Tdl|1F3zTfW%fx|DviU7@fhYic=oRe% diff --git a/master/.doctrees/python-api/generated/triton.jit.doctree b/master/.doctrees/python-api/generated/triton.jit.doctree index 78f95b3327573804689766149a8a281f9479e675..5397890d5db73697355537b59102a02480aa8f76 100644 GIT binary patch delta 57 vcmaE9|I&VgFC#~pNnS>_kx9{He`c-C^^7MFBAfl0|Fa;=r*GcNp(73eR%{c> delta 57 vcmaE9|I&VgFC$03nMqkiMRLVte`c-C^^7MFBAfl0|Fa;=r*GcNp(73eZ@CoD diff --git a/master/.doctrees/python-api/generated/triton.language.arange.doctree b/master/.doctrees/python-api/generated/triton.language.arange.doctree index d144029e3db0a7fecf9486095a42f942745548e3..fdbcf3bb527a03b52743697393ecced7d70028ef 100644 GIT binary patch delta 57 vcmaE6{LFYmDkDdkNnS>_kx9|yKu)dA(;5Gvh?Hy=WU*j{tJxgLIaL4vPnHuS delta 57 vcmaE6{LFYmDkDd}nMqkiMRLXDKu)dA(;5Gvh?Hy=WU*j{tJxgLIaL4vXNMFh diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_add.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_add.doctree index 16b21a2b0632ef66c1784aaf162c252a03178256..6fe0109e663201ede389b24353b2cf0335cf6e7e 100644 GIT binary patch delta 57 ycmbQ{Jk5DSHzP-xNnS>_kx9|y2h3WV_cBT|!9_MdV1CR7=K_kx9|yTg+OU_cDqy!9_OTVrFH7^MLXdo8!5>!~jad6O#Y{ delta 57 xcmZ4KxYBV$HzP;BnMqkiMRLXDTg+OU_cDqy!9_OTVrFH7^MLXdo8!5>!~kRu6qo=2 diff --git a/master/.doctrees/python-api/generated/triton.language.atomic_max.doctree b/master/.doctrees/python-api/generated/triton.language.atomic_max.doctree index 51cb6317248663b2267d875fd57c38d2bb032b6a..e543265699c5fbf8d78b7b56c9ebe583e7587e5b 100644 GIT binary patch delta 57 ycmbQ{Jk5DSHzP-xNnS>_kx9|y2h3WV_cBT|!9_MdV1CR7=K_kx9|y2h3WV_cBT|!9_MdV1CR7=K_kx9|y=geB04=~Cz!9_MdXa33t=K_kx9|yZg#EB6B%Ekh!k%A%shb^u4Z#LdpZvQZQ~TI delta 57 vcmeyQ{z-j9JR?WGnMqkiMRLXDZg#EB6B%Ekh!k%A%shb^u4Z#LdpZvQh13_kx9|ydCXdyCo-}!!9_ODW4_1==K5W}eRsSF?E*dpZvQL9Y}D delta 57 vcmZqFXw=vc&&ZK)W>QvBkz6r(7Q5EwiHt8%L<%>5W}eRsSF?E*dpZvQS)dgS diff --git a/master/.doctrees/python-api/generated/triton.language.load.doctree b/master/.doctrees/python-api/generated/triton.language.load.doctree index a3c96d383760676203d93649140630e2c8ad55c2..06df776a5dcbc75764b23267b1fc0e9d64754788 100644 GIT binary patch delta 53 scmbOoKRbRyA|pqcNnS>_kx9|!Oh$GDZ?Y###pVx8fe4Y!o-9Gy0OjxzSpWb4 delta 53 scmbOoKRbRyA|pq>nMqkiMRLXFOh$GDZ?Y###pVx8fe4Y!o-9Gy0Q`j#UH||9 diff --git a/master/.doctrees/python-api/generated/triton.language.log.doctree b/master/.doctrees/python-api/generated/triton.language.log.doctree index cf4bd995d6b5a1d44dad54b1b186690f169cfc04..97dfa8d7a0b1dd78b7b9a5d4911ee7bd6c04145a 100644 GIT binary patch delta 57 vcmbQNF_kx9|yHSAiOCo;Z75h>jKnRz2KT+QY+?CCrJPg4|h delta 57 vcmbQNFjKnRz2KT+QY+?CCrJXG9fw diff --git a/master/.doctrees/python-api/generated/triton.language.max.doctree b/master/.doctrees/python-api/generated/triton.language.max.doctree index 3fcbbc98a84e49ef59a20f1fdafa0d43eeda1df4..3c9c43e5057f507d15da317d61dfce81302f4514 100644 GIT binary patch delta 57 vcmZqEYt!2h&&W|`l9!QfWKuM_hgoa$M8?kukQvBkz6skhgoa$M8?kuk_kx9|!d`1-}IB#-3qt;|OPPfh6EDu>wL^sQEUf>4+fwL^sQEUf>4+pP&@L diff --git a/master/.doctrees/python-api/generated/triton.language.min.doctree b/master/.doctrees/python-api/generated/triton.language.min.doctree index 2c6c999d10da8de81e4d1acb0a6804b42a0f84f9..c79650a59ee35c59a888ae3a4555eeb29ff89cc4 100644 GIT binary patch delta 57 vcmZqEYt!2h&&W|`l9!QfWKuM_hgoa$M8?kukQvBkz6skhgoa$M8?kuk_kx9|!d`1-}IB#-3qt;|OPPfh6EDu>wL^sQEUf>4+fwL^sQEUf>4+pP&@L diff --git a/master/.doctrees/python-api/generated/triton.language.multiple_of.doctree b/master/.doctrees/python-api/generated/triton.language.multiple_of.doctree index f7f7d3b3698b344a6b32c25a7a085c3f0b4e6ed5..41c29e37a3016e96ea0559e80f30476f979c4b9b 100644 GIT binary patch delta 56 ucmbQBIze?qA0tPZNnS>_kx9|yT})b&4={d$3vAxSvle~;_kx9|yv&>qX_cC%Y!9_NoWnRnz=KqX_cC%Y!9_NoWnRnz=K_kx9|y1I${RCo`%t!9_M7VE)1d=KnMqkiMRLXD1I${RCo`%t!9_M7VE)1d=K_kx9|!e8y-dIB#-3qt@m>%pqJTB9s3xdu%?%*Cqe}oM07u delta 61 zcmca$cfoE$IwMEEnMqkiMRLXFe8y-dIB#-3qt@m>%pqJTB9s3xdu%?%*Cqe}yB!vQ diff --git a/master/.doctrees/python-api/generated/triton.language.randint4x.doctree b/master/.doctrees/python-api/generated/triton.language.randint4x.doctree index c6aa9a5fa22b251dea29f9032c475cfeaad74a2c..550f0be8ed4aab9dc1aa96dec34f73019d5fbd21 100644 GIT binary patch delta 57 wcmdmJz0rC@HX}!wNnS>_kx9|yL_V#}a~Um}kVQ&12eGho!9_MF@&)h%04jPC9{>OV delta 57 wcmdmJz0rC@HX}#AnMqkiMRLXDL_V#}a~Um}kVQ&12eGho!9_MF@&)h%077dMBme*a diff --git a/master/.doctrees/python-api/generated/triton.language.randn.doctree b/master/.doctrees/python-api/generated/triton.language.randn.doctree index 25cb60e8c91d2348e8d36c9dad3b0df603993216..0fefe89da9c265ffcdc7beb70a64da0a2387ffc9 100644 GIT binary patch delta 61 zcmexr`PFhmG9yQsNnS>_kx9|!Y{p_kx9|y9%il0QyJeQL^k&@v$G(}=WXWX_`(eUUB(mR delta 57 vcmeyX{#SiNG9yR6nMqkiMRLXD9%il0QyJeQL^k&@v$G(}=WXWX_`(eUcM}xo diff --git a/master/.doctrees/python-api/generated/triton.language.reshape.doctree b/master/.doctrees/python-api/generated/triton.language.reshape.doctree index ee5b9dfd40e8cbd698e244b3a80f199ec21e680f..9b7cf1d46fe82bc121993bbcc58be53a7b41b819 100644 GIT binary patch delta 61 zcmZoSXgAo9&d5<_l9!QfWKy&_pHYtq&YPUisI~b#vj7W<$mH|P-kW1MR`UY@UH=oW delta 61 zcmZoSXgAo9&d8B(W>QvBkzBDkpHYtq&YPUisI~b#vj7W<$mH|P-kW1MR`UY@e7qF2 diff --git a/master/.doctrees/python-api/generated/triton.language.sigmoid.doctree b/master/.doctrees/python-api/generated/triton.language.sigmoid.doctree index 4f77d52454c5179af55b822ae929323feaf1ab73..6426bd3eb36c41aba25f80a11fac6efb2b670747 100644 GIT binary patch delta 61 zcmbQFF-c=XIwMD!NnS>_kx9|!d`3kkIB#-3qt@m_%y*elL?$0%cH1n@@tYd}ZYC65 delta 61 zcmbQFF-c=XIwMEEnMqkiMRLXFd`3kkIB#-3qt@m_%y*elL?$0%cH1n@@tYd}jN=ty diff --git a/master/.doctrees/python-api/generated/triton.language.sin.doctree b/master/.doctrees/python-api/generated/triton.language.sin.doctree index 7ed4ebbc1ceacff7f9684578e53de71f2b5966c8..abf2e71fe3eaecc547419635d62d455c583af755 100644 GIT binary patch delta 61 zcmaE({ziR6JR?V$NnS>_kx9|!bVgw&IB#+~qt@j0?CzUCGj}ngh;ClbZp#Azl1dbc delta 61 zcmaE({ziR6JR?WGnMqkiMRLXFbVgw&IB#+~qt@j0?CzUCGj}ngh;ClbZp#Azud5Z0 diff --git a/master/.doctrees/python-api/generated/triton.language.softmax.doctree b/master/.doctrees/python-api/generated/triton.language.softmax.doctree index 88b1d46dc715f77d34cbb396378fadaf34bd0229..19642deacb66d78e8959c5554ab053f4d5c2cc24 100644 GIT binary patch delta 57 ucmZ3evruP4IwMD!NnS>_kx9|!d`2@SIB#-3qt@o@%=1`LMV50`@c;lPN)qA# delta 57 ucmZ3evruP4IwMEEnMqkiMRLXFd`2@SIB#-3qt@o@%=1`LMV50`@c;lp^AqO) diff --git a/master/.doctrees/python-api/generated/triton.language.sqrt.doctree b/master/.doctrees/python-api/generated/triton.language.sqrt.doctree index abf9966491d6da2a014926bc71f79222be09cd12..7895e812aa955abd79f083c1383a8fe6b6f02f7d 100644 GIT binary patch delta 61 zcmeCx=+)Se$jDJQvBkzBDklTn-r&YPUcs5SX4yT|5V%nO-OL^q#hci;g4i(M5x diff --git a/master/.doctrees/python-api/generated/triton.language.store.doctree b/master/.doctrees/python-api/generated/triton.language.store.doctree index bed821a568c2bddbfc4833fb53b03c7bd3df7207..adb2879ceef2abd287fd107cc219f2481ac337bb 100644 GIT binary patch delta 61 zcmX@*bINB!G9yQsNnS>_kx9|!Y(`@yIB#+`qt@mN%&XW@L?&Ng_T2oHJ5&k)nSd2g delta 61 zcmX@*bINB!G9yR6nMqkiMRLXFY(`@yIB#+`qt@mN%&XW@L?&Ng_T2oHJ5&k)xIGqC diff --git a/master/.doctrees/python-api/generated/triton.language.sum.doctree b/master/.doctrees/python-api/generated/triton.language.sum.doctree index f7ea62ffbcbb3bd2371b81d8d616f15ec8703068..ecb2350b8f1d858d6a30f5ad55f064db613ec03f 100644 GIT binary patch delta 57 vcmeyR`%8C2JR?V$NnS>_kx9|y9%il06B$1vL^k&@FJ(oRFWkI}Gk_NWYw#3@ delta 57 vcmeyR`%8C2JR?WGnMqkiMRLXD9%il06B$1vL^k&@FJ(oRFWkI}Gk_NWg*_FF diff --git a/master/.doctrees/python-api/generated/triton.language.where.doctree b/master/.doctrees/python-api/generated/triton.language.where.doctree index 8e679fe61a989426812e6f6f8eb962178f604f8f..b80834deb113b914400b50351ebe829e9ba9c945 100644 GIT binary patch delta 57 vcmZqiZSmcZ%*at@l9!QfWKuM_flF)iRL1`(BE_5eSu)w+YBo1;vB&@bJ%SR- delta 57 vcmZqiZSmcZ%*c^%W>QvBkz6skflF)iRL1`(BE_5eSu)w+YBo1;vB&@bRdW;1 diff --git a/master/.doctrees/python-api/generated/triton.language.zeros.doctree b/master/.doctrees/python-api/generated/triton.language.zeros.doctree index 39f67c73360ed19595e7e194cd42ad994d295e5b..eb62fd924277a2be7880be4f8ca8a63effb24470 100644 GIT binary patch delta 53 ucmbPgI@NSTG9yQsNnS>_kx9|!Y(_OEIB#+_XYpnpmULFQ$mVKJDM0|u{}5~d delta 53 ucmbPgI@NSTG9yR6nMqkiMRLXFY(_OEIB#+_XYpnpmULFQ$mVKJDM0|_lo4?N diff --git a/master/.doctrees/python-api/generated/triton.testing.Benchmark.doctree b/master/.doctrees/python-api/generated/triton.testing.Benchmark.doctree index 3712cebb19f7c61fa532bae466a96a861a506810..d4fedaa05f0e4af711ac85dfa63f7181272cd80c 100644 GIT binary patch delta 147 zcmdn_fN|#o#toT_9AzeX8QDfAMVkv58=2s|$%TwslXbQ2HYc$p2xE#GNw8t4_1e5e i%3T0O?Pgu=E>mQYgw67a7no5*Cd(&^Y|c(S#{~cZ8!$`& delta 147 zcmdn_fN|#o#toT_9QkG@Wfc|46`Kng8=2s|$%TwslXbQ2HYc$p2xE#GNw8t4_1e5e i%3T0O?Pgu=E>mQYgw67a7no5*Cd(&^Y|c(S#{~eagfguF diff --git a/master/.doctrees/python-api/generated/triton.testing.do_bench.doctree b/master/.doctrees/python-api/generated/triton.testing.do_bench.doctree index 25be98a32c696c45495b9e8a5a45b3bb0e251378..8c8366e2729ba2b2daeda60a57424371963a5f1f 100644 GIT binary patch delta 57 wcmdlIy(M}>6C+2NNnS>_kx9|yT0yPNTNneFkVUdKm$Cfkfs1Ue6*QLt09~#W4*&oF delta 57 wcmdlIy(M}>6C+2ynMqkiMRLXDT0yPNTNneFkVUdKm$Cfkfs1Ue6*QLt0Ck@g6aWAK diff --git a/master/.doctrees/python-api/generated/triton.testing.perf_report.doctree b/master/.doctrees/python-api/generated/triton.testing.perf_report.doctree index 4e9f9807449a52e042d7f89ce6199d47f86b6705..cbfc37d97e3551b6a16ad61a453106a21b45777d 100644 GIT binary patch delta 57 wcmaE?^H^s?HzP-xNnS>_kx9{HK~AmBdl|WzkVSGg+p?Ttfs1Sw_kx9{HK_-{U6B#Su0-FVy%30vN$%b69o8PioB544LbaTu@ nh-^0Ga$rK%5wrO!&rXCq(2SVPpZE&UM2-opK@+(qw3r(Jqx&^5 delta 160 zcmexq^V4R7D8ChYeneX?C7Y3 z;7ta}Uvy?f)8XKL0m*3~HFci0Xu33gkev@wlkLZc2)WITAG=?N@z7U>UIkz4@s^@ehZ%@dN=A-Mu3x+Y}{7SVHQ2e63#$-t&oE_*%}wc5GZ)cWSn z#G*E&a0eFAs$y*JomPsL95!z#--W7s^MT4cs3KthbJa*9h1bWfByc*I-6V|^Rv)|4 zH>6>k5Bga2T zzH&{ku zv&-f{ETSyiP{Z7Rv;2-JNaij)mjq6C+WWU6`E%j9^v(WYL3f4?_e1lm`DE delta 1353 zcmezIi227O<_+PD9QkG@Wfc|46_XD#`EFjr$cqr!e2__j1zA3E@`Z4g&3^1`Oqikv zIgcQ80?mS`{ltBp6|Q#kML}z3IB)VrL692O%~hfkkj#ULR!HnYG7l!YNXnHBVZuQs zzsdWwgck=WA{h%2l-Rsa8ChYeneX?C7Y3 z;7ta}Uvy?f)8XKL0m*3~HFci0Xu33gkev@wlkLZc2)WITAG=?N@z7U>UIkz4@s^@ehZ%@dN=A-Mu3x+Y}{7SVHQ2e63#$-t&oE_*%}wc5GZ)cWSn z#G*E&a0eFAs$y*JomPsL95!z#--W7s^MT4cs3KthbJa*9h1bWfByc*I-6V|^Rv)|4 zH>6>k5Bga2T zzH&{ku zv&-f{ETSyiP{Z7Rv;2-JNaij)mjq6C+WWU6`E%j9^v(WYL3f4?_e1NwXH9 diff --git a/master/.doctrees/python-api/triton.testing.doctree b/master/.doctrees/python-api/triton.testing.doctree index a7e645c9ccefc197d164ea75729f4c60f85f9a00..99012841883ff2a651fb202ac853c18b339ccb7a 100644 GIT binary patch delta 128 zcmZ2yy3TY%C?iLiNnS>_kx9|y_v}8CS29*03nXmrWV*wQERwqU5}PPO)8_Z=;!LRW Z#a!ViA}O2Ac+Vnq0If;coX>C14FJ3kEz1A^ delta 128 zcmZ2yy3TY%C?iL{nMqkiMRLXD_v}8CS29*03nXmrWV*wQERwqU5}PPO)8_Z=;!LRW Z#a!ViA}O2Ac+Vnq0If;coX>C14FFACFf0H7 diff --git a/master/_downloads/034d953b6214fedce6ea03803c712b89/02-fused-softmax.ipynb b/master/_downloads/034d953b6214fedce6ea03803c712b89/02-fused-softmax.ipynb new file mode 100644 index 000000000..f16e090cb --- /dev/null +++ b/master/_downloads/034d953b6214fedce6ea03803c712b89/02-fused-softmax.ipynb @@ -0,0 +1,161 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Fused Softmax\nIn this tutorial, you will write a fused softmax operation that is significantly faster\nthan PyTorch's native op for a particular class of matrices: those whose rows can fit in\nthe GPU's SRAM.\nYou will learn about:\n\n- The benefits of kernel fusion for bandwidth-bound operations.\n- Reduction operators in Triton.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Motivations\nCustom GPU kernels for elementwise additions are educationally valuable but won't get you very far in practice.\nLet us consider instead the case of a simple (numerically stabilized) softmax operation:\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import torch\n\nimport triton\nimport triton.language as tl\n\n\n@torch.jit.script\ndef naive_softmax(x):\n \"\"\"Compute row-wise softmax of X using native pytorch\n\n We subtract the maximum element in order to avoid overflows. Softmax is invariant to\n this shift.\n \"\"\"\n # read MN elements ; write M elements\n x_max = x.max(dim=1)[0]\n # read MN + M elements ; write MN elements\n z = x - x_max[:, None]\n # read MN elements ; write MN elements\n numerator = torch.exp(z)\n # read MN elements ; write M elements\n denominator = numerator.sum(dim=1)\n # read MN + M elements ; write MN elements\n ret = numerator / denominator[:, None]\n # in total: read 5MN + 2M elements ; wrote 3MN + 2M elements\n return ret" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When implemented naively in PyTorch, computing :code:`y = naive_softmax(x)` for $x \\in R^{M \\times N}$\nrequires reading $5MN + 2M$ elements from DRAM and writing back $3MN + 2M$ elements.\nThis is obviously wasteful; we'd prefer to have a custom \"fused\" kernel that only reads\nX once and does all the necessary computations on-chip.\nDoing so would require reading and writing back only $MN$ bytes, so we could\nexpect a theoretical speed-up of ~4x (i.e., $(8MN + 4M) / 2MN$).\nThe `torch.jit.script` flags aims to perform this kind of \"kernel fusion\" automatically\nbut, as we will see later, it is still far from ideal.\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute Kernel\nOur softmax kernel works as follows: each program loads a row of the input matrix X,\nnormalizes it and writes back the result to the output Y.\nNote that one important limitation of Triton is that each block must have a\npower-of-two number of elements, so we need to internally \"pad\" each row and guard the\nmemory operations properly if we want to handle any possible input shapes:\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@triton.jit\ndef softmax_kernel(\n output_ptr, input_ptr, input_row_stride, output_row_stride, n_cols,\n BLOCK_SIZE: tl.constexpr\n):\n # The rows of the softmax are independent, so we parallelize across those\n row_idx = tl.program_id(0)\n # The stride represents how much we need to increase the pointer to advance 1 row\n row_start_ptr = input_ptr + row_idx * input_row_stride\n # The block size is the next power of two greater than n_cols, so we can fit each\n # row in a single block\n col_offsets = tl.arange(0, BLOCK_SIZE)\n input_ptrs = row_start_ptr + col_offsets\n # Load the row into SRAM, using a mask since BLOCK_SIZE may be > than n_cols\n row = tl.load(input_ptrs, mask=col_offsets < n_cols, other=-float('inf'))\n # Substract maximum for numerical stability\n row_minus_max = row - tl.max(row, axis=0)\n # Note that exponentials in Triton are fast but approximate (i.e., think __expf in CUDA)\n numerator = tl.exp(row_minus_max)\n denominator = tl.sum(numerator, axis=0)\n softmax_output = numerator / denominator\n # Write back output to DRAM\n output_row_start_ptr = output_ptr + row_idx * output_row_stride\n output_ptrs = output_row_start_ptr + col_offsets\n tl.store(output_ptrs, softmax_output, mask=col_offsets < n_cols)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can create a helper function that enqueues the kernel and its (meta-)arguments for any given input tensor.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def softmax(x):\n n_rows, n_cols = x.shape\n # The block size is the smallest power of two greater than the number of columns in `x`\n BLOCK_SIZE = triton.next_power_of_2(n_cols)\n # Another trick we can use is to ask the compiler to use more threads per row by\n # increasing the number of warps (`num_warps`) over which each row is distributed.\n # You will see in the next tutorial how to auto-tune this value in a more natural\n # way so you don't have to come up with manual heuristics yourself.\n num_warps = 4\n if BLOCK_SIZE >= 2048:\n num_warps = 8\n if BLOCK_SIZE >= 4096:\n num_warps = 16\n # Allocate output\n y = torch.empty_like(x)\n # Enqueue kernel. The 1D launch grid is simple: we have one kernel instance per row o\n # f the input matrix\n softmax_kernel[(n_rows,)](\n y,\n x,\n x.stride(0),\n y.stride(0),\n n_cols,\n num_warps=num_warps,\n BLOCK_SIZE=BLOCK_SIZE,\n )\n return y" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Unit Test\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We make sure that we test our kernel on a matrix with an irregular number of rows and columns.\nThis will allow us to verify that our padding mechanism works.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "torch.manual_seed(0)\nx = torch.randn(1823, 781, device='cuda')\ny_triton = softmax(x)\ny_torch = torch.softmax(x, axis=1)\nassert torch.allclose(y_triton, y_torch), (y_triton, y_torch)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "As expected, the results are identical.\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Benchmark\nHere we will benchmark our operation as a function of the number of columns in the input matrix -- assuming 4096 rows.\nWe will then compare its performance against (1) :code:`torch.softmax` and (2) the :code:`naive_softmax` defined above.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['N'], # argument names to use as an x-axis for the plot\n x_vals=[\n 128 * i for i in range(2, 100)\n ], # different possible values for `x_name`\n line_arg='provider', # argument name whose value corresponds to a different line in the plot\n line_vals=[\n 'triton',\n 'torch-native',\n 'torch-jit',\n ], # possible values for `line_arg``\n line_names=[\n \"Triton\",\n \"Torch (native)\",\n \"Torch (jit)\",\n ], # label name for the lines\n styles=[('blue', '-'), ('green', '-'), ('green', '--')], # line styles\n ylabel=\"GB/s\", # label name for the y-axis\n plot_name=\"softmax-performance\", # name for the plot. Used also as a file name for saving the plot.\n args={'M': 4096}, # values for function arguments not in `x_names` and `y_name`\n )\n)\ndef benchmark(M, N, provider):\n x = torch.randn(M, N, device='cuda', dtype=torch.float32)\n if provider == 'torch-native':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.softmax(x, axis=-1))\n if provider == 'triton':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: softmax(x))\n if provider == 'torch-jit':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: naive_softmax(x))\n gbps = lambda ms: 2 * x.nelement() * x.element_size() * 1e-9 / (ms * 1e-3)\n return gbps(ms), gbps(max_ms), gbps(min_ms)\n\n\nbenchmark.run(show_plots=True, print_data=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above plot, we can see that:\n\n - Triton is 4x faster than the Torch JIT. This confirms our suspicions that the Torch JIT does not do any fusion here.\n - Triton is noticeably faster than :code:`torch.softmax` -- in addition to being **easier to read, understand and maintain**.\n Note however that the PyTorch `softmax` operation is more general and will works on tensors of any shape.\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py b/master/_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py new file mode 100644 index 000000000..d684106f1 --- /dev/null +++ b/master/_downloads/62d97d49a32414049819dd8bb8378080/01-vector-add.py @@ -0,0 +1,131 @@ +""" +Vector Addition +================= +In this tutorial, you will write a simple vector addition using Triton and learn about: + +- The basic programming model of Triton +- The `triton.jit` decorator, which is used to define Triton kernels. +- The best practices for validating and benchmarking your custom ops against native reference implementations +""" + +# %% +# Compute Kernel +# -------------------------- + +import torch + +import triton +import triton.language as tl + + +@triton.jit +def add_kernel( + x_ptr, # *Pointer* to first input vector + y_ptr, # *Pointer* to second input vector + output_ptr, # *Pointer* to output vector + n_elements, # Size of the vector + BLOCK_SIZE: tl.constexpr, # Number of elements each program should process + # NOTE: `constexpr` so it can be used as a shape value +): + # There are multiple 'program's processing different data. We identify which program + # we are here + pid = tl.program_id(axis=0) # We use a 1D launch grid so axis is 0 + # This program will process inputs that are offset from the initial data. + # for instance, if you had a vector of length 256 and block_size of 64, the programs + # would each access the elements [0:64, 64:128, 128:192, 192:256]. + # Note that offsets is a list of pointers + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + # Create a mask to guard memory operations against out-of-bounds accesses + mask = offsets < n_elements + # Load x and y from DRAM, masking out any extra elements in case the input is not a + # multiple of the block size + x = tl.load(x_ptr + offsets, mask=mask) + y = tl.load(y_ptr + offsets, mask=mask) + output = x + y + # Write x + y back to DRAM + tl.store(output_ptr + offsets, output, mask=mask) + + +# %% +# Let's also declare a helper function to (1) allocate the `z` tensor +# and (2) enqueue the above kernel with appropriate grid/block sizes. + + +def add(x: torch.Tensor, y: torch.Tensor): + # We need to preallocate the output + output = torch.empty_like(x) + assert x.is_cuda and y.is_cuda and output.is_cuda + n_elements = output.numel() + # The SPMD launch grid denotes the number of kernel instances that run in parallel. + # It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int] + # In this case, we use a 1D grid where the size is the number of blocks + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + # NOTE: + # - each torch.tensor object is implicitly converted into a pointer to its first element. + # - `triton.jit`'ed functions can be index with a launch grid to obtain a callable GPU kernel + # - don't forget to pass meta-parameters as keywords arguments + add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024) + # We return a handle to z but, since `torch.cuda.synchronize()` hasn't been called, the kernel is still + # running asynchronously at this point. + return output + + +# %% +# We can now use the above function to compute the element-wise sum of two `torch.tensor` objects and test its correctness: + +torch.manual_seed(0) +size = 98432 +x = torch.rand(size, device='cuda') +y = torch.rand(size, device='cuda') +output_torch = x + y +output_triton = add(x, y) +print(output_torch) +print(output_triton) +print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' +) + +# %% +# Seems like we're good to go! + +# %% +# Benchmark +# ----------- +# We can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch. +# To make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops +# for different problem sizes. + + +@triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['size'], # argument names to use as an x-axis for the plot + x_vals=[ + 2 ** i for i in range(12, 28, 1) + ], # different possible values for `x_name` + x_log=True, # x axis is logarithmic + line_arg='provider', # argument name whose value corresponds to a different line in the plot + line_vals=['triton', 'torch'], # possible values for `line_arg` + line_names=['Triton', 'Torch'], # label name for the lines + styles=[('blue', '-'), ('green', '-')], # line styles + ylabel='GB/s', # label name for the y-axis + plot_name='vector-add-performance', # name for the plot. Used also as a file name for saving the plot. + args={}, # values for function arguments not in `x_names` and `y_name` + ) +) +def benchmark(size, provider): + x = torch.rand(size, device='cuda', dtype=torch.float32) + y = torch.rand(size, device='cuda', dtype=torch.float32) + if provider == 'torch': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: x + y) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: add(x, y)) + gbps = lambda ms: 12 * size / ms * 1e-6 + return gbps(ms), gbps(max_ms), gbps(min_ms) + + +# %% +# We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or +# `save_path='/path/to/results/' to save them to disk along with raw CSV data +benchmark.run(print_data=True, show_plots=True) diff --git a/master/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip b/master/_downloads/662999063954282841dc90b8945f85ce/tutorials_jupyter.zip new file mode 100644 index 0000000000000000000000000000000000000000..92d3756f0997f6d252be9f90dad8fa8cd849ba7a GIT binary patch literal 55184 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 BLOCK_SIZE: + raise RuntimeError("This layer norm doesn't support feature dim >= 64KB.") + # heuristics for number of warps + num_warps = min(max(BLOCK_SIZE // 256, 1), 8) + # enqueue kernel + _layer_norm_fwd_fused[(M,)](x_arg, y, weight, bias, mean, rstd, + x_arg.stride(0), N, eps, + BLOCK_SIZE=BLOCK_SIZE, num_warps=num_warps) + ctx.save_for_backward(x, weight, bias, mean, rstd) + ctx.BLOCK_SIZE = BLOCK_SIZE + ctx.num_warps = num_warps + ctx.eps = eps + return y + + @staticmethod + def backward(ctx, dy): + x, w, b, m, v = ctx.saved_tensors + # heuristics for amount of parallel reduction stream for DG/DB + N = w.shape[0] + GROUP_SIZE_M = 64 + if N <= 8192: GROUP_SIZE_M = 96 + if N <= 4096: GROUP_SIZE_M = 128 + if N <= 1024: GROUP_SIZE_M = 256 + # allocate output + locks = torch.zeros(2 * GROUP_SIZE_M, dtype=torch.int32, device='cuda') + _dw = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device) + _db = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device) + dw = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device) + db = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device) + dx = torch.empty_like(dy) + # enqueue kernel using forward pass heuristics + # also compute partial sums for DW and DB + x_arg = x.reshape(-1, x.shape[-1]) + M, N = x_arg.shape + _layer_norm_bwd_dx_fused[(M,)](dx, dy, _dw, _db, x, w, b, m, v, locks, + x_arg.stride(0), N, ctx.eps, + BLOCK_SIZE_N=ctx.BLOCK_SIZE, + GROUP_SIZE_M=GROUP_SIZE_M, + num_warps=ctx.num_warps) + grid = lambda meta: [triton.cdiv(N, meta['BLOCK_SIZE_N'])] + # accumulate partial sums in separate kernel + _layer_norm_bwd_dwdb[grid](_dw, _db, dw, db, GROUP_SIZE_M, N, + BLOCK_SIZE_M=32, + BLOCK_SIZE_N=128) + return dx, None, dw, db, None + + +layer_norm = LayerNorm.apply + + +def test_layer_norm(M, N, dtype, eps=1e-5, device='cuda'): + # create data + x_shape = (M, N) + w_shape = (x_shape[-1], ) + weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda') + dy = .1 * torch.randn_like(x) + x.requires_grad_(True) + # forward pass + y_tri = layer_norm(x, w_shape, weight, bias, eps) + y_ref = torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps).to(dtype) + # backward pass (triton) + y_tri.backward(dy, retain_graph=True) + dx_tri, dw_tri, db_tri = [_.grad.clone() for _ in [x, weight, bias]] + x.grad, weight.grad, bias.grad = None, None, None + # backward pass (torch) + y_ref.backward(dy, retain_graph=True) + dx_ref, dw_ref, db_ref = [_.grad.clone() for _ in [x, weight, bias]] + # compare + triton.testing.assert_almost_equal(y_tri, y_ref) + triton.testing.assert_almost_equal(dx_tri, dx_ref) + triton.testing.assert_almost_equal(db_tri, db_ref, decimal=1) + triton.testing.assert_almost_equal(dw_tri, dw_ref, decimal=1) + + +@triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['N'], + x_vals=[512 * i for i in range(2, 32)], + line_arg='provider', + line_vals=['triton', 'torch'] + (['apex'] if HAS_APEX else []), + line_names=['Triton', 'Torch'] + (['Apex'] if HAS_APEX else []), + styles=[('blue', '-'), ('green', '-'), ('orange', '-')], + ylabel='GB/s', + plot_name='layer-norm-backward', + args={'M': 4096, 'dtype': torch.float16, 'mode': 'backward'} + ) +) +def bench_layer_norm(M, N, dtype, provider, mode='backward', eps=1e-5, device='cuda'): + # create data + x_shape = (M, N) + w_shape = (x_shape[-1], ) + weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda') + dy = .1 * torch.randn_like(x) + x.requires_grad_(True) + # utility functions + if provider == 'triton': + y_fwd = lambda: layer_norm(x, w_shape, weight, bias, eps) + if provider == 'torch': + y_fwd = lambda: torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps) + if provider == 'apex': + apex_layer_norm = apex.normalization.FusedLayerNorm(w_shape).to(x.device).to(x.dtype) + y_fwd = lambda: apex_layer_norm(x) + # forward pass + if mode == 'forward': + gbps = lambda ms: 2 * x.numel() * x.element_size() / ms * 1e-6 + ms, min_ms, max_ms = triton.testing.do_bench(y_fwd, rep=500) + # backward pass + if mode == 'backward': + gbps = lambda ms: 3 * x.numel() * x.element_size() / ms * 1e-6 + y = y_fwd() + ms, min_ms, max_ms = triton.testing.do_bench(lambda: y.backward(dy, retain_graph=True), + grad_to_none=[x], rep=500) + return gbps(ms), gbps(max_ms), gbps(min_ms) + + +bench_layer_norm.run(save_path='.', print_data=True) diff --git a/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb b/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb new file mode 100644 index 000000000..4d381dafc --- /dev/null +++ b/master/_downloads/ae7fff29e1b574187bc930ed94bcc353/05-layer-norm.ipynb @@ -0,0 +1,54 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Layer Normalization\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import torch\n\nimport triton\nimport triton.language as tl\n\ntry:\n # This is https://github.com/NVIDIA/apex, NOT the apex on PyPi, so it\n # should not be added to extras_require in setup.py.\n import apex\n HAS_APEX = True\nexcept ModuleNotFoundError:\n HAS_APEX = False\n\n\n# Forward Pass\n@triton.jit\ndef _layer_norm_fwd_fused(X, Y, W, B, M, V, stride, N, eps,\n BLOCK_SIZE: tl.constexpr):\n # position of elements processed by this program\n row = tl.program_id(0)\n cols = tl.arange(0, BLOCK_SIZE)\n mask = cols < N\n # offset data pointers to start at the row of interest\n X += row * stride\n Y += row * stride\n # load data and cast to float32\n x = tl.load(X + cols, mask=mask, other=0).to(tl.float32)\n # compute mean\n mean = tl.sum(x, axis=0) / N\n # compute std\n xmean = tl.where(mask, x - mean, 0.)\n var = tl.sum(xmean * xmean, axis=0) / N\n rstd = 1 / tl.sqrt(var + eps)\n xhat = xmean * rstd\n # write-back mean/rstd\n tl.store(M + row, mean)\n tl.store(V + row, rstd)\n # multiply by weight and add bias\n w = tl.load(W + cols, mask=mask)\n b = tl.load(B + cols, mask=mask)\n y = xhat * w + b\n # write-back\n tl.store(Y + cols, y, mask=mask)\n\n\n# Backward pass (DX + partial DW + partial DB)\n@triton.jit\ndef _layer_norm_bwd_dx_fused(DX, DY, DW, DB, X, W, B, M, V, Lock, stride, N, eps,\n GROUP_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr):\n # position of elements processed by this program\n row = tl.program_id(0)\n cols = tl.arange(0, BLOCK_SIZE_N)\n mask = cols < N\n # offset data pointers to start at the row of interest\n X += row * stride\n DY += row * stride\n DX += row * stride\n # offset locks and weight/bias gradient pointer\n # each kernel instance accumulates partial sums for\n # DW and DB into one of GROUP_SIZE_M independent buffers\n # these buffers stay in the L2, which allow this kernel\n # to be fast\n lock_id = row % GROUP_SIZE_M\n Lock += lock_id\n Count = Lock + GROUP_SIZE_M\n DW = DW + lock_id * N + cols\n DB = DB + lock_id * N + cols\n # load data to SRAM\n x = tl.load(X + cols, mask=mask, other=0).to(tl.float32)\n dy = tl.load(DY + cols, mask=mask, other=0).to(tl.float32)\n w = tl.load(W + cols, mask=mask).to(tl.float32)\n mean = tl.load(M + row)\n rstd = tl.load(V + row)\n # compute dx\n xhat = (x - mean) * rstd\n wdy = w * dy\n xhat = tl.where(mask, xhat, 0.)\n wdy = tl.where(mask, wdy, 0.)\n mean1 = tl.sum(xhat * wdy, axis=0) / N\n mean2 = tl.sum(wdy, axis=0) / N\n dx = (wdy - (xhat * mean1 + mean2)) * rstd\n # write-back dx\n tl.store(DX + cols, dx, mask=mask)\n # accumulate partial sums for dw/db\n partial_dw = (dy * xhat).to(w.dtype)\n partial_db = (dy).to(w.dtype)\n while tl.atomic_cas(Lock, 0, 1) == 1:\n pass\n count = tl.load(Count)\n # first store doesn't accumulate\n if count == 0:\n tl.atomic_xchg(Count, 1)\n else:\n partial_dw += tl.load(DW, mask=mask)\n partial_db += tl.load(DB, mask=mask)\n tl.store(DW, partial_dw, mask=mask)\n tl.store(DB, partial_db, mask=mask)\n # release lock\n tl.atomic_xchg(Lock, 0)\n\n# Backward pass (total DW + total DB)\n\n\n@triton.jit\ndef _layer_norm_bwd_dwdb(DW, DB, FINAL_DW, FINAL_DB, M, N,\n BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr):\n pid = tl.program_id(0)\n cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n for i in range(0, M, BLOCK_SIZE_M):\n rows = i + tl.arange(0, BLOCK_SIZE_M)\n mask = (rows[:, None] < M) & (cols[None, :] < N)\n offs = rows[:, None] * N + cols[None, :]\n dw += tl.load(DW + offs, mask=mask, other=0.)\n db += tl.load(DB + offs, mask=mask, other=0.)\n sum_dw = tl.sum(dw, axis=0)\n sum_db = tl.sum(db, axis=0)\n tl.store(FINAL_DW + cols, sum_dw, mask=cols < N)\n tl.store(FINAL_DB + cols, sum_db, mask=cols < N)\n\n\nclass LayerNorm(torch.autograd.Function):\n\n @staticmethod\n def forward(ctx, x, normalized_shape, weight, bias, eps):\n # allocate output\n y = torch.empty_like(x)\n # reshape input data into 2D tensor\n x_arg = x.reshape(-1, x.shape[-1])\n M, N = x_arg.shape\n mean = torch.empty((M, ), dtype=torch.float32, device='cuda')\n rstd = torch.empty((M, ), dtype=torch.float32, device='cuda')\n # Less than 64KB per feature: enqueue fused kernel\n MAX_FUSED_SIZE = 65536 // x.element_size()\n BLOCK_SIZE = min(MAX_FUSED_SIZE, triton.next_power_of_2(N))\n if N > BLOCK_SIZE:\n raise RuntimeError(\"This layer norm doesn't support feature dim >= 64KB.\")\n # heuristics for number of warps\n num_warps = min(max(BLOCK_SIZE // 256, 1), 8)\n # enqueue kernel\n _layer_norm_fwd_fused[(M,)](x_arg, y, weight, bias, mean, rstd,\n x_arg.stride(0), N, eps,\n BLOCK_SIZE=BLOCK_SIZE, num_warps=num_warps)\n ctx.save_for_backward(x, weight, bias, mean, rstd)\n ctx.BLOCK_SIZE = BLOCK_SIZE\n ctx.num_warps = num_warps\n ctx.eps = eps\n return y\n\n @staticmethod\n def backward(ctx, dy):\n x, w, b, m, v = ctx.saved_tensors\n # heuristics for amount of parallel reduction stream for DG/DB\n N = w.shape[0]\n GROUP_SIZE_M = 64\n if N <= 8192: GROUP_SIZE_M = 96\n if N <= 4096: GROUP_SIZE_M = 128\n if N <= 1024: GROUP_SIZE_M = 256\n # allocate output\n locks = torch.zeros(2 * GROUP_SIZE_M, dtype=torch.int32, device='cuda')\n _dw = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device)\n _db = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device)\n dw = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device)\n db = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device)\n dx = torch.empty_like(dy)\n # enqueue kernel using forward pass heuristics\n # also compute partial sums for DW and DB\n x_arg = x.reshape(-1, x.shape[-1])\n M, N = x_arg.shape\n _layer_norm_bwd_dx_fused[(M,)](dx, dy, _dw, _db, x, w, b, m, v, locks,\n x_arg.stride(0), N, ctx.eps,\n BLOCK_SIZE_N=ctx.BLOCK_SIZE,\n GROUP_SIZE_M=GROUP_SIZE_M,\n num_warps=ctx.num_warps)\n grid = lambda meta: [triton.cdiv(N, meta['BLOCK_SIZE_N'])]\n # accumulate partial sums in separate kernel\n _layer_norm_bwd_dwdb[grid](_dw, _db, dw, db, GROUP_SIZE_M, N,\n BLOCK_SIZE_M=32,\n BLOCK_SIZE_N=128)\n return dx, None, dw, db, None\n\n\nlayer_norm = LayerNorm.apply\n\n\ndef test_layer_norm(M, N, dtype, eps=1e-5, device='cuda'):\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # forward pass\n y_tri = layer_norm(x, w_shape, weight, bias, eps)\n y_ref = torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps).to(dtype)\n # backward pass (triton)\n y_tri.backward(dy, retain_graph=True)\n dx_tri, dw_tri, db_tri = [_.grad.clone() for _ in [x, weight, bias]]\n x.grad, weight.grad, bias.grad = None, None, None\n # backward pass (torch)\n y_ref.backward(dy, retain_graph=True)\n dx_ref, dw_ref, db_ref = [_.grad.clone() for _ in [x, weight, bias]]\n # compare\n triton.testing.assert_almost_equal(y_tri, y_ref)\n triton.testing.assert_almost_equal(dx_tri, dx_ref)\n triton.testing.assert_almost_equal(db_tri, db_ref, decimal=1)\n triton.testing.assert_almost_equal(dw_tri, dw_ref, decimal=1)\n\n\n@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['N'],\n x_vals=[512 * i for i in range(2, 32)],\n line_arg='provider',\n line_vals=['triton', 'torch'] + (['apex'] if HAS_APEX else []),\n line_names=['Triton', 'Torch'] + (['Apex'] if HAS_APEX else []),\n styles=[('blue', '-'), ('green', '-'), ('orange', '-')],\n ylabel='GB/s',\n plot_name='layer-norm-backward',\n args={'M': 4096, 'dtype': torch.float16, 'mode': 'backward'}\n )\n)\ndef bench_layer_norm(M, N, dtype, provider, mode='backward', eps=1e-5, device='cuda'):\n # create data\n x_shape = (M, N)\n w_shape = (x_shape[-1], )\n weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True)\n x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda')\n dy = .1 * torch.randn_like(x)\n x.requires_grad_(True)\n # utility functions\n if provider == 'triton':\n y_fwd = lambda: layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'torch':\n y_fwd = lambda: torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps)\n if provider == 'apex':\n apex_layer_norm = apex.normalization.FusedLayerNorm(w_shape).to(x.device).to(x.dtype)\n y_fwd = lambda: apex_layer_norm(x)\n # forward pass\n if mode == 'forward':\n gbps = lambda ms: 2 * x.numel() * x.element_size() / ms * 1e-6\n ms, min_ms, max_ms = triton.testing.do_bench(y_fwd, rep=500)\n # backward pass\n if mode == 'backward':\n gbps = lambda ms: 3 * x.numel() * x.element_size() / ms * 1e-6\n y = y_fwd()\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: y.backward(dy, retain_graph=True),\n grad_to_none=[x], rep=500)\n return gbps(ms), gbps(max_ms), gbps(min_ms)\n\n\nbench_layer_norm.run(save_path='.', print_data=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/b51b68bc1c6b1a5e509f67800b6235af/03-matrix-multiplication.ipynb b/master/_downloads/b51b68bc1c6b1a5e509f67800b6235af/03-matrix-multiplication.ipynb new file mode 100644 index 000000000..f177fae9b --- /dev/null +++ b/master/_downloads/b51b68bc1c6b1a5e509f67800b6235af/03-matrix-multiplication.ipynb @@ -0,0 +1,129 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Matrix Multiplication\nIn this tutorial, you will write a 25-lines high-performance FP16 matrix multiplication\nkernel that achieves performance on par with cuBLAS.\nYou will specifically learn about:\n\n- Block-level matrix multiplications\n- Multi-dimensional pointer arithmetic\n- Program re-ordering for improved L2 cache hit rate\n- Automatic performance tuning\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Motivations\nMatrix multiplications are a key building block of most modern high-performance computing systems.\nThey are notoriously hard to optimize, hence their implementation is generally done by\nhardware vendors themselves as part of so-called \"kernel libraries\" (e.g., cuBLAS).\nUnfortunately, these libraries are often proprietary and cannot be easily customized\nto accomodate the needs of modern deep learning workloads (e.g., fused activation functions).\nIn this tutorial, you will learn how to implement efficient matrix multiplications by\nyourself with Triton, in a way that is easy to customize and extend.\n\nRoughly speaking, the kernel that we will write will implement the following blocked\nalgorithm to multiply a (M, K) by a (K, N) matrix:\n\n .. code-block:: python\n\n # do in parallel\n for m in range(0, M, BLOCK_SIZE_M):\n # do in parallel\n for n in range(0, N, BLOCK_SIZE_N):\n acc = zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=float32)\n for k in range(0, K, BLOCK_SIZE_K):\n a = A[m : m+BLOCK_SIZE_M, k : k+BLOCK_SIZE_K]\n b = B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N]\n acc += dot(a, b)\n C[m : m+BLOCK_SIZE_M, n : n+BLOCK_SIZE_N] = acc;\n\nwhere each iteration of the doubly-nested for-loop is performed by a dedicated Triton program instance.\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute Kernel\n\nThe above algorithm is, actually, fairly straightforward to implement in Triton.\nThe main difficulty comes from the computation of the memory locations at which blocks\nof :code:`A` and :code:`B` must be read in the inner loop. For that, we need\nmulti-dimensional pointer arithmetics.\n\n### Pointer Arithmetics\n\nFor a row-major 2D tensor :code:`X`, the memory location of :code:`X[i, j]` is given b\ny :code:`&X[i, j] = X + i*stride_xi + j*stride_xj`.\nTherefore, blocks of pointers for :code:`A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K]` and\n:code:`B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N]` can be defined in pseudo-code as:\n\n .. code-block:: python\n\n &A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K] = a_ptr + (m : m+BLOCK_SIZE_M)[:, None]*A.stride(0) + (k : k+BLOCK_SIZE_K)[None, :]*A.stride(1);\n &B[k : k+BLOCK_SIZE_K, n:n+BLOCK_SIZE_N] = b_ptr + (k : k+BLOCK_SIZE_K)[:, None]*B.stride(0) + (n : n+BLOCK_SIZE_N)[None, :]*B.stride(1);\n\nWhich means that pointers for blocks of A and B can be initialized (i.e., :code:`k=0`) in Triton as:\n\n .. code-block:: python\n\n offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n offs_k = tl.arange(0, BLOCK_SIZE_K)\n a_ptrs = a_ptr + (offs_am[:, None]*stride_am + offs_k [None, :]*stride_ak)\n b_ptrs = b_ptr + (offs_k [:, None]*stride_bk + offs_bn[None, :]*stride_bn)\n\nAnd then updated in the inner loop as follows:\n\n .. code-block:: python\n\n pa += BLOCK_SIZE_K * stride_ak;\n pb += BLOCK_SIZE_K * stride_bk;\n\n\n### L2 Cache Optimizations\n\nAs mentioned above, each program instance computes a :code:`[BLOCK_SIZE_M, BLOCK_SIZE_N]`\nblock of :code:`C`.\nIt is important to remember that the order in which these blocks are computed does\nmatter, since it affects the L2 cache hit rate of our program. and unfortunately, a\na simple row-major ordering\n\n .. code-block:: Python\n\n pid = triton.program_id(0);\n grid_m = (M + BLOCK_SIZE_M - 1) // BLOCK_SIZE_M;\n grid_n = (N + BLOCK_SIZE_N - 1) // BLOCK_SIZE_N;\n pid_m = pid / grid_n;\n pid_n = pid % grid_n;\n\nis just not going to cut it.\n\nOne possible solution is to launch blocks in an order that promotes data reuse.\nThis can be done by 'super-grouping' blocks in groups of :code:`GROUP_M` rows before\nswitching to the next column:\n\n .. code-block:: python\n\n # program ID\n pid = tl.program_id(axis=0)\n # number of program ids along the M axis\n num_pid_m = tl.cdiv(M, BLOCK_SIZE_M)\n # number of programs ids along the N axis\n num_pid_n = tl.cdiv(N, BLOCK_SIZE_N)\n # number of programs in group\n num_pid_in_group = GROUP_SIZE_M * num_pid_n\n # id of the group this program is in\n group_id = pid // num_pid_in_group\n # row-id of the first program in the group\n first_pid_m = group_id * GROUP_SIZE_M\n # if `num_pid_m` isn't divisible by `GROUP_SIZE_M`, the last group is smaller\n group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M)\n # *within groups*, programs are ordered in a column-major order\n # row-id of the program in the *launch grid*\n pid_m = first_pid_m + (pid % group_size_m)\n # col-id of the program in the *launch grid*\n pid_n = (pid % num_pid_in_group) // group_size_m\n\nFor example, in the following matmul where each matrix is 9 blocks by 9 blocks,\nwe can see that if we compute the output in row-major ordering, we need to load 90\nblocks into SRAM to compute the first 9 output blocks, but if we do it in grouped\nordering, we only need to load 54 blocks.\n .. image:: grouped_vs_row_major_ordering.png\n\nIn practice, this can improve the performance of our matrix multiplication kernel by\nmore than 10\\% on some hardware architecture (e.g., 220 to 245 TFLOPS on A100).\n\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Final Result\n\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import torch\n\nimport triton\nimport triton.language as tl\n\n# %\n# :code:`triton.jit`'ed functions can be auto-tuned by using the `triton.autotune`\n# decorator, which consumes:\n# - A list of :code:`triton.Config` objects that define different configurations of\n# meta-parameters (e.g., BLOCK_SIZE_M) and compilation options (e.g., num_warps) to try\n# - An autotuning *key* whose change in values will trigger evaluation of all the\n# provided configs\n\n\n@triton.autotune(\n configs=[\n triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8),\n triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8),\n triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4),\n triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2),\n triton.Config({'BLOCK_SIZE_M': 32, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2),\n ],\n key=['M', 'N', 'K'],\n)\n@triton.jit\ndef matmul_kernel(\n # Pointers to matrices\n a_ptr, b_ptr, c_ptr,\n # Matrix dimensions\n M, N, K,\n # The stride variables represent how much to increase the ptr by when moving by 1\n # element in a particular dimension. E.g. stride_am is how much to increase a_ptr\n # by to get the element one row down (A has M rows)\n stride_am, stride_ak,\n stride_bk, stride_bn,\n stride_cm, stride_cn,\n # Meta-parameters\n BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr, BLOCK_SIZE_K: tl.constexpr,\n GROUP_SIZE_M: tl.constexpr,\n ACTIVATION: tl.constexpr,\n):\n \"\"\"Kernel for computing the matmul C = A x B.\n A has shape (M, K), B has shape (K, N) and C has shape (M, N)\n \"\"\"\n # -----------------------------------------------------------\n # Map program ids `pid` to the block of C it should compute.\n # This is done in a grouped ordering to promote L2 data reuse\n # See above `L2 Cache Optimizations` section for details\n pid = tl.program_id(axis=0)\n num_pid_m = tl.cdiv(M, BLOCK_SIZE_M)\n num_pid_n = tl.cdiv(N, BLOCK_SIZE_N)\n num_pid_in_group = GROUP_SIZE_M * num_pid_n\n group_id = pid // num_pid_in_group\n first_pid_m = group_id * GROUP_SIZE_M\n group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M)\n pid_m = first_pid_m + (pid % group_size_m)\n pid_n = (pid % num_pid_in_group) // group_size_m\n\n # ----------------------------------------------------------\n # Create pointers for the first blocks of A and B.\n # We will advance this pointer as we move in the K direction\n # and accumulate\n # a_ptrs is a block of [BLOCK_SIZE_M, BLOCK_SIZE_K] pointers\n # b_ptrs is a block of [BLOCK_SIZE_K, BLOCK_SIZE_n] pointers\n # see above `Pointer Arithmetics` section for details\n offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n offs_k = tl.arange(0, BLOCK_SIZE_K)\n a_ptrs = a_ptr + (offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak)\n b_ptrs = b_ptr + (offs_k[:, None] * stride_bk + offs_bn[None, :] * stride_bn)\n\n # -----------------------------------------------------------\n # Iterate to compute a block of the C matrix\n # We accumulate into a `[BLOCK_SIZE_M, BLOCK_SIZE_N]` block\n # of fp32 values for higher accuracy.\n # `accumulator` will be converted back to fp16 after the loop\n accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32)\n for k in range(0, K, BLOCK_SIZE_K):\n # Note that for simplicity, we don't apply a mask here.\n # This means that if K is not a multiple of BLOCK_SIZE_K,\n # this will access out-of-bounds memory and produce an\n # error or (worse!) incorrect results.\n a = tl.load(a_ptrs)\n b = tl.load(b_ptrs)\n # We accumulate along the K dimension\n accumulator += tl.dot(a, b)\n # Advance the ptrs to the next K block\n a_ptrs += BLOCK_SIZE_K * stride_ak\n b_ptrs += BLOCK_SIZE_K * stride_bk\n # you can fuse arbitrary activation functions here\n # while the accumulator is still in FP32!\n if ACTIVATION:\n accumulator = ACTIVATION(accumulator)\n c = accumulator.to(tl.float16)\n\n # -----------------------------------------------------------\n # Write back the block of the output matrix C\n offs_cm = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M)\n offs_cn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N)\n c_ptrs = c_ptr + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :]\n c_mask = (offs_cm[:, None] < M) & (offs_cn[None, :] < N)\n tl.store(c_ptrs, c, mask=c_mask)\n\n\n# we can fuse `leaky_relu` by providing it as an `ACTIVATION` meta-parameter in `_matmul`\n@triton.jit\ndef leaky_relu(x):\n return tl.where(x >= 0, x, 0.01 * x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now create a convenience wrapper function that only takes two input tensors\nand (1) checks any shape constraint; (2) allocates the output; (3) launches the above kernel\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def matmul(a, b, activation=None):\n # checks constraints\n assert a.shape[1] == b.shape[0], \"incompatible dimensions\"\n assert a.is_contiguous(), \"matrix A must be contiguous\"\n assert b.is_contiguous(), \"matrix B must be contiguous\"\n M, K = a.shape\n K, N = b.shape\n assert (\n K % 32 == 0\n ), \"We don't check memory-out-of-bounds with K so K must be divisible by BLOCK_SIZE_K\"\n # allocates output\n c = torch.empty((M, N), device=a.device, dtype=a.dtype)\n # 1D launch kernel where each block gets its own program.\n grid = lambda META: (\n triton.cdiv(M, META['BLOCK_SIZE_M']) * triton.cdiv(N, META['BLOCK_SIZE_N']),\n )\n matmul_kernel[grid](\n a, b, c,\n M, N, K,\n a.stride(0), a.stride(1),\n b.stride(0), b.stride(1),\n c.stride(0), c.stride(1),\n ACTIVATION=activation,\n )\n return c" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Unit Test\n\nWe can test our custom matrix multiplication operation against a native torch implementation (i.e., cuBLAS)\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "torch.manual_seed(0)\na = torch.randn((512, 512), device='cuda', dtype=torch.float16)\nb = torch.randn((512, 512), device='cuda', dtype=torch.float16)\ntriton_output = matmul(a, b, activation=None)\ntorch_output = torch.matmul(a, b)\nprint(f\"triton_output={triton_output}\")\nprint(f\"torch_output={torch_output}\")\nif triton.testing.allclose(triton_output, torch_output):\n print(\"\u2705 Triton and Torch match\")\nelse:\n print(\"\u274c Triton and Torch differ\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Benchmark\n\n### Square Matrix Performance\nWe can now compare the performance of our kernel against that of cuBLAS. Here we focus on square matrices, but feel free to arrange this script as you wish to benchmark any other matrix shape.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['M', 'N', 'K'], # argument names to use as an x-axis for the plot\n x_vals=[\n 128 * i for i in range(2, 33)\n ], # different possible values for `x_name`\n line_arg='provider', # argument name whose value corresponds to a different line in the plot\n # possible values for `line_arg``\n line_vals=['cublas', 'cublas + relu', 'triton', 'triton + relu'],\n # label name for the lines\n line_names=[\"cuBLAS\", \"cuBLAS (+ torch.nn.LeakyReLU)\", \"Triton\", \"Triton (+ LeakyReLU)\"],\n # line styles\n styles=[('green', '-'), ('green', '--'), ('blue', '-'), ('blue', '--')],\n ylabel=\"TFLOPS\", # label name for the y-axis\n plot_name=\"matmul-performance\", # name for the plot. Used also as a file name for saving the plot.\n args={},\n )\n)\ndef benchmark(M, N, K, provider):\n a = torch.randn((M, K), device='cuda', dtype=torch.float16)\n b = torch.randn((K, N), device='cuda', dtype=torch.float16)\n if provider == 'cublas':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.matmul(a, b))\n if provider == 'triton':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: matmul(a, b))\n if provider == 'cublas + relu':\n torch_relu = torch.nn.ReLU(inplace=True)\n ms, min_ms, max_ms = triton.testing.do_bench(\n lambda: torch_relu(torch.matmul(a, b))\n )\n if provider == 'triton + relu':\n ms, min_ms, max_ms = triton.testing.do_bench(\n lambda: matmul(a, b, activation=leaky_relu)\n )\n perf = lambda ms: 2 * M * N * K * 1e-12 / (ms * 1e-3)\n return perf(ms), perf(max_ms), perf(min_ms)\n\n\nbenchmark.run(show_plots=True, print_data=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/bc847dec325798bdc436c4ef5ac8b78a/04-low-memory-dropout.ipynb b/master/_downloads/bc847dec325798bdc436c4ef5ac8b78a/04-low-memory-dropout.ipynb new file mode 100644 index 000000000..5a6b1d8fa --- /dev/null +++ b/master/_downloads/bc847dec325798bdc436c4ef5ac8b78a/04-low-memory-dropout.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Low-Memory Dropout\n\nIn this tutorial, you will write a memory-efficient implementation of dropout whose state\nwill be composed of a single int32 seed. This differs from more traditional implementations of dropout,\nwhose state is generally composed of a bit mask tensor of the same shape as the input. You will learn about:\n\n- The limitations of naive implementations of Dropout with PyTorch\n- Parallel pseudo-random number generation in Triton\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Baseline\nThe *dropout* operator was first introduced in [SRIVASTAVA2014]_ as a way to improve the performance\nof deep neural networks in low-data regime (i.e. regularization).\n\nIt takes a vector as input and produces a vector of the same shape as output. Each scalar in the\noutput has a probability $p$ of being changed to zero and otherwise it is copied from the input.\nThis forces the network to perform well even when only $1 - p$ scalars from the input are available.\n\nAt evaluation time we want to use the full power of the network so we set $p=0$. Naively this would\nincrease the norm of the output (which can be a bad thing, e.g. it can lead to artificial decrease\nin the output softmax temperature). To prevent this we multiply the output by $\\frac{1}{1 - p}$, which\nkeeps the norm consistent regardless of the dropout probability.\n\nLet's first take a look at the baseline implementation.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import tabulate\nimport torch\n\nimport triton\nimport triton.language as tl\n\n\n@triton.jit\ndef _dropout(\n x_ptr, # pointer to the input\n x_keep_ptr, # pointer to a mask of 0s and 1s\n output_ptr, # pointer to the output\n n_elements, # number of elements in the `x` tensor\n p, # probability that an element of `x` is changed to zero\n BLOCK_SIZE: tl.constexpr,\n):\n pid = tl.program_id(axis=0)\n block_start = pid * BLOCK_SIZE\n offsets = block_start + tl.arange(0, BLOCK_SIZE)\n mask = offsets < n_elements\n # Load data\n x = tl.load(x_ptr + offsets, mask=mask)\n x_keep = tl.load(x_keep_ptr + offsets, mask=mask)\n # The line below is the crucial part, described in the paragraph above!\n output = tl.where(x_keep, x / (1 - p), 0.0)\n # Write-back output\n tl.store(output_ptr + offsets, output, mask=mask)\n\n\ndef dropout(x, x_keep, p):\n output = torch.empty_like(x)\n assert x.is_contiguous()\n n_elements = x.numel()\n grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\n _dropout[grid](x, x_keep, output, n_elements, p, BLOCK_SIZE=1024)\n return output\n\n\n# Input tensor\nx = torch.randn(size=(10,)).cuda()\n# Dropout mask\np = 0.5\nx_keep = (torch.rand(size=(10,)) > p).to(torch.int32).cuda()\n#\noutput = dropout(x, x_keep=x_keep, p=p)\nprint(tabulate.tabulate([\n [\"input\"] + x.tolist(),\n [\"keep mask\"] + x_keep.tolist(),\n [\"output\"] + output.tolist()\n]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Seeded dropout\nAbove implementation of dropout works fine, but it can be a bit awkward to deal with. Firstly\nwe need to store the dropout mask for backpropagation. Secondly, dropout state management can get\nvery tricky when using recompute/checkpointing (e.g. see all the notes about `preserve_rng_state` in\nhttps://pytorch.org/docs/1.9.0/checkpoint.html). In this tutorial we'll describe an alternative implementation\nthat (1) has a smaller memory footprint; (2) requires less data movement; and (3) simplifies the management\nof persisting randomness across multiple invocations of the kernel.\n\nPseudorandom number generation in Triton is simple! In this tutorial we will use the\n:code:`triton.language.rand` function which generates a block of uniformly distributed :code:`float32`\nvalues in [0, 1), given a seed and a block of :code:`int32` offsets. But if you need it, Triton also provides\nother `random number generation strategies `.\n\n

    Note

    Triton's implementation of PRNG is based on the Philox algorithm (described on [SALMON2011]_).

    \n\nLet's put it all together.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@triton.jit\ndef _seeded_dropout(\n x_ptr,\n output_ptr,\n n_elements,\n p,\n seed,\n BLOCK_SIZE: tl.constexpr,\n):\n # compute memory offsets of elements handled by this instance\n pid = tl.program_id(axis=0)\n block_start = pid * BLOCK_SIZE\n offsets = block_start + tl.arange(0, BLOCK_SIZE)\n # load data from x\n mask = offsets < n_elements\n x = tl.load(x_ptr + offsets, mask=mask)\n # randomly prune it\n random = tl.rand(seed, offsets)\n x_keep = random > p\n # write-back\n output = tl.where(x_keep, x / (1 - p), 0.0)\n tl.store(output_ptr + offsets, output, mask=mask)\n\n\ndef seeded_dropout(x, p, seed):\n output = torch.empty_like(x)\n assert x.is_contiguous()\n n_elements = x.numel()\n grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\n _seeded_dropout[grid](x, output, n_elements, p, seed, BLOCK_SIZE=1024)\n return output\n\n\nx = torch.randn(size=(10,)).cuda()\n# Compare this to the baseline - dropout mask is never instantiated!\noutput = seeded_dropout(x, p=0.5, seed=123)\noutput2 = seeded_dropout(x, p=0.5, seed=123)\noutput3 = seeded_dropout(x, p=0.5, seed=512)\n\nprint(tabulate.tabulate([\n [\"input\"] + x.tolist(),\n [\"output (seed = 123)\"] + output.tolist(),\n [\"output (seed = 123)\"] + output2.tolist(),\n [\"output (seed = 512)\"] + output3.tolist()\n]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Et Voil\u00e0! We have a triton kernel that applies the same dropout mask provided the seed is the same!\nIf you'd like explore further applications of pseudorandomness in GPU programming, we encourage you\nto explore the `triton/language/random` folder!\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises\n1. Extend the kernel to operate over a matrix and use a vector of seeds - one per row.\n2. Add support for striding.\n3. (challenge) Implement a kernel for sparse Johnson-Lindenstrauss transform which generates the projection matrix one the fly each time using a seed.\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n\n.. [SALMON2011] John K. Salmon, Mark A. Moraes, Ron O. Dror, and David E. Shaw, \"Parallel Random Numbers: As Easy as 1, 2, 3\", 2011\n.. [SRIVASTAVA2014] Nitish Srivastava and Geoffrey Hinton and Alex Krizhevsky and Ilya Sutskever and Ruslan Salakhutdinov, \"Dropout: A Simple Way to Prevent Neural Networks from Overfitting\", JMLR 2014\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_downloads/c9aed78977a4c05741d675a38dde3d7d/04-low-memory-dropout.py b/master/_downloads/c9aed78977a4c05741d675a38dde3d7d/04-low-memory-dropout.py new file mode 100644 index 000000000..cf172537a --- /dev/null +++ b/master/_downloads/c9aed78977a4c05741d675a38dde3d7d/04-low-memory-dropout.py @@ -0,0 +1,166 @@ +""" +Low-Memory Dropout +================= + +In this tutorial, you will write a memory-efficient implementation of dropout whose state +will be composed of a single int32 seed. This differs from more traditional implementations of dropout, +whose state is generally composed of a bit mask tensor of the same shape as the input. You will learn about: + +- The limitations of naive implementations of Dropout with PyTorch +- Parallel pseudo-random number generation in Triton +""" + +# %% +# Baseline +# ------------- +# The *dropout* operator was first introduced in [SRIVASTAVA2014]_ as a way to improve the performance +# of deep neural networks in low-data regime (i.e. regularization). +# +# It takes a vector as input and produces a vector of the same shape as output. Each scalar in the +# output has a probability :math:`p` of being changed to zero and otherwise it is copied from the input. +# This forces the network to perform well even when only :math:`1 - p` scalars from the input are available. +# +# At evaluation time we want to use the full power of the network so we set :math:`p=0`. Naively this would +# increase the norm of the output (which can be a bad thing, e.g. it can lead to artificial decrease +# in the output softmax temperature). To prevent this we multiply the output by :math:`\frac{1}{1 - p}`, which +# keeps the norm consistent regardless of the dropout probability. +# +# Let's first take a look at the baseline implementation. + + +import tabulate +import torch + +import triton +import triton.language as tl + + +@triton.jit +def _dropout( + x_ptr, # pointer to the input + x_keep_ptr, # pointer to a mask of 0s and 1s + output_ptr, # pointer to the output + n_elements, # number of elements in the `x` tensor + p, # probability that an element of `x` is changed to zero + BLOCK_SIZE: tl.constexpr, +): + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + mask = offsets < n_elements + # Load data + x = tl.load(x_ptr + offsets, mask=mask) + x_keep = tl.load(x_keep_ptr + offsets, mask=mask) + # The line below is the crucial part, described in the paragraph above! + output = tl.where(x_keep, x / (1 - p), 0.0) + # Write-back output + tl.store(output_ptr + offsets, output, mask=mask) + + +def dropout(x, x_keep, p): + output = torch.empty_like(x) + assert x.is_contiguous() + n_elements = x.numel() + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + _dropout[grid](x, x_keep, output, n_elements, p, BLOCK_SIZE=1024) + return output + + +# Input tensor +x = torch.randn(size=(10,)).cuda() +# Dropout mask +p = 0.5 +x_keep = (torch.rand(size=(10,)) > p).to(torch.int32).cuda() +# +output = dropout(x, x_keep=x_keep, p=p) +print(tabulate.tabulate([ + ["input"] + x.tolist(), + ["keep mask"] + x_keep.tolist(), + ["output"] + output.tolist() +])) + +# %% +# Seeded dropout +# ------------- +# Above implementation of dropout works fine, but it can be a bit awkward to deal with. Firstly +# we need to store the dropout mask for backpropagation. Secondly, dropout state management can get +# very tricky when using recompute/checkpointing (e.g. see all the notes about `preserve_rng_state` in +# https://pytorch.org/docs/1.9.0/checkpoint.html). In this tutorial we'll describe an alternative implementation +# that (1) has a smaller memory footprint; (2) requires less data movement; and (3) simplifies the management +# of persisting randomness across multiple invocations of the kernel. +# +# Pseudorandom number generation in Triton is simple! In this tutorial we will use the +# :code:`triton.language.rand` function which generates a block of uniformly distributed :code:`float32` +# values in [0, 1), given a seed and a block of :code:`int32` offsets. But if you need it, Triton also provides +# other :ref:`random number generation strategies `. +# +# .. note:: +# Triton's implementation of PRNG is based on the Philox algorithm (described on [SALMON2011]_). +# +# Let's put it all together. + + +@triton.jit +def _seeded_dropout( + x_ptr, + output_ptr, + n_elements, + p, + seed, + BLOCK_SIZE: tl.constexpr, +): + # compute memory offsets of elements handled by this instance + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + # load data from x + mask = offsets < n_elements + x = tl.load(x_ptr + offsets, mask=mask) + # randomly prune it + random = tl.rand(seed, offsets) + x_keep = random > p + # write-back + output = tl.where(x_keep, x / (1 - p), 0.0) + tl.store(output_ptr + offsets, output, mask=mask) + + +def seeded_dropout(x, p, seed): + output = torch.empty_like(x) + assert x.is_contiguous() + n_elements = x.numel() + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + _seeded_dropout[grid](x, output, n_elements, p, seed, BLOCK_SIZE=1024) + return output + + +x = torch.randn(size=(10,)).cuda() +# Compare this to the baseline - dropout mask is never instantiated! +output = seeded_dropout(x, p=0.5, seed=123) +output2 = seeded_dropout(x, p=0.5, seed=123) +output3 = seeded_dropout(x, p=0.5, seed=512) + +print(tabulate.tabulate([ + ["input"] + x.tolist(), + ["output (seed = 123)"] + output.tolist(), + ["output (seed = 123)"] + output2.tolist(), + ["output (seed = 512)"] + output3.tolist() +])) + +# %% +# Et Voilà! We have a triton kernel that applies the same dropout mask provided the seed is the same! +# If you'd like explore further applications of pseudorandomness in GPU programming, we encourage you +# to explore the `triton/language/random` folder! + +# %% +# Exercises +# ------------- +# 1. Extend the kernel to operate over a matrix and use a vector of seeds - one per row. +# 2. Add support for striding. +# 3. (challenge) Implement a kernel for sparse Johnson-Lindenstrauss transform which generates the projection matrix one the fly each time using a seed. + +# %% +# References +# -------------- +# +# .. [SALMON2011] John K. Salmon, Mark A. Moraes, Ron O. Dror, and David E. Shaw, "Parallel Random Numbers: As Easy as 1, 2, 3", 2011 +# .. [SRIVASTAVA2014] Nitish Srivastava and Geoffrey Hinton and Alex Krizhevsky and Ilya Sutskever and Ruslan Salakhutdinov, "Dropout: A Simple Way to Prevent Neural Networks from Overfitting", JMLR 2014 diff --git a/master/_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py b/master/_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py new file mode 100644 index 000000000..f773a3787 --- /dev/null +++ b/master/_downloads/d5fee5b55a64e47f1b5724ec39adf171/03-matrix-multiplication.py @@ -0,0 +1,355 @@ +""" +Matrix Multiplication +====================== +In this tutorial, you will write a 25-lines high-performance FP16 matrix multiplication +kernel that achieves performance on par with cuBLAS. +You will specifically learn about: + +- Block-level matrix multiplications +- Multi-dimensional pointer arithmetic +- Program re-ordering for improved L2 cache hit rate +- Automatic performance tuning +""" + +# %% +# Motivations +# ------------- +# Matrix multiplications are a key building block of most modern high-performance computing systems. +# They are notoriously hard to optimize, hence their implementation is generally done by +# hardware vendors themselves as part of so-called "kernel libraries" (e.g., cuBLAS). +# Unfortunately, these libraries are often proprietary and cannot be easily customized +# to accomodate the needs of modern deep learning workloads (e.g., fused activation functions). +# In this tutorial, you will learn how to implement efficient matrix multiplications by +# yourself with Triton, in a way that is easy to customize and extend. +# +# Roughly speaking, the kernel that we will write will implement the following blocked +# algorithm to multiply a (M, K) by a (K, N) matrix: +# +# .. code-block:: python +# +# # do in parallel +# for m in range(0, M, BLOCK_SIZE_M): +# # do in parallel +# for n in range(0, N, BLOCK_SIZE_N): +# acc = zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=float32) +# for k in range(0, K, BLOCK_SIZE_K): +# a = A[m : m+BLOCK_SIZE_M, k : k+BLOCK_SIZE_K] +# b = B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N] +# acc += dot(a, b) +# C[m : m+BLOCK_SIZE_M, n : n+BLOCK_SIZE_N] = acc; +# +# where each iteration of the doubly-nested for-loop is performed by a dedicated Triton program instance. + +# %% +# Compute Kernel +# ---------------- +# +# The above algorithm is, actually, fairly straightforward to implement in Triton. +# The main difficulty comes from the computation of the memory locations at which blocks +# of :code:`A` and :code:`B` must be read in the inner loop. For that, we need +# multi-dimensional pointer arithmetics. +# +# Pointer Arithmetics +# ~~~~~~~~~~~~~~~~~~~~ +# +# For a row-major 2D tensor :code:`X`, the memory location of :code:`X[i, j]` is given b +# y :code:`&X[i, j] = X + i*stride_xi + j*stride_xj`. +# Therefore, blocks of pointers for :code:`A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K]` and +# :code:`B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N]` can be defined in pseudo-code as: +# +# .. code-block:: python +# +# &A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K] = a_ptr + (m : m+BLOCK_SIZE_M)[:, None]*A.stride(0) + (k : k+BLOCK_SIZE_K)[None, :]*A.stride(1); +# &B[k : k+BLOCK_SIZE_K, n:n+BLOCK_SIZE_N] = b_ptr + (k : k+BLOCK_SIZE_K)[:, None]*B.stride(0) + (n : n+BLOCK_SIZE_N)[None, :]*B.stride(1); +# +# Which means that pointers for blocks of A and B can be initialized (i.e., :code:`k=0`) in Triton as: +# +# .. code-block:: python +# +# offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) +# offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) +# offs_k = tl.arange(0, BLOCK_SIZE_K) +# a_ptrs = a_ptr + (offs_am[:, None]*stride_am + offs_k [None, :]*stride_ak) +# b_ptrs = b_ptr + (offs_k [:, None]*stride_bk + offs_bn[None, :]*stride_bn) +# +# And then updated in the inner loop as follows: +# +# .. code-block:: python +# +# pa += BLOCK_SIZE_K * stride_ak; +# pb += BLOCK_SIZE_K * stride_bk; +# +# +# L2 Cache Optimizations +# ~~~~~~~~~~~~~~~~~~~~~~~~ +# +# As mentioned above, each program instance computes a :code:`[BLOCK_SIZE_M, BLOCK_SIZE_N]` +# block of :code:`C`. +# It is important to remember that the order in which these blocks are computed does +# matter, since it affects the L2 cache hit rate of our program. and unfortunately, a +# a simple row-major ordering +# +# .. code-block:: Python +# +# pid = triton.program_id(0); +# grid_m = (M + BLOCK_SIZE_M - 1) // BLOCK_SIZE_M; +# grid_n = (N + BLOCK_SIZE_N - 1) // BLOCK_SIZE_N; +# pid_m = pid / grid_n; +# pid_n = pid % grid_n; +# +# is just not going to cut it. +# +# One possible solution is to launch blocks in an order that promotes data reuse. +# This can be done by 'super-grouping' blocks in groups of :code:`GROUP_M` rows before +# switching to the next column: +# +# .. code-block:: python +# +# # program ID +# pid = tl.program_id(axis=0) +# # number of program ids along the M axis +# num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) +# # number of programs ids along the N axis +# num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) +# # number of programs in group +# num_pid_in_group = GROUP_SIZE_M * num_pid_n +# # id of the group this program is in +# group_id = pid // num_pid_in_group +# # row-id of the first program in the group +# first_pid_m = group_id * GROUP_SIZE_M +# # if `num_pid_m` isn't divisible by `GROUP_SIZE_M`, the last group is smaller +# group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) +# # *within groups*, programs are ordered in a column-major order +# # row-id of the program in the *launch grid* +# pid_m = first_pid_m + (pid % group_size_m) +# # col-id of the program in the *launch grid* +# pid_n = (pid % num_pid_in_group) // group_size_m +# +# For example, in the following matmul where each matrix is 9 blocks by 9 blocks, +# we can see that if we compute the output in row-major ordering, we need to load 90 +# blocks into SRAM to compute the first 9 output blocks, but if we do it in grouped +# ordering, we only need to load 54 blocks. +# .. image:: grouped_vs_row_major_ordering.png +# +# In practice, this can improve the performance of our matrix multiplication kernel by +# more than 10\% on some hardware architecture (e.g., 220 to 245 TFLOPS on A100). +# + +# %% +# Final Result +# ------------- +# + +import torch + +import triton +import triton.language as tl + +# % +# :code:`triton.jit`'ed functions can be auto-tuned by using the `triton.autotune` +# decorator, which consumes: +# - A list of :code:`triton.Config` objects that define different configurations of +# meta-parameters (e.g., BLOCK_SIZE_M) and compilation options (e.g., num_warps) to try +# - An autotuning *key* whose change in values will trigger evaluation of all the +# provided configs + + +@triton.autotune( + configs=[ + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8), + triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8), + triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2), + triton.Config({'BLOCK_SIZE_M': 32, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2), + ], + key=['M', 'N', 'K'], +) +@triton.jit +def matmul_kernel( + # Pointers to matrices + a_ptr, b_ptr, c_ptr, + # Matrix dimensions + M, N, K, + # The stride variables represent how much to increase the ptr by when moving by 1 + # element in a particular dimension. E.g. stride_am is how much to increase a_ptr + # by to get the element one row down (A has M rows) + stride_am, stride_ak, + stride_bk, stride_bn, + stride_cm, stride_cn, + # Meta-parameters + BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr, BLOCK_SIZE_K: tl.constexpr, + GROUP_SIZE_M: tl.constexpr, + ACTIVATION: tl.constexpr, +): + """Kernel for computing the matmul C = A x B. + A has shape (M, K), B has shape (K, N) and C has shape (M, N) + """ + # ----------------------------------------------------------- + # Map program ids `pid` to the block of C it should compute. + # This is done in a grouped ordering to promote L2 data reuse + # See above `L2 Cache Optimizations` section for details + pid = tl.program_id(axis=0) + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + num_pid_in_group = GROUP_SIZE_M * num_pid_n + group_id = pid // num_pid_in_group + first_pid_m = group_id * GROUP_SIZE_M + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + pid_m = first_pid_m + (pid % group_size_m) + pid_n = (pid % num_pid_in_group) // group_size_m + + # ---------------------------------------------------------- + # Create pointers for the first blocks of A and B. + # We will advance this pointer as we move in the K direction + # and accumulate + # a_ptrs is a block of [BLOCK_SIZE_M, BLOCK_SIZE_K] pointers + # b_ptrs is a block of [BLOCK_SIZE_K, BLOCK_SIZE_n] pointers + # see above `Pointer Arithmetics` section for details + offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + offs_k = tl.arange(0, BLOCK_SIZE_K) + a_ptrs = a_ptr + (offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak) + b_ptrs = b_ptr + (offs_k[:, None] * stride_bk + offs_bn[None, :] * stride_bn) + + # ----------------------------------------------------------- + # Iterate to compute a block of the C matrix + # We accumulate into a `[BLOCK_SIZE_M, BLOCK_SIZE_N]` block + # of fp32 values for higher accuracy. + # `accumulator` will be converted back to fp16 after the loop + accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + for k in range(0, K, BLOCK_SIZE_K): + # Note that for simplicity, we don't apply a mask here. + # This means that if K is not a multiple of BLOCK_SIZE_K, + # this will access out-of-bounds memory and produce an + # error or (worse!) incorrect results. + a = tl.load(a_ptrs) + b = tl.load(b_ptrs) + # We accumulate along the K dimension + accumulator += tl.dot(a, b) + # Advance the ptrs to the next K block + a_ptrs += BLOCK_SIZE_K * stride_ak + b_ptrs += BLOCK_SIZE_K * stride_bk + # you can fuse arbitrary activation functions here + # while the accumulator is still in FP32! + if ACTIVATION: + accumulator = ACTIVATION(accumulator) + c = accumulator.to(tl.float16) + + # ----------------------------------------------------------- + # Write back the block of the output matrix C + offs_cm = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_cn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + c_ptrs = c_ptr + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :] + c_mask = (offs_cm[:, None] < M) & (offs_cn[None, :] < N) + tl.store(c_ptrs, c, mask=c_mask) + + +# we can fuse `leaky_relu` by providing it as an `ACTIVATION` meta-parameter in `_matmul` +@triton.jit +def leaky_relu(x): + return tl.where(x >= 0, x, 0.01 * x) + + +# %% +# We can now create a convenience wrapper function that only takes two input tensors +# and (1) checks any shape constraint; (2) allocates the output; (3) launches the above kernel + + +def matmul(a, b, activation=None): + # checks constraints + assert a.shape[1] == b.shape[0], "incompatible dimensions" + assert a.is_contiguous(), "matrix A must be contiguous" + assert b.is_contiguous(), "matrix B must be contiguous" + M, K = a.shape + K, N = b.shape + assert ( + K % 32 == 0 + ), "We don't check memory-out-of-bounds with K so K must be divisible by BLOCK_SIZE_K" + # allocates output + c = torch.empty((M, N), device=a.device, dtype=a.dtype) + # 1D launch kernel where each block gets its own program. + grid = lambda META: ( + triton.cdiv(M, META['BLOCK_SIZE_M']) * triton.cdiv(N, META['BLOCK_SIZE_N']), + ) + matmul_kernel[grid]( + a, b, c, + M, N, K, + a.stride(0), a.stride(1), + b.stride(0), b.stride(1), + c.stride(0), c.stride(1), + ACTIVATION=activation, + ) + return c + + +# %% +# Unit Test +# ----------- +# +# We can test our custom matrix multiplication operation against a native torch implementation (i.e., cuBLAS) + +torch.manual_seed(0) +a = torch.randn((512, 512), device='cuda', dtype=torch.float16) +b = torch.randn((512, 512), device='cuda', dtype=torch.float16) +triton_output = matmul(a, b, activation=None) +torch_output = torch.matmul(a, b) +print(f"triton_output={triton_output}") +print(f"torch_output={torch_output}") +if triton.testing.allclose(triton_output, torch_output): + print("✅ Triton and Torch match") +else: + print("❌ Triton and Torch differ") + +# %% +# Benchmark +# -------------- +# +# Square Matrix Performance +# ~~~~~~~~~~~~~~~~~~~~~~~~~~ +# We can now compare the performance of our kernel against that of cuBLAS. Here we focus on square matrices, but feel free to arrange this script as you wish to benchmark any other matrix shape. + + +@triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['M', 'N', 'K'], # argument names to use as an x-axis for the plot + x_vals=[ + 128 * i for i in range(2, 33) + ], # different possible values for `x_name` + line_arg='provider', # argument name whose value corresponds to a different line in the plot + # possible values for `line_arg`` + line_vals=['cublas', 'cublas + relu', 'triton', 'triton + relu'], + # label name for the lines + line_names=["cuBLAS", "cuBLAS (+ torch.nn.LeakyReLU)", "Triton", "Triton (+ LeakyReLU)"], + # line styles + styles=[('green', '-'), ('green', '--'), ('blue', '-'), ('blue', '--')], + ylabel="TFLOPS", # label name for the y-axis + plot_name="matmul-performance", # name for the plot. Used also as a file name for saving the plot. + args={}, + ) +) +def benchmark(M, N, K, provider): + a = torch.randn((M, K), device='cuda', dtype=torch.float16) + b = torch.randn((K, N), device='cuda', dtype=torch.float16) + if provider == 'cublas': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.matmul(a, b)) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: matmul(a, b)) + if provider == 'cublas + relu': + torch_relu = torch.nn.ReLU(inplace=True) + ms, min_ms, max_ms = triton.testing.do_bench( + lambda: torch_relu(torch.matmul(a, b)) + ) + if provider == 'triton + relu': + ms, min_ms, max_ms = triton.testing.do_bench( + lambda: matmul(a, b, activation=leaky_relu) + ) + perf = lambda ms: 2 * M * N * K * 1e-12 / (ms * 1e-3) + return perf(ms), perf(max_ms), perf(min_ms) + + +benchmark.run(show_plots=True, print_data=True) diff --git a/master/_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py b/master/_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py new file mode 100644 index 000000000..7af24e18d --- /dev/null +++ b/master/_downloads/d91442ac2982c4e0cc3ab0f43534afbc/02-fused-softmax.py @@ -0,0 +1,191 @@ +""" +Fused Softmax +================= +In this tutorial, you will write a fused softmax operation that is significantly faster +than PyTorch's native op for a particular class of matrices: those whose rows can fit in +the GPU's SRAM. +You will learn about: + +- The benefits of kernel fusion for bandwidth-bound operations. +- Reduction operators in Triton. +""" + +# %% +# Motivations +# ------------ +# Custom GPU kernels for elementwise additions are educationally valuable but won't get you very far in practice. +# Let us consider instead the case of a simple (numerically stabilized) softmax operation: + +import torch + +import triton +import triton.language as tl + + +@torch.jit.script +def naive_softmax(x): + """Compute row-wise softmax of X using native pytorch + + We subtract the maximum element in order to avoid overflows. Softmax is invariant to + this shift. + """ + # read MN elements ; write M elements + x_max = x.max(dim=1)[0] + # read MN + M elements ; write MN elements + z = x - x_max[:, None] + # read MN elements ; write MN elements + numerator = torch.exp(z) + # read MN elements ; write M elements + denominator = numerator.sum(dim=1) + # read MN + M elements ; write MN elements + ret = numerator / denominator[:, None] + # in total: read 5MN + 2M elements ; wrote 3MN + 2M elements + return ret + + +# %% +# When implemented naively in PyTorch, computing :code:`y = naive_softmax(x)` for :math:`x \in R^{M \times N}` +# requires reading :math:`5MN + 2M` elements from DRAM and writing back :math:`3MN + 2M` elements. +# This is obviously wasteful; we'd prefer to have a custom "fused" kernel that only reads +# X once and does all the necessary computations on-chip. +# Doing so would require reading and writing back only :math:`MN` bytes, so we could +# expect a theoretical speed-up of ~4x (i.e., :math:`(8MN + 4M) / 2MN`). +# The `torch.jit.script` flags aims to perform this kind of "kernel fusion" automatically +# but, as we will see later, it is still far from ideal. + +# %% +# Compute Kernel +# ---------------- +# Our softmax kernel works as follows: each program loads a row of the input matrix X, +# normalizes it and writes back the result to the output Y. +# Note that one important limitation of Triton is that each block must have a +# power-of-two number of elements, so we need to internally "pad" each row and guard the +# memory operations properly if we want to handle any possible input shapes: + + +@triton.jit +def softmax_kernel( + output_ptr, input_ptr, input_row_stride, output_row_stride, n_cols, + BLOCK_SIZE: tl.constexpr +): + # The rows of the softmax are independent, so we parallelize across those + row_idx = tl.program_id(0) + # The stride represents how much we need to increase the pointer to advance 1 row + row_start_ptr = input_ptr + row_idx * input_row_stride + # The block size is the next power of two greater than n_cols, so we can fit each + # row in a single block + col_offsets = tl.arange(0, BLOCK_SIZE) + input_ptrs = row_start_ptr + col_offsets + # Load the row into SRAM, using a mask since BLOCK_SIZE may be > than n_cols + row = tl.load(input_ptrs, mask=col_offsets < n_cols, other=-float('inf')) + # Substract maximum for numerical stability + row_minus_max = row - tl.max(row, axis=0) + # Note that exponentials in Triton are fast but approximate (i.e., think __expf in CUDA) + numerator = tl.exp(row_minus_max) + denominator = tl.sum(numerator, axis=0) + softmax_output = numerator / denominator + # Write back output to DRAM + output_row_start_ptr = output_ptr + row_idx * output_row_stride + output_ptrs = output_row_start_ptr + col_offsets + tl.store(output_ptrs, softmax_output, mask=col_offsets < n_cols) + + +# %% +# We can create a helper function that enqueues the kernel and its (meta-)arguments for any given input tensor. + +def softmax(x): + n_rows, n_cols = x.shape + # The block size is the smallest power of two greater than the number of columns in `x` + BLOCK_SIZE = triton.next_power_of_2(n_cols) + # Another trick we can use is to ask the compiler to use more threads per row by + # increasing the number of warps (`num_warps`) over which each row is distributed. + # You will see in the next tutorial how to auto-tune this value in a more natural + # way so you don't have to come up with manual heuristics yourself. + num_warps = 4 + if BLOCK_SIZE >= 2048: + num_warps = 8 + if BLOCK_SIZE >= 4096: + num_warps = 16 + # Allocate output + y = torch.empty_like(x) + # Enqueue kernel. The 1D launch grid is simple: we have one kernel instance per row o + # f the input matrix + softmax_kernel[(n_rows,)]( + y, + x, + x.stride(0), + y.stride(0), + n_cols, + num_warps=num_warps, + BLOCK_SIZE=BLOCK_SIZE, + ) + return y + + +# %% +# Unit Test +# ---------- + +# %% +# We make sure that we test our kernel on a matrix with an irregular number of rows and columns. +# This will allow us to verify that our padding mechanism works. + +torch.manual_seed(0) +x = torch.randn(1823, 781, device='cuda') +y_triton = softmax(x) +y_torch = torch.softmax(x, axis=1) +assert torch.allclose(y_triton, y_torch), (y_triton, y_torch) + +# %% +# As expected, the results are identical. + +# %% +# Benchmark +# ------------- +# Here we will benchmark our operation as a function of the number of columns in the input matrix -- assuming 4096 rows. +# We will then compare its performance against (1) :code:`torch.softmax` and (2) the :code:`naive_softmax` defined above. + + +@triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['N'], # argument names to use as an x-axis for the plot + x_vals=[ + 128 * i for i in range(2, 100) + ], # different possible values for `x_name` + line_arg='provider', # argument name whose value corresponds to a different line in the plot + line_vals=[ + 'triton', + 'torch-native', + 'torch-jit', + ], # possible values for `line_arg`` + line_names=[ + "Triton", + "Torch (native)", + "Torch (jit)", + ], # label name for the lines + styles=[('blue', '-'), ('green', '-'), ('green', '--')], # line styles + ylabel="GB/s", # label name for the y-axis + plot_name="softmax-performance", # name for the plot. Used also as a file name for saving the plot. + args={'M': 4096}, # values for function arguments not in `x_names` and `y_name` + ) +) +def benchmark(M, N, provider): + x = torch.randn(M, N, device='cuda', dtype=torch.float32) + if provider == 'torch-native': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.softmax(x, axis=-1)) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: softmax(x)) + if provider == 'torch-jit': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: naive_softmax(x)) + gbps = lambda ms: 2 * x.nelement() * x.element_size() * 1e-9 / (ms * 1e-3) + return gbps(ms), gbps(max_ms), gbps(min_ms) + + +benchmark.run(show_plots=True, print_data=True) + +# %% +# In the above plot, we can see that: +# +# - Triton is 4x faster than the Torch JIT. This confirms our suspicions that the Torch JIT does not do any fusion here. +# - Triton is noticeably faster than :code:`torch.softmax` -- in addition to being **easier to read, understand and maintain**. +# Note however that the PyTorch `softmax` operation is more general and will works on tensors of any shape. diff --git a/master/_downloads/f191ee1e78dc52eb5f7cba88f71cef2f/01-vector-add.ipynb b/master/_downloads/f191ee1e78dc52eb5f7cba88f71cef2f/01-vector-add.ipynb new file mode 100644 index 000000000..a88ec6569 --- /dev/null +++ b/master/_downloads/f191ee1e78dc52eb5f7cba88f71cef2f/01-vector-add.ipynb @@ -0,0 +1,140 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n# Vector Addition\nIn this tutorial, you will write a simple vector addition using Triton and learn about:\n\n- The basic programming model of Triton\n- The `triton.jit` decorator, which is used to define Triton kernels.\n- The best practices for validating and benchmarking your custom ops against native reference implementations\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Compute Kernel\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "import torch\n\nimport triton\nimport triton.language as tl\n\n\n@triton.jit\ndef add_kernel(\n x_ptr, # *Pointer* to first input vector\n y_ptr, # *Pointer* to second input vector\n output_ptr, # *Pointer* to output vector\n n_elements, # Size of the vector\n BLOCK_SIZE: tl.constexpr, # Number of elements each program should process\n # NOTE: `constexpr` so it can be used as a shape value\n):\n # There are multiple 'program's processing different data. We identify which program\n # we are here\n pid = tl.program_id(axis=0) # We use a 1D launch grid so axis is 0\n # This program will process inputs that are offset from the initial data.\n # for instance, if you had a vector of length 256 and block_size of 64, the programs\n # would each access the elements [0:64, 64:128, 128:192, 192:256].\n # Note that offsets is a list of pointers\n block_start = pid * BLOCK_SIZE\n offsets = block_start + tl.arange(0, BLOCK_SIZE)\n # Create a mask to guard memory operations against out-of-bounds accesses\n mask = offsets < n_elements\n # Load x and y from DRAM, masking out any extra elements in case the input is not a\n # multiple of the block size\n x = tl.load(x_ptr + offsets, mask=mask)\n y = tl.load(y_ptr + offsets, mask=mask)\n output = x + y\n # Write x + y back to DRAM\n tl.store(output_ptr + offsets, output, mask=mask)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's also declare a helper function to (1) allocate the `z` tensor\nand (2) enqueue the above kernel with appropriate grid/block sizes.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def add(x: torch.Tensor, y: torch.Tensor):\n # We need to preallocate the output\n output = torch.empty_like(x)\n assert x.is_cuda and y.is_cuda and output.is_cuda\n n_elements = output.numel()\n # The SPMD launch grid denotes the number of kernel instances that run in parallel.\n # It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int]\n # In this case, we use a 1D grid where the size is the number of blocks\n grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),)\n # NOTE:\n # - each torch.tensor object is implicitly converted into a pointer to its first element.\n # - `triton.jit`'ed functions can be index with a launch grid to obtain a callable GPU kernel\n # - don't forget to pass meta-parameters as keywords arguments\n add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024)\n # We return a handle to z but, since `torch.cuda.synchronize()` hasn't been called, the kernel is still\n # running asynchronously at this point.\n return output" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now use the above function to compute the element-wise sum of two `torch.tensor` objects and test its correctness:\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "torch.manual_seed(0)\nsize = 98432\nx = torch.rand(size, device='cuda')\ny = torch.rand(size, device='cuda')\noutput_torch = x + y\noutput_triton = add(x, y)\nprint(output_torch)\nprint(output_triton)\nprint(\n f'The maximum difference between torch and triton is '\n f'{torch.max(torch.abs(output_torch - output_triton))}'\n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Seems like we're good to go!\n\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Benchmark\nWe can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch.\nTo make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops\nfor different problem sizes.\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "@triton.testing.perf_report(\n triton.testing.Benchmark(\n x_names=['size'], # argument names to use as an x-axis for the plot\n x_vals=[\n 2 ** i for i in range(12, 28, 1)\n ], # different possible values for `x_name`\n x_log=True, # x axis is logarithmic\n line_arg='provider', # argument name whose value corresponds to a different line in the plot\n line_vals=['triton', 'torch'], # possible values for `line_arg`\n line_names=['Triton', 'Torch'], # label name for the lines\n styles=[('blue', '-'), ('green', '-')], # line styles\n ylabel='GB/s', # label name for the y-axis\n plot_name='vector-add-performance', # name for the plot. Used also as a file name for saving the plot.\n args={}, # values for function arguments not in `x_names` and `y_name`\n )\n)\ndef benchmark(size, provider):\n x = torch.rand(size, device='cuda', dtype=torch.float32)\n y = torch.rand(size, device='cuda', dtype=torch.float32)\n if provider == 'torch':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: x + y)\n if provider == 'triton':\n ms, min_ms, max_ms = triton.testing.do_bench(lambda: add(x, y))\n gbps = lambda ms: 12 * size / ms * 1e-6\n return gbps(ms), gbps(max_ms), gbps(min_ms)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or\n`save_path='/path/to/results/' to save them to disk along with raw CSV data\n\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "benchmark.run(print_data=True, show_plots=True)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} \ No newline at end of file diff --git a/master/_images/grouped_vs_row_major_ordering.png b/master/_images/grouped_vs_row_major_ordering.png new file mode 100644 index 0000000000000000000000000000000000000000..46a356de7fe4683c7f9cd97edcd5c829285049cc GIT binary patch literal 476275 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
  • )iR)j4Q#rchF?7AZ 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%0DvEJ&n(_3TPh+E2T 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

    5%m@Ix zgwaryxDI8F_ckZ*FBQrCXCO+rO-*Yxp^wNoRX1a2^N2T|)=|6$p!}%=__w|&DNB{Lv(Hqq`EZi1Kj!0^0Fa=rgC3eHui~XC(f^+!zq8#84^^A z=tJ3cY)@U$=C9>}H>&Zypc$r#T&?@H7xOl=Y+QG|7M1>Owrhb)G>KquJJ!_O!trJQ zb~@<&eBRwL2BkDU*LzQ1@?ACa;>8jd(&3mZ^2dvxtsFOqM`S!^$b9-={{UTw^fpj^ zzL$Z!h@plpeoSIoewtA%_4Ib#WL|ZBr^T$A#DGoA#a6mP>)J_pzReqB^qBnJt}Dj_ z*hS8{g1JDMDjqq2yIqN>eEOg_s5gQV4)mfd<1jL0>x|BR)+M{qgRW1P$wkiLCM&*1 zq>90+lvZc&b0v12I%w}|zm1KcVx8wxrulSo;daU`yzjx~qGQy8);f{|LWY%Of!B`= z?C--RfmRe|hxm(Fo^5E0v<kZhiyUq#o8R`uUi3Z_K?lr!f9hr zJJgpe>+2#<@uTU?xa*v+lWdtpO?y7`rKage7=Zb5LT{tZ_}mVYPaY7$-4b^?H4qQ4 z3vL$s*(TIJ?(B&`7@%1obTk~e(tL5mE$OCWrz>gG3YSKB69ri9(Rp_PZ;qgRAe|_o*J!#pr8`?SSS( z6tA5+0)Gq({d}z-C>!i6=U@Rle7{DAt4yNIt! zBhC1~Rs^T~5K>Cz*xzz;cutMnPNET9y!nSp2!h_a5PV_0fj5R%?#5)oGT}t?0iPb(0~0Q7`qR8d@w0ME29&D_55K_xEI4+}`-i zUlGc%DI00IIFTiAg|+8hjxUU+=gK_!$FE@XGD`r!JxOR{JJWD)I&%7YiXA6V0toYe z=QI%h25=hi>1@bu@8>AFDboOyj)B& zAOb-ajrVYy86MhQi_zToyt#&H%BfN9Uwfp{ai4tG#56(W<4up*f7t*)BF?NYgA>+r z62&5^RNmW8{O7{MH-KArm}(RhXD}aHn_VhiQElzyhGf9ajUn&z^T}>&iQT ziLp)5=kukR$IX&yJSnFbURIw}Kya^8E*>94()RPGH9UZv3h`hQNL&6}dw>iFjEm7I zDYZ4LQSbBuy`g<*b5sg^W^qD&gu}I)H)-)ZBehi0Z(jS4MV7{roPK~(tiN@Rg7@jB zx>_oQ+M`P$9Zez5tghosdM_T}BKS6^XOsQaD*r-|+%HeeE}?uWkiiAUMco;uq~yvv zq(V*jSOkmrV`*}4r2DXnvAoH~NARmT+LGaY0g;2gAbZ9IX!DBCk8S=zmupzc58XZce6?yr`<|&+-U)tBXDFgc zm@i5%pDnkEFyqyERSVNo1E z7Hb#)5d8CgMiYQt0~JuDN(U3?M4G;EVt5kks~vws`~9)u57RQ#7+t>q!E>YM4{KQ7 zwosN6u^1LaO(^e?IK-vg7JODA^R^gY59pwOGYMFtFe>0o%3awQ8#uC!)usH9Pwn7( zLI)t`q2PTVBg&zt2PP|Y%HB-qt{6>0-M$4Wn+HffodU-vdB1B>SmK{2Nitscm)8kg z-|e+~0P|}nQ#`W%Z2f>Xc8$f`=Tp>Ys7SbW zh0ZBl!_dFHydLdyqaQ8Yo-Q6UFGChh`5+lousiH?V9D9;NLKRVVpN_}K}vxdZTiX| z2MvVFhAW;*fD7KV7G$>x0HpGhIIZGZUq=8<0iZGibf3wQC%O#$FK`W(fd0hQ^c-RU zP8F4Z{!8^g#q%wEH&N+k-qWC-ppY%`6YkkaYzy`deafeBF=0q%p$7N;xDz8cWM5pnZkZ+ZaX9lCp$W9|dWNLcXR621LLY6B?6eHQsN7B_2#U;Zd3OC8z5$s@M~owK3H zJLJG>OI&yyA?a39Lmhf*0ofuiO2mo_;QRa642I6r93#+SylR{&U0M64>FZMnE6VCo z({<$Df5Q68u$7vYhWAGImnNzh;~Dj8aMPbf>x?}(zqK%NR1Ecf`^hvlKZqu)+1$wa zL$g6Vzo_Pt;n^2aA%)XT*#W^mZHAsV=$-h-+*N2?0&=0LuxZ9~6WKH{nHZEyx#-9f z#D@1OBf-XG3%eD+UGuL(J3H5|P`+q${F94>_d*d{y5xEm8_d}xZW||%X8}ez;phR? zo;P8aMiz;#f3VTU!)=%z$?=kIEXG*5a5U)JTKjVrlNZ;0ZeT?>fE1wTCjbsC4Ju7v z6s3>kji9ri-@h>E^7GpDHf~MIRIL8wqcYh8HDck;44C_gFU=}$^GVS}f)2!xRv0F{ zYq%EQb#!EVu#x^}51I$IROSI|a!_h9R{|H0QJuyiy!3J$6Cq(NXFaD4#Ef7Ez|{`O zpuXZ6H@pGr4*&S%1spkT;&0_&Q)-(q64&r6WPP87nWwqz_%ly%i7A?v`oj0~f|tI? z6@iL5ZSNiwRxmMCg^$7e*Y7cG1!x>_I$KAeK5Cw6f-u5wtB^OHDqz2rA0MfJ<(~B| ztcSJ+5+W3fEV1qfIp;@@o*?dRihgD0Ts!)C58p^)618#w5c;_c3xg4ZfQ8|b|F5&r zgR#wgptLCTC(ZS6er17FoO=C=rY){!-JTh(Pw|@cF_(vY7v(MivOTF+`At;>eLm zplD1M2ZtvCBHQ!w*_eOe`Lb($GToTdBPj3TNO!9k`W#!QQ)}acn3r_8A>zS!dNdbv z*c$xm*q3>9V=LcHd^!N3zx6MKUayOsH#t4fi}nfx`HF66A#*|s96^D^zyX60Vd#dK zpN5nSPjBv-?N;WWy9CR9mb=Xugk!v%m8dHPzBt_!?ehJdwTLHT7iABa5qy)ci1zC3 zhd7~gXy_k(b&Hk5NgKgkP5rVzWaN9%4_UERkbLk$69P=8o{BfR=?3_%fo^xn0>xQ_ zlioG%r+Bz!p*LGRP%)Y-M(Y+BK|k~vop)Ir zy?J6)G%Ab3Iu@$iD#k+taN@KuIaPtjJk$D$Q$IK$+`_($#Y(njqO0t<4mLomAXp?j+Bp z<~@u}P4%P9hyXS5e^jXo>@Kl6eNNC^2t;8{R22yXN$v?B8iFQ0&C0?%7BNx`ze z2ijQoNs{>`Yu0Onzd_}~pGlwTgM7%Rzi0pWA7R@54XnN%FiR*t&@8mSg5aIAF^LLx z`?VkEx>jFeIG#l-3(udTR&K7vag1qxNz?UH`9oxYFqu`Ldapet8vDw{hAJfB=CC{& zQ5jP( z%usD=hg^mks}HmgwXaYe?U|=P!I-jL0)!8EC!gy(TQ~nDbcp+;O_UBJ;EcAl4W)i} z54K>;bKH%OBWktsD*9(!lZ*exZDo;tHmhgZYrlWc<>!!Qz~eox-S{@on=Mq3`IX05 zcx1A>OC`xJpTG(krY(?+H(Wp=#f6Ett0+5w)8&d^t8UzQmjX)@yi-|;sqSq&wixXl zKFYqh0=M&?d>M!BzS=CJxbha$g>n#w5dm!=NBWay091J_GvTGG zf09(J|BNeY;>)SmC3O?ae{2$vbXld!mm+5Hm&MiR1p$6KQlWOuuk79RF-MKcb$ z@|pt#*R8p;O)_2ZUN))II75!}1-YU5g-2c)9YQ%k1nJwwi2!xQ|5Z$Q8Bq$d*M)Uq zoBzN)@9f&et2h{D)q-Uxu+zNzG|wW?cG_1k^iViIv;JStF%VEFxfO$i0qxU!iLa(X zvpj^$a+esAhQz}unpd*%b=o$J^{x+ui&cQ7V-d{?vHO=7Knp|f9+bZOHu3Is!I9?5 z&;Yo9B}v^$MPOB%BLUQVl&=6-52$56$@#-v#a%v|DX!-}~PqqCUCOg` zZOx<(;1&;PIw|jhh=l#HkrPV23zxSx8&r7SUiU6EsQ%-$V+6(0y_R3wKs%;JM4lB# zAhd#?18*EGd!MO*m%6?uk|VmXo?jtKp7_-__;ezKQcyP>8Ps^we62>);IVsLn3ARv zG{}AbtfD;k#a7!9@V-{T_(LZtnXuRRy-1Bi*nQ%-`HwAFt6Ql0!|tm_b&ACfwohbD zI`4i4Ct3$JFio;8}GoVqLa2+ano z#m&{n!oA>7T|K5deI3<6v!6-8?o30;sjSy&W5MeJ%BgQ{`Vn~cLxAR{w=Y2ctx)&H zQQ>(<7vye2rU9bUoWZ9z*)C6YMk3%H0um@9Z-j9$RZ@VSj;(1*mx12NnERE47Dtqs z4Hm5k))=R%*RJx-Ir4uuoo^AoJ}UAMcB32)xkP}>9^qgjrYY=wgABcXiGj5HYQQO2CO(V#iitNOKvs^<@nMD`KC)4$=cq4Q6`IFM{xJwp=H zA-`e!>N>ATPB7Dp|H9x&yNZ4^WvKWe*PAPRyYq*U8HSZb zDZC%QAMib{HFh}Q`%0F;x!&TV{k`ar7rH@yGiuv}JNIs3!OlocIe~mqM?2+L@m6N~ ztIRV>EjVly1jf+=CvZR@4-&l|TJj@=+~)p|3NQYE7Iu#f@csPDYRJQfLmKSQMA36_ z^32x#hr({l#eTu2(Z@?|>p*>I8KlOSAd3$F*s)ZzG&oM`D%UwEqKPy6n8-0D1)8MKGR-!n4i#gFBM1MvN z(5G}I2!CSC2c~c91EQ0T9RBeZrNTw+avZm`yG_NzCfy^e&PN9=g$*xFaZ6XBcn`Xb zy}c44W|5%RKH?FDlzUpKHJXYKr=pi^(tP1rtDiq3O#`F@+KMg)Y`y zfmi%c)PRA~jq$UWwRt>0Sg9n~D_XSsgsZsi2Q{vB%^N=*D3mXM>L zdbAcgFUfFdANHeqTjA1Lp$eE6CxbMC>+l7;@MENZ+mp?oi0qyZq~6MbaX>gIuWP4q zbUQ-cT_ffK^5UkiSJnLm8x(j8n^OK8g&&zVO>OU%xa;hwfS2WmsD*UbV}Mlu5NbX+ zy9FjSNf^{@h?nk|N=&GD>mY@X6jxOs9}wYC{f5X+$$~zBY7-%=G9x1X1sH9r&kBC6nLXOsB)TZ)`A+7FRM;IN~;MV?<{t|ME;_euWX@B z95?-pz9QpQ7J;c>jxOC~40Z?I;C)(IXH-0Y11w^X(E?PH3;KnGrSC!m)x&PLRUP411_ z{i=;h?^>Ae8Eb@*(yW9rwGeUjYyE;mMIAyqZll7fZdxbx31OkxT4~^p|B^Iu!rdgs zv?*%C;xB-%3ZrJB{sTE{HdCUK*3SxjsLqJRd8Sr}`d&VXV8_yhXOp` zw;OymsTgOJAJxPTqw3VI$c+}9^!y1gkg#lTk zjchkF#!35{Q6U}k3(gqJP|xB21(QDwtiY(B8jQx_rHXG0uD%9yD1~x-(6YPL?ua3% zo!Jv=t}T8x#)ReM)ejSGGjUyCqxrZHeO>+gaJmqgFcso_zFJC#8sKrGP|C}>OAzmn zFfGDC=laH3oMODmF23VrAjSg>Ph5|K1h%ppFy#ncE9`MQBx<7yi18=ZM4#2h|H61G zZG<0muPqEg!cm`+t`|s0qacSk@O1VX<$kCo{eaPv&#nNLnsxKm3ykM1FP$bxHwBzcJ@iSxq(0Bu}lev zOjG!U=p5D)36ifF+<|GNg1F394n8pOS-;fEh<2_0)N34vD6%y7pUl9`rKnK7GuYKG zpLau5dtDjJ$6wFJ$(3crlI~KP(A$1QXK{71^}~_EvKNHX0>o0UuDe`>lD~Q>yD5Vb zK)w@SGp!^oVvOH{dU5jxQLm@$QXzFq7KPR{JJie;u~`+g{ zbrnOrPcpz|W;oB@A}+e)#C%bE(<>nGpL?ZFQ_Kbk5X|@WR(7hZpo_-0DkCnD zeom<`8ab0lYg@z$OEutfrgUP|d8z54#Pxu<$%0N@+ZUKUwq{%PYzwzt_=QrO$pgGu z#aF~QlaUTcI70E6L~AaVH}4%I3eauD|FOZ=Tey}koJ$mnOYCxV1Y7C zVy~*7>WJ>+OY`qVR!Ff`%n}Hr5?l*_@riV(LgZ$&ZP2S!Hie!+Z;xoX0|7`hy&z?3 z&8oBDoqAR^-TofTDgNLhp5^7|Im0RB&3EabPYZgGISL}_EHBZ?Lq>BztM72qX!3*A zYp3iNR#xd^IUox+C^J_ji2h8U*IKi zGHrb+3a;(Y|7iCqkG-WO&igk9|D{Vi(J34$$yJLZ`;MjG zXAZo~$|9Hcgv13CIXM1G)|#h3vlDUq+2Fl-P3>!wO+<=T*8tr81EF*Z2i;`uEtleL z_d(Y_JuHmfsfMy-rLt`~{;;l-Zr2-4O*AD7;2SFPH<=4_vlP}*RE4`~q! z%o6CzH>{sB1uOn12z>YdJqSGWJJ*{FhsS#9ZvuF2DBqC}g1B+Fsel$c5wNtIW%oNT zuoS$l#rUEn;XY*|peZ@9ucK6VfLt^Wq%FRKdU>>V^zVr`OD z{_{N0HIgM=Pg@_XM%@1Kb``{zej1=ZaEgS zZakv8fZ9Rz*;n#Qm&D1)d+~Us2z%`BZm@>bJ9CeILaW*(uNfV&!?elO znol5GV1QAo(SGdk6$sVpIoo@tu_00MX7xfjAo*nX5Wuwg2j73Q)?JXB@%l$yn;}Vx z`t-@!_OD87+m=3F`>*5eRE;cuNbl<-=3aJ&E{@rSmzdK=jHas+4`lvLEMwe^YZLq& zHgX4%vBy$U^p@+bgw9iT21}^d5znUve>I{4H0pjG$6}U59hr21yo3gQ5uIE>wzHhh z0X~>!f$#ti%diTDWMw5N8{^r+ori;bi?EvhZtl$Nj=yze%lsw(}qkdb{yd+TH zw?i9*!{Y)z79bHO7j4WdC8EtF=LC^%$RB+)#ZWf)fDcgYA6Epa_?(X{mJe(fovU(R z-YX+m`Uiub15&;kB;l6;{7iC=v&BclFq&z=&_|I80=%;h!#}aq&CRsIW&@#spQtNzh!|@Bz-1!5}5Y?xHgoS3!mmv*$TpDqvv$M&p z?tK!Cz#xf6)1D{U%G$Cw9OyI$U{tyc)&4+w_ir3tf2#@GNYn?uP9;2%IRNP}Ipvl5 zw{N@CH#u(oOfkTIzaRi>t*-fKr06X!04jv|lhI<#zasRU3Mn*qLRkE5et!3~Ll=H0 z6zxDWcB7BRd}i|N$n7e7xOm(c;6_ zd1#aydZ!v5wNE~bXn`KuYu`)#rtqPox_t8!Ovt946gh;c(Llf(o1N)WoX)YKefa2+mvRz@yT`B^^?%A zO-0vOa-PlIx~!q0=^T+HeXAq^C^Ps%+tZJP-(78Yv|Zz`-T5ixBe&%Q_egXB*p@+-r-X4VW{ zvIub;o5u0A8@11Yyi=Kr|0Tt$Gy@Zgl0J~Ja{9ob!o?hYz;)a4y4FZNd2}5a%4D>5 zzV^9SJmUp{s)t}-a-2fi>K&lFAdi`M5wraAQ1in21O({Ry*ERU}`z z_cK}G$XOO;ZEA;cKd`N?9zQyP$3L9Jj3_Tir~<$4(TQyea?a$(6&o>;&afj~uqn@x;aQeIM{lWbf9K%)RE2XYx)(U#D=m6U4_<{L z!e*Zu5s8OLg<^EPy7--1_rrFJ@!Cs!aIR-oL*n>P99pxcZ{69cM7)kB5eiJ%PgsuD zSX=8a0De(ZjwM|$RSVW$A`(<3yJu2w@;B<^y&nTdHmJSj9cEA*98MoFUivzFVy-o& z;A#0QA1%9wOae4VQBIA~ht{)$-yX=2(v^@pKFa{Fz07J06HyF* zN5rX!at0rcX{C~7NTwA?Jod=Woqc&0;)81yO(LCt(EX)wUgpQKFm0*(e?aQgf~8*5 zZ%tJ4M5>-W4xp12fDAePxjXceAM)5I_d?n0Hp`S`$1{oJJz5l?o!ipgvwhcBJC=q1 z$|txBxEBA2Gr1*sJ^84P7W4N!zdlc|`2Z2GWvrn})Z=>@qewtH_&hJYi`w0>pP#*k zY~Gx)bDf(1vq%O_21j5{-)+E!R7^&mmz|5 zoPmy)tt{?td`;+L6#1V$vYUK-VX!-PA@4Qn`>)Q4p z!#y^!z_NFnw_6cE>3z94wyZ@EydtzVE3P>>WW!qZ}9G54F;z$gR z`A!2snQkpz@mk`_+l5K0#kGWsPi{9*SU=C@ukeg<=5kxJysecX?8aYNVTuFL>fS-g z!`XQr7P3o#UD?imq3XdS@+&t1Gn$1G_@od$Sfh%Ea_*Kisg|t#)R0T%qrOJ$^a`-C z??;p;-Q+M#@$clgG54~juRzlXvT(9Dk>i{{SGQ6SQ1x`2OsMihx5pK|zJA)h+QsS$ zzQlC4)#uI_c8CM*9#h9gv)_=yclT@i@gDql^m;mIN8rI>ZnUb1Y*>zIBN?#F;y)K; zQ6~rv>AOB<5d7LlV+wTT2In+3Dn>f1p*)d);r06ua;~|H=U`oRxVCPHVW&3YT}5!7 z;yu+We8huN7Cj!fUICV7`ZThb%EqpT^&g`syIduE1C^WRzuVhc+?WpdVG*m5{lRW^ z`qO4APTOw+J~UlHWP^wp;T>Z+_t)~*6qqDL6V$gY+I#wCKKidLxVZ=SHa9<)v8JHn zUT5|v8qP>0&fjB!Jgn;e0Bo0D4*(JcTd?9cF8!J!gb2ugkySF}*%N#A9E2uTILE4#YPid(f zc~+f_Ef4&tvHrp&AD}Y;C!D!qiY(+KKA9@5=NT>3bg4vP-v+R7F)ht%4P$*GhP{{U zN^b#v`tURCbvU^a=DjqsQvg(R(lTmnFU5L?1*Fv46o5TWVcPy& zluC1t0v@$(T|ao+zu(+oWa(#Vr?-!aE96NQ;kz?4|t z4c{Hs={t-nf*@0aESG?$JM->=iK;MhG0XllC#>DPKqwj*EIpUb_^^&qO+T$mqG2_n z`n7pc#IIR&*h2UVo#_dm&giLEO!7t8^B*GcSVES-e$(dN`gFqDOhPL14=|{755WW5cCb9Kt zOyCP=b|!a$IGB(90g-5TE(A4mzEvisr{+zmWfSM#tW!%rAR`>SRO)kAgp-r~w<~(A zR=KTpK7FqiFbn(s5PAEs(T_&SoZF|0ZP>Jolbkre`vc_V=TfBa=WnE=zb*3L3~Kbw zkt=@fIO`z{hXf)|Hqihi@kfjt_ZEZ~*mS9?X+sK7gR3^<<(pW@#PAGH;2-lp$i1~M z%)m=7^*JHIKDVwDr-(}-vL0XiX{ufASJW}nhSFEjd)J^LUqgpZt#)e?<7F%sIrZ(- zp9yk$m);?xvFmn(5DT7j6eC2R}KO_g3Gu6a+tS=VB7Jf@5O&& zDAo!?cZB&qk71q7U}6mqo~wH!cdiUBNdF(|-ZLJ~uI<}K^b#eag@_tmf`~p^^ym^o zbP=5pEf~>z@6kmNgov78^v)0xEr~K}n$BR%JZm_w>$$J{x!?EqJ|Ew&`8iMHnB!Q- zTKm3l|Ltk+ziYS_pU}NvJ}2bU2y|+Ce5)GGY+s>HEE#j6lBAQc{RT?BL&O`;8+;r6 zR~mEjVFwz{y3d1=#_YGISCJVgrs>}QN|<4v0ad^o@N<#I3_4_GCMbrSnFv^HZ(bqH z&+hm$46DH3>%?$g7MQ}a@!qqvl17;hI=uzodTxsDu~YR9yUa?uE-a2+78mrYqa`zSW^Kns;ACoJ#0&rd=kAEJTnS#CGjzq1tv!b!DMW3q{bB$?E`Awa`D*ZDcg` zigB8Ry}%;!a=lnUe&^+bMUt1kEu}oY={EIIYMue7o`NXYF=C4f-^UD1@T|zzQsy?> zc$mp;?rVLwq(-uApMLJ$Q*mJI7nXhsy{BzD!tjP8!A2Cz%J12QkL}ow@2o3cpLAzS zn*h)M$Ig_|oy2gN#~ERc%vjpPZ|*1eF$B!y?ZQs;cReMyZeYhV8ZfEeQoc?A0#tHFu@&MWEBy z21HDO2=|}a0-qUUB~v&$lU_Oc)4(}5zj@ibucDPnZA!)0oocDD`jR5`mWw@1gQ-oY zB`qZ@>w=r_w+K2W*}T2o9>noT)|M(R{C>GWxKy&d3~k4yk%MF6?wo7D_|8-i9Qu;c zC2Sxv!S6|B77}u{`@#5oTab$Y92+G}2|24OUTF6ZOgSHW!F0nRnmcX=r+=|_Cfu810K+5?|4_jp+;qTJ&BS^tRlr0#0gCpE7_N_t zqPnH)sD0pBx`Sfqd}7J8iYwGJF}e*!tztsx$cmt=c98Y;nrG=lTF2mTpd5?_*Al$o zDtCA^2YeGSlQ5;AD4XM{{Ho#07tx21vo4l~2kkA`1Z)Q`JH@;E@RK9zQ!rin^J=;i zY-j7J2J@;9@{{|+tT&qDO*h)XndF$&8Us5!rWa>lOUbT(m%uFp~^Vo zoYqmW++)@;;yg3>Zm)hd{VV}p7@^_KBE|@? zK1n-w(E!eeX$Wfv0`t|BGKxy5$zh=pbXUcL2vRH9(e zW#Qsu!<g8*PD12lnZ)t6r6k=$H>Z%xm(J8X;hC_F~~`s zw=lse_MiU%MS`3qGfnSr56;I2sx~N?vUs9lPG_t^U5co2NYtpx`^TpM@!HtIJrDH| zX6P<~_9YEdMm*)U!4i}%}azFyw*z71Mxz_r%TcVaAR5Q zA`se;>0plba6(ZCdCp;N2M;&J>tWvkgW;zBujVe;7@VD)!v5UBFdhoS_s2g4FfUA_ z0UAQy*o3T?c21*gtur0H^qYHkT|OSa#W15!KqH(aT_Lcmt6cWJ#vF44A*uz~3(q9G zF_V#$pAoNIc!~|I z{70nnV=LEEP%=)d4|b^^vyq)E;))G6#;hi81x@9&(>|iShBtJD;Oooka*BtwcOD8R z-+7sHCuAu!!B@NShZ?)_03w^$>w3b=hwA!L9Chn>QmM{ifCL|Zj(YxvY&pji9jCum zm?Z5=?{*Dc>_E&FDP zRpK*}^`|z=I`6Y5trCqhhRRh$P{A;La_?V~H=0`fXJ1n>ZsyxQawoVIvTLg`G{f>) zbJ>~r#s}G(Z)yC4STK=C-u%+^is@ykCW^vl+bK{p(6L>w{w|;|FjZ%E&e*^CDS7}6 zL-7DiJ~8AxnpE`c&0$k`D*$Q>q|fUDuy&%~U(a(u&yY%QEm>~eAy>H-pi5&B{*=%-2-LtPh-tIew(j?#BEec96q=B4Cj!c*%=P2@Btg ziOA89r&|&@eip?!3XW$JPIP>5Ar8NXDE$zK^#v5p0=?dd#SGce3cv=2WtqzJqpw}X`1 zyzs4G_aQ{5{dsc&S)`W{|15af-u!KM{b3r^_EQTw+C68K?qFIl+IRRDMRyBQhs-5w z5z}G869Lk|w22+Hlb(Xp$Hwy{Jr>Lw{+-@%V=!9;VEZ(VFUfY(*SluXaJ{G=wkwoZ z$aG^Ji)(iZ);j~%?$?ZnF4rrY zkdU8=7X9W2S5Lj-a2#e#++YqpKBNTN5H`av?;4rCFY&#m{uZ&rd@svhafVEr&Nzfa zDPNXIgGq>q!<5JKAPk`QpXymKLUfXX^MdzO@c4tmz7_1c(H0omuPt14@4`?^3so4t z$71(2J6nhs=#y|fwLipmw#|a8tSh~cI@F$U{gjdeC3pzP&dRZS$>MB0v(QJjVNdpf z1WPAkIO1vLy=k;$%=SA3RNLZ|RYh!upl{HwSU3%H7lxsX!YeRqTVgEA{jDb#kTX@) z^qHpqtdT?$V+Pp!%OszyRh|&fA?>52UaA@sW$PS6Kba4YC52{0@Fu7us@WG@bijBP_dW9{vl7of~L)7w&BC(u79N59-4 zndwzrFyq*}f7Hk>U<|2(pAYUniQh@CAn03z@Hk zZ_1i%r;7NdXO)8g3o3;!m8bpOV`UTCz8K2#XwKNv@{DYl0R0s`e9#pBs6Z!Ugs+wx zqu6p2({PN%@CD48uYk`EHh^xyvS28Ul8JkEl=PNL?fC9jRee+9dygzIHbM=i&4<@- zp;_nA?EyX*j_PDU;*$Xqzf*I>;9n%ZFAZ|FW15pR=x`vkYzM#LyWQy{0rRgB%m)HE#;k5MjaxFc4Fv6ziR3N;{_GtmVga)tR~ z8QOvE&}JkZ^~63xiy}|*3U#s0OMI0Fftn&grn3FK}AI96(yA9LfBisA^W? zjt}O$LiIRi7upkpM~c&u{u9zC2>&~ghgwHM0+EzEZO50%;^7^zcIe17hMKIQY6j$A z%6fwrwPwn-6$}zLQ$QZww19YuJM{Pj)&?rQ@V*~Y==X?BvO&*3P)D>MDjQp!`~h1( z0Edm!vS8)gsW<5c#qb&Gp%EL^5+03uwM$pqOY;Mn21S;{-thO*^i3oZRNvwe`-{Cl*~qi1_IOs@qi*!Nral-o>3g{q zO_n%7BN)Acr+UtkhX9tm!8o=OPQzaqhN@%A&!%bW6HWLlgNmmI!Alvi=UR6!Sp8(c z>VN1VN@`P!O~xm@vJgQ6Goy_Y8H;O@{}e$7r43LI|i@=z|a#&9f9;-*7Wg?ay{^ zg<~OZ@ntMu6geD)liio&NSdPY&=g&VM6^5PS!Z@(f-WDwvH!#B=a2iY_G^UAUf1f} z|DkxDorOIQLeFFo0)hM?{OX&R45OnFpDK_RGJ%>twIwkrDW6}$PJD1 z1X_!H-x@FK0G>tO8wD!mZ>2Ae0vFqGAT=#osQYypWGA}2f44@LjfJVc7h*~aw0(1n z9t)(imw;2z)DM-&j`YY!kz5haYVLLLsXkd={%`w#nR_L(P z33)=}P6&jd(L%oQK!OE?=C8+7@EJ^_1x%)T9T|(ZDdr)XRlzhGwl7O`?g~Tav(n(@ zqnlYzeh_?lbXM&>VgrHzG|b7O85c$=TqCz1U#>eKoey`!(goh9VBRB*L~1 zL3ujd6MUm~V;J-HQ)>G#YwONDNk{j6Y4lqsvYZAQz0tX)8HEEr%gxt3cUVFTb{@-G zoMca1oE4K(v{t{UNE)I+ex{VFaQV|A46w0G5B8zr;s+RT zW4t)D;3GWQ<^_(T61~li;IouU`Nj^yZ7>A#=s(%~Fe*FvQ|Rbhg?wj;>ME0UbXD&) z)t7TZ8rDMsP<)3Hs}q--^qaxmp}F^dU3Twq$r_m2*!X+H?!C? ztA=--XxKAT`%JFvYQ<17AsD7+6jLSpYURG=%S%toi6&=sTGLs6S{3}QfkP5U3&O$Z zX9M{U#op_$HXwqVUHa?QDms|JvO4}eoDZIw0F$1Dc zPdJ&Il^+8?NAi=gNIpJ5@-=tZKX5{KV_EF17@je*5Aq({2gz!oKWY(mJd|LT8PeM* z4knnuyYEFpTga79LSVN|0ZR($0A`39z~r+*iZlvw6oHBv?^j2X;l^WRI5|Ej3vT(v z^6=yN#OxG=RyyOeGQ>&#ko+X|nF1}`e%vh=-!vRG!k1OGO>3#RJQ?)y_a9;FZTrK- z;p{Z&$wvUnZ;rA$OcrNV5o)wefb}22l9UVnLWrP@^!#hiXROd=#@u>@H~%TtUcHbO zV1jPdiVTTkff1|a?>Avn76;3GTFzMgOlU|&_G^UlY9BM`U-EE&=-Z9~!HWUgOu;j_dLQ5XcpQVSsBjMcviNgpEOuWpQyy39 zr^78CL|bBepj5m^z7IEkr}6k%I{9@2rKxG>`W^X44n(^M}8O6j#BOoy1+8 zKz`X(AmIq~f&pi_y}#`xPNGJa@6R_1}FH0zXWCRKn~dY>3n4)Ojo=Db?~*{Gb zRROdK z!NXyyBN6MRRWXy0+m9|`^raTLIr^+%2n+2$TuJaE5Ww-QeA*RdefVD#_Ser9_9?G% z1euC#cDJ(LfF^N%r^A(T|JWarptPm`{^JScZGfgQcQrXjO+~>5sWDFS`nb?RjWpA# zsK+y2{l5eP|4HrB*Z#kI>)9gQie=W5$7Dl7G3)dem>nOixBhNx91s2q#c;1WDLM38 zJneeG&xVjZTvOVqn<>V>XbSPk@rH-J*Nk5zkv$%Ot=#P{us2J=Je=`3W(MQ4Zkb#= zBJ8G5Ww0j-kl06UU!@rENG)T8(Y-1Dg6p9~VLj$SQwwF_f&XB|KjlAt4(d|=CSI)_ zz>kGSC5L>vYhr1vR#;Yl&hA?D z6+aa_iDZeV?_W7MzSTL}qGmXumwoi?6}7pFU30*k?EaQc1=Qo5)|b9N>Js5!JQ^PG zc+8eG{PgqjuQ=US8KA1K)4loHBRp!KPEUE2?#qk%d5ehV!Y2tCS|mHKEmq;aWB0f) zH^>|*;XBi1m0GdkeQGKNxN{hTy@z)?dL50<7U7~2V24Ls%_Z{y`%Qnr4AL{T*gVIA zdk`lOJQDa34DiO>DLWqw$-Luyg#C`ohEv2`L5eQpVIqf31B4kij8yudaI+<3>XGR>W=V+c6-UjB3*+8uR(Lg)-$aVwSQQl()}Y83jgh`mllN9#np|xZ(=C|UEV>S z;cB<)A}9mwNm!;H<5(SMz&V^x>SBWiBO?~Xt5kz{ubf6N+aUF1-WK0g8ZQj@C82(& zeXGE?Iz&X)AT;A^oUaAN+R|6@@9Cz!^G{rrZU~HNWDt4mHg(Yz>Rzi2vv=+ZcjK+s zjlk2sfb(ta>dJQ3%gAZp)1{Dk;6B6a(DY5YXNJtEr(hJa{`rf{l$ zt8OH_qRU-P&Eiv^-MS%VY6JpL&!zRt#Ojf5?2bzJoQuoAri6Lnc$5ym+lduEs|+5!=$`xQf&Nj*_^Mt;gqMzNxq zC!;-x%VD+2_A^QJN~WeTjk80TZu>~-1SSSOC` zH&hCcOiYJxFM^?B4-z)1=^JD`Poyvb@jC2TPl6EPZ3e!CdGsDjre4>E)T?YijX_xD zS~Jn`(VI>bCI+7UYi=^^N58L?1r_alLw$*!`n-1l-x@xk=v_4;H4QdX_>YUbhOERo zij<8aE2lC_83DL8JycF%q^@s1T@F1ur}A&Fy%*1Xim9bK;h4LTop1bm>ThaA$~xh2 z?HvZs-N9Zh7JyvU{oCTNBYb^IEoJ>HbOhmPW^OIezS1TZMcjm z^8pmh1xp}yDL}NbQQVsE0rnrU0z3D_aND$4X~l}4pN4>`e!CGhJqLW(C1wC5dwhp# zj;BRnk316GjV$75vybSrOJqgA8@;}w2`kTVg+>9T89LR4*0m*?gPON%9#4nsnzVfu zcR>WF1ZF$n{M|zjvmd$6p`XO7)2n9BCX8cUZjfQsk?nXSMk8FPsyl9*Wp1KUWF~+aXL|p}OQY9N*HAm7^N2_N7@|J^JSa zwKxQ#nX*PFYt27RYUCKnjz#fRB|Ia0_~f(b}o>uoMi?>oS=#0^Rz1r;bw`o&`-R9N1{e=ULBqQZ%18~%}HOKXWC##2JNZ-E%3lhrANv*{=QHo zNJfPie_A1)Xh0PJ2fh1Uw`RmN0nf+aQHyg&_0JknOVFn+Xix%hFnClzPFl@lOwidG zQRR&nw+(x~4&9NDbVT~5x>Vc;p9CTDex6lrxDP@RuQgc-L}R}*Q=ZGcxq z#4806x}A8UsvlPd4)3ROa-~S_kgKl^9zR;il_Yw{$!8ex{$vXdbF`>7S#y&X+6$-? zoWSbnjo0Z)L^&r~+E37e*5&-7@9ygp`+J3fl!O#~d0j@=YBbP-s)LFRW5jP{gu!Dq zam^r*U{L~jg>E|%O{pMoKGH0}IIv9xag~_7WyNhO*Q^G7Jqh`h3TvpXH`g7HdaL}0r ztpe&^#*@1)(a7|GRP13AIOz+?XmG>tCSvC`wsw|-hISxMk2&O&bGy-IWEjjYkx$t2 z);4Z)30K11`-{38FjEKs-;bTIT zYu;rbM)Pjn$K&fweH?ijk=rfE4|I=$jmt5UI^K+Wv+sxSTTOndotI{y=7il5%ZzVM zv6*QBnW@FP38H^6`%94j5xY-ZK)<<=(N{=p>XOWk8zwLr6ex4{@psQ6p&Kav_a)iH zLW&k8XMxYjjypCs%I_FO*#tbi%^u@2O!L&L5|a9AEl1bUJj2CbJYXQSUJz4fQyE}2 zvpZ5`u-$|*5l@TlHeO$jQ}}Bfcp2Ry;fdNycyz_bpJ~ISHUUTa*pw5ohCN*F3be?F z^%?5O$eo1^-vcYVeA?|+7SKGXaa_zrgP!vJ_FGk7Mvbm~{RzMB{qdl`2lUR*#N<++ z>8{`PI?VpG&pcR}?Vc5g!)cd$PvUJ!S_YMJfkkWkZG(5FKj+e0N1D5m8!bhOcWXvM zZ>4|WE4{W#OS*!h`xpYMjnG|m-j zyBU)Df{Xhy_ywXB}I>tPN< z&(8e%Zs@RmRxIc1J2?mP5oh-5Xq_Wt;_$`g2QT+lM6^2zyVKyBR0Ym6+Q#t;jLtdqgKK z#A5Q4jB4sasDAI{F_Oq-sO7;mHR)VQxj)*5ShD;(FS1Ol(`u+7BK>0rOD6n(pz(!o zfj9vpeb4hQ-1T!BKXKtCM%yE8Tq~udck>UtVH>mN^Pe>S-C*8sW69I1*wlZ~_-CbQ zCbvkg`@ifk;0@MA$Jj9;dRw!KN^j?OMM3@HI-evH+PkhC=VoJV7`nr|3yUH*1=rYL zJL3ApfsQ88wH=ETh)>wt08pyKJGUZ$**%WAOaP8!b0YrttKbyb1e^$9VozeDz#8rI z`^3|R;zjxQ%^R9rFRmhl1GhRUY||8A#IMZBI9qUz%U-*d$Y{ap@5ad`U)CdY>4ZU?4P9@QepbDOJWD*9@vxM-o)H{ge^DYD8OO;_SsBjri>8)K-05mQVN1 z{xkbfjH}r4DtSq9G;GXEq50fVf4^NXWWe7>B8tW)?RM?eZ7mv%j-h~<9KB-!md0-@ zmr+Vtt?TZ5DL_&zv>n(XkX+3`I%jZ$9B<5eNyD3f$B=LzDdc=kxEadp2|NgP_4dw^vph_lEq|jG~&``&@U6cY=`D>^a7Ll z&4emhiP?#Agdl*28#HgV;akp)K8 zYdTMLPEY@Sm*#iyI(g?oYx{}~IyPt=oTW|mr1g(*G!<3h5F24LRN3B9tUyFUl$!({ zmP!`0ZD5G&WEQUR`V!#pABN?rr;s~o6E*7}O0GBC@d1JS73)&89UJNYM<(AP;_8(Z zFpVHK4^o#3;se!v399s~bfdkn>8N1(C4L=e%P1;m;O0rkj>Y$D+3Cl{D>PAf$$^=KU5pd$0wmmvT2XjX&#BT&)=Q&t?c)}zCh;&hVJ%ba5K4X zKOl?eJ9WM2$;?j>DPb}$*z3Y?%qzS+(7z(s9erSr;)WbHCH2Rn%A!z~hmvn8>E|4JXbqzHafpPA0|d1KlKaKCS=3G>%T?Phj~LahKUeY4$XUiXM1=JbHF-7O?tc# z1eSG|ij-$0r^A^fo^hdP@x&zX4I9*#*PS5K&OtptTqg$ri3nLf z^$E6M2RDUR2SCFUN4I<2A8;_*i@1#JO$y zLxF>Y3YgEWm+YlzaS$&mZE!~d_5d{(1>kbHXK=EqsO7GL+8E2UH}RamQq?VlV>6BK5uL|TYm z>u74O;@(bf9T?oRqLExFW3&u=0l|vulf*-Ik8hB!!FQ5|m_^F@;E)Bn0 ztsx+>kpEit{l-&QS)HpupDyzckq=EYTd6^!lV^75Ni&-KZbu_Ux9>ja94BK^KvEiS zTt8`of;Pghbk?Qu8a!_NK@MMnlcVbwdU`m}(^Gt8m}xPsiGvaU+B1myc|NNRJ=1}3 zq}i)!K%Y{OG^di^NxOPhS4vc}w2~mqsAc_3h2hW8ch>q+5eG+GHz&=AkqbXPYjaYh zm``Z{`B#zr92ortkbe^k?HMa8kH|%s*B?j1<*jDDZ(AI%2sux+hv+d6JAFr+K z8iam2$;$yRrUT{FLlPjWq1=_VM4cWqu}+CI?M%rLciCq!n`HuUCr)1U_kzc72qZp} zWj9>cDds8Fo#f>^StO%GdeM-skv9@a^$1ETISii|qi%b|ty=aRoloId7(XxD$UOr3 zVhvW#RfDxN!G04*WvtZ1Q}FnRE*x0X=^WH0y(Cfa!e8C`zDa z94&q?)T6x#Lfw$Ofw3Az_}sfiP!opvE;dc%5vnNI%7?ml@pd2dR5CushETbYJu9~p zoC2XhJ=a@*Eztk({gAt)r&TN*RXz5N#+5lq8_#^w(!NwRpnvz~69zj=xk&$pnVV6m z(u?ggQlnV6-cym9jtzUA5A-1>AAL$cLxKaJj)&3RRX9ti*ZZW_O6-77MtmdJ_#Qz1 z!Mc9{5*R_M!QniQ%}L`QY%9)QTG5k*-?^!ioKa>3&J2O6(v zHi5#9T=Xotp~D4>KWWez)z&l526ZSw{Jo-`hMZ7p0WAJqEQ{a1``=i6x>}r4@v8>U zZ_VT^0TZs)Caq|>&2HkeEQs9``>Zhmu^6!l&^$2(_aSufHJ6t{5QxuZEySI9AHxEB zL%P0d@xzvM91Rebr&t?U6opkFrMH z>tWO@9Vp}aA1H{?Ye@HRM}OPtJ6UKuJLCjkEquBFB;G4B4!bqYnch#smyogsc$O}D zq`_%~{5#`W<$I_Ho+6Whn6*yEl?(|gAvF7}HI`4O>(AWz&c z>r$yXH~YCno(}t`NBjDuy%JuEr9ZP%R-g|` zd;ZfthMZ{CW5o@O!bRKxB~XuJRab)r-=7A!%9qbxIUb2)F)S9(a+{*TC7lDIThm2Q zR#fkqAp-WgQ!p|YcQAa#870|(ox!p|eD#gt^$z>ItEMkMHg6#mR_t9ji$_%+Tkxjh zT@AIM6_qMJu*KJuPOua1#(dp8UT1O3`0jU{dh>Cbj^+ctD68eKe*>}&ikk5F+m@nc zszDXL#5U~)eUadAV|<`csr@G|S-A84uDd7Da~_Su>@HaCUy+*Ur_2dRd<}w9Rn4(? z?Kn~DTP>8q>y7Nwg5#S$VIpM*(j>*DGkA;-Vu_nZPlf$fr*I=#Tf!}b=>y3OE!GQ* z6Z3b;_bg0#UPOn_HNm@J8kX&7af=VfwgVCYsX6L*5RUnbfWW_;v!y5$K()Fg+yTm z@-eeRl0`C+H+|Wk7;sn z$m=Ljyej$EVbGwTDw-`qe=LCu>yNkYx1)a?QnqZtAb=x<04aZyaY`6RVPW8p7kotO z@(la`Ds%w4yCllWWJtuyG4ua5K)MnOY=t-{~jUcbFd zdbL<2KTUE>e@wPvJoNopWfSNkwWKh02yHE-y9~0eew1aXaA^lb{vm^(LT>;d@|)~u zbu)5to!`O&Pp<8$*XwJS%YC)|^!$eXhiI5o^Rok5NjBuKF_OhM*PO)Zx$HfOF{5V4 zP=0St(C?3OFa_8`Z1MzG20_z3jMIN%@%e17aP4!Pv-mPrU*ASETAp5wy)EwWu_)Od z{>A_gnbT^5x~5F+V(&=x>_1rip|Irad)CK&uvI$zbWhJp-=SjN+$`u4Lf%4AC@d%f z)m?jTrQ)5uzY9eLhtqxwsniiH-rjA(s@bRKVBaSg2!6MG-44Txx)0V=P){6c^d66M zT6zpln!@S=^2hTBFr?UzN4RrwxNBJmXbGnFs+4D)%P#H7vtwxJaEiouPlB$Xn)P=0 zfEfD27O@akDxX+3fkVKHmC6SM;bEon5^~Ah;Y>#T#Y)Xv4V zc)=-=gy^we7}hC&Qcrj9CeLW6|03%CmoG zF{nKa#nwLq!Q3qKu6G{L5SL{%MJ7V15Fw^bm>S#iTLnGz0V9!g!*TSjIIC_)=t+9c zIv(E}F@tPmVSA@~aEnapmjgp(rF$txf|iQU7mHA%2^jWY-RG)^>|>pulRHh}bB@j2`whFn#pX*dZ1KB=y|gBtPbWZA+a&7u zU5-N(kXU!TFfszTYiBEd@^M=U_wLN!$PqZJ)HZ!u?_&;Zc+(F=5*_y6DMd@5q? z>)zruG|91P8yQE<6`2RrPlcvvqQb{*reU|{4A3%<76~2Pu;zH~RhOvZALmyZB9A@+ zLmd_z2Ta7ck&tw7Rv3CcWM2&DKPTwUWcy%_8_u-y&$0IS-S3I#_V|9)JK848c=}h^ zd*(uTxQE1MegyebdX<>xqy@t}&AaShh#Wlx{`lKie>@l4?KP1hZ|>W6R!+*_Ma%RI zv3~d-j`}3LEc>u0bDlf!FWCtAu3iR;z;SFq(7VYm|o^iGd7RzlgZlr__!`d3rcuuAbZJ<07$XY?MAw*HBMgzV%?Zt9 ze0lDo)Qk;=&{3aA^dCWR0(*4;Ir-V}bK&gMi-4=)QgxyeK})O!ezf`ndQ~-QdHM(a z27^4CQT~NehsljNtU!dSOq4S_lk(q^ z`QKoh&hz2k(x8aO+dB^%wEJORBh97SE7=MWiSUJIzx}3e!BK_7WP^F;CUgn)X}+!| zP))Pr``v-eJTw}Sp-ST(5f%5A{J7EP$NJ^@u!gO1$e=?a!2g7KU+~P6^GWqKY%a8o zsWs{sSfetJJCO4H+hOvp-}KX#hi*Soel6L4F+IQILmVP4gu!dk6}gq4MfJ3+iXoN4 zhJodYmWbHqvR_Gk93qpY9>!iK_=J3ty8nH)6;%%MxK451S7ZakA^yuUPx;+)a1Gh7 zm@lNMcqai1^vbwAPem2fCTSfn1nL~OyHG!>@(@1+cK< ztrkM%yUc#d|g1g4|dl3mE49zJx9XVtqqTI*7;ub|6HGZ(*ivLk&rlGE-RT_1prE5T` zpzqRzzzXkGlVH9lhUPKWZBr%t8#c6!`o5jah}j1^SG!BL%k{#5`=>8;oyB!RblopM z8Z$m;Cu;v`;!`5nk6OTi}oH`7+YMa z-U0J+SQ&IdooJB+PR(zB<=3vVM6MgGtIA7-@hH_xrVIqvfuM2x&y_fA7a6wv6&VPY z39kT5pT#D$8?Ao*r*%?%pCjuPLG}|?Yxh~gPaG_(m`9L9k0Jq!>%+{sYH4WQKHpq- zv`sD_bnNa^sBdMP(eGB2=fOJC(}uWTJm@2A^c1qncbgrNRQsjz>ntDB`wD!GsQ$~l zAf=MYOxkhc$NHLuBkxxO^mCh0Fs{PyFyQ?MY@H4h13>`KFV?NxLhhcEg1!i{My!hd z`j*eehS~2aTe9xE-Cpk|$v5}NSxF^1gVy@d`4P6>zp8E~_u^43A9oD|n13>Erdn-L zJ(LTgaSE;OlMUm;z4YoaaLQ-Bd8K@*({vHJNdk$7UPkwMwV;_KZnU(7%Y3b^Ft{@F z4(v$ETIw0j6klR(^w-x^O&C#eL^pDOkNr4QE8!Gmh+l5)!}=q z-;*tT>-INl{}@n-v!|Tn#7HQmG|g>sfH5l3z-CEcKfHcIL_PWoh>#-D=g}Du!LYZ9 zTUZ_a9~QXnt=|Rl5Z71UxzP4yMV`+az(s#&Kc=yQqIo=ZdYteqd7agtH9SW7nC8@B z$GDJVj~+t8;VGW=+xJ)qimJ+-e@n$T&%0*PLOVZTv3Dm8_Wga1r^6Dk&!0=_xvf=? z_pk(yQDeN;EBR8As0k&^euNeK@s)q%^P67f?<@N4W?`9-!&CtfCg z`F(kxPj_8pCo`x%*(B3!ZKR!{^$on{}qh)Q+=w7+;sqxKTD0}(4@xfTF_TNm`>2u zl5a_p@vvVk7?$YAT%r32>NCHf>9gaI%@q8)Hte?e`zcmCU-G}T^YmEl{7tNO{`q^M z{jK2@x28TDio}9^&0TKFITP_qtA;`4%HuYp36k-C@BihUr}f=jAM~t8v`5wt70AeU z$!v5r;$!*?(23YJe$2Opr6CvrCWouB>iJh=Eb)!HPT}X%lGE=*EHKS?(1c`z=OY(R ze^{j-0Ia0#<^_y-n|tJZk*|Sa=FPDU7wb2x4-oRFfQ*=sZb67Rr(L`LtNB>{1>vjy zBdDiqdD0D=d5H)$)kv>+7g2$Nh+VUy2d~I zKBm2)b%DhnmBU<|7ZWVTZo=UU8trCKX+GzT0*6@Hl0-2Vc!w4!QX`D(&vgrB;kr{v z4Y^Jj-^7n;#|y)(3uglr<(sv?M2F3p$uk=NhJ?UwI4ByjJK^1N!tW+x*~xWoOIAh> zrWb53Td6x-fxf;!%U1u%>0hpS)^IEkzbk+;>U&c-#(aGuQ6?4NPH4AsqEZ)2dp|w{ z{&^b+CvDAuFN{{qBExz~!BQSonb2 z5$9wGe=v0#)-?Y&$(+Vs2`BrH-#kVJmVoJg@hSbgw-`GdjGJ~2o*{NEDxu%sJCZdB zEZzodHLS7~AH;Mh2BpDV;}@`it^LXUKW=1xN|+dHpNnrakaDIPtEf6V*@?U`&6}CB zGqfXy6YrCAxX!@3|A7BCQYN!KNy*ToLNexT|H-BJ-k-Bn87ta)-ShJPtoMeHc%SQg zW^acQcFI|Q)Z5_{Y0|BVGC%m2X`WsDe>Ba9-n0(>D}U_N9^o8;R?oS{>Ipjd^z5RW z8?(fG%Qj(etrWpK17v{M-2Fs&8mWVL&p{g=&%(-_98GoE_Ya#Dr#Z2wSrN~Ea@XVs zy(MQF_fQ=Ku3!M)Vpv8g-glb}sOkqQ+uO!09OkOtV`}ck;MiEU3K6Wg3V}2&Q=V1AqIFiT0!{N9b2kRt;N@MSmxamfD4F}ci;TqO+6U% z+y)&G@I7N~^AZ2D%_pDR=5Ib4{dNdCqp-0?d?-R@)s5^s77cOJzKAbjs>c0pWU9d4 zcnv$-irzV;tk{xQ0%EsW2Br9&+Lz2G)I|RYzOzIJ?OKY?@YoAlZHH<7*$A6dyZlqS z9pizu&KIpOvZfoq1;TmW>|Fv2uDI7<7D~{`%}+kPLbV{`9b8le3t6xZJT+nHn|~|k zYo|cXUdqEr;W;(2c@er-vHaj z%M8x{!4#ElGd`}5pfvFpA7r}fPlzqCCO$Ae)*bBpYnul{v_}ESrd-qWkI~ZVS#7V+ zx#xKk35JF9PQ9Q)>oWv>S4T!ubS-VVSmf<3~G0#pb>6=5;5cX(?j!_&GmL6 z`is`MUv#KT(%h}NL^5-8hvcr2^kANhKc-VC>w@nC@q5?$EGKw7JF`0??}2rGsmxdVER?LPbjQ!UM@;VZOIR&NEx{fh_rI6U|BpO- zV?K-kp6C91i)9ZOB^Ft^<|rTI!Wl9-quY-NFx&+NOi=kwt#{9xze*I65EdrIch`8?o|)O;4(I#{wZRIDObzj@lt z7i`hCZ}o6bBF2O;p*Dk;W^SQpl095A>^z~zzwA1^tF+?q0!zQt-voi4*J^>>|H&H| z8bK(wOj3&~o+;?B7>;wSwf#@$VEn}u=Y`ouc>>A2D}Z>Xv;fC>2>wp{ZWz1JgN{7A#3u*92 zHsgiksDD}Ni$Fnsrl5aClyO7v?xj~E|IpbM4d%}F)U>B7ceZStK${4C9$xUdJUNb!d&s~(6JPKmflO3&0!S@n$h zuV!g(cKO(c$=>SAF)<1>J0bE_tw%p3d*lgsqTVUC=iPJ;AJQpxS&}J-alwUXZY7Kk zY)_W<^3MfeU5-+~*bX*BZy<*px?Ot$%y9LYQK3d?Q6W(gAUC#x81{V_8?ap;Atf+K z|1E_&~nd`n1UEi>@k*Ws)Q$=Z^sn`aY9Ev~k5$QKDzqhKK|XLQg6_ z+oM_W2 zRcd^W!h|GEDh2 zivM_LQwTN|^x*X5T_x4}q(Q;9HE*#$>(}6(!M%9*wClbMwab!bB@_bIn1$#T%ESnh zS0lU+yP^42MAm-i_iOo%3z5Ipj#resFTccAB5fQ@uPXJ?E?E! zJNQBPz@fy>#*MRtS10tVLpb`v^0WW+AzoabehE#!g~NQ44OoPjEHIsXn;2&9q*vVj z^pJuWhZKhW1D(d5w<$-NUmzH?1(98{VGKDCqRK9A#k+dNvoD62RLF}WQpeYACW^&PL3@rB$E!8Rxet`^q$hGGd!Q>TZs?l*Ly48N5#zH2HXUw*`d&t`D1m8y zld76CHQV6+n-qsj4y+xl75g&^h>5>T%F07E#Md6XB)bHNF*eBsZuJko-uXf%*kOLH zC{rOj+w_@f>62Uc_+Jo?*x$@bvTPtd5`wT|@i%Du285HzeSdO$WQq%i`}D*GYcrvW zAK12#2z{n%z-K4ZOuZiY*@;S7@9@{B<%;_FJzlz|9cX_{=vGi%gf2~?kCEqdM5%%# zyf4oIoP7d9%jOTp+$@?yUy$2oWiV2LgrQBhV9};1u)~1tvQnNN#**JBVmi?v&6)h$ zl!R^iOAcS5ZI<@;apzfNIq1v_2s)3?_E9@!UfR0=ntgwXcO?yny1RITNfo)XUHspL zJah>x2Yw{bDD&7gCkMtq?GPEkkuMN5GzD}>f}=`nRzF(GWl}eI2L|N zyy~VS^ru=k67S2*vpWk7yc=^3d&p|IuEo_K?xrE?Lvx3iq^%%%<3E2$`=Ufe=3L=n zwsg$>SjIgoL6F#$r*pQY2=lR{Vw@zNx(s%X#y6quJ&?IbKKJRYwn%oSTS905%vpiY zQ2urde=N{_OdZAS#rwKh?doSgtL}R5tTv({CCjdGAetYa%p0iHpBf~3k>9G7+Q)N| z!F@@5{i4IbR+~_Vk}ie7XXjAUe%ZA#mx($7Ll9x3b_h~=m1)lZ!>r%z*x_maR(YsI zAKWfv{`BQ_)0Z)VVfghOVyt?+_ed?++t6s>w*SB7Q_!_1yFZ;9GuUbS;~ADF{1!->1Hf=W+X0abo>5D9#J}S2j=2 zmU;Cj-O_cX*uMXe?USVx4{0I|^jB?-0oQI7Y2)F5W|@Q7exUsz8Px3UBOeUQ@v|Ge zen(7R39wLbpXa6u^&>KWRh!G2e$KU}1p@e;+E@It zUdA6O{_C2jIB(HRBsl^o^y_B(&qVhcv8!57uP;+LP1FVB@c-*2ITxS#&|+muHHGpn zN?NL?Um-}`?_RR<-OLJ1*2pHsh}mqggN3qTm2zlX`b|7uo2Ouo0OSe$bwe;gV4P;>sA$;OM7+0d_ZC&^`EvFRzuSiLP_WW&AL{ zhmf|&;(s96oukAi#s4RQoo4q#P@EOr?PqGQ?|jPqYn+EK{SU_Z{#R@ddskJ_MQHuG zTRO*J4)A+}2YlvN8j?4CtY;@IqOhHnJHLOFbnjiP1Y~1+1_vu9%^@Z5XXJa)yb*O_ zG?)qeW!T@x_e7fZAx<1i9|FZ$cQ*xZNUH8!WR&en`%i@bGyuSjECzZcU zS`okFHb&OGDz9)F{n_vaENmLS=Mh`BjD>A4-HjL9Ns_dqFVb$4fi`Jf1s?WZY}Fq? zX2bnK8x6zhU+cW@3CpO(uAO2zUI^gV^D%W|${!`gZz__;{z#%TE}qc;+7`_hOCGY| zoF>R=_bF#talV%0%7$b6vUb+nCl{_a6kcMFosKQ!yy6k!9#5T3^Y~_$72Wc!RQ!79 z@WfuET@J4+n&rJ6@$-+JLXQdxSC_n&Z+HIw4VCQ*e9WpBjc<7sTF7UOr}~e0e*f@= z=*1h$mVngmuu}KSC}jm39%Nb*7xMC-W9RCt`Tv;bcY%4{e6&f! zdmBP8ti!NmDb`PSBQq%@p0wDAV8@jAl0Ky5Z|_7*!=}vr3El7MA~bC)Z@;7xCgK+g zkyRg$M<3)+(WhizRUKefoJ#Dks$Sfc0X*}Z;Ozwm)rP+@Z{#%*_k*xWTY-dJKg7V( zyb;$n2Nad$EF1B|1#ssQg_F5q*p=B-TzL^g02oP{|HVO17@34~(2M+c2R-<9Yd)HG z3bj`SHJ+r(HLPtIoeJuS_$J|yb#5gxkA=CFe0>uV+FkC{svj%Iy0}A@*oPFb3g;F2 z5^(SHhpoW+n;su-&2PyP?<+42G2yN!E&yFsulIE_ zw`w~KlBJaif0oQ39a+=cCabRU%h^m2K%2eEaw9Iy1~dd(WnoP>csue)(1tQ0{_Q^l zb^hPs>zxAdm3YxH4QAg^oyu+Ph4{X0ah*6)hQ6fg@2T(AL$HUC-;fzq6jm+C=!4o~ z$x2@tNu~}Eg*4S`%bKWb#b4P55qZd;1)?DLY*SpKkv^GhxvMF;sz1Ah5CS0uX^5^_ z<+7QlPy4)bN!l;HKvyF-=F9~pRwK>n7G9(2t(I8q3x)j$Y!i`+77nKT;_9N)x8PDdGQq!mm`YN=DuhS|5 ziv7YR+ltus&mZxbR08HYh2%ZN8d+Da;2`!LS!IC|(>Af8XyQ2((92)QBWqcmpUb%M z+jH5We_Nk0_C8XWW&wZc{FBV>3@aDachQ^{cWZEZdDjh`UOuC;#6_h^c6Miohc_t} z6K=H~2@LbBzqZc|^9lPZkgbmf=~KQo-Y4_@zOhIk2r6YNFv6Qil@RVegaxCMM7Vs4 zlFBKtxo@=l!Jg^>3>*B}#%Iv!(b3X;MweFkPlC>9EWPI1IE}>LD z*25NjPgnevt?~_{&AkUl|C;NBXylX;&tSxjL?KHByd7O8&Aq>Sl2s@ahv`ZhUhQH#| zrTKM1+3&3qjqbocW>G>h#yaOXf%fq3JiVVKNB|h|;O44HP04*uVu?qbd?otle0xv= zt5yBL zF!FV~iDOBXL9xojs0w77;H6^Xe3oIl#k?-i(BGMH({8}dLvRFZ!@93guOzBaGgYqe zMxS$tG{feaa8{a*r$Q<-Ja7R^DVXz{WbnqUByI9z7T%i^v4oyH$~Jk$F{+=}OAcn} zv4_OWLw>D^w>zci#e><0^%%QgyXLPUKMiKiKWc^xW4l7jw{Na^5tz+T=CGTL0`H#t z?PmP+GG=EU$w>t9cNJ)ugo2^j#;20HLhl_4P%!pn4gW&y@BR-EdwblFIS5w_j7q?5 zp+cXPxtpW%4q)WYTlEUN+Z4SnW&k0u;&vac3^Kz>_$88IX1BGqj6xx?t@2l5i`Ti)GY?D&o%Xte$!j4Ty)+A?atrt%?clW<~in4 z8mO6g!L(#WtDIy8w*UFZU*W8sPhw3~^bGvb9r|&leMgOn?lv)gs>BR!Cd?ePChyzL$8R&xqeWOkfyI%X%%s(^ihJewCj+3Aza>}PA8H?P{gNaxv$<_D>r*b5rk>X! zY=taPuua>Jl<-XPWLw#Cp}53zhg-a&`oB96a?122I*SRa$Jr|s_k8s}`+OeTj@nI% z?|2*uv3ojj$qKUDGQH_qogb17sv&CoZ&16GKA}4{6`i6aq$nBR375}*IoFrV4NW~Q>1y+B=2ExJ}uOgZ>phWS1r`TvHuH!qVvY{D>Saw-r& zS@kgoB#=%zOJ8?;e+9vO#^2hy@ypJ`Ng;XeL13%c6%LKa*45aXE7P<1Aj}Ql(m7THh8Mx&yB2_Nc2yc@>vP{traYx|@75)E(s z{GzAv*XF$^$|gxYB>Wv0LtZMVb&tC{`w)Jz%|ZoqV3(a=pV6%vn=@y!y3=ki_}E{) zyg{B{S-871!(mc`eb6cNdtw8TXqt9Yrc0%4qqY<8p1YaS-6tMD-~lh-+aXDvBMz!} zvTtl)Fj1Y2`RuU`RL^>BS_jV`5OH0J$MD@<%Uv#wRai#x-GDe!y4N_2;Tk` zL0Yx%k=U99);mEv)6HkKPm~kTKGR0NYknmtLxKtPKQ)FW=x`QEj7S+AW=AE+1!npG z1=yV;bnhVUPJerr;{0n;sv+GqvejpRk!w4ggPj-ZllReF=GVIX^Mz!D!nA#XEg-GC zS6NDgLLD#Ki@cekd>o1ulotAt4#)WAfUxA)f1L7}mjgb7fA9+J=9HWQm*|PNQ0B_4^kehVI9n`W$yB>i(F)&H&Pe+PYOFp^w!I`d0;61?p4NmP&UhGv% z{~>ayo9#+YH?qFGT1=mxY~LXZPtfPo!n=i8rw#r^+%C3z6vpc7Zhh(pv&u;SoqPha z4soR`7Jk{(cvO79t0D=epN*$-wYk?jMhFxQV%U0%{>vmErs1WUQuP^Yqp_wCdwVR5 zmd@&H(kvQfH%Q8iz*zGTKbzs}YVG261I50?z#S8-%iii`Hy)lb>kP%J*(_(!y7Og< z{eQ9aJYl_Xuk?fR2=(-xKLY;dvdzOZ*VnEnzl=C8j@$pRO+J(ETPd0BFYOsT^P&vr zop09P*2#X_o(?1Bdl)7M3_viqkL6%iFg}bN_ZfYDQk}(UWev#t*TpOQ(9FS>!XS~t zGKwWg;S5^8#h?*4b{19qWy{|r)k0mBQc1D4aoZZVtLL$7{5vOq z74q(>&X3sAk;`T1-nhUW8yBK;g%`0pTgNU^-6O`2*brj4Oc+{M6YMqfmEunGa9#H* zV$6MWLZ2kC-Baq`1J?qh%j;cm%+5A+|5EF;vIH(17%MkWNXR|Feayxr_%m5=`6X%F z*R7!grh8gaQcx4kY5T3b|BkT__gj5=`DjditDp3Sb6ZtlwZ$)zG`s?{@Mzb6AoiuJ zioZ;a_oNBo{U3aYxr0A2N{8V6dYAC%m5?`HVaGqm{aBxjvnqWwy1#Cvb-!V!n^u`C zhDzD`PX9(?E8>`1@WS7F-H+7wnRjPwWH{Wh7`cx2OK3bz@1zJ&ah_rKx5; z^&sh*+wRF+O*d3DI~Q=YHSks{H6ZLmt5@ML_v7Ax)P<|SC%-)|hw%Lfk z?KM5IC(hQ`jSq>B8rlw3Tz6~_bEg+87PB}fjug&MK@x6pTN<$KK&qW>{j{{MI`_al zq{R6`v~tdn7>CJQX}foawx#;bnj4|(FX}Nk>Q+0@v{j=*dzM7RTdy_4d5o&+StpOO#eLkQeqi z!06l1&+sQL(7|r$quR39=oeJV2~01FJ(hLIvU>ElQ;~OmyQv5>A9I~v0X4ZrlDonU zIv<|bDcm|mWWb2kjr@FZwx8-W7mcE5!%rZr4c9xzdC|)fw9ra-yk&YkkPwf!pIZ*fBfV-V>Fzekc?%dCfiZ$q=NR0lqBE-~`(z&_Vpy1`Z*nU}Q^AMNH{j>@$76Db&$p+>u-=ekxXPmXr_qwPXCBS9 zyn&icRL9}$oVN_a#`daYQ(s$LZi}!Fee8M7?S2lG;W;6@M+%{mjG9MgLLxiBqX%~f zmU-IRr?6jMBhuTP>$oJ}hd(cs8*q|mvpKF{;(R^kHskSO!j&Hh1_#- zko)h*6WF{cSAJlh&SE8VdhZT+*v`#3n_$V`^T*VfI;%RO5~i)v&}^x?{~@B)p~TW`D3>7iVz4n4Za>Yd(u6-V{F8u|=+8A(M$Q&qdv`5sd;{*)`G1RPg@F)&W;7L|LJz6xj z6k1Vp)NRLe!;y4j_I#h*0X`MRRFDj99--@VZ`)JTbg0z)g#DwNXVVN<>a)BYUsyoP zB&N*h{@$X&AR)L!;&^>yh#qTB`vood3Q8OV@Zn7wH0z!pzQL zkzMo!=m%ST8_olRZ>+lpJ`2JjGTU3jPNPw`V_j6OH^w}f9VRk#w3Nn?@aO!ORBwcB zw1*)m?xxXNXXLrgK)v8H%KqqMAX;Gs z1u|w-WCGTo@6g(WgpwY=IP0mdf_^!j+2(0C5eY9wZ}#e{WOt8M{Li*|ZD5<<@UW1H+D_+a$((%i+mt%FLpQRljL)s(kyI2}=K++QQIl`Xk_)yL= za@nJ!`B9hK-y%<4$UT0h5aCH|=?VxG!c7i9@48Dj(h7bW_QEhEJf!zr{Ute4irZ(s z^-YjPEoQZJr&i??5Y1DPK9z1J>RWwQwvP=HuHzx&Xu>)=GsG(MUfP|=h)4TfGFqqZQ50#vzP&H5HnB)e(BYr zSyzo6&K$Zwt?!aBT?i`8Ud!!cU+Y#un^0}cO7c+m;pSXp71dEvkJWK457pCp-03<* zC(yaPHGqEXaCd*gZtT%n<5$(FtEbo2u{7+We2q?vbQXIpxa@DECkP)sW*O^fQ>-8m z{6t({e1YwwM1azz>whYB+H!Q#t|{FaI}g3S_cBIY;5f9Phxii)zmuurkl0eyqzl;R zF}Y_TcpL6OeTN3HFZ;TbD8;ydHlN0$F^^Hi9)VW#60 zNYB0FnWZ_j65@_7B4#*=C&DJ-Vyy&L9b|`E=YGI4)>#n#vy~g&RbcNVwxXE_{)etO zE@H_7wAR5J-0KCx@?l<^Ag1BX*_zP!-JCl8SffWb0u)zgDRb8E+pKR&FjAbFRYKM9 zapGQHLN+pGxj~qfOW3)sB40T{m2J1sd2(eM?xtwbvzP##n*znx#}f7mz=27>{TKd! z(dt;>bYln?JMb;r1#x}%GOV+^bVrg!=lmt@C6Ge^0C}9pp3HTToMa7bcGfd}E`U=Q zl^LS6LctMdZ1Ka4CF)j@#|8g7)IoG{iR6ay3XC_#XFm>l%u833`ABX_$iwejNLvgQ z>@l~L8r~6MBU+@>IJC=Qr9AwL-3@=j5)NQV$ESIDCZ{I^a{3yI9G(}pgg`KQk8H1W zV1s0gzMXee)#@|8yCJykIny$RFC5c5d51nBwC?8hN9XY7Wx@l~c-)C!7P_%gJAkOb zVw)zLiVb|Zee%>b%M8wIF}%GMPcFQ_j3I9S8oxP$+Bam1^Kfopgx={BPKOhD;C0a% zXqg0?z81k(L{ebo+0ze@WB#J8Js9e#8;i_`oe zLx29b4jmfpe8-*Gcbqd|9{3l7FT+&+rDZQPoV7Ot?+p%vugt(<@JeztDl;lz z0Gj*ib9Dz*HI~S(+?Y+>k`RfxJ1HR2SqqhkbJbrRxCN?|5t^|&)0{C^?-_yS0j3lS z-rM+Q!^oqft(*g7Tq7JUoAiJ9MEe^9LdchQ z-^jW|ijndIt`d+QPqpNe9KjU#QZeCThMdt6E_a?&+KAaR5r{6p75ewKcEWgT;ZiLX zPfB+lqUVXUDyQV3dr{X8$)63@U)&UfmJ)SW>O;Ad>Z#4Hx4Tl#Hv~eQRe7>Mx7i!F z*Ov>u!hWwa8tjkg=i6Z2h#iD#bWaaWP{x-ACg)b%BoQR^QC@mt<&NfG#8k4`+LgqH zV79+BUT??LF;#$KsWx|Jc|Y}4<`de~6W`x+a{S>d2e7Y)PdDfKPlLWOkYmOdA*Zd) ziKU(g{7O93%~SXObQ(M_*0%6-7~F<&Frd;OXs|dQSXEevnR=>(faa~i) zcMtN`Nx4i9-F$jZ>9b~OiosOsSGMZWIZkc4q2LW{`Xx5*x?BDzy_4mVC(F07*BEXJ zw|RxxHK*RMG{;LfZcFpKu_TYTu^&B3WREszd4mJ$Z3>?mW_oj|S#!0JF_uvFpv>g) zuA<(tlY2CWWRg})Hh*N1*ovN;rr6xj-KCMP9SAV@pQco}ioID)F-)JSg3a+{+%?t+ z?0I)yyqJ2_pe=Cz|*&$@$>;5iVWEXqTx86UXd*~woa|mb0=Y$n6Go=r>HBi+oMY|oOZlvxoha< zgH(FBP#zj(FCH9IqbAo@=?m=RX&7{FLJXmRr|;H8`lDAJgf}{K8{dD;-<(Z>q85aJ zHVy(jea~DWx@rgB!%`Atf~~T^Dux_Ok(iO0>uTA?zx*xMPOJ9f>a8|{#lBX0xZig!lyavOe_JB34&B&eTl=ECRX0q{dGOBl*7@c}J)z@yf^m*~wO@RP_#S5p$hg=JL3 z9s#fY4)EHaGdTrbd&94UuZjg9afj9|mQlAzUQ45#Dn+_?k1GEt-_fvIb}SL5b?u!) z`N1`?RU^nqctR+Um3~ygn&({Umgk1|%zZ)wcDA z$fZZ)A=VGW&?jMXg`U3?yTld|!(;P*ar*7&kHYf=k8Z!x_)adJu@>nTg)FzEGetFo zB!0$>EqcwaKKkBh)uZY8u``9!6$QL%xvOC$QzxQfdw6VH2f@L=|dkKFf zw0E!UR11sZA$T}nzK^U3LK~$HD7z4~=z}t0>rjMl!@#6hq2x{D-IG|c3v_F* zKlJEKE|V5j3LnQ`kj-)U&gNDAxR&eyuGFEXS_cV)0>f;>*ObI&|Z8h_oz65Cx*bcxYJyF2gp39XKRB?x`ktAa6vGQA@# z^y9({oOs`6ENV3K#{Tg*Cf!R`-(2)3(<+Sg@pyl~$1&OLx5s}TeTT7z7Rgau&H0(4 z%Hdm(foDaeAc+Zc*1_&Mhh0k#35)n6Bjw^nu;ll_N>t%D77smHda8nDcsm&_Hih8< z_el!ZbJ&$Y%MnflI6;vOD?-a>Eoe9eZ_%c zV-)_FoL^m`IXz7DVh|Yu(>r5T#Q5O-g2U@RRi#&1{aOuTF`NXIcn^on)lDpvX)CXD zsu1%K?Zpq11PP+E^JLKOEP=gNFIUV3^A@og7ca;j-yZJTsKj0m5VdjA!B9$a}`MUp!Z-X?n#aMACNC8A-}$cGKA zhB^T#;G$=RGmx(3Sz;$quqCfLwABanaiT6S4yb2vqdQWE9q@Brs!3H1v`f};eUt|4 z06@Lp<+fqu=^zs8jIvt1sIUt)1V8@a(;%#`O|73W2_88sa1OTQ^%;L`T7R`5Q^fhx zx+%r(G1`4UBm71oY$VadGbo1XepzQQ6|_;yWBXdLJ^wPS=8}%OQO;)$OV9q+odtnE z8`c`_U!L%WNLCU2Dda7!&yLTlS4FOTP{AIqK*`82yIXb#rpsG@Fif9f@e>%e>#b1T zP7}(p&pAfTrNBbI5G zOL0>K8;Rz$39!l4+Esesu^Uh-mRk9>bQlt4878mCPl`tM3z+b{86UxC8`uGwoB`^DX%pTsf*i!qnNZVdE^{1A?s_U!6VSrp8d;_a6YomM*K^PaI?sb(B2%cZ~g zvIZf<=g0YiNEU70V@D5~5>LOOEF`CDWze6JfoS4p7j94*8Z(mG0iMI&C1_J_w`x1^ zB6z;TDjJ6*e3K29~oD)QD&nou=wtg`M?_U$oCq^xH7TDbBED#e+ankrjS+=5;Uz8l zlySvDYx!;pD}010+X*-R1Y}{G{EmZ?5+v#m7~z3R=`OS~P@UPL$oJNM=?LRk)sXOu z&xxKlkP)ec{*pU29R1m!ew#CUL7(Rah53W=0-eQ_Vg99ZYEY7QGAOxf^HIETf6bS= z(I`FgdAgp*fhrwySdpWMD!N4?U)t+ITz-?@YW8;32t28>>zj)*_T4yx*PAag<~=XF z?G+`5k&%d&dlF?XWXMgTN`xte-Fva0Qs$~lmBbrtfT-_b*v&-gJ)Mn5vchwh=k5o7 z+&#J{cV6>?^DqS<>Q6u!V?9IB8e?AaEDBYAcK-3?lzaU*iAb?&PL3ASDofde_rKzo z_cCtsznbT~lHXj@!%wdr<#STS&5l1>_4XB%9qE>4%|-Vb<7HzSAh$@h*-oE1b6nOO zvnr38=9l!02?e%qsMBoYekUyDvFgd>w%Ou2&WXD_v-El3OCtVk4MHkAX#rj7R8MF> zFsGE84W&pfB?Ytj4r?sqhXK% z*){I&R$SZ~T}}$Pt4kG((P^H4x{349x1TZ*%F@b7Og}ww%zN7-Zg(PIRHpp8!wWry zOlQsdE^8LsV~a<49BgB+;C0#TJ%yp`(eF5{{c9exUkV+(=h$;C^qsC`XXM(mhc$lQ z8M_k708yhze~DuB7=M2Irp(Oa?(E7oi<^>|-p(zw;vTkXSZrLndhEjbp+Pil^G??v zYV;5~w|bQXB}TroO@6G;WpM9$JIxZ;-e|iDHvWq3wCd-)+bcS?Dc+_1gJtl$MUaY8 z!KKK#jKT3bQ|M|yxX;rrZ(k`G<{l)3u%CJwv#(Ymg3NT$j%k zPWe@gEPcLJtCD=#%wxF)iZFO0I$v@Zj19r&JwcbzZu|cN^_Rhk_dV~ifJCtNnr$A< zLj@?4AKw|ll#2YAAZ}$Do&c#}CHtXw{RkRmiLQWLNb^Bvn3Fu+;n2QL%^h4p#}||| z_Fbea8MgIlrqaU48ow)2xy<}gcRTN>jYY-mU*|or;OoSQ@*~c3| z&#ez%!#r}u%^Ci|PGWL2GFLWNlel||BlnWrE<%HasJw;UHz1P^eFxWPxanR?mSU{&@`B z<(9~MFXzQNjUGtLwP^E3aCE0`H*(*qyA@*TQ8}QjIa!?Gk?wnQ)MjNWG^}u86FzSf zHn!O4zw^suPZ)UBP`_kyQv$+eRZSE<;zY;3)9lMRn_Ze!ZoG^154Xkdi&%=0Bfx&^ zl0jR6 zryc(S^>KS$0I2sTIHrafu$lUNNxVw87hEv@WTWJ~dKTyQ=uq0Kb9X=UXdisx9LT!& zon1h&gks3&SCyGx%=7w>vvF>UP2Lm7Dqh{MC2vC_tFkYB$KwF zmDmF1u)LWS5p`+VbT{|h5>RIt)1Iw~h%jY-7rEiPSS3)eeux4Q*xWLow5;e%vz6o6 zNX9nrBA@dODXcXnkbc|gKVCZCG3(F#)mYRPiO#N{8tc{^JBlCJhmv8x3o!>nCAdpY ziM2d$9S%PO>i4XEKyBq^z1}HK4GL#KJ^mR`Po4elN%PmDKLm-t08oEb1J!FNGgi{k zS#k$;Ptq`I>d#xAAtH+?L~JJPvP2`Ae#vCJBH@k-vCkvz(4W~H&c54Kj#ZI4z;U_0 zMypNWY#l7fVSFxppO`t^?m3*RZBG1E97PH0A`BH^e1DzbJ6`OAovIP5 zfHyPB0@ogCgIhMBBTk7PB0ypMqd8l9rYt$R>a=Et93{Qgi<=@li)OYaj zEzXATE5@c`FBEHODRp1YIiEz|IG&8in|AEMi$hI2#M9{|n#(sj)2lCH(qd)NA)!gg=@HatEw7`VWrtf>=bICr+}(k;PoeXC+r3|B zVXceyN$8pgzAJoodP49!=1(FjOauMN%t&pepW%S|%Rwd#zPbAss2>L~E{YF5b!)3mWqX4b=Ss{UId2sB;XXz?ffa5YDW;CTl|t=j^msHG=2Pt5p1tr%j4!x< z+x-NT0z}Q7*FY_${9)atW>j}Wj&c)6F^^{D8BmY1njd>4E4Y-+WLPg>i@Bgyi)4L% zb-0$AEB9ExSjGoWGPi-AzCm5%Rpv$_Oyq5_=VA?7SKC zP6i2QvF2r2_gn+p{IyR6Q4lHO?F?$t;srFQln51z>;mG%JGKobz zVqa(RxfI^U{pED&ywiI%7x~-kz8{%abuI8nT>u5sW>jaAJi&wop11Uog522)KWtFl zY2sO{_Rx!IWrrfsVYlD;<~eL9=nTpo5xm?^QUle=KgBQiUf zNK@Xg;UDRP*hm~w&(e)U>KCDTVjAVv!pHO}TUiprHWxDh})G!)8QGZ|} z*5BvFxAnkPwZdxk$tqSTS{{+iU&55IefL7wYiwZkeW!l+0>3rZ=d zH|`>GXA3OM9%4QF!5Yl$co_?S-ws+dv3Xxa6wR>;c0F@wlvx@mxZ(uyao9N@Y>|@M z3$+lx)E4*MQJal|wo?{&TZ$v+1;Y(a?WUDpa-G;NmT z*;S!rN)cSaDN4u`mTSNddp93Y#>&lbU^^QO~l_yr8zjZHuh!F zDN#k#+|J|m@>i!NUJ4PpU>flspZ3favo!*k(UEaFUixu!gpML;cfF_Xc9uW%PH}%$ zbAH8T|5rm1!mPLH%ki?#AdK%j?4v)snC+#3G5_|t-AZBZucoA6n0=t(?r+JZPI^or z7CR6pFx!h;1Z@$0NfS?t4Lr$ij>9%K_i&y*PfiQ}yu2~!lB$w%@@ae4LCasAy`1*8 z^n<6Dx8t~;Rxb{ zp)dr{1xC-yvV#Sf`%B=6*FuIc4AG>rm2P^2$4k`?l)w4xMN8nbq6_i!uHPC!0S_{T zK(&;rIKp$);y0wf2x{_yXr?|e91eS4T!UF;gzqvow`0S|4c?j!K<7AVM+HjE#l^CF zt?%lGtKD*xg7WeyO@G(ky6-(9V-UypO!j<8b0B))fo7!JfS$zM6Fn<*o36D7>Dc3} zT9(iXw-dkkGf{j-e;mO$>)O~0LWlv{>muA~Scf+ZnDu!lyerQzMx<2S?BKmQ-Y4H2 zc;aEFr&u(x?lX7mXsE~VI_^;a*9pv!T^f2n3VY^sS(QIb2Kr5pTmW+&3bh#fRB5~X zy-~C*Li>$jc7GnE0EdVNi8?!;%K47Z(*>XnCuzj_DDOHlc{9Fze6`w#D%~`3#0&K{ zUkLMNU1+(GgvZig#mAwjX~I&Zp&*b*=OL1hK*b*MXAE7-)QQ*9J@<#s@AGdV>vQMa zEPB40LYk*F|Qs#<$Y_Q%V#g(~+#W!)p9iEV`8%Ntpt zv%MGOSj8RdE|>|^D>6PWiV*#Czq52l=LzCVky+s!Oaa-NsQW2Dn)8Vw4fwp%wRg~~ zrDN$3t+eS)kFz~Ht95utj{H(m(RsawQ`EKH#=kpu@Z*Z5r+%8PJyJOiV;oX?cwf+~ zrW@qFO@yaV^HlROQ|21Odo)%pXui3w%sI|2YuzS-CV!72|97YW`gvn*J9et{v=jl) zmN!C^cobS~6+LPCN}D`(*eFpT$Z;NG8`J-uL~=oLel;laxBiGrAnaD(YMMS#;kLn1 zQWUbX+;(^0U(qiVJwevJ{;4q$ahLq~+U~_l~CZec#7A!k^<3CKkXAHE z-3SBU3=#pnD5x4Hm|t)XZSe38_va-pXt?>ae)(nB)qucDbD-xUaHhG=>dz`T8v&agpA*R#0PFdIW$U0{0xq%JjrGKaq{8Jw-1dZK}t$NSJvoVxY?&S#>`aQQEbxz4Z$YJCU2ge1v=U0?VV zxM_?84CC1(7eSf15~?m*5w-sT@65|)mLF&u$^9gX4pSc?re+(BrL12`i2;-Z1QxQKX7#*u~+YU zzD914vzm+>;Ap+qjS@t6BYlJwY7ZF5I^1jbL8It!4lOZRG;agBrkxj$TmNg)1@1Js z3MKHV?E~ED90B*Q>#qhonlRxRma)y&lP9sG)Hm*r9}d16PGGmjCV!4YI$P1{5mMA7 zhPysy{>14ViArMd{jyq0{WUR@5lX$ZtsY$P=k2iu=x%_vzEz+)fAsGcCrx;gsL@qJ zC2vPS2VqPNflYH)Z*;nbk{Y zeh*Jwv$0~%7|;tb*xSx*x3FI3f?V(SqZK~_DVums*L#2LDe|_1kmuRb<%Bm{yE-`c%ZDH-tPc)ELJxNp&hJ6c0ab3D31l zr9y44Sb&4R`MOP8vccn4oVP+vF)DZjXAV2I<8GHV&pf#IM3I;Tqo89DsJ!T_3%fK8Q-Qr(tfQ9njDQrf-(=j33uMmjNt0dWr?8JQYd}{yE9|A7~fl z^!>3X8x+*tSm34~L4@6v#OhzB2P!O?D^YU&7s-*Ly`^6LYe&N z;fb5GcL_E#*odEU321Pd2Vu32s@DBQhS?iQNylEI@mN z@5E-WYqEY;rJniUBt<2ZDnD3x&R5!Y>vpi9q#WJTTk zLT?~S-{8k|N_I&vhw0tJ6GE9q$EKK?)5qR<5m!E{Dpf2L{s>S}Nhiy46nxfM6|!RY zE6v=Fca8)Y?`2m3_%pvtQ@1zrfch0+N5pE zYlV4{J)YO7GlM64Fs5Vy88lajK~lUw7hhliidWIdP{e+oMkPVR!6cA2gux{)(+x~F z>qVH*8Z`_X1C#HRpAmIaFfi9&^H=W;n$Fu=6wD^6=F(LD)6YyJSy;A)t%kZolQn76n;rA>(0-8gKyHVVlTFQlGM>8)n~ z264yOn*r`QUzVe}dJ*!oTX&4e%2{qQ-*tURNphP|#Oty;$e-x*GCls!%COq9#p`Vt56kNbU0+I7{~PFD~OusE#hHpfN7V`LBl z2gSR^Tu{ubfU4@=|9Syr{2J<<;+uJ1gSJx^9QfXZ`4p-*X_tMOf_b+@eB^Gr>R!&h zWY?#fU$VozNriDa@$0@kFD@q%7xC#{kCJA8)idTaB{bvd#`02W=l!hNcOwE*JdK8d z#a{`TWYrSJ1-Fk3THdguog9Lx3CST4E6&KuIMxQ5cA`hEr&(H$hq`_`OE`%nO~wRF zmToAhCOLe|82wXGI*nMRy{e(JJU^m_X{TDPIBU(3d5n@-a#ld~v3^thUI_NkZY9sq zMAvIo9|?_9s!?oStkDxx^Yd%oogXzbUyn-!^Z~FSN^bz9SG->vOuU7)BRR^CZ|iEO zFF&NNI7o3pFB?X>3W_Lq$(ZQ=V5t6H6u4K^Q)0e>fS^xfZTf<+M4lnW&+zijHM&hN z^QRZ}Pr3>OjNCb;2 z8Yy7?-h#k*DL5jyuJZ3Uq13R|U(P8`B8;32qy4$Pcrmxd0{5zIPB4*HOa+m!;wGbtYbPHy zW8sRgv80T;9>g{VP9~A5S!l5gr%h9`dE#$)H&foz*DNqj6?EZkGb)NKAq;}}8)k2k z{CyYbJAQwQbeoG3U~JH({M)ax1gk)mX!9}gDn_GHUkv}lFp2T|o$X+}_iWPTw+?WpDc)ZV)9}ngk6ejJvd?V{1*kR>7v-9+NQi|u?^6L9yJuh1QMmccTV>^eFeswzq8JyL|Z)XSK?}@JKEPA%VuH6VT_VT2@`|LeL4A)W= zyt~ufnU+4Guteq9{^z!N+icY$=;(!?(SF_et6BjnqQws9gn3|PJ_$dxL$f}W-Uxt- zx1A~Bd*7%&~_hM=fy(x0Df^xqcF!eXJ=+C%gYLLHXNTrWE(&<;+RL9o6GUKlrJ z)JT8Q<69gdMKskLq?0q7mpnY-> z7Jj~qeWHdynPJ|HnUz0ky{Y8&5z;Bts<_^9l_9Ei5T#tEYl?~IfU%*l*ZZk z(r+(%zle5>6%H}jyI{eyh7q$)Z^Cc^u~NTyTpi5gKk)p_NEfqI2= zD)>3HA-eDF&p7Sp@wyL%9BC)tS5Sb{9_|)2wz3Dw_IDhPgY4n`nflko=|>2foJC_n z(-DQ_Mz8%fj1iaDd2qKS|Sbw5=3{w>i_l`by*hXN+f z%P@XZvIxwucB&Whin_~j#6fv1AUfz^Hs(i)R*|Q(&xQ1F*8KI9A7Tu)O^e@STLhfw zrLbp-mUMVYekW>eT;?5^h+6$XW}0J0&%WRHqR3yHmJYCy(?OhjR=(WelfGv))6@nP zI1IK)=ANHIj(6)E9z>~Rs(#TuxtrX`fvfYDlEiIXf(XbTyYzYh3Tzszl? z^>1RZxJK}7EmUL zQiwQ*p0lnd=6s*@I=8xYR*$_$y|1QPnxJko-y-XEpf|xrpqAnwhjU+8 zF3u#rD2FgL2CwC%5a&J||7U-V!da5Qw~>hJN@`T{N3PdO;?$6R5Gx!2BIVTv3u+Mf zeXZQ@dKiq`mo0WE*k>KzydOw-Li+L`+K66{g11xcnARyWTaM>ZywKKA;DXh!!fzhl zzjN^<@t+G_7qES;yk6%gwsw6=w*7QSm1n~HY*ANV`32A1o}h|Kijv~PxwvrkgF_KL1Z0Z&Y25%PqkJ~?PeSDWkT{@9Vi<07wu*i z!%;Z4qkjWaR{jvSRE|(4HJ~Bh`J=St-0DC2)%?FudG5#tj&YN+D_wTL@jcaC!-$dO z19T}{J`~Y!!RH$BRMu09^4=#rtRYmea9Xkewv2k=uY_r%no`hKI%V!V0Ob@IpgLkH z#N2KXfi2d-vS3r)GY=mvKDM2WRcvzi!r?ddwS`!Yez+r`Hu_vld;!A|Obbtz56rS+ zvY5L3-l@dAeAvUE5juhDs~qE?eI0?CEnQ!2WscFS9n4yV*QlVjC~mzi_)VLpQQUN& z*GQZdEK{R#BBzKmuu}B5%KEGIlf&@t=aJXs=*LbiD_keru5*6lLp}(SaT;61WGk$U zdLw%0#Z|-SqFvIfW*dz;ClH{k1;lhq`B0u*$_I{%fS*30e zB$eTk^B2^~p?AU*!WNR!}Bc#Cs=iX`5gi1L$FLxG!0r-x#%whtKNKaTtIw>YEs z)GOaJvFs-){5o{_2wk1J^Zm+N97N*JyNK7k*H-E*fAcdyd^kRv@zp(>gBF}VtgO42 zK8m&GK(h{nTsvUOGQU2fSaPD!jBSFR>qO0|GBFOU9KvSU@IKYnPMEEVG6>#$YQy^A zd=bt6?S{V1`2vK0JA_M_`2LgbIVf_E%CLnkS~mzLSr#5JNi(ria5K1n;^*g=P_WM! zdmGbM;nPCBp?W(7(;48xI-z{NfekbBQ5QHKqC`ys)(+~ewt7iz< zIrjc&W*Y_=`cH6}*?xKMNIu{=MfXg-I4b|a=I!3hgV>H3b*|UiEzU|`r(=kDx5A;u zjGLZ>zjMeBxExIpL(F(0(^2QJhHFdOlOGx>UHN%q3X#R5Ls`+n?I+^W^-I6@zKyf2 zokZVM!`vs)AaRON=#PU?#QdRL?YvV}VuaZ$;}ybts1bW*a+M=|5BI>K*csyuZCxjK z$%4qPJiT=p{}NEZwum{wY(pxW8TP0km`7FS@^I`bxrp?pL4YlW;_wkcgmssLRi{$L)2F^ zxl>n26TE=Gy~?85{yD|bZEK@2v|Tc>8!h}X02+1kgyoV5K1JS4IA8)Qn%XyDj-R{s z*J$I-LAMR-eb_ki09HfKHzjjwwm>wOES_!J@`qEB1Y-kP8$_1r@%1uP(I5X%vvu0G zQ~sDO-mYpQXepFs#18KXhT}rzX9f)+$~PY620k)R+@BaP2VDD*Y(i%xFJbX(p9Bqm z#2fA-k;6l(+pL&2vr@gT6Y`4Kow17%A67|R=}v7$|NBlP6ISfs90!*xkJ*a$6uKx< z+El8sxG}<6RA|3HPHfjG1At^{0k)MXSI(-Ob11>xF5jPs?2(6RL@M5$DVF(!Z5-D{ z=BRhP#v{P;4d_2CGD@HbHN=NII+qCz>yS8w8qrNvfe&uUis%6GD~ zF}c{nGZaiN<_5N?y7f(QQD$+KIMp4JQUsCNuB~=T%NFvNn5u-t<9YGR_rq_M z@>FP-RlKBb*$z#|lZqK$EmCH`o5wVmfcO0p-Vxx7HOFXCuWc*HVkYE5e7UKC)3}7` ztwqVeHw|`w@p^)oPTh`KG4D7onIbL{nwG>GoVkJ^i)nqk%@tTaBgMA?9DU%d+g3go}>g zy}#3N!i>j_QmQa~Ec5w^9Dor{80$+2(I3`gPn$QVQP{vx<8&3o)(V@L7I*ykFTd=+ zk58=s-Snt+OdKSN+r3A5(YYOVu07Z(ZDA4v2Nhl)EI^FFqZ&npqM=mFJoXxcpKoJX zfW05b$@9|;%Ftg!c|%y1XY+8;+}_*ApAHcMl0AF$XBBVEUy=r%o|F`Pyj0RmclI-1 z7cc)Vfi#I8Y=vd+5lD?+mep3g1jt8lOpUoRyHkdYV=8UKO}x(lb3B~XcTvNf{;d)P zWzo29v7vxLfsF+R$r=FjcG5p{TTi|TtI#Tk8j+sg)frAgONjV#iBpU+J&}-8(b=H> zyY`w!UBX@LxwjDs)90jP+JGi|>VTjwd&TKUo;K6Mu)9lou;-r@XU+=o$?^#Q_&!qR z&<;ikuV?nSizZx}jr40>WH>Xn3Fv-iNxgJ$0Yip;D=jMGrVchU zNuy?Dl-%j3T8OQd<-?(l+>+vJLe&v&*uHr3X#WXCOB<2M6(9SoT<`W9|BXr+NSdjzh7#s_U z7r!^0dAh3<>v}lP3G=u_MD1PUf(WJG=~xAci)`U%g+^%!7J|tQCuF|Q_O=-db__tO;iV68!5`|K8#Y}b!-IU| z^FNbo5>5K(=D1We76QJ0)45+tuRUjUuT_f2e5GLyJD;loE05V1TI4Cj> zzB*j@S*NX&xAkI9wr<->79IJ@CwKpOufpr6)5h!hR|T!8<8<xx8RGoAknj|XSF_?GYtJ;aNA0HwPB9USbC>z!wbLF_nL?Y@TC__g(a zq-x%olEO?c^Ize4*EBB>e66<7sf6=>w%7JY?!8J@Hp)fHtxl-8!bqx~^L zK*>s70$)W(r%-auw#NmfYWq$E=swz-cef>=5#7BK8BcBLZG&T95LRUa=NT3RI^?1bU%&co(Z8zn#y6MxZvAj=TiA9>1)vkFT^O%eH2e} zCZ%$@+gw?aMUUW~oxBVa_)%O1>5>fjxv3MuyM!P!{`z_K>ETp+(wNSg*RaEJ^@Oox zisz`Kq*_tQY3ORfBZZsv;7Ctk6CA@NVIAs2KW7>bCi0^G8a+ef)r#*KnMD)~C7u0H-Bs&ynkRCq?(&JgKXR8%UK6hRK!d8Q@Rl+~I(SNS5})cBd4 zhWF=-iQa}%cV;owmig|YJCt$0DSJjO`gpfY zMboRB%<}`@wVQ`Yqp3Jhb^;S8uY6l`lU!lfm9~D5${b1Ep;TD%JUmIF@zL3N<75C) zTl%5)Dh%eIr1fUZ-{fAVR1u|$pS+(b`uXILZ2IXVyc9LeSp2xtC|GIZbq`HXh+74P zSs2=1M0_WI0K0J6?3z5mN4MS-^o5BE<_R!aa@=Rjs(80RPrJG;&cOC1T^LdvCAyM4 z#4zr0on5JcaLi^LM79rc6I1&*DPe$?{;Ps`z`~b<%wS zB=uHHoJns*oZ&2&U<{9McoU%%*R(;Cn_+=@D$aOLBj=mS zChH%Sz@LnrP#t#@8NwiWk-{V^>(!{#9{&2#DcSE#Puz@)rNSh^B6ceV^yTj6PT8bx z8-ZQxqxxI>*}H;yz``zsh(+O-Zs`uDu6N(C}yqSz-$O72%0VhUN`p>=pr z#&IjNG?h@tju)YKTAcl7QE3g#Ks<|rvDH6sD%U!pcC8ZEY<}<8oQQv#3=R+rc}VyU z-O~j}t|?}&gU$l#h+1UI8j5FqS=$Z$^7tl3PciTAy*b;Lw^mFC;NJF#D-vz#(DT20 zn*}$ia}_SPm$zR1{jqew`ubqbPQKq@%EHG>yK-2&{+yXJDvrN}$t9mmwm_wk+|^?%*30UP)b)H|4bcSQmr5$dqTk zdW#^yfjN`x@FG(_pp(VHH`rA%Y;;}LR*`Y9EmEy1HA2nCl)EoxfJd(=gE57ZXlSAm(W*mU-*x&-JSKn zs{*fz1t^3Cb0;>!B^2>BdMw`K+U3_X3k*tbxxG>sLt&HXUxOiNhr*jPMrm$8<5Xfh z{2YO648$kLUT=^Uz}?1>O3qdnn+E5f@7qln$L`iJ?8n_)5=Z0`R^vELGF|Y}ec$EX z98c1?EB&9jLfUA6&mhN$sDH!hulpoahzsu%EP-dp$L$FkW;B0acTHJXyHrN$SE7gU z@)J+Bo3!{8JzjozDw#~Vd}yYxPWZ*_nGRNpVwA7(fyAS;**_PV@)Q3u0`Iq*k9re|?jJpXQ#;B`E4PbF@H>P#M| zb`I2?mCv!AvBXsp5$>R%dg}eU`*a|=y7VaUZ0Mro{FO99Gs!Ee||zg5~D1O`TVdTAGz6@$^~r{ z)@=6#{wyUiu|Q@9l#3uzo)>uvb8jM=grw8>hMg#oyNh|+mk}NH$UXaD*Lvuqt{?g+ zd=^;>6;zX`^{Ao;k@DpGAX46UhQ7*$>+8_YFynd0BZI1eH}4Jc)MaY(dif+pWjoaI zor4zh`O(rC!9A7%tJ7S$23(~4!?FIMJ5_*@gRMxExeM3(+~nBi+#$R_sOsrt#W#tI zlt;o)vgUnEdp7LdzyT-!K|%KIccSgOE4g7|XeR#VvhYCpq;8lc&-{a=41H|6IyNj= zm5v-Pno$_v_X3mwSm7PgWx~7Ft&9({46HO%2n`&KK9_tJNa^*SI(?9A0qwGWK#zB) zbp3HoN6;tBFwU!06P-R-vO+woKUx`z1Rsz;<4!J&u2iqgzWm8^NDm(TD(OTs6mk(M zk7Hq!*VW3SL8SaX2}94nxw}&$4yh3hv5(r7!G2f}Bk1!6k@D*>i;GD46;**w5GlVm zybL1cqv`YbOM*O*JbjQuS(b>aC9E*^A4yXhiw*SKrhNobr>Q z%a0wKpgp7g7|%BQ@3|DR9x@*oVoEh-=scGovC7x>pZHAfRfIpfMs?#&J8VWG>N@l` zY7y7JMXHcQ=qQSHVU(~$HX$2fsmUURPqKfF7)U=R{Yx-K@jM~=S~E?*_?J%UYr=GQ z>Afj(Za3LP6fd}VdZ#?Pq8W32-dR7v`qOFMgmFq}+;>fuNrBbCFHPO0=lFM9Cb55- z@blZ8w-*K{SIkfQV2D9C8J=BIkN0JM6AV^)wW4cY{Z+J8p|3ImwnOs`0XSE)W#}iF6sUNSaIVP-Q`~JoxDSi2b zZN5Z3qOw}mf@9cm{OJo-ywzm5RdDzIgdMQv=wnN&SfBc9OIA73{t}onz$riZoSu&$ zSwwgNiA@cVgy6fNH|9rVwqG!&e?3S}!nNnRfN*pXDesqOSkxMHYzAw6>F(N=J6T}i z?Kro>zs=;xK8x+SsuqebU)l3A%Eet^bWBETdGKR?O4Um;vPwmJit*J}GZWkBEd=x& zsqg9+|68I$GL+%&wY2S&8 zo5nN=>!AF&uW-y>yzn*R8d}CAnRyc1uMh5e`AaVYb^D$HVqYU`B@yygku0FH)Xr9g zGPZ*XWXd~HVurVd^$bLL+}X~9?eHj~`a+kk1jYq4zI7?u-@SuOYjvl|rpL~aU}LnQ zVP)YmXp_&t_w7!Z`6H`&Rac_hw(Vw3F?<7i&MFvSa86+KRqi9^WWH7TU#7fAq|V(C z-#KV&s9ss)D=%9krv~9Ltqh#hiwNkb~p*}QR~|WaT*N!@6e$y zy!L^XnhSbPI_89a2F~VFv>SI^XR>d}y-1B|@pZ&Yy2W-DT#x}E%{TVtiZ8`o74y&- z>l<(iEHzbPX%KkMY44X7H>06H01uQF6kIb>iEp@JQKmn5+45D^)6Dt}*=44nMMhi4 z5NEW!EarZG<@Yvc^h<1265}_7f-5{-;5_oyYE2eytEBW)UVXC5z4NmJ-xiJOk} zF=XlMWp~t`-2ZD_eAH|)enqa>n(Wj=i+g6@w@L4tk|@S5N3;duCX9)LpQa&0%z6tn ziD}=V%^fY40yVy~td2=1tvJ?$sh=qH`(cK9)w$6rY&9rgQKzJ6=$SdC2d!au1I#&k z)k@RyGN0z$^nvTb&l3ta?VS4}L>epB%D2*-hLXx5`awxj@8~)^kHS*H(4;L!tLEpC zX>M`GY6IYEos(Q-%GW6H;f5thY{PNT?5($S_13R&>RB@z6MVRN=0bJotDOS2eV`h+ zu$v1{R29!I7NDyd#F>3z(dVnuo}6500-wB>0ynO|Qn7!$)EGf|=Jn_d`wpTvXI8JR zQ3O*QqsUt>;ulf8WB_4ku;cr58nX*EE%?0Xw;1wo20Nc5r6A@j*!eMyV(GvgeMsKLpx<%`ro!VJlAG(EU}iESU}QSrA82 zAQ}>JHZ-Uq(><>b|d-S-H{v-3rC@?s*PWgX^%fcAL@s}`*sns3d}G(=-_WA zG>Xx%Yjk-Q2COO+LKuJ?4f>s6V{Z{oYy-AKcwbj---5@9A{-jvN%wF z0o4XG7DURQgGhNLqb+7Wy}N-Ki?4!kOzHz{w8DOGAWXnolV`dexN8!=NYo5{vzNF6 z0OJN$#H+-h?~PaD6{zky0T-LDQw|5N(ViP2^lQn0&7cH@o{*W)Z69#5_`Xd-woUjp ztXbZufYS$=IkQv?A(w1o>m=}W(G2!p;~PLiyC|6vJTPW}h=+_{P5i`b!5s4aA@Xz;-Wxtf+8z(MUNVi{nw!aJoR+0Oj$ymLEk2likD9%V;=}E}_{DO^As8E~y4Uz>$ zuZv*I(n`X6ByE=}@7(a~;+grF6+*A666O?tzngB_Yi%=&_ zm6)XPc~}WHCE4`*Ij{lnGD;w_>39isF#krg%J(4C=51kE+2w@?*6(V4*h~Av_tguQ zX=ALGAFZ)?hIH;%DyUxKG{X07@V}Y~z1A){C!Mcb_?il6J@x7+Zb<3;kbLfXMWScj zz+O?6-39(Fku17-;&8WdlMDni-MLaTbrJN_e#m--{-h|_Vi zvWhk^(pBV)e@Hi337y(?St$q-A$Z_+n!tPl_&qK^*D@|lDulAc47vob{!u%X#)OvO{5Ks&;H={qC8tfN)Oh&Ktuc*RRxS5iSz8Um0Q29*KNWC!>Sb8jO=9-bFTCY zh&fn4ML8`iJ&3kF+GO3E!V-O0rTds$kwc>l$;kV#`UR7Y)GF_{udpVDE9+RF1qi`B zIZ`ep5V9B`o%_~1>x2U4Hp1{JER~ns>5Fz)xqNF_7u<#%mBs;ez|rE`*s|RJVnL|9 zbU{IRL9EyqX6=cTbZNn8P7gLl2M!*p!eTe{C_?G0=Rxy-mZE;`Lek#t)4-H&x>~7w z@@9-VHjZQp*0`xjTt+Sj)>n>Wp_RGL2AO|Gx$v7O4e?)>0I@!u7~fqdZYeOg|}wf*5NV?eD) zN3SjKk;P^H-eeaR;kjAPSI~PFw|K0fDdt*fq0Y}qgwiP#glQ^7U%n#c|b#OBHMnK-mYR6XpIt;$@v(Dgtkq zMo%VQ5WJycLl1*1`nT(}&Y|{bfGPZA%u-Ekhy?2aeQ7b8scaj#=*1vV(9s`c#gWwPE|VfL@B^uj*t%ErRvDLY)EpMG6o(c1vA%vXwv z&5fxHj+>l4bYL-mWuEVmG`ae`4#dgj2j|Qdp)+HgGoI&ti9T9P-%DkN_cx?muf8`T zdT*SfA*%~_((bew@_n{rvW{W;g;To!FAuQ$A?SUdoZ9SZ2fe>8v1+EY_yo+_8M6gG zXw%wsyFE`eTa6E|6mm-e9l$QMktr+L$i*h+7VBaRd}AWm`ud-aB7zu#M@@xEC_M_YuwO)S-5-mzjesaBkLas} zERN=La#{d&4Y}XiGBgJIG!@|FuiG_3&r)8_y=KOO%FK%uPEQ^+Z?Fa}UesR;4D_29 ziWB|8<$XcCII>ejT9WBkx!5pQDGORv*i^u+ha=EepY=7K>qI`WDF5uiK-I{MDZesA zIOweK>ji&Et7Fv*GQOs;9M=lHR<>_QY0TxlavyiC!?XNV*)f{VQMyvX{x-lXfS6Q; zW6|!Z`&fJpvH~ZCexA2#o*Wmz6OK>0Dh~Z*8b>L34W(Z0n7X7c^f~3i z*HV7;1=ftwL>9hC`-~uI7H%tU>cw!?={1F$Qc?dOH}*dU(!vpd7 zwg_03&f%s%y+rjXzUu_0if<@1WX{ae_v_h*tOh=`U!R`8&@Itj4Na7v>lGFH%nb}; zullB;cIHfPSa0m?#Jua$dBgv%pac?9g!U#?d+ArGKj1~TjqBXqtj*zEJI##sdv zS5+eQZ&7PISojD%ANU+9+2~trfK+bbqH5&mIq0OthWB|%*O<3E?Q!Qf!w^U23!_%I zNb8#C=VoF84~W%OS!~OIz?;FFZzT?VGw_H45zg&qd%Q&H(EAbh2on^S#BUUl-O4xJ znWB=w!{K3bqS?HJJM^cpPD7bsDuI_9wZY%*Yk;{e6}C)waa)qR{7S2^;#CPggdODB z@iC)3QtIppgRAuB4_5)1*O@$yxsJcdc@_bAHtjSLwgVvwU}Ds3km;L;B9COPW-!er zi?O<(-k{sJ!W>AlRdsopa&sH6IpcbJI^A7YEM%{YSK6}OEaR5te|)nH{&LatieB3O zXIbfw`Sy;=3H{%od6X0@@Krxkd2-L|^i9&)hJZ3F=l@&yf4Dtpx8^gGGKVK+l`>?h z!HZ9pYhR{j4a&^fy8g9g!zl6kL2$)E)F_qai!Yh>?wVP zrM~1+DnJG>{N;)fyv|Ki5GV+|&=_H@8z$)RuwpSzQ8DexE?qWs4_X|mRb=!doXftoTTdA zJwK{SG=WQ*mn@pKxW0V{nGr+$MAI^r!M+hb$$?n+aZgT~SW5CFxWlEmvUb8uUXy6< z8((!Bjtr~A7*LC|9i@}PtDzevn;md2D0PMs5Fqp|wbNS;yfz5heE3}ra|leTrBh8R zYFi_FQ+Y4HXUoPG6DL8QGCaM4wlx|aZ@_L1??UNHoJ(K!KN8&*U+#IZ>4_SQjqQDO zN~jOXeUI#DuGyQ4g_e(wa1^P*v%g)L@IBUv1SGz!tsjhIuQd~b4zvM(ZnSvXcAN~P z%pbDGgWACIG9vs&D2xf>Y-Qs$W5Jbj;YbcB7P}q}id)Dy_|t!n`~Fec1*`uQ?ab+X zf{Kmypbvd;bK2>a&lsdMe(S@S;~56Q%&jh%7BEqqI?%MmK}S!EEq26@_^dK2so#4) zhjz*726jL-_E3>Qb$H-lfhxFe`X05RcR$7!bT=EaBiELX4{xPbh_0WM5q-=4N)qd| z0z<3D@5L+J=na`Yi=u$#K+i&rh1rfA0b~&{Qr!XAH9K24JG`OqD=SO02Z??#-TP(_ z4riBpu%H)GrRb@xPv+rT$|p3|{ql?E2?NJz^I!71&hqC>(QR@(?&b4B_l$ss`-Q!Z z^|hx(U|Uu?d7nb%O!PauK$Bfxlky*&y4~2n2X_EF>1NP=ymYmA%6l*c!I^(Q2bye_MrMO`y3?5cli4eMkMva@7KA-kygCA6d)&AZM02&q6Z;iKy`;27`_+V% z4dnQjUHpt$!c0tFy(=8c%lfY@e$<{9OX_TMT%-bnW8pK1#AYt&L(+v1!CdO&0jpnq zZr<%?;)AUj-8t;sZQ{=`XqQccb*NNmi*?|QC6-lHt7pANh6`mGS$jtAvWW8_n{{ zt7#de4(6UY>N)owbk5_w4_p>&v{ep2M#XgfcV!5ifG%E28;_-ax#Q9A*cncC7U&h* z@8V$&I_$T|;rIJE_juEE_xGOxg{)hCi*D3RqWo4BP!P}Zv0MEGiO4P#(}`$ zrNWR8txd&Dwb3RmldoRAENWvzoONAw2qc>$HS$$V8gQFuP$#=u5b)Kz?=9R(hdMZL zel?%mvXtQ?fgJv?z)mBGdq;#X(+Ndh^s?*ZUuT8K{u*npPL&77$ud<67}M;9fbueTR19$ELje)OPa-^sDtimHtNlfdJLYJuFb~9@1Y85Xf6zXxxK(fdZ$P=S4)B0L`wf7RE7vZb#E zh$PF3Nv+W!blzm>Hyv=#20Q=Mo!Kd%G4$1|`Rf$OC%>vwaCQD7xS+YT!qBBp);w{_ zSZPitznvR6Lj+|gDn-q66&1TlG+4vB%ZdO4xRe2C-ih2o1mO+RRaS>pnDd?{q1%e= z^SEjmU&Ffxdx|Hb<q5R9s23o`pO8hb zw(g$qL~SBK*1SIwpq9)5&ZD&0VK_jM@`RdFY!22#eq^%mkKXrV`IcVy7**Tk8(E(; zsT;^gHI$nqk8M(26JH~^B2^pA{wKc!R1d~_dFpP++TJeWS82Zx0!1_(AU>9TSZ;t z_SN;sgkyrvS<&&l3{|ON^j{#WOCQkU$I(T3s(Nht6!;bAWXEO-ReHfm=YSU-B^8!| z(eU?;krJC-81#;_kZ8++EOwi>0et>UL4-Hw*%VC;6;`U3b%p^P@0)|KDxBLnetx5j z$jZOH;zOwbN+q_u3&D1Hs2+JNFWGhOVy#b77kTrhZf9zV|4-gLqrU+?bUj@%@o$L# zEVMqU+<9@W7Co3CN3HhU?v3&;>{xuB(B8IF5zh>i#}%Q z!L|_Ezw(E(o$lw>yc2S~oXdSg{=oEIsAFfa0`AR}DzjN4#TLa`m<;hXNRaN+D8Cf2II$ti@)(*ZP{_pO->BFOC|WrchL@KwPn<-69Qi^e zk8vtLQQ`I<#zqlWi)gE_bWJ^cY7hC?^@q^@I+7wvX1-FwzA}MQ;L|5*)lxPfDrQBU>67pen_k42k!rex$LQ@W+lqz$Olw^rSm459d) z52Lis7E1=6q@^GxW4aV!jwbH*Xi=Ggsk}9EP4e$ay8(A7t*lxr@8W;fJ^qP8G2Nwh z5zsQpF@y2tv;!wYwNN{|Ebm`BJ0Dnu8k1HUx~Arys<0;Y zZXb9VTpkWY5aC&TC&;^!^3mnXuV#m9E^Sn%Ps3Nmy}MzCtoK&M!oT{Fk7&djre!i% zZo9k}$V8aLEOTZ2l$9IkE8Yo-HS?yWB+IkuRA2zZFOMz`Z`8uHuJ5I9(pfj``*7R- zL^DmVryu(X9Y5b`Q}e@V5&>?^yMZ;ozax*xsIt{Cc?6Bn>yy&J(K4lf)2{K)y*u=? ziWdjwT+4aFDMag8ld}CY-e!H_?_)8JI5-%K65k`YJ|{Ls4shKCNIeoUUssMhN7Oa0LJ| zy($?s*&zgDpG4CVW5|HZnFq}|&dP*|Tp_|Hc?Z|6xjhtA;o`74#Ud7=5siQ{|GDr# zu~H7u3-^mY(4x;wdSD3buJAKOBp2qHV?EQLzXQyVbv25^vxX2agu)!8C| zAVyQbzPnHiw{Ub1TTIY?voFiUc#H8Xpqb-RURa9Y4ixmi#oO2PjN62RMR;X(afue1pU<7cw(Rfw_&&Z;7HM>wyIO z!`(b=>?`PIKB6$Ug75TQr}Dv`Sb=qRGP$K6!M(Nri>$8>i|UKo6%|23x=RU>mTpEt zMY^Q~L{M5%8jc{H(jhQ3(n^OgAPv$D(p}Ou%*?q5f8TeX`#ks0`De~KYwx|*yVqLp zdOh0H=@Y8_Zy?Wh`y+YsQcVvcA}aCKo;b;Nn8bKpnh#{Zyd5^8e5h$#q0W!hbGNH& zzmy1;Blnj2)gG=i4D+jQuVWJT)JC>tlH{mdv$_Dd*YvY6HRH7ev{uhupn)wXQ|4Fiqx&L_X z{1gX_SjOa-pq@aUj|Rd4D^a4dO^Y=7FU3TCMdB{rnf=4`5Y;_Uo#g$&btVRZ0J#sr z!+ZEyZ_*a5?MqjZiS;cd=LG&!zH&VAJu$mTWjUW<{(msg6R2HKqdmu<`#;+gV&+C$4^q{M1%(8=Gf4!@M^ow$;mf>1nM6V7iPa6 z(7@#IViOu&2G|e_Jm<+u5VHO!J>Lqp{g3oKr624+>3QOZL_TY~UwQ8_gUXx<9p9%6 zjTQB=!xyutaHVu^-Yqhz=QgX;qvEO(NX!>IVuBrve%KzKbkEKZ{6}wp_mAE_@|O24 zGrm>VbtBjiE=UU2vuN+NMX8HeUdx9;m-TCc`@;WEa6eDIPQGQ0z&cR-Qzy=5g!13! zw(cvjd95Lnd}&%$y6-29Nn10F0WMf{SW0T*YlIKoIzRg4OiR4Cf%MCfjH`ucHJSIptd_1qkWXXiZbEQ+w|rglflMx zh$QA85h&F34eF(j+-%8y{CPQ%FlLv#3j4-RyD;kbB0Jw=q8S=gD8;iv%@Fx~H$?FRG#LP5v)gcTeXMEvZ)U-{SzH6!7e5*P{TBk&U6k}y%sh0{&M+sa@%dc@9=+Y?IMh7`ONP%a}cG6Y| zRWPel?-|2o=+4`hYmH?!Ip>DJ<{ywu!7-jMOQZAQ_1xSy6HNcO?Rd9CbAu0{W<<(r z1DKrG%)$4cr=m%Kp;+?qX(VNPV>smqn5zpyi zZ9U=vR~%ga!sS8CmA4@(d)ZyrhYA8E_4L0eD$2z-c;q-NV$(@qZAJ&Gr)`Zi8YmI= z|5C2d`h|yqNZ35{V|{N%-l^WzTw_nj4Y+lvHSeUxI);~O+Hu7}xaI%wmbQ<2OU#utT6!UVGQIIjZo7XSp9-eoB# zR=eO+X9;Uuyl$^3xRfq$H~+|*rFZXtiS5RDF=fcZ&<9y*V0X@_Y|4=#$^iHIUE}H%#<;dU#lVb|mpwwEy;fpRuXz-4`kNMu$HXyn$Hn}+PMYWIUeJb$YvDsSdKzG1fbm*So=nHy zW0PdsVeQu1-{trr@f$xp~e|jls6^-z|=kDQXhN;!jp!Kzww6y32B3K`>ZF`?Z1cj?g-qHAD+|8pxbJ@D>{ECTa z%BoX{?UT)oC(@X5CiH1I{{Oh|6NttmAmbZHjg{i;y^i;rkf`9rnBf0MfnNjfAzGC7)rZtF z!LKjKQKD53f~pLv_vyi6z*PRx1-Q%r+pEb_tmxk3yB3ruI-3-1m;daBE>U)rAc;7*$@yEGigM56_4W(%@!Y%d_P74Q5cRoh+3 zkikl$BpjlD;*)CsNedcDkhJjl@HXU>%9C1u|L)2u9Su^^x>^ppk~unMs}hFXhBXfXAIoio2t6>HYZbdU>vw$Y{0t9dEuP znk0+%L6PrGDWJiZNBG?khQ85Xx)FKYZl%Inc?Yh0Y`Z89F!0@uw*flQ7`<+%B`{k=}`R`+kY;yS#IIUVFbMa1)xOSkpr0CY z#^tN>`q*`-*XyKRLH!@nR7dLTA~RiG;s>?gT5NL=c7+(AONOA{npZH_UQQq(P-#BrkzU}%dVxOvzICtM+ zC?1Pvdh)dT3uj$c8TNRm5dlx%-yT@BA4E}AU3}z*Kz?7;4a-mvqP)9`9?y;ZK6sYY z0WC)IF0>f*(V)*2K>`bTQQR_=$GqhQ)sM%f!>_xk!YpE5vC-S05E~j%GW4q}jy=~R z;&GnoUl_RWGW;S(d)}nxFPuKoU!uv@Wa)1*OXVpb{l!UKLLHFn2OL1WCP8;^O9$@A z!{EuuEC5oc9u6^kFZNhMbXP4$)?cy>6LlVai0SyjKM(7=I!^{1@T(BZ z_u(t(St``Q!0+^>WTgu!v)`~zl+ACLol|<(bHUn^dQmh#$arkO7sa?k)K5*b!v{p1 zQu)#j4hp0GX=%fIQF%+^ltP!xSVrCA?=_;zr1~wa8+GC>5Yseb9O;R{_V=BtgZ|kB z-eePT*rk^Ajqdd%0b1~6|2s6>VahueAzf$Hi#U#tPSAx6y?%-oO68rZRR2`N>z84`h`zDLn)X+<|U>{+{KIP}g zCY2HFypoSefQqLW;dw;om97ri5Zwye<|hz&&R0pYf-e5~vYX4aS+TBD?C{E>2@(=) zyTrbg*z*1mH?j+aH&xCKkWcz;B9Ac9DJN#ET8-v(o8nX(9~$ENw?FaUkqFZ+A_Wd- zWZuNOnjrfr@=@~j`bfer3%Z64aw64?60=v5{Y$CDR|9@cnDV?0IMM3}Q|p1>RS1j) zijDY!s$>i2O*_-!B+3kv0CXc(;iA8i^HE+D3kD5M+AqG#qBS0ROs@`W0)>cm4*EZ` zXe)FZG8!`SYamtjQD7jYFqP>O?SN-ZhsNn2*WB<@o-mUs2t^xz_i^hF66SNsH+neH zZ1e}cT#7FE>X_DYYy%z!B1564hr*W2FS}6q(l4zojlZ#eR_%tZnjEQJ)*|K5&t)!r zWR;`>)>nyK)^ogsf{|K~?tF%xI)Ecl0z=gy+jdr@qdU86M>h%A!O@YlHWLN^KNyxaO3U5L>JC`C#EC{eP| z)g|xD_PoC*^-~M$Kmw;?6=p+Z?CxkU^X_^5e3sB9n{)S7>HXdqnDdL~<+_5XQ`8I~ zr2#!&v8x>}sRTc}^|fO`;lVmQDC|-f^8ieB`$lB&o)?SM1sfLRO#Kdf9DFPAd2Y9%{mQTvkD$sn7(ur z-b2|elAAb5jt5a6y8YIa&a#ZNRw0cbA-Q>7>ynAeGhU4ipWxJ8L z%5cNF%qlfG#PRYF)sdEX%{!MC zQnHv*j5<&V`yBFVxy6jOu@F;(`DC`*g$zGU(&@V@JS~{?nkShl7)z^SCzzJ@Ojj6>JMn(T5`W=dzLKv()#lUKWq zRBFQKJgPzhOPbJ&OuqZztF`gw6?_zofc=jN)ZV{bQKZge@cPK7z;qb{yslEkutEDo z3w4`yjA@(iv;b*{HtKa*QNfmfziq!`0?WiC$*(}ls{wCto+i3f@u59#R7X8|k|}vs zBe;CBCp|$O)z!@7a#V99_4Aan+X!uAMl>qDWfDBKk=b|L<$`jof(_(?Y%g%*xb$jN zULBY#tpqP-*`Yd&m!mIiF#KRIbYSDCbe(Kz?bcaM%E&oEsr)ZMTh{7=W614blp&f# z^u|LXS$eqMqQcL|FVGrXg^0SLOpGRgoZMqO+h6E<%*T z^nf22bMziq2wOK(KsaeVr090Q4U6+CFKPSX4p-0B6%{mB^C`aLrsdr^Gz}Wxd-rF_ zVy;kntN-Ya=pZBOZe0=dq`HuQoAdQ8PR0<#I@57E1Wee#0LH^g_Di>ttba#id;#j6 zKqy1;M8@F=-dg?!St#CNU!6=V8_UcEz-EccZ; zA*CwJm|W-(_0NO1GdXBL=6>zrVzKD{qO$DL&G06#21o2W|DI2oCj`|0`P?K-4 zuPkE=r6PZFPx7itVM1?85PHC+<7t80U)(tbmcIFt`b?}CX+B1FnKKrhr{TLp0&@&1 zBfjq}&cwB9O|YA41d1J2rf9mm)TO`*J%ViX3K7zT{w5bSu&nl&VlhJWV0qt1xLnV` zyXpIXe(G)**TaYI`Q`j^DX5$jHcMv6S6zQUm2nXa@)6|%*pSN}Me6dVp>Cta_i?2? z4j!`N;8(m8&Irc|{rm8}PrEN(+FayH;=2<0sb4?6biyQ`3D%4nxLCSM$d=*cxd~_B z4>I-HlA4S@9>v@>K$llA0dE8_Z*L#scrE~k;q&6G7!fJe3}$WUEG`Iyi^;`t@>b9e zK9^4c*qg?Ley=he5nWE+$31Le1;a>IP2`#dqD{IHW8egg^2vv^+nj3)NBdw10K?02 z@U@QbpR3wQOF4zP9ZyAlZN&4$j_FnMooRM`+ode{L33%Qph*jV&D&zzQ5tc^gi{Yq zP&c(xIVD3!$Ce+~9>}6dfY10lJ>`+)`l&$6-D5uT=a}KN;cs66N1m6M%TJ1zfO`PS z>&DGa=_6$*thCTgX#dfMpw1Y4dq05>bV4`bWknl!$1Pxc{mJW*ONr4ejlDxq854bf zjqGJ*E`kwDJyuANQbZ$BoYWR6KH=FO_xbn6dgI`pvHBoWxFtxPHF`#k9=yQMzrpv< zYbsDD1ATIk8Tc+YR$pAY;rc^x=Q_-@P?o@y-%>ACjSDI5@a^2{=t-G?*L~+7b?-GO zeAf)1`2vUBdhsqxb+_!OB)y10k$#chh?%C{AG5Y8r)#fmSi(hX9RGOFt>H)gT5>PE z6z7wUFpm)_&H!vRa$Z-yn{fRz3vF9E;4vnQjY~`~ua^XE-)t0C&mr!BcjtTcq!~dbSFqRVccYPEO?_! zWiedH_V1S)2&WF0zba3bBXD?e9%Fs}gAmC4vexj!_fDDyy=lJqoy_ga>TBf5<1&4p z%$ykTFAe<7-zyUNFPw-xR(x1P9Rs0IPQ^9Id2*6}F;&}!a}Y#JkC`~&LJ{uz4CCw& zEi_?SdXzi2h|U_;(;eQbur(tE5uID8)p8 zP0lIg_#1kD`LY^d0>;6hSQ=motJ@(w^^e@)S zdbb|L+h}xAq#ey=0ZI!)Q}PAqL+n!x`6nFNLrB#ugxppUjqTS!qBON;k`F7BUpWR~ zWC-#>^?tj*a%t=j?)e$pdEb}I=aaPXNz!WE*iH5oDbcVSz|3WBNXhGgpG&-a_sT)x zZx16PV7OcN1241;+xgo~jt6@(Rwr1O>W>{qKHTd3w@8Gw@jy^mAEF1oO_a zvuB}G@!=n&Rl3Y4%)ZC=9CtCAeMzkp(a$gO`yjZ7@RkRQA4DK1B$w4RWKof@WZ({~ zu865Abbo0l>J>;dq<{4QG!SP^<9abIBB8xQ%^5k$0e;J~e$4&i^YfWydx9T!v26Jy zK*z!bma(HB0ar@<0(E|3y)v00!#4)5ew0fX;`HJ7yqcUC1yrQ;DtH>npi&ofY4PT4 zWyOs7-RBRtHh-;_#a6D!wNrernhO<~E&sZ{p&l_aTTw50dNA#MP(Qgd&!ysRm& zkN)>DRIwbqAOo&fb+KjO$NGZIH*!WS!#A;j?SkGqwI{`KH{zkIbrKJ*UJTgzn0Rk$ z+2A+l&Jl2`hPn@q0c6bbE2%&~Lap=gHCM(R-Sb=D+lQ3#ZT0yfaQqtq(tvf%v}!J- zNs`uD92uwjXZ9`?_ir7e`@iQ*8cH-S2r9g9aVfDgTBtnn!KRoO>-5=(T64E@$C&9V z=b{f&#MF!Li-rBe6_8KZ$dGl5sVk)XX{)+7Bdi4fhx@N13DpzE5>|Mw8rpF!Dp?Nw zbU+zT2WY1Wp@G7R66C~~O`@vA4(bx_Fxbrg-4^fxQZX+doHT*s%?ez%7k#^0ig!d` zw7m4Kul~fh+xJ$5bZc``Gzlv#X_mSq7oFhOh}hVEI(7TIr|%x{n%mbOwh7>Pgj95+*uNK3(5Eb ztNIR6>t~*dQV9PemrfBfw1^d~bun|~eC36C658bCHm}}b*Y#g$ZdrNC>I+!WzVzm>4En1Vo0alJ z(e)`=tlsfeS@roP99#f;D*BE}Cu&Y%wLSw9Ug_17cI8d3UHxC3@vRFiEHZ7`Lg|rMsu% ziv;UFhqhiGT(Tn7r6bZ(f0$wYaYw-B7db6MZkw>V%+gaFL`M14JA$Ko<9P;GqzAXa zr@%0nCP^(htabojL_iJ2Bo|Caq9@Tq2-f?uAjF2;jsA}Kg(0|-L=nB`Pif6qFdzbi>-4qB!(?G*)7Y6WuVS?C#z@4Uba3}ez&a-dd z;P;;BE+&!9KX7r8$18~X^PuQhOt})p`j#+2LmYmTUh?^)rOnduAA7Y@>vu0-IJ*KZ zZexdZ7evT#Owy&|e|C_?WShl5ni_(=wz$cj1q5R5GStV|xq{y_mcFVuR zesFT}Vrg7x#N=HjSDFGr&^r}K1Z?Rpfu3p?U^1=!PvYKlX&-~O0zV+!Y*l*K4 z0G_jOW&wJ-cOkaQ-6?p2oYe0A0W1JyL#ZtRea%WKMEP95`}<>~ zMhZ+*b+T?1=P(iQG=6hdJTsU!qNKo6dUrD_`o3fF*L}hpyZjBSuah^d7t{>w@GZKN z>{5v!g3s8GtKN=JO#h66WAZ67gb9}hNeC^}Oilsqe);fWg;uqvs+%TIcDb=E6O%`uCEC&S+_EIdyf<P!qSmg#N2NS?4F{SyEQ{h%{Z=WI}cN`7?*702bm`o+;abz02Fx zm@T%=!EtV4GBi;l1&aNmypKEgWj9l9Rrn0l+u{&_AwlYH!ng6~86sc@D{0Kv+2s2K z=s+|DWL|I^NAJ}Vhzmw5y^Q;+ZyW?JO`pMBesjt{x+N@PV0KR|B=fnmfN9FRe9m&s zCS}ftaz3Z-x2>CX=oCMGV~8bbT#hN<6nCkUd@F-xB8GL>52PI@$NOwdTZR4O4z&Nd z#-1kK#oQ91^$B2<>#?w7zko)7enD)ryo#`rB1f-uMy3dfislq}g0tTp<+gWsxz)w! z&}y5;Vc^M$OIy2+)q}|B=sX5VSBVjVaFo~wyW`|luzf33NJz?jKXhI~Qq;n}R`Y0M zqSVmJD?gXr~oe^5@s#+vVf^PGjina*fYR6l(t>k-{ivD16IARW$pl{i% z<&E2i%o(2Qs}cbi7VLoOgbGb0LxSq^u8|-CZFq#gk zTQFVt(;6M?55r_J0jS|I_vZoGBNPvEdDwT;25fE?m2Ks6m`B>^L>BqhvrH~|{IQ8r zt5tiz8wQ^dZ_`th`+3C=WRK1~Pu9ow6~BkM z73&WvUTX~EUS2&ujXwOr|9mG>f4@TYJ&X{er8j)I(ly$$_+$}eJeeGwBeba%kP*qa zgYYg6<}=1xy6Z~q1lA>YTATrew5e~6p-)w>L)x{|+BXEL$vyHW$QU`J% zKAP_Y<|$h$)s6|a70Ta(of$GRq4_S<4i**>tpJ<>Gt2MhOlhC1MCORB2q)LeGcA=2 zyfTc$j@+|MeRcv1!D&EM!^OXOXWzW;`~mSK5{UCKC8_s;4SKakVoEf6OjdNQ!PD{YQihN-G%R9 z8%TnI9{|v_4H!?Ni`LT=_xo&J>Z;+BnqA%QM;^T=6@A(qfge-@qa>YNwlNKo@tz63 zZ$zhQ(#LC3MOzqf39>k$7k?0wiP!{M0qR=t5Ia=|}d-TqqKo+_fS%(SAfyS^9m7vGp=u|z^ zwa<$~x^4`ntJMYuZ=7UYo$c0~iK<1yOAky=Ofm)+ewSoFAE(R?a3lEp*n8CY7BAXO zabJ@Efy9uOq$I4QdE_7AedB*?5T;cjfn_sD)$do>=ABZxUb#qpM>YQ2cIu}pFWQgQ zx(Nb`ncIYVkOwD{9<%y&@BY_Jn4IznB8>cg==C4UVa!QrkIrK@nHpE?go1OD)sl{c zjdkWoa>xTBdr3sziz`v&HRQ`jP4@ZP1TB=(r{yiaME~i=-8R^MU+tpxk)xe3PC7 zTk)$UVhfNM^w*RsztQA1enC+691~M;n!NOK(s1$k9*gzLcL($Rk`;fivL#lXUeDm- zm3f|~t>3w6L%$SE7Wj&cCJQID9SCN;oL=3x?~T#B7%X-BkY~h)upOAl|9XUFm!=)1 zQL~A#SasnZ-4*XTe*d9P&_ike{c{>PMOoBci&V%<2dkM>LE69#8z8$0NW zUDe0Wup3KM8Vcf%2)8dbW@wkpFngEnil^FeDd!i1b7}S~1T9tljkeP~dqij^@<0es znM@%}!M22@D9&mlSSv>~DFGP#_-(Hi<-^6^1D!9Oi8pzxp%w|*=iMgq9c^PUiQG3l zE+v}h+UEHrX`4~sT`eq$vy)^qUUh|#-K^Fft|7Kwk=b;8dTfv)F<411#@VpJ$k2){ zrY1kca?^Jaw#f(G@klOST!Z9%iu&Cp(N&_@%BZ_hvKWb1jFFh(g~=obN==6+=^D4! z&@FInp-tj}df9$&*)3VId=dL~k2ot?jZC>Kx{neRkqYq}zau1jU4j$Z!WREDy49XZ z(y9tdTb5=ML$mVrClR*%%%Aft5vJm}YXsPqL{UQoOc^%cGpI`FoCXrz#uAZjPTWVh z1NL(>No6UOUyQc~CND1y!&sYm7zPJV5mh|tQd!;4TT^s6{ZyKoFfYA&{j&uodk-IO z%%Xl)GhJxkr*%@_!bu!~h34BX#z>VeZhAzw|32{ell3`xq}k_cSHB#;ye()l0(ZX6 zm5Q6$#py`NNh->~SXC}#KJd{1Z|T^4nAgm1IGYDJivTIaCDvZ*7+S$%64Qg^!S|o0 zSuJ+-w{bVOMw@T?_?6EpuMhjCRm8Dv! zLze|v>q%edPrf^QE{0Km{DDt5n1XGa4k%mPl6McOP+f=jcb_7%;YuK(xzJAm6b!n8$f5vB5(5r#-nJ}_k8|54g;K6}=h!Fx60324-g`d9 zY-u?Y&q2vf(s~?GlpOnIM_uE5jB)%^Je=X6wRq(&{j0hn*Orgaq7zAkVyGb443TQg z{ck_(HhJ*&-AQ!6)4hc5CK(le5N7PP*L<$T6c^UdKXdF>4t1G7w~D|ySek)Q9Qre^eE z1d;3-ErUhCEE}3=4h9skUflfrz!_?!TF;#Y!}5*$tdxCbKE5CcHe98C2Y;l&Ord1@gEfDZFAx00 zk`^arpU!Nh!0{yDFQK@D+rGy%W$CiVV#xSJR&c0-I1@!AzA~QOTRhlsaoTJl8tLps zuJ3iYOm`Nc-#SxmSciD{X9MSPH9dMI%wcR2Aq?Lq_B}6%S-KSj986Bu>gw5n9S0o49E2d*cL?(C@!d^Z=;7Bv%yvtfABUaOha}Q+`jToXwIDD z=9q)oF7xU>-VT$Y$a$(9>AX~(^J50x`A&b(uhmbe)T-~ysMn%r!9sP|JAQ&bCyAnd zI^CJy$w#sN8BR@O96mJ_pRqEXNLe`&e79Er=Y#5FX+3X};J4-TJ!zpUX6pnyF>&D` z>Rfk#2Os-L4Dd!f`W^E(40A1;9}h4;7rQ@xgOx~JnCEDSn|^-Hd#29R%=2)Ahhz%zM@0?T>HG%^1$u8k4JnW_QJLIwbsg{*0i+Z;l4% zV0kHM5Evf^)%qv;&I!FaISH(^6l@Gz(|M+Y`JC*&%L}cM(D_oeNE~u81FqK;=s4{= zw?6yh-_&l|dq1bUI@sQBr6j+oOR?5lbm%FgQNW&1Np|sUMKz)7w$!tYJ2m#@`M>um zd82wAy=T%YoQ#X`23L%F$uIo@r^1=BiwIDE%`^|JtpN=7c+Rr{dkWtkmR{$}3^6hL z9{z?8a}w!?viI~~W#P!|bsa{MP0{9B5T_6f%q+n!qKPTbqK9>-fbAzPLSYhG|H6V` z@mm7Mn}^Od1rTsdHZNRNy8r|_LX^W$!S5l=Dsi>o9Pnx(tFyZZ^VKa?ROOj%(!~#s zv$92z+qaePt7Q$BZGChf(3w=6|2|kyP8}*8U+GccL3R+BlHE>ceQ_5R9s_NSm2A-O zHbq=TE3jC0X5#(p1@C82!ly;l`R*mzksAlPjahbWHOE%#*=CPcdHw#&uFpxMj)%eG173gDA#{`qd(lqa_(VLjw*xH zqu`0=rm#)AxHcv6=N|{CEMi%zq;x478%++9hCe!m-{X2qV$|vsyzVI`>-Z$`Y+*$E z{Nv8#;Y%;_m{hTe8cyjOQ6h`>Bfn$}g%ZAcIo$lhH9|SpBX$(ho}+RQO)pW>;ddsy z1+WEkd@s^jarP<>+E~$5OM5B5+IA4%d%&(dRxxTw$!ThNGY_3f&(1kuKlA(w zr-o?TM=!0UwsH1hR*XNG=(HfWw=M zIvp81k%H6>i%G}$31L_WS{;G3&x~knOkhwZV#LbH{{M!NDcNolcPwUqm~G6}Fbs)I zVA0kZC8^!1UKZCX2uDdf9tEhd$zxu}tn8%nuXrM;g?*VcYOlG2j@eNmOc*U=a2 zM)1Sp>|1>_4GV#7MbBOv{8d$nd|1n-D#&OXHPk20JoZ;dM)fPLJx*%P-ldGk46RCJ zZ2?}0xCDij{v;Uone?JLL?fdC&LV>jy-cDy)h$sK+=E|jAB1MVQGI+B&R4~<;OjE z$j}4&EQub$_aV6Bh-K=UxIaVrIe2!>MFWjDSx93 z)6#U>i~r`KxiPoBEr;ok!npIvQDnl~G3}VYLlgs}Bba5}YDhn4y+oe&_`}ae&?!E= z$zq*t#=Zk+E-a!y5?zIO?VcLl3vMg`{*|K)4XVq52D;)A$x8Hr2Y?tar*VwO-={~A9Kh@3-GAiFFAG`WFX0^NfQmfao|lc{#0u%xy|L1m}MRF*K}4ilDu0PPVP?vdY23Z58-wE9Zi*rhXX`gK<*xU;h!0n0ny(8WZ{%)*&?8NsrIEjLRN z7N^%0$*~BtT5*@H_c8R7+BV`-GmoZ#?g8YiS+eY@hu*( zvm2jdrxJ)WP?CgUX3M)5xpcepw!>NN)RCXwqid^j-WtP;t5ut@a(}; zQgohe<`d}GEA#MtqO7eLi2w;Mew@H^OzquUy8e2$qxcT^mhq8-F{ZA-5d8Q7ihc<^ zXf|bNUqkHB&(u24JBA6F8m-26`D_ev&2UIMRK-^gs@P!O$s{k zre9*^sSmqe*}F9X6Z1;Ex9j@7Wlc|*mQq-Cs+*3;YdEnMhDraWfj6YG&J61Uf8e3X zjmc46I^oy3k4^lC1LNYGd=CJoD9kXq@S~pwCvRODCoTuS<=2U(=_%)A2%{}z>#2f; zgy)qUzfeZie90lz=Qn=7FpzIy^B`T*faP4(y7g;Pjh&5wLpL-QEX)^!iR@P6SKGNQG`pN4Xq4>R<>XIK$Bt`GyKnb~Iv#b?ch z^XD4l+2gRit&t|u!B#2$h-A!kszpM_7d`UAMZonvujDDJRFx(QdF@OXU$xfi;;s?q4Sr%1*7`ny3?bmh!s0!n|n>I|U(#j{MF?Q;15 zO)a(^M2^7?{9t-MB6aNX4dWO4Wp2 zO341=+Le&nYptvu+(R>=gs2=|4@{i5<}d}L_?i2ZWYMYs$^Bg_e_PJ*P0t}5ky^-6J%rgGpjjTB79#yp#qYcVTIsGQxB-VRy z`^;VqwsNE)AdA zooiGR=OtR7`2J<+n^OoU)uWRA)<;)a41^QvN4ydo2p_(Xd|0{=?$+U)^bgDlUF0z?xXv}4t_?AZM$^j_nN7kR-l%bQ*?8QD zQa~;gD~75E56V7!<}*{ z@-;kQT3XULg3IDxR$^nW%W<6omyQ@B8v~9@CbZhrNA0iQaM4=iBq!_!?#L^+xGYam zqjL547p*Godb??r6m;XG!qh4_CJUql!%SaZq>YKsI^An0J}i_qx@VJDlsJg(J%sbY zk;1|p`(M(sQ0+G8nDl9-)!pL1vZK+$ldbQn59;+fD7%LehG7Hgi2LjdAMWlF=zj4` zsCDi)5YKVJlcykYy5Ip9JpN@Mmcis3OIUb`~bepNETdZ+US1U~Wjd zCqCTjL#vj8 zt?udf{P7?q&xaqMaEMDIGC6h*vOG$kG+)L!-9ZTMQ+-Si%$cxRbER+R#toEn>ree) zc-rjzQ8!~?&Y>!1)>)masxp&A>@YBr-oP<{HxFQ(VAfzak#wZ;KDdD~T6#T{t-Sbh zKv~+8|4*?~Ah>r6u2EIILBIBu*sjlCV-a1E{iZcA>E~3e>f)2V*_ovGwna@Qb2WQ; zRlex(`Q`{vSW)dUhs9$%`$+3_9hs3=X#107`mC^Z?#DbudW44|>ZKpxThaE+ZCyAvY0kN*W(q9jl#zjM@2NkhIyd^Z9&2Y0C2=s{-qm3aN`qF>SS z#%|U4akrY$F`W<23x(nOdvhTU)wd+|rCXzRL$OROaZz$CPl1z=P2hlFgPexyItLhp z>hWRjdvzH41;N-?qlpYw^EsDFm}1p=T6;M7W_CP`nt_o<)$4qB7~3hJhBx+eTl|PS zu4-#@v#+?8{p#^c#CnDCK)s*^B0l6L4^kKY%9#&ey#A-HrSACLO~Kz|7q_^l+O3b~ z#@URsmS*j$-bOkpsCN6+zMB07=wtgdI%zcLxEYn8=_bl2U67TKNRCXq@AF@(oWh?N z-T#1RGwJoA7$isGIC|JAX>7bwH7&hkdSD>gIKS znd*x$h*C)lG_FHzBDjs;ozEo~&P>#e?yR^A$$v{rjEiGTH^|VTUt6Olh-73Lw2i_Y z$EH-e3Ffju#2}@U>m$*ZUjG1-QzBZqMjA>4C*z{Fg;k417;PKkz!) zz63lvDp+PbpgfEp0$;s?%H3DHhbGSh=C#lLN{eo-X)r(|@xxDR6=C=fU9jYV@#N z_d-_zK#b-7Y&3H)9cHhnHf$&MXxQ~i=sB`}fcNXYNXNJJ57vlJG_&#cCjf`XjH4$< z$Gy_x1%aXJk{szq=~m_WX@aK>T7#tkkme>vr-V`679{j}S=?(f<{ZMBOJFtb-bYf@ z*yv?Ue3L;&Ykgr%XlIM`ZqcZ67REo{;{2rBlyk0R0I&p;vk4p@Yoa(fN)xr5%bEGl z|IV_@?`_-0*JI?-FSOqV&s5GZiwweH7W>`DU7eky7RTGC_sXR~_TG=X$qu==b1Bn7 zx19JdphYTkfKwG&=KurUDfPM}2;DNHQ`apvy_c5H!Zk_k^wR=GgpGy6F!&h##SrhT z+EetS#oV8RAKHTHCnYvqG7ArBWK;)Uq0gzqWvvvYhb_E;MZf4iq>Ktz3zxyiegjIG zY{qalVW+yk+Rrw>r4_RAQ0$*xe#S|t@w3klzAHo0$eoGJbL`FNy0NoAM+u^>*!Kg`7Cr`3kI;N>e4ZJmg(rYS`Z(d$cv)9ALpb&}m{4@hX3gsL z$j}eJ9}>tynAjpdQxvhBMW;rfb(B(}>K(|XKNB1Vofht5%($5^$~PaZMjv)UrDM_* zd70bjl_F*`{hlVJD8*MRH631zq+k=27gzc5-jpRAHR{ZzVPX!O^>%u{PG>;kqk6Aw zpvshmE17Qq48awiHPo?HY@q)lMxn3KB!7@R&_s{Use;!CvNiuI-Qw*(2rXjGCYR?O zJzxsLxWNvRl)z`fq+8QDmP+)qRlkJz_qYRr{Ab2Zo<=8+;rks5g-5p!O_;B5z3W0p zp@asf80&3aa;Gecue5yZbzJLNz|6+zpc4YrJVCrh-g>`ilFqZs#Ey-=gC1r-F$r-f zGyir7-!`8@1Tm25y$NLyxzBTAQa~>km9zd}6CgxYP@SA>kHBA~HWiQ;m_@!&6cu=< zzmUYUq3Fgr>6}?owyIiSutuBP>L+cS#O3>rO5pL?t!5UngZ-0b^OZZeCuC5OTFvE# z$z9Bf`wgn^5WW@B;5L){dflC4Ge(S*e^qX9QjQ$EaD2}6cd94eWk=@S%Ip`!AOxEf z!>#+duvDWtCq^|~RA!Ew6c!v)HySRI<|LfW*NeO_DfevVvC$YO5aMdQ;`&W?uxfvVIA z{CuT?7pnOHkj2@T!)5FB*s+F96ri8sZdRhjr)akejqNJpAwjVc4|s-m2$I|S z%P9UGGl~%c<&xdW#!VW`gm5QClCJywv<|167i6+8G}?Irch$^Sd9xc*BbY&Unk_y+ zhD%Uypz|$TZ6emOR!U5U`R}}dH+GFMzOnIA#0mf$y;Mh75C$8!{ znNY>YyOke=xU8rx|F9`X^Z*Foa0J;sXe+Ow`=;$a{@Q}M^${tu?4}hMLv6IoT(U3s z<0*#Fr6Of6zpyyXM{9zcW1AAD2N7za(l55TGrhp(I zLNW8tH0e2pyP)zZw3J7O@dXNLf=+^VX~y95rK(Xxf~8Xl1PoHi%~#G2`vOLVA;_D< zUC7g?b!9l*wC<|jPCHFrB)94!)zI|o!{wTkKPeP~X_KH{WF+z=hY<#C=mUBIA|!=q zdxezzP$;k`bprlgaTZGd;ZEV1>c{jp>n;7P{fG$hEjo7=LuCPa5BcpO2v?d7qo^^9 z7Aq)^HB)l}=lW_;fL(RsS{vz*@<@8YzE|^KRmb$0?BQsjtPygLbITcr8tl8KrJPEv zPacZOZ8^l(;Xj{aYgTNQ3^$+tLj7qk68DbtaH3S2WcVq>OVor#s26xXK!g+#;BlZ=c}wy6 zqEs(-5M;oU9x`VB+a>j8qXFB<8=`t@Ptjk!qUUrVlW})(v`28Gr*S9=eT+rvUdgEk zg8pne|MG>`=u2NWc#^>_KlioBuyM(f0`OGpyB0RU2E+LeO`D@zz`3P)=o21h8DKPM zTG*T6)<9HY7ut*AqrVF+0L%U#-?s~uQQn1)bJ|~`I!!}M$>2cbfvveM-pz~E-JG+b zk)N^sxg9B!-+iF8;ic&8^whD@*+fV3uuZxCo+F~eE9(f;m_J~5{-VfDOWvJ(r<|eb z_Q}7)Z5KRF9h0-m`hYT^_zLX%wCW@5TTV>khnD>d@LVe{n7Rk+7BU`A9QyIkyZ4O~ zJdk_S4Bx7j(oP{Ez;@?0_|pTgN2Qx#W)FTXW0@lP5++P_>q@NMMv(KSV8@8JEYpXS z)gbp-JigukA6_qIpZ@>(etyOijs+6cFzbc9b!>@t9PW>w|NGrQUZ&VUFzl!ABryF_ zq^jZ!4k!AjxSN+X`uOZJqDiK2FGw~<}-qgZT>-#dacG?P z)%i@KpyO7@My~`14XplStD;bDR|2|0vNtn}nX<{OP+~c~Gp_!9%=>PLcHtE9zU^e* z4bzEf7j#yn2oS?VZOO(g|8Y*aeG@-Q0%ZS%8Ye~=sUP5@{~;J*486b~N~dywbO2ek z-60#-e6>qG(GWfR4R5=!mTl2x`{rex8;Y;Q`j@S=ko+xbjZTpfj0vC~$=M_MZ$l^m zXB0+$q=MU+#S4$o7nu3+zm1;+LJ3g51kis?Yq@37VD5kVlZKet3@qeGz^CPy!1elG z^d4kT8}&s75G3m(I(xilIzsHDJ)0HU>He{wjA~BTB8{fGcVi23yHF`(Pa61IL4r@t8di1hb7R1*=XnJQ9I3n5UYjV=-DhlGYon~bVYF=Ox8Aw z$m4X~IE}25arLv6BHCFYENybPD2~b&<*O)@9_}t5Zi>#hfEu0fB}S^cc9kENA{l)r zainu!c#|I^<;gWv3aFb)1Z_D{V)p|h1qqdSSQJsyKQ%+%&H9@GojvP+RPI1+LAmT3 z=)eZ?Lu<^ym2X2(1SqOCJT$#P%2|GFiVYMs)FnisIj2|EQ~nwe<=0Sd1&Lz|4RM8_hrugzkUi{ONx^VdOLl ze=Tc<{h#T5mb(|(TmIlKcNSr|qCtjNO4y#V-t%sN%};-kRh&Y80GisHWW*fSn)*!p z4UzA@kSekfXg*f?p{KO6Z5ufe3z+R1M~2nx!ik zXrlS9!l0HIV*#+6*P%c(aVD`WW%7X7&uz83TiyzYsR%6J+7EnlKYWxswYn$DJr8F! z`yR-Iy5FBWe#rx$C3PVC>^iUPA$xo^iaGn*6d{Kz3kP&?l} zx>+U7nLA{aXZN+7MS^7uapv)kBN_{XJ$X9yj_&+T%ezg?v z|EvNe$g)!i_aIQ-pZJl3?I~fg8+LZmHV<8qMS}Y4(lp~zW%ks$#HlR_na1O~cG(L3 zJsXdtoGAk*CwlqK^tl~$X)j`*|M+1_^lwO_fAxCQk*NS2f(-TfY06#z#-%~^_kYN+ z88{p$z*cZdNZJ4oW4|ov;ro-010+Qh1;#%NnJL#0^1y(6uIYLQkxWx%rHQ0qy^wAix5=X6ce5c@xRt7%x)>v1w$%Nz4kX$I9-A{4ju*ci$mtVbw-iFbf1#O-iaDbcIcIk zUvND!8aWx35|_c-k<@wq@qZ!rAfTHf7*+bP8=7JYl&5;(E{h~r$$y*9URX08irf&_ z_4p8qWJ&y=S@m$dK`kZ!!&F<#hX79`+7|&^;)4FhA#p+XM#CH-^q8W7xY~md@<4rV zF=3ps`Ing0+-il~6Xj7k6Yis-aRq~&CJXPc{Fv5*vv4_|7|nep|F@9-U;Xueej2ie zX`uDhAe-rdv>(mq!hGRId|fsiQ4bkg)(|M6N%ep+RQElw-MlAazzi30fxNA)Lr-Rg z&<9K3KcC==8ConK3us1F^>;eiv!Q`3RIpKMEqxGD zj_3m;YEff2)1fRY5Bv$W5}fd=IGe{j!T$HAz?)Mz#oBQJ6FU%q;~@H;N4Nej8GNl6 zZ2CZ(qt>}n_K=4)7X}e@IX9^XNh#X0U^#>pUpz7%mKe)=!Lr12W}$t!+GE#pW;DZp zPAY7-Cd?rpQojFwn5L>Si$ivteq^y@rUM7otD^bmiO~IH$<-U9C~zU8uPpCqrjYn-e!SUY8QNm_ZC zs-dVIFq^8HTB%vnCojvNA6kMTTJVYP?hl!nnLduEv7fRM_3iqc&LCPxgs{TqZg38M z5OV1hRn`$z?M2E6>$-9u^7=#}L&%U1Gi(0oF5uuAGVSfHc+h?*ar@Ua&h?uQz3vC* zh)X}jV!&o;C4co)yG)m&et8%-K}Y4*<`>?WFL+M0Quio5Z-f1m&=>=;jig2$iQ{21 zxwkr^q0Qs0K|t?YStR9zU?ui#H1bSFy#;4cAjwAS~xy9SMfH| z^EhF~+up}#5snIOWgR6JV^UDG|X)cqFhij#$t0+?CLVt^d=D6on=E~oUU+T&omn|aDTBXc>}}-?lN|Z$X_7Zx+Z}er zE01Qhj2rDPT-$I=(!IT@4KvK)7Br_lSm{Oe7@Q`!0}m@$VT=mx|89B~e$P-DL2h8ZlmmN5NB?kwH_@(73!2m*42kmTn^vY-y@64A=|E35dCYyGJz!55P~PHv|Sx5Makf0ERW~et?_sP zPm!`n(D?}itnLbRE6j%|j)IE-l(7ZShJp2_0cOQrE=N^m_DWuwqtCW4M-K%l>{C#( z+wslj;mRn*V)Y;DiMf3qyxm>N#NxkXM&lYuvDaewusA$fXx+($(7o3u zI3AMX!Ibi2A`HPD@aMelTWG}rZCM|%-pW_I46C?Ufd@QXU(_4!YgA()S=GiBoy-`) z&t^vjaZhajkOh1<3VPnr<@qc(MnL9F;y8H{rC|yCq>qbYaolL2m%R8t{QC7Gk#^$~ zqwfV(7yt%42I}%?Wd4dd`70#)fMG0dk~@yCZ!xJ3{MGp)@%$qJry^V2WXUctR1mxu zQrdsA@-ls3Al}gVH6CZ^&;+Brk%xyz>A`&6!AR#asOr8l%SQxCrquQh@YUAd@f@ny z)!yVi@TWP=QML<5~EDM|XiYGvB7IMH&n3Mjc#j6|dUn-XG7|3w<>*ADYPbuXE=;&xc3)?*2xs_e3#E%)~ zac+mTNd-r!r||dwQ4COqP(?8u5YOq9xw4@CdwFdQx|qpAcw^{R5OUU+tA}Tm6`uDr z)W!TKn%X)~54cV6FYUWdmC(OZes^Nrk2Pk8qUAmvifO{&Uz3 zdH=)B0jaltxUcMx%&dq+WJnsoBYJ-)MEN8G!zl(ew+y z*qLy6U2cd8u~BW&!jCC_LL)5L1a3diH2K}$5)3}y!U>N4oaRgSZE})Mo!iBSe{9Xo z@4Uv7&HgvDO=rgaG;$K$hs1uUZETOA3{3rkSI~fkFreqmY(M%JL;X`Y#KlbXrK70w zr6Gvy;XsZOVlfLSGZttcVYm znEJP;pqWh!zZ#F-R+WJn{%%Z5ms=f(9rMoiBrrM2Y1hkSlzgF*ASv1TW7i8~5A5R7 zeyS4kYcmjHbPvKt@L~aIVDC!?7zB)@xzx7~Xk8Hbef{_saC}T}(P=Yo`>i;ec@}m? za-ZgxiJmDVT~@IL+gb-ME-nm^#e&5c{_pxbb&&+aW|5nOALBP;dfnVcsJF-bWPgZ% za{IlJ){(2H1d?<7z9exaU7ejP^4FT5Vd94X3*h&646y;AoE~-)wX3d}Hyo5=94cUOaP?E>WYZneiM6Q1s+G@1L(qN((+j^~A3U;VzCSTq0v$c}FVMpAqX;lcFm z8Gf&BU)|`RzQuh+Ti_1c6b%|wtU0Q-k7w>^1j|9;ja@>a_Z6asQ=ot9KlS-^rY*5a zdTlrz$Pd1qH0?wbfDZ)7W^r0D05foe@-yqN7mqJY0k=7dQB(e1!0rS%d85#YxbB!T zC!=}#8>64G7CN-e$5H-VnUFH2MmuVmU&F*tLk1AqM7PU~%eHQDU9 zs6@BGJ^CGl%&XA5Huf3UA!Q@p9tzPQ$8iNsi|R$lXi_9Fu|V3$Zn4tG@0BVGW+hD# z5cl9(?Q&l(k4x3$vybO=Hn_=bB16R56-2x=#7Ltq9I*dLhtj0SAHTmgSiH87a-b*y zpEsC2zm*|QTRSpx;7>^!BecHItFyOgb9%J z)$jnO-rMt*kC}M4BS-_tzazbsiF2?B>G;F{d{VtR(SFPp+OxjeepBo~O^X3dOOgI^ z((SoJ=i8(~3Uyw7i?H)MY+WTByAR9t+?q72!s-|^^ts{|pT0iI`=)z*a5{MTKpcT}k1BDZ zxUKLp@Os^;0qn@o*;sudQk@)W2%EUY+nGK#_Kg9$+!5~$fxc5tYRP2U!;=&BvM$(? z6oL?+q}H@WO(W@-+t|1lEfQ;K;sZ4rYsqTI(+0G!&O;FEyM|80X9WS=>jSZch9sMb zl?Fujx*>rrIr{l;tdp>;Ez=&rb)6ZY{|RWX$1AG^=x!2M~VpmmTH zEU#T`$A?7Z*00M&MZuC<(b^oC8qBi^! zFbbL5RsRQtwNfJ;hznSPLb~4AF@s;IsSmYM^51q}9&;qJ;B7x;HBk*GWYBc`v+s6G zi0qD$q;ERdUfo-|;&go{#8bo*b)pqk6U4}Z+W{xRHWaR5(&Rx(64y_gf5J7!7Fo$cYO0+Y6R z@(CP4-^anYAA9z;f2BPMAA-Wol|-ZP%BKV3#TOT61FXXxNdh9+#JR8z)}-#-a`yH! z&3UnS`0omtTqN>N9QT1D3+Z>bWB+d!fD?k33aHrx1DsKp^Up|D@Bj3RIDYun1l$axMM;I-FSFg;y?yJ*B-v)j0XQ?uat-qaQFC{LdB?HvP)-(B-x ziTt{|8$ww8@g2w=rZ3G_mR#sIYx#I23{@Y*3Z>5D*yTdWjy|i(sGG zY8%CoK#u0~p}(q~s^{@G9~_M{+brW2(FX>-y+@|c%Lst|xr2&2=c-jJwa%-N_zK)m zf#uZA%zIyB?XF17)pE8WJPO`&9%5ZdcRN_Bvcgo|-^ax%lR9=q(-jg*JtX+)gdMVef z`rPDi2^&TF*&3F%E!op5!B{9Ue~S?Vd6Ajxt)XVImNR6+AQ=89Yl^ z3?Bo<`aNp0$h;K#`t0lA424WFjAh!P9$}wwMHVowA5HNJI~Dsv4HR5*s(y#(bZRGt z4GRQHb{~{wd9e(8K`nD5OqrkvF;%)v8S#Pwe3?=Sy-$J43eIFnm1k}b=JQg=Uqeh<-+eqgojDP7;%;)$blGnt zep(I+<-}_xlwA+^D{K)IeXI^z)*-h8Vjh!uTSff+0o#sFo#;PyKxcqM-1bzdWPw;JWH671j6Q~)|h{Vr?}6xQ8yZ}Wc)I7F*09Q zT;*&$C)lDpV&g5VroK(wUTT0H^)=i2mFoMuxdVM|=x^zE2es(uO{kp0iSAdq-&HNa z^rBn}g{$v|lkqzo`GK6Q4DH$(w0MrOne&sm0Md@J%>A(s%(rhn1N0Ko4F=FYvcppP z^pCO=@9pM+JHb}(t9>%nEY_BECOaK2*Eg7lL?>(+q4GlFl@)tI@o{}o=gE4oEveO- zjxxD)a=QGwI$lM}Si6xmo2&h%w3gNOZQgU&_v62jY0V`U%8IWTm!6_Gt=6rr!1tAkLRS-LFI*&EZvNO1$Ym`g2=fXC_+ggO2a(|>zf~eV55Q~!cwafUQcc*A zhSM{~ezFZ1l<%rjn9%h(bH??{Ae9|uV(M=FRn$k}o*8tUzUi-Dmk#jG1Lh5s>BbrE z!AqQ!>PB{VRo#QaEfJG&Jd{$0ybC#lcDy4wB18r#m3)Z>E3_u;|d(w0Ddrf1E`6#>7x0jJo)9F4e!&;0b1 zk+No{RW?U!?GvRW3yR-&7IG8N@(8fjhm*>t$*6cI@uukg`6)e=7vAlHOEK$Hm% z^f>k@fI$r)L{^Qy`k_uLjt4Ia7J`F&-d=*Z-(SkKoaHtAUC>bz@Jh`2wDuU_z9$sl z|E=TGoJKY^w7;ciFsSyK2RyWAMI1xP7&VZOtXaMg=JPc99-sA&t?a^^8~F@5DDxI& z**H$dmtMEvV}wLBWhZ4f7Va$ccP#Q?<^1|3nO|zd-2zOE{@o>gg4~#t;5!!^PVzkf zclQk$aEht>koo4NUi1D24o!x0g{VcdQ<)p-5Kd{5@3zs>3A^-asWPIqGGQs5b5Q92Pk)RlskKf-E=?OmGIt-XAk4@!lQjYb^F^Bc%k$NYX(M^-UI7q#!b~+SAgjBH&8p z_c%=7eis%Fxn6P@ut{K?Wd(VH0bv@)j>`UoHY;W`Uq%4?OM!u+l4j8kow(P~7Vk}B z63y*Qd%qRptixK)4%GZ~>V8LPbG>=%+@5=@@pbevqc7zw2d|BJ{u6*@8&9|ZW8Fym zAGK79ftV)syLm`?GTJnji{nR4IJt5lbOccU6=$RHc-+#(MeCZ%gEGEAGhu4{W$iwdqD8rB5+xmy|Yl?pv?J?-*4Enl&@micwOEi zh_hIK#k*U%K!)=PO_NjYLGUT4Eb9dl#kGrBP{DN>(_}1Y`F$n}#62uf;m8$7hDH5< zwLN||808d&fu7Acz1aE!)Sp60i8=l%{h&ZP^@Qa_;U}D{^<)ey`}0YR)F;B9Moz&I zzc^ZFH|V?AXQqCA+kTzUqaO|`4UJW3TB`I1>;Bvr5$slr{pxPFWH9WlS2}P}ja2|D z9Y30$6*F~GS1R?6du^PJ6y|KfKP9&2`ra*}MILObaAPa0ub-ys{Xxj|aabC`)54fA zk3GLY(^9qi{2-cB&%BkO+ z?OyEMt-~4qA$`-7+6^Ac+dhTdFd@udP0bAH{v|G0^Cdq3_kUXASt=T8G;Wt{t)~+iB@ha>~X)D{L=bb`&LMGHm zb9lH^`SlEebebUq^yFJxNdlWk0U%MxFO6r94>kiDw?S08b1!!5B11SjI@0bKw3oky z$3P9>{PWfdxfd0R@RPPCIvSvL_cdw zWM4WNZ(!mkY_fdvqj*)=Uc+`V36Sk}dydj-qUkUucqSVCjR$ai_M5crf~VIgFB+-G zK$1x*O9^Hj>IvI5P{@KQm&%)GN`cO?h>$$Jq{^UOW5&y?^ z_H&5&+xaWdVV9CvQiX%C_09#Za-z{R&RUimX3h0UHSLga4Fra589WZ*rr}#|8;oa2 zlbr1?dF|ZIs>rryfqTz5?0W8IVfbChPQ8kz7TTZ{Sndt6($cvZKa6R0XA#xXF= zxrvcmCo=1BF7?8^=sACHgap6%;(V({`d59iCV@-uODM6$S30un&-~!k+h_}tCTNv%Ctt_~CUS=Fk)RHmdHOx_lqXZ95YG8pC5?o59R*A8OmQve z6V_1KnxHDUiu?zi6yyy@^oOmJ@ZQ(s{HG2wTFgQ2FfRPSr=;QB-fr(OT1Z1)?&12p z+tY77TS2LW6$$V3{IlnFO%R4N$n9(Jhve&q6RGNeum%o~kvicy@3i|epGGtsm}={o z=r`4MC|oFHA*6^bA9CV%BeCZUTpPL{>R+lq-ynRW_xlcLPk{VWanoGdJO^E;LLlW$ zdKq4_9nS@n_F3pKGJ70;cn@2J6Z(- zfoRT7;r%=3JeJ>JONy#)#|_b2P7a+0l)OVpuD_-r%^z1QL$hj!Cux%prMnJKCjJmM zLSrbOL@kcAI4waafwCOR7D_|%TU^zO*}b|gY=6~O&T~R_zt4>s^ zbNT`g;!*gyS;_8Vi?gR8?C8>TOTsmvlgVyPLyo;<4SDWF<7}zx$^u!^*^xdq4c9J% zz;8=!Y$lt(DWl~PPK6Y8L)z|wm%)?2`wBsDB-HQ1c^Vb6QFh{Y$DlPI4oVC-WoA%1 z0RwkeaYsiJ;W*G--A&LD9MouW)fkL$xP!CrWZC}Wy*trf0&pSy1dB!4OO1qCwySV= z-6j6RUgER8RqA93pRI`99`-^}O`0E7P3tuzY$b${il93Or(D*4}!b`lSt zTaxX-kXu~xaeQ9FrL&whFkXV0RbP*+&M?rUWxV!?yLxcMsWV)G8v#^WGhVU>HNEv& znmcgzUd4wR&aEN;WF(i`94ycl*z@kp+gU@WiWE8S@D%@`LMCRMvYe*tn-U=XNUN{O z5E-CEoHN@V}!O4dTmeowy`zjJN7thhWc3+ihk_Dd86xqV^N7 z)L%-KVM0EF1%iV!X#GTfZ+sYF!hrQ7KTdPI3i=BprLFa1Q`^HU`?A4?GQ!OX4 z<-^Kw4JjO?Ue9I8yoLq6>b>?@Jj6rC|U%%DAPl&xbncyf3fBrLK;W?Npj(_A=l+O>IL0W?P9Lf+O z(NOQYl=Tm|9tD|b@_IywKbo}ti)_lnutCP?Z&qS5pT`A`J5AwzlcLXqi^#f^x~LIz zXAt>OhVa8;+Md`w+(x%gFiJ&ArP&NUi7~z{a35dhKe_kRnPR5@##FRU4_E(WxpBBfzZ3lA{wYF{UKtl}_Zx@Qt)TxG zE+uOd5%0UYt}P+$a-*>QEquOndJ|m0 zIR%iFyZ&`*#4CFlE7Dax^6Lbss~>TG`CMpsXBKZ(;VvyGo`(;m1*b>~8W*BL3+)7L zaSAMS3X)DQJ_}wf?@ZO=sUwBh{t7kL(X!mFBzmr4za2O z3}kwCF+Sz8isE8=F@E^sUw0-i|~)vH)5M0)3WxEdFM6})t|wYrR)V*LcPS|LV| zzD_by3E+w9Q@FY*qEae?69im9zDgHrN@_3Qlk@2lNb?h85E0E~QMKYHIjB?lnPTXx ziN5@9|LytG6eiHffGHH)q;r=d=3}b7&=n1Vwg=zJCUJ>&)WJirC4?x|Go;iskEWC4R?+od6Iq`MouEw zXWJ9Q`0JBWlTp(W4;qxVATjOBV|BT0QY46X<-_iWXNgZ8jRcr*{ZL1CW|ucJe-sIb z=!#f(L2(9KY*jc(Wh>ePrOD-)kwFectCLdIW~-5PG}V?C=K==W z-*Us}bgJb1PMSMT97S%${p)wn&S|V;&dr-6QZ92l@2;0rsMnf?K!xT5S5JnP{a>Hx zE`fRPmsy)UK#~Xv*hxbf;9F(~1@d%n@0#imO7I2%m5ixx2VhB`A}==x!J?~rmb(D# z4lrZ$hF0Eiy1KlD+b|%?-4zcm_S2>SS|`qauwxJNuZ%?&#Z{q6lSNQ5=(bw*iMpKw zRFCGeAy5V*hUm-Zcba#(442V7)0f*XUYP3V$Lzcl&Z>&N-y6q!rp5{NNSW8Z4i}TT zctt5RzOea5Jpn~+ATw-%)>UbR@kO&aCDZKu>KZf-bdZm3;2UxPOnKy7O-)EpRhS@n#jjw-=Ekpuy_zsvkAq3{t-Q4lU$2dbxMWFYk+l7_ z;T?T|l+my-d;O>4;D`ZH!fjxataiaoI0-^7cUitwEY(|Q^|x9K7&!{v$H z!+i3;>1pP}Z|LK`AdzX)3OMlb@g4eB;3D(rtpI}i=B}j==-dUZxAeVQhZqCx6oB`; zOU2`oXw!f`FX8)=6eREmKtx}LgJFs<^1vGu0n$>uMJKPfoG(G9r%%En8xkZZcvvsE zzPz6oEu7`^&kImO8JwP5jS?Fh*AKm>4H4O~o)+T{2{8*g>%TehQxo{-`@I!od!Ohl zU13L~y7If&RIKDc37Z8Ec10XvxM}3tPAA;NXSj4F;TL|brXIw{JCL zDkNkTe<+|+2`u6kB^xdoA#Hz@#~y2A)qPwi!Gn=!K!Wd6__-f=kVta4s3PkqDkM*4t)yi zIGib@?^cWpLMKR1eS=$YU2=x_v9<(=ojrrqeXv4g?KJbE0iVtRJp^YL@aLK}SZyW^ z!g1@VI6lFk0z%Aya`gHxsc&X)_nHs z^@{9^Jcivvt4OSd!2XUhAusvoR^NaTl@7W;bA$a=2dK)#nCL%|ewSt90p*?s6K&5k z%;Ofd>$r!(2^0Ryg6}eKLFXaY0#DJY^tVivayB*gAy1Ho*81O1&wi$jE4%GF!Az4N zS#C~h!Jhb-iBaJPLwOZ%)40kb8pVe4f;N#({(I47U2mG&aZgC}>mhP< zxLf6u7PV>G0gQkv|Jy>pvemj7yj#>W@S80&&cL|ya)a>46*ilt`I$StPF}=*9n${& zm9&&+=*FGHS+3yeR13Idog!>a+_;(y!01x^3NI(XAKGv70}x{8g(2s`0!*UszU*Y{ zeJvuDO+?(@w)CGuiDeyB(s*Wu3d(*^sp4?*{!|+PO;Pg6WvBCP-W7mi3Py13iA(Zk zveH?GICa-?5h+h8laEJ}XY{nGmYcvY;ffmdu66R~TkPnVF_>0xUd>vr@orm+(;Fa@ z$$&IaN4~2P{*s%?swjcvr;3@gB5-Aw7V|wYPt`lH%v#X{J>a9aU2PA;5S|IF9qt_e z7)nDCX+Jd!Pd!n;8)odYEu?b2RS0YuqTelK6AZAkgT+qBbPn9u00F1KN0@r(*Dt15 zkZvI9HP|^C9AMy|(4kgcxEcrC9|O1T)+5=lz#_U1SVL(8W&& zR;T>>mEeugYGz)Fej8WYzps9S|2jj}ut0!!v>(^aKj9rST>r>zsaSnT#ud8NUNS8u zWda|$>fRjFStr)-`zJs|EEld4@7{-!vWpTj$N|jaws&!8@|M?2Oo7#5Z%M7$DWyj3 zKcuWp2duT^AT`%7KH@WxP`&5v*c=-A+R3?NCw#ITH+~Ty!s>BD=)~PwpAKQ4Nll~jhm@y;= zWk&?#?h*FD3?a9Md+pFW6ZmAfwB>8GEp(xv+QmHR?YQUk33B|TSVFn~`YCXsUdn)= z04;sMehqN00l!|69H?A^eX>ezoUa!>aS!VW8IhlrUb8HK=_5r`g~8KUW$z4f_e%Ua^iwns%F=Dm@;0!E5&+e(?}!E@#15J8jv>?9(Y+)7 ztS~MHGtUM)eKB2{c$UvSjkit?7m+X)XML?w{8<+10eR(<#&qZ3cHg;Vy1pC>M?+$c z1*Ino%wt9Tn8s%?N+2g(9A!C1llEv>PM6nr_y|(B=aFntnrg72%FR*}>BC~;TV8~C ztgX#+*q*H3LMkcD73;n&+>{}XE`cwA%Ng`vr=N^41NHaymh=2`VnI6Rlv+3zaltb_ z0mM4?YqK%vbgtPv|2KErgP2~NG}G|p={)3KUP+xl!eQ?RAtI^qsKm)2-(O$FS$m(n zZ{7d!2j}Cw!R6)T<}HhH>8R^EQa^?#PiM4vlDYGyFF!A_%K21L!+1}9&vAW4d$66H z=aEuT&&7BP`e*C;Q({)q_^g?f<55pYYrec5du*=E>`qDOASAT*B#=NJV)QMWxBF`4 zo#!S)@FPVUVxH7!*NjWgw+W1fDe7Su9B*2kw13K{y`3^erF_QmnHb9dW)e&V5K7s` zv;{FAQ?DuL@%?Ip(M$P{XW8hWD3txZ1Q}u^w%NSB^qlyUK&f5eb#>~ssTL_~Z;C?$ zf6yMdpZI;v_g}1CiU6mk!up5!(%A;wF1;w-W|SUweikKwTrhtvxKP6^OVy-*IEv#GLI{YkIDP%XJ#h<==gIQ)9T(U}tr z?YOjtS3%&vF3;itFZfSZ>5az2I`9P2d8{#Y;0D}s37R;>I+G>WgQXW5>TzQI?u7C3 z$F0~p-VbW|SS^R4aXjL1 zaZJc8Rs(m5=AX-&BGI#s$CA$-GGA)$K$7Gx4gxGOt`#M2XH-qBr_kmjkLB8W!QqX+ zdy1`T(i?Px)7_EF%!3T>_274;INqb`RlsJzHZOV!SLNWNRvIhQh6yGO(uR#g7VBF{fBb0iQE;aJKZvJ?y^bo`16$ZNEs(AA>K4c@!)VlpzY!QW zlmQf@we1BF+Uw4mJ|c?QYu-30k!=uogeN)+NG5i_IQ~~5jnpXf3vaib`f%fdd8qoBG%gL4GnTry@?$C=ZHDVkkZds zQ+HN=4|Y|~sKYPxsH5WDh$(vgDcYz{LiwBTqOG#QxY>4|5u{R^^-ZpyBGH7YXdd!7 z2l6&gLvVMHZ0bA@xL_y+;1u8lY4{X4H{jR?m9g=OW#g%nc2ws9^G86r2VAg&;gBj( z`r-Z2nd!QIkrFlIa*qtgHCYw}^76e{hZ?)$$lGO;@6Osx>L|5N+`u1vp1t8{@qXbl zxsa=$a%fCGS1?yaYpY3F*;u&;==PYH;b$69(%E%|fNrg7?KWO0zz4ectWV4)wn|cM zLA}A(%sQX;&10GzAoS%su%`$9edN*~E>&)3{(4-hXF30hXtE>9R8zYHACYlO7bmDO z1*TI^Bq<4x4Ka8te^TxfHC$Hz?s&{-j=96)wA|#IR!R>eP4xG@=B@(#6}(=6oU z4TP2I%?L!WId6l&zzx_2omj5baq&A#=PNa?Z_yt2Hta}6Xc482VaOoWX@6}6VEF9- z6`l?8L-~1}k0t)i3BZ&A3YgQM^NTgpA}&DwSA;X*y8&>6?W8*7a_=j+w>zmESpUjA zWEDK!!$;|6a;@x-i6WFeIuE^>4E)I23*S%HmV)`T12Y~kIHs!8U=+&(-4#lV8dkBT zlN3Pkc4lgh&@+h}*e7)h8L9QO{;&JOAAiT3Uo21lMc)Of9N9?W8cJ4novPQwy3;(( zieF?H9r}=JgP?AsE0Jr+O(}BGHt9q6+f?~!B6%vdnC|0m9ZySaVvwAUfmCKkWtpit zSigXeoXO>Tur)=KJ0;7e8NB3*F}fOKLG2J}R6hJ3!CvZnt(qP{w; z$?uJulvGesBqbG)RGQHx(v1j+2nYz${YWDSqY)4$t#qTH3`ANQX{5Uuv5jrdJHNm8 zz25(JZM&}LJm=i!j?d=~OuA7l&G(=?Z&)Yrc~^ltCPGvO!es4$Fm{)1@bc2B4ZL?o zQ^wZbX@rzowT*g2h24pqRYktmzYAJUU0#~5ZT!mQxyJQPeXiV>R#u_!7SFcq^-apx zK5Pa+MoNk8GWFkmqnQQ=I?wXN#%a)cT`5@grbsLLF&y)F=L&+v?pOm?Eju8N243dv zkN3|#;Hm9LSBlP}W<>2B<=g7ade4j2G-q)cQ6Q0ulKWk4iJL(OcxFQX=Sx=0{M=Mi zBa|K~WZ)ohLuao1Ohr^l|0E^>vdN{%`vKKI)Q$&R7Ma>g~U^^Ho*+D0PGN7$do$F$RM=RUfw z&$%>4ujRF4aQXi4yOfD3T(6{MeuJj5h#_OZk}?0YjB!sMs(0FX4O!C+9z8M}1dGB> zUnq>CU=Qd>gSC_9WiiHug!!t&`X3wDUlS_|lD}STHodBFGl3r29)Vd8Uv0VT=9J3> zGhu?qIF1lP=WsKO<`sf0#!3Q|`q@MS?w>5ho?zWy$tUoB0kOHTD;Zyf6+P_HybixN zKE3)Z3kaMjMd7Q3v1P5ehM$6}qdo^4{YxEihYC|%hkms4TFONOH44Fr)?bF;o3Sup zMAm_A2u(SN{R?2AJ03VVyqUcHi4}qH`cm3Gus`FQ%LIS-X))Cq13{YOqAS+l#5i%7}Oi&+GQTbh!2JZCpN7S(qH0{@3sCvmE zTcYnirfUFWZ-4tz_Ge^{7*zkk8_o0N2j9{KzJ!k5_(%e$-Hi1x4PTs^jj7A-}rgkJPXs>RWkvzp+Kt8EnIYB0KYZ57+{0^$GyWZeA#vCYwOb+ zGwokJzIQ%&iIHsSLk?UjN%?>G)l(IvWpn7L6G+Yb4PD1U&}$Gq0JjBHGgQFz;m8DO zOIF+w=HjRnKwdyfVHk7pK6VC*wcyj@ej@fgmTbwk+p4_f%gwgXg$xf+=jY{@LpHA{ zz0x7r+yW!$izNTpUS&NYtS)@(9mSf^(vo@Sxv7bN{Jo#Q1VY|1O}p2c9$(z2Jc;{Y zhr&tk#-vBS&=@u<{cK~V=8VGe*MI7I6JU5V(e5Lfy(Q_r>MZ*QEgPmIZuojONmhf_~2- zW9H^25MpgxnT&ZeZWYVJ^Con3L1!|Hz7Bd7OoBR7W}Sbqx)cTJW3AoGbhm>IBjSty z(ns+p2(G+UU$)f$jRo9%o=%`OCuG&X++uq=M}z4`Lk?DCxwST~n4Ud%GXDUQVDOQg zE`V6NU(q91GX6vtKhWuWuk+?Fnv!QHmzVG(;;95mFcC-QN=Wrz`<5IfD!m(`3WA-W zGQJrYzWEF@dJw&Z-G!?=t=)sF;+8oBw=R}SV3>C>E%3BAjJ~kBnjN!r`)}GW@NvFl z`^|)3Vx&Ksz@a{~yBq@F-x(EZ$lSkxiEMUFBAXta=Xxya0Qr~JNf7nI>I~ws``cWO z%2tf;6iPD2_Kp*TH67gq+_>BHYr~;fUn@P$eeqJKB`6pf?vW3KnxCQe9(#suw=o3f8ehq9pBA!CY4@ zY#}dcS@0c#7Gszma-TH2>7wWwJu?{;D=8oGBM}0oGSAOziQtQuP#m~^4xVCB`FipC znYb~r3f2PYfg$VHH^`q&-0XiGJoZNM$%bk9R^ph;!H3xV;DIVs^{#;&Ph|8-Ez6n* z_QIp|DC{zL2S82Zi!F|!n8(CJBh$Eb{c#vJ3-YHN$ZM9h4nNFO*L)k0b&Sov7~ec@ zBjzsohLMlBsFB3n;)5F3A_A)-1~myluf{4PYngSPiofl}-e*u{&3e={D2r|_-Exxny@9ZoZamXo%Zg->lhIZaQIipvwPPuOeo{(pTLnOc)~yT zq!ZtHBNh|fb9R&rMmw3^b?siKAwDWz_$k(HMXIimDfLz}SGGJa8GxGO*yKY*f0UXI zq4>%g?Uo;vSh$vf4TbU-H0lke?$*Ip9sigJ~STnAELJPu-C5YLAXGo$Ev2f%nFAW|bDf^$VvJNcZp~Ypc#D(KvTQ zd-Wf;2%5|eW{R_8ZDu~?%=X_$kig$l@y|EzhT_Q-x|&sP=}LUD>%G?5DH5?e#>P_~ zgAW?N7oFZ~{3)d=kU-*e1-}8nrV!Er+i@!}9}0Yj-1;jQvWg+&g`SVip{#4U8I-$= zNZ7tIe#kUr{sOWmba9g^I#TSWNUU2_i_=Yz%_@||^w)g$oxNYFz#q?#S(BVKL~L+F z7AbPgupvL6jz=E!Z=c?n0Kh@GjxASblWY$Zlfa?9bV(?+8gNVR&Mmu!rJ7=Rg*l`w zh=xh=_jc0XoZ1pkv7|=k5VB8%(%lQ`KKTMs6`8>{K||e_^vlQ&WHVT1vdNzD?7)+z~d7vM;vY` z%(|k-^_Bcnd$~w<;nU09CCp3ofO&i2&dJhaaKDJ-3FN8)viHJ#yV{Kyq=^Cwsthxi zL1&ui(G~B~JF|MevddHqogh_)vtVjq=DEI;nlcy@`#$Cqm{9=MglvG?Ahrgt21g-a z!5JL)djy|yy!zP<#)fgJ7K5WX0l9IFY zp7xDV6-!@~HEV%xQO`}QBOun1J1==?w?3CN;pMsB^{WK+&>qR?JDOZhZ!ndaU1t+s z)b(G}MB0nzt0ZY{Vr?ghreK_39evHSN)s=05gC00S1TZ$7v@I)$)HM`T0Oh0&kS1y z>Uu5Q^U?TlE3Q*WF~TYCwR;m-3-tCRSx!2Iy?3v5fU+wTIve^E%=fe4-reGTPVe;c z9*L&?(NP-g6I)2cd-6v_5c>6{T%Ez5LOA_?=*LyN)O5nG_%PlL)}^Lp4*7a53DoiR zYf@I0ET9SDYwT4lzEw_<4LI>{+FZQFu9{nl&&LUl*O7_baT4PwD# z?Cs9GS-)8}UXcP1w(pz)kmH-=qZ|>7rwO~ERPGP(3ENlw+1l)k8j?%bG5Gj<-r^xU zQlT=UVoVMwTL|=Vl=)X^GU83#-af2=wq52>8C#<30~Is{ZWiQd@U0cFf!N2_1=>-Y zM`flJW+k@R7SK$l`iar3f-^uV-E)SJ+`Tm5?AZ%Xx*}oL2oSCJX%j-7%WlBW<*l)GozOE#lt}fw0irY65 zoo?Qe`$X&YV7%oqY%Bs_tWO?ptn8;lt{H!8P^|WrMKxtYp%;%CBWDS#+^yhjj|U0% zPJVu*zy14*gEb>MwLI(E<&*yDuQ2nnHCizPV|_oXPIKITQmP! zV+eey)^|sG{Bk4=JI%G7)Umvk+u$^Ot)SPU>#_*|n>J5N9uFNJzD7hs&LVXZI7%+} zDHLeJ^f_c`eb<>dHu>q|xh^SpZBNK#+ekj2)nLr8Y%?Ga7|SskuUg~T3Sd~FLwzEJ zvsd!lX=yQs*sjP;814u(SqX{Ki|j78BT^^K-dUo5!n9hBsXA>Lus!GU{qQ~Q&k2ko zPbu%Cq|fxp)}i7SdBk*ym8XAV+cGAmY8 zyllS=hLfGdRiJBj;pJdC&ijjU_ohngE|{wWdf3baCsl;^P}&jsr&7*a)XMwx(2^Wx z|AHJE++=lQ&w71_T@FG-5Jvcep@k3ZhlP}&elms8pbjM=XI+ruthpxN{uH8VsdiN2 zW*Q8`Q@`*EH((q1HPF3afw5~u-jdJelLu^$Hr-U#ySfm^0F(e5@Hwy?6F&U;)SRwP z5!)4Qz?K;M8g0KYl&d=q%soU~?z52I1HJdj7iVYR*{Pyic46f}IqnO(?B9oH_t2M8 zZ(5em_ojWtS8G<<-NI@0LfR!6?5Ki+XLwGUs$B- z;4#IK~UHqYqIYo4}Z| zI(*HQQ?TJAqfY|yN=84YEFT@weu`bD!O{A)5ri|28s#^vI^A}TgSDA_Lj;lol?_Hw zKTR?3ggCWJKsSttS^57igDEa)nA^wA6Z^L2f{Y zEwVl`!8cQc=pT2P8e~4E)0Lh!0OL7)s{fykFvaOjLPSEa<$C%AeLk+pk|TOXh|HI^ zy=o6v+&(N+)q7C5#cDt9|4Rr|yySl}@(2t(>D~)S#Na1RNslX{->&yw##ZM2)CKMAi*R#qiAt8Ft(5*rIAK;P(N% zy24BDk}U4?T8%937eO|(>%WuntX|*b%K_LPk`2MyF^Mn1o|c^X5JuR?U)ovzhXjm z9@^~Fza*E81lfEn-TV;)(Hu{nMvAVw#Kc1ksL#sJ$RH*-V%22ICeRdRyy5W&GD%|! zPMwhXL|h~H#gx<)_hh;3oAknbF*aKqzBmRRqS(<#1*wrN^vb?C%dI6lq6g8b3cF}x zbW{TMj4!tH<=+eIttF{J%={tw^_>ML_N8{n+wjW7f(;BA;Mie#P2gAjyf2p(JCUIoy&o-bv57)_Z?gPqE<$x~A z3|sL|)L-k*N$ju4$%=2EjQ_j;B?_yxg0j2F$9E-@3z8sTOqHo`h^W!wCQqE$fT@#~ zA-h=)=UwC-wa;rF_h|YCWN}gLGaV=Xb+kH(J>um@<3nM;hw<$nW{)X{+smV_Qxc`f z@fzt6dAs~EgT^^U_Q}4G zDb5UQd@d3z;EUnPBkWfa>ug$<#Zf*_HT$H=29R2Hl&=Be8f-w$FHT{*N&Wvc&mN{| z7|zLdk9`kQF$^hS(%Z#I2t_dl6I#83wUGn}TsOW~m6~&Rom)$jJZ;ERo8*=D1!YIQ zzjL~~u_%?(vz0gwH|p*a&9>E%i{~b2vg)_I=KnJtUrt+gIkrv8&2LDT<4AAsB8!sX z(zmxP(()qKNdLDtY5YVYas1oW2&gPrj?lLeD+h(jgN`LJ2}+FFF?^_0fu+3XJ@&stdrGvc%xp{Mn0~uve8}^2S>VMpFB62F7he`ghm#1?WD|U&9YBQz7(|wy-C-887pp zPF}!75T^qU08Jq2&Z^3_ZIwN(|JMs3wP1jw&+MHpcYIpuz|udfYT7$$_miL77h~9K zo0C5EPq18LRQi`ohXFS)r!)Kllel&<4a4v~w5kp8d5@;%?3_$EYEFUa>Bn^wE?rJq z=iZ~Iyg5}X5q|zZOWvr}`qH!OnDnE%*kGc#=szKhQA?6f2+8Z?G_mrft2JlSCnE#E zBc2K@)aO&*Z22h}EIV?6S6z)>%Vd_m?*B?!unHTX#JC|uYRj7yUs zd&q_)2$$f05{960PR_vJ;9h+3p*``vq|#kX0`X@zyZ*5aid>+$=tLk`vXcIOz2p3X z`?4G5*tOBlC+q}q(OhDf_K)T1nY1gKLlyZrrh(9{CV#@X9bqXhm8o zX1ZP-PJd1stOl9GIEQqzaIqtR%|VOzWuEsKV2E)zs5vdTmI0zszJ2D48 z$^)OtBADtaBQ!IGz$YEVq*^V!sK+j@<4Imsl2Rf#^Uw_m&Thu_N!O`zum=rqfu4v- z?k_Gin_%UH!vuRh!J?0=TMIVZZ?2R5vRXp}mdO5zv>uL@X8`R`@Z|o-wq9)(MUt+B zS8tN~FD_5WdW{Rt-oJcLz@QPJt0gJsD6agRJYLrVW&ucJikj`hAyQEY^brIgH7s6Q zT!s6taa4ev44KfgwyYOVgRs5F&@pg%z;TrAtZgg*+csPv%&WKf0`i?2ZHgP51xj(3 z-&^&z(^erDnRYYKj@)L%_kCchlR%Ss6oxft=S`G}dcRzQW{P6T2mYcnfC7(B>q}2X zwbrzkZXf$k{he`Jr%)LIsr9Bl41zo;u6tIo7gb#R@HA3E6ny$9>O$&~_GydVv%jQwW_Q&3!z%Q;wooCb@t#Y{)qo~g=tv8sLT1MWJm!q->; z)@SV|D4IlZ5iEQ_F{cUsu(p-_;}l>s$DGFbfJJ=7Ynr3?*gTb;zHl0fB<8O;ro<7_PlE90ep7}1~-PIU~~edvppmxCz$Y*Wus8@1lZR& z;4?1P7Aw2@E!im^m_6s{f@lEu!)_4x*BZEn+z_6*eA2o0j9?K9NhaJj(_@8Z9S_EhcoMwx5u93X* zKBKvlD7!`Om5v6k*oC4V7=rcHX=kuCjtP(q$=U1W4x^%KI-c!FAdiba9nRARC0^b} zWmqR}o9R#jWq^Maj-IR-KWoiR(d zr*%%xyKoSH5=JSjTdrGg#c~cQaU!ZG_e#SwA;qvolE^m-jomacy>Ed^oE5qHpJrva z>EwUU)mPOY-#?8k*!C!4O@q6IG(p0i9DU1+wa!e~wha^I$>-5j7-7YebfWBgxdR)u zHdsL%RR{hzTjzyMvMz@X4@Zt_Fbv6=HOC}5hUB=HWdMp{UVPC$@Zg9N1XG;0b^voF z+f%lUcH0COj0aW;u8boJ?<~hcwZW$|ZFWI641C_BH+5;1&Pe~JN49d2(fLsS(s|&J z@z%gca%gtXR_WNj!TSi0O&DfFc4Up1I__SZ2IS8DDqMS7d-rDw0-F% zZ*B@+x>_!HP0{lp!A1p!30?Zxf?zc6+Qse~m^KVdKa=NZyAho7n*_xl_C|Ux zwZ`Xc5J>RHArvV+`$4sNmCuV&$dPtx1&Z6vp+~M#I$#u|>x~Di)-~($1HGGmbn{E| zevhznd;lw?`>Gh{@3|AW<2RA^h{EWmsp1yIDBuxFN;qs&=r#K&(DD?Nh})80!;!qY zS7^JjF+u=lMbV7by-ma1Sa&25B0nnd*|%-|Ozn5nc4TqPs`E3$E~SiTPl5bz~!o8_YG6gr4FfZ#8S9catTg{#W4-G={!_BkgCw1Aa_F zMttLt#?7}F)7fOZKc@h=idfCF8H$Y)tpRsWjQw?Uz(d=gA>^WMmvBbLbDlx1u(HUF zNaHXnauZXM3KcpbgitoFtOi1Yv50G3S`SHrtGR8rg|?U~RTz*{f6FlY?9&IGQo_Ci zd%6`ERD+(@BKs+BQT^8Xz`NF>+pxr_IFV*ObZ_@f&cn4M4;qp6o7?`{nC^@7(e>K9 z`h~z-EwkUhCVn0^#uAgZHO60s#2@j@78!5sWe3uNtsN?- ztkffO|#kZ@4 ztDfDhuQ3kiOT8o}#BL9wsz2c+vv<2D`o*XzRsV~i^i&OZ2~sRm_Yw2M*9V;=;o2K; zdmKj*umQ;uM)bp;Y{4t0hsl%^^b&?AGruGZ0R1#C2CDnpU-i^=Y!UI11ip96B-4ov z&2`xtgYc8W^^coRI+KI$O>x{vb9cLA)G0}S@Tf}dMYMS4PBI<2s5YpMCeH8iI$E7p z5jaLfPK%!(H6kqww9g^m-$z@CX6q|u+2F6XD!O+EK$pZ$RzC_q&E)P}F?*f@!AVEW zi{14u{<=O;xM8BpFH1#^bmxKwegF9OW%5C#_N_NBmYenDiAmB3h;IjX0dZ|T6G7WAtGpyfSYQUo;5^yRO2)iw08##fR430O0yon&qg8t&ZyM(1S9f; zWn}!OV8xJ;L&>8ll4q0wRU$6*N=j}4>O0NNw>y3KK8GaJ600oSKJ*C>W}+%!)t*^2 zqj<;H7x56&8cZLa6VJ79lJ?;xGZ}`xK!sV}D_J}6r=avp5`P+8sO~4pw;N0vlfWX< z*z#(xhJwA&?})-y$uPz7pSzJ37>6rG){RzCobI35(!)PImaMaLu7^W zhy&@W?t@i@poc7I)6Ep{&Op46aviQ6b(|2^M`JWU$rUrXUjO21C=sOQ3n&I}_`Pyo zNj>WX#ZZEuC{8_e!NhZ*cO=@NFwb7-=Bwg6fG6qsiAw5jdAmh1& z5YN&Gx2uo~)E?4TG>7|8d}r+XyN-TB&MVH3+;z^@eQSCJZoM0JrHgT|wN&od&>d5i z=4o$=FuiJsOAeIcdH&=E!Sz1?H82oW{h)bRuRuH;WfljwF03cW;f$OW1ZR!(weyx; z>BJE8dQ8`TKLYO^a|Zqa5_Z4_5ryc#{&6TCJ!YeT*!I4YsK-q_6E}anMAgul2xxt* zsk#k8xf@|GYm}hIH=@`oC>W#vzC|7FWN{dw_FoXqLm$4%t#pX_{8~%yI;H>=E(E^t zquwA)s`-WYaD|)Q_>nh*)z;QD1s}`WyuBhQrr$0NNF7sQq#nG{6jo$LC;efa6kM@) zhsRdL@H$XO^hkOVIO~E-U*De=7@OcEg3cv;v*y_A%hJTS-1UN6iLp{HxY+2?EepTN zw0O2xBq1A>-Bl;wYb|*Blc$Z2k6UdS9OTn!NfZ&Bm3&;Cp_`8TV!ZL4u0&bFd?#cYx)J15+OR zoc=bS0LCsZ+Tgk*C3&pmJffwzPmqc;3jZG`R?q^QK#{-2VdzL0^ZWi+HO%ivIn;SF z-?-DELUs`$B0FSSsUC^Q1jd8Tn!E=Ypc)^){@;8DOc_PKRD}~k?#_&D%qE0i9iM1m zyZO(3o9?F=wLuij^v_iGN`Q5G`FKssb)~@cN=h5lDlST)c@RsNEN$<6jaoh$$NwdR zjE)osQwL?jP9p;n1N+jE2a#Oc(^k$t&a;G&#m(PDMs{(MYC?NF*enFxG@Y%@bwASR z{!;5ng_@=BJTjqZF@Bv!yY3?zx+1a~e2k!Ezt&rHrTg}+%Z}~3hxRODWngabM?Fd+ z6gz)V@#}zN#1?hSn^DQ)a$s}h40)Z|MG}`)gLKInF_`rr@u_jc3DE$3LaFlxGCxbd zy^S_Fa?&9C^(DaxLk9Nz27M&+7s{AYO@8>XJ*-_@w$Zh6L+Kv-q>v^qI7)ZDp2&M} zL3%%x>c&R@_j9z1&X#DS_Sh|WhI&N&*geZZN8ab`kMi`xO8W7>NT=a7o zVg{-%ywSEg$nQ!rc(7f5zi`-S7ZQVyKruuEcU_1$td*nb_22)CPj5P|Xd!93@I0R( z3uEOeN85A&Sb=d09j^YC^8<9pE3nX=5U%g{EN6n9rRzkl;L$ArzAvPz@cbnBB%FLI zrIxPR0`G5QoIdf(WFzv$Jwg|H@iBU1-LhPTsE;!fAt^X3ex@NG}C$QfAkv*s;B{`a+F zQ`&(w$|DRtpEMfgmD{+}Q`eu0`GSUyn>Ttr%U1>GDO5v_BR=YTl|Kn~O-aS=rGS&F z`%d2rH>8j6@W$-boCr{sCPIwggM%ka`)fe?o$o^gY1kC7H83dM zF&Pz+#*zNHB*_1%UQf<*1?v{$_W^vS62yHUZwK`51cel`pMGB$_PQ4-ZoB!r!^w}4 zDo`OXQ#o72d-#20UI)TUF5$B1Bm>k+f3K7+!EN5V!$Ga!i)U@V;Kf9-#`;#?mpkQ| zMD;U7*HnC{8t5oPO|4)djqq5qX@&uj=Pf^e7g0ZTZWJ+4B;-n&M+!@kTW@^e6K{TnP7vn=s` z%iW}Qy|W20=I~?q^NlgA3_j+^)m=>Mag8>g+Co6+82prD`%yTkkC%}yy@xEP%J)(j zSfi@C8AXi;fP-`jl!Rs)JhNr}gN#QIW?@GK?dlY&ktT+c>j50l9+jXRZgpE`pqJv- zIoNufb~6zqdfa^6+xGtG$K&KLe-&?#%g5?k_-&4F!WFTuO4lG1kXT6C*;3WltM}5_ z!+U~HuB1c^$TQ!A=m;cDmCBgc{=wde;o^spDj^i%!<7x zF@U)IgR>Y{`1&|F@(el%sw&L&qOSQxt=f*OnsHRX|L`BpQCpVa>~WIvv&vX=H)>^M z>oN2XXeNJOt5sbgolg59IfQcLZjpp+astA1Rf1-)LFX`k#wS0rVIJ2NQ?32eN_n<|{K*@Y4719(I zX|^WVEUD;!{*0Rkko_BknMJ+cZIHCtttWbB!j>+|jMDP@9C7w~&-b zW#(*+pDS+E_`?wE=MalqEYW-(fM{E=E zmeEY5`Nvn`!0sCjeUKVR!zb+pIcu!Pw~J(-kQ@SL(3LuE<1y>&TMzccsE??;k>h@S z@}@ToSEn6hwNeMBp@ZJOawBy_!GqmHrDwFA#?{Mh% zdG=WD!AQURNL3phe{A1k{_}50h3OYt(qf%m+zhM^r583LxL=*me%=C05gZ)hpWc+` zJgKe?OuEZpI}Ff=5uJ@_kAdGG=QdC)TyQHJG?Ra&Jc*~>VaWZ?CDb@ixe2@I9A#vA z=eCIK-93^s^FQwNq}yCNK*63RYF-)YWe8W4?p<&Aa8XnCGT_kfs}b%@l?SVuR8Yqj zd7(VqB~*$p<^0gb_F55>pEjSLJCEVi%sG6?v7TuO^zJpU9n8t7dCjX-g^I2t0plLX zGnKZzwo{Jz376Fi1B<^GOtrK*HQ>G1k>^WOf7$WRyne2V?~fmIzao}Q>Rf*9GjZjuL_#k1S(58kU+rCI*T0gn&^#^WJ5#k6@&pWei5B_=lC zy>Ay;r~TwHN-R_e#=vK{vkWgNn)pEAtht6hf&PK8YZtGsD(CXz@gVra9Z@Wbl50N8 zR;g<2M2;9A2STQBWM8d5ox(0pXRmBGAhpoOhoocsSP#5U70oo#5HaOz<6Pgib((eJ zJpgWwMujIhynKx6pz-vQV<#jL=m|tdptp*bA>M47Yxubm$7+Y)aa6}JVWp8J&<58_ z!Oo%ZLV{F+56FsM>S64{Lghe9QTFTw9_-qA3parI^p1kPEsAb*USnDd-(&%IBi<|dXsFW9@duHQrdgs&OU8w`-5IuN( zNJWqB^F4G3kuAzY5!V$$5jurWD@4H33W0cBOD8(Z-=(24jA6QTo8#mfr@U!y8G6W` ze*Ta=x|gaR+8bt(j@(71lUg$3#C)ure+8V-_uT$w$%JEdI`qSYJj{1xe$!jhQbE8P ze=kz*n!0BG!Q|lwmLxoiWzJ!OFZ9KAJ808~-cbY}*Yq$|zKF0wJcvpQ42YiRdRb-l zfrlGJgb>F~xDW{r(Hy2Zg6VsXVYcrs!n( zhB!I8zF!Y5V9%HVDocpA^#Q+ImKMGvM_xscg~kiMc%%(}#cb)_3j4aylcL68u@ss(9}eQ1DYRw+z3Qxgremf z=e0`v1RE_mf^40Ij>vg`o-bdD2Qn-iArGA8nOf_(eMry!LsXG@NvdblB=qmjb85x2 z6Y^jjLZn39ElXQ&n&6aFDbH)4d8~wIwDQaSJw+6RsJ{+$R z1X}DIDm5Ova?xn(E#fs%1N~w84;DOXGwq;8P=A^NdaaTE?$YrmBO)9uhHx;vP`xh9 zQ^Num)3V%J=)KrL7M|LE8hC#I@1-G~McZ})%DB43tD&zL+h$x-w1Mfkg+6KNu@Y}{ zC&h~}U)hYAgxAk)PS{N*-m)uj3e# z?(*>WRH=Q#e*(R_4qWQz+wdK zh};xn8;&t=-vv3J(Npc$#Mw)G>fqMQBh5R6jQ@GdPstrETktjL8ao_gG#dlZNq2mh zk1NZQ7AVWpje8$M%Y4G|N<0>WKwE1xTmroSdSjXj!Y^VXw44)sYUUNrps1mD0D&QO`#D3*YPuG!qRVDm!0~(AAM$f5!P=3A!JuB9+#S}jhiHPJsX4rM2^bnBl_CLL| z4JJL&Ec?PAsOj7r(Egf?;IcI@!@~^2hAgD^>*aNvc~G7FuIHrnhYCjHGOjOv`Pt0V z&%7W?#kow8`|PNrS7$thYoM1r&yL13JEe#2JKhG^7HTR#Go0y3IPgSpJPZzgx}6m9 z*NSlcuL-urcSVLZQ8U!iv0lCN7J0goTBUH@^KI>D24t*C8da$-YsBxH=~za$QwhT2 zugj}U02&t<`^U67ZrZ{9-Ff zzS(61J`-G7rvCHYnsNaSXO8j^2Q|g>4RC7?+LfxaxZ{(^G;O+k4z&5E=qf}b`_Wuu$!x@mGJO-55}x1KcE1*Xj5 zS6mY-ETO)h&Drq-H5M8jsFrEX-spz8%_3-=M4f`CqguHo(*rY6`0SkYc}IuAtww5j z9X;M+Br8O9jb^bV5s9Dw#qTx{SdVGaa~b_fPe)ngrGq34KN*onjC3jdp8f<_DE7KA z8@ZUj1KeaT?0^-LO3oe90|mER;U zpJCi18pjN1>aYiO_qsOVGW+Gn6|a$m3BDiVm4i%bPnQ-B;QoYb_?N6||NERWMR9bg z!)KFxc3NVU&nw;D+cyrl55LVqwq#6^-T$f1oEa^q zfOPNugf}8LFdC~X=)FI$Cs*hhQ}e_JD?w(Q82U!29g97i0f&Mwg}`52t{!L{|sshA6Z8BLc41A$BnpT3~0#q2&EpPr9scLI!1C4X#&w=!kH0Xz~K#A1?2*%cZ!NQm2jP|;pB5T{cXQg&W@z04RSAktueYr zfw0psaTy|S?+BHwfh^5lHAZGYrssD9&q5SBt3xJYfi3x*1jWtZ*F-=t^&Ss(G>`VN z70l`tFdh_2d8VL(@6Xdo#@Gfv`2=UnUU-UY>x+Ip#@i??sD_Kks&{e5c^jQU|2#*W z*C;YaY|01eIaKy}>1V>rZ_mH#M(8h=TyLN0A^Y}Z9P$k868!pVXiIgJ^trw0mv=f2 z+iR@Af{MaBzk>y?FH<)lQ`>>$3;6Y!^8mixucz+|Xo~XBjy& zdaClGjwIf8F`a1o5n1QQV+roTJk+iCZA6U-75bMSW4O3(F?!Avzk6MgT~Fiu!-twX zEcjtQRg*s(RhTui9bSS)dd;+K+Sa^K|09~)9L`7mo?c@aQ32IYpiS^3pTegZV5LXn z|B@US)Baymy&-Vk0FOZ|HFj6C6|*17NN~#+_Z}Ds(seMm5WVfSH{aIPv-ANs>0Ro{y&sa_}6YGY=Hoo4aY=X+$_|3dT zy^^{%wV<8)dG)+LS?~I7c}Ki&C{cFHIw_5+U;ecBVu+DtIu4Sd*If&v2JYj-hBAX; z(BWW2lM_!XtKqm2pB0urqxJX8xq9BC!Qba)pGo$`?w*J$FUQ;L)>4RXG*0&9Nkn(CF)dw}TiW1FZ$_Wb~-~&cj-95$tr5>=Nme2p~i((EtW?c1?9Q1HR71$hd zi{0gTBga|b^cl|hN)RNy%deC6@o$2W^KBL89qpO)K|X*8OEC~dx%3gmaY()xDX-Qq zJ^SYc)gnLB$ASe}c9(~=h!cBO{jOH!kUBpNp7pM|(>PjEK4RZ*4}W6xZbkC4>UMZ& z*04b)Eb|9`B1pcLs4$JHyeOsZ00dJXEsn+uv^d!{IU& z2W$Lj0z7*?B)g+^mue*EK^-1p|C3Z)CF*~&G|E=dzUJ@u&u2q=e8ryY+|{u~LEWAB zw*J$268Y?_{|IYyTUnYDl^u#|i*QWVGI@xTxWxzBTQ3mt|EaqeITdAK@y$2of3E%k zMoQruo;Qm=y49G85IzP!XHax@EvzGHdsTce75&qBPE%oIGzC{9D(l63InQ zh2-y5waJd%+*v(?bdaR4N&oO$Fb>PK&p<}kM|QaCp-b9kpPyt};1N4KIqHLJpkVLa zZ5RTc7xiA$phtRO%gjkqFDF5#XF)m$j<96zk#86$ntWf}Nc6eR?Ksls%@CUazh^u0pVVu+mS%aH|#?vdPRLKN;wU=rgG4S@ixN3LN}iy@RemS z%w*b-gubmC`>(s(9AT*GmpMSoKeb!<97U$eZ3fmfSs2`oE~8p{XI8YUDa;XL^8?-M zonZbcN=_v~o(fu~<;QRJ`CQ^5Ed7@4@dZ-eTgfulqYDA3V*~UHQ zUVWO=6HM2rNvq1+w+VE<#Ok65hp&z=GX=|&IY_XXuV1OV(cp*|JKsf%vo{ftBR*L& zg@snpiiJ0l!5L4La`Ub}At{)sZ3aK%v&afw%u|or%Bjq@2e=IkNZ$D$mT~ou8zLL( zo7!3VPil=d@do>!)CT$&$bLKj%R^}Bq4i<(ix?87k8{PBg1+dBw#klMtM8|5wL1|0P<$5s7h;utzvzc_L-2?J>nZ znM4YL#!5UJqHj}T3ob^q1y~Bqi!pC+W~8`3tmkZXsmD1fMxXZX!Mc8F`Pbr#Nf9Y; zSZy#1+A3=sX-@N*35V2NE%+Ze@c$bMRfr`C8yPq{ga9e!ho6 zJmEJGwvz=}#7wpU*Y<1w$YZ7;)AE>Oe|xbbBgFa^>{Wiu6OayuMrCiog5)!?@2Lv* z0dB-dGtMDfF{ys>-6HHLXp4L3U?vYOTlRv3YFhflVOpX z@}$+^bzO{5&%AvHz+hs5robf!2-BzBO$;hHx265OEf+whz&*sFw}%YDiSOL>J?jF4 z*YxY@dpW4s<9q~GVMbtJQf4}8oaYx|+M)Q%fbT@Sk#&;)hpV@aYw~@=ze#B+kq{UN z(%ndm5CQ2>Ksp7bRT@Sk-7O8GB9an<3=ru?L8;N*(9%f4A(rn=PE*Oh=y%j&0=fo%Ni!|bUe<6f8}8SR+wZbd?(-J-tEFn>XeKw z;3*-RCkRxLj9+|quzVS_k%#eEHS&&Nq+!!s)uv}P*vkB(g(eDlzT8}JKCWu|{&D`p zrud{z8F!sN*whMr8BUJG&i5jpPkDu$KP9e>khyv;kH7==y}nEP2UfJdxSxC+wqA2r~Ehbtl_8l)o27%UB8@?8a(fP=GNS3`9po6^9v@!l+04XWAnL( zu~;PX1!XKJyUO@oR(f{3oJwL5R|N(mytx3$!rUEq(MX#6UL3_Zhz{dSGw0OXzT2)* z{mgKFh8T{_(*R<%e$^Omwx6y1<5TNM*)9%JBl0GRJrrv-E?E3g3c)CP8d<7zp&9s=mu+q zZH$1g#ND)p4aucLVe@VnKG~N~svY`s`CJ6i&%2~8uL4i=!mvJP@)I5l$hmco)#ko; z-MS^rGPoNh8-*p<{T|-A?Jf8=##h<*ur6y&Mom5=Yx}?Pdhr_n~E9J0KE|G-~49i$<#=J?_0OR;0{SADlds}7Ii7$s80=Swfht9Lv67igq&1|H~JP)rl$jXA)o!}lR95KbJPOh z=51<4&Wopo@Ci%=Vg^@9{9jWNk%|^&BMD_u^Kk z1TDW0aw4!DRL`qBP-sdy6*qR{y-wEe)0GD6+qLc)>JuY!X7?8cr^Ir} z*^cAnPy6Yz>p2CmC(4oYgZSHQLFbZ>OkJ0M);Fh(>tyG5ANq?JihIN~GNX?wqeu@p z&7dJP_J&s5#+WrSb$cFrMl4xsq>u1@{9R_QZG zY{`NR9Y!Nrl=74OL+aaV+*k{&PCSBkvy~?QvLa?_S(iCia+O~9wo@^-Ig$hRv>*TN zFY6D3MYn?pu2f0+@54DRzdtH&!YGyJrn~Ndo%+7$lC%oN4CsGJrj?g+`2}kj0W`#$ zzA}0MsB<_=Vskplu=rX|JtPH=M;wJZih)(20+X-)j>s(@H*LUBJw$To!+2|~?<`#a z(d|cn3$I4>L$oZGcDp>dGg|D==ctAxB*O4?$^9{UO3 z`Pc!qr{+9YO2dEZ81k0xjKgM;_?WpC($S6Mscl%*5Vg-ItoHYUs&@7BGE-u~t&-=u zy)^{*=iEu=GOSSpzSI0{m|Msb;;&Iqf`_GRO6-!K{MQeASo~jfLY}9X@U>EJ2Z#wt zyfbY9FZmQy0$~rNm0+2axqC}>Y6SDZbj zgNLK0Z#WjN0G#a2FM<_+l)kazCm@ylgV|f`=@8(!i>M|G9Lpu(jKa5PsPh6yBY9Xe zh7#N_9^8rItetxCf+S&X(f?RHq^``FEaC<;YHGsIYBWL4k|9RTE`8zw(`3_;xgxJM z-ip&iD5RV&M9b7^2W%Dh%{KB zJpSbAvH?-m@7@tGyZk`BU1li}vFM-Uyt0=MJH|POurfDl)_tim$*}PDYRqQO;QMshKs)MJKP~3PvFU^1 z%x`@_mjHzKtNaygWBuqo+s2CmC;Ym~Tv+?z;g!Ydax&)8sTK1!)@<*S!$ZYewr2j^ z+{vR;@}N&m?m$NT95YpuA{&LG+Jrmx6P_l*1-~UifsN#El$5l=y6O`^*BCl!JT!dz z)_JouZMTXbiN@4Nfb;6|D-oQs@6_5AyEO#dx&7ks*G&WT7}T#QsZUQ8&^(2)CT?<# z7X+fv?fK)AT{}`iB+|qi)Ocg^xedb~*72DSKXRoP>{#+NB*@D(D`eNto4Ibh`YpzT zlpl8^O1hw4!&I1d+%%<5@fWLn_V@-NxTybIZ@J`YO9b&z*>T)1PTalZimP*Hut}fx zcwuvY&BxW$mwCCaJU;YYd;K|d_xn&fFf$Zpam-`h^Guqn31)d}^OrqPmtg{K*tj8la{XzrfW9-*@5VOWaUazzfS$A0bm_AZh?Sdn5+zCqBggl#pJg9_Sa#VaZ`TGb z_dnHRB$s%%r}XN-hYvj4(yIu;ZvgU*GNpxdypP6-dbZsB!N5!ec{xO1eU&=%Ak^`r zlmehLjt*&_Ky4*b3hDfPwrUtBb+s4`1h_l6@P zOpjjD&cST3KjdUwOgnx818WkgyUTexz!B~}@O~?M(9Us&!T&q<7W6)RDrw!0k-@HE9h5ZOU9JIKKW83NE%z(b+4hUJfY0q0DU@@HEK}PqL zES-4F_xIV(Ieilgi7qjmuve|$_kG^wf{dIX;}i_NRpMCbOt>|sGHXaQ-+XDhl%y(^Mp+v%Cfg4lofIhCD zs)Xw6t%4AtrIMLk{l8}5r$mySNA;evga#dvI&end?X_ zMjjIJmIW5wRsZ6uJ}47V%8=cL`*z({>ZhxDaFy;rL-Js14Cu22$I>%xsJ`4O@`Z20 ze+=!J5(fi%QcsB=2d@&Vbu=`?)h@t*_e?F4I9FjEnY^m7k#Qj6DAllAG^T*M91(`C z7PPluCH=NKXv#OCne#gN zTrK9v*3+W>U2g8dSK3n^^1iCH!Hl&rI=y2AH(g>Eo;9&35CLD#QdFy%U{6ZAw~-!4 zanvav+Q#>(8eP!aV+=9iM6^NucrEz#nrh*&&#aI#Mt_+tA{qR7@KSC_?B(^M))0kz zNnBkEhoE<~a7S%BZw6{SLA(>oHB+RS^#Rr_Bp(B6%5}@5%#wm4o+cz}Pu$!6KA`Lk z1PU1LRh0cD-rVtj73u$tNu80W<~**jT&O#f&?a=&r@ok(JRYgz$;Tr?upsf)J>}ML zfud-FSmd4UzJ)DOFKa>2Z3{tzs<&yJ0~6r*;3a7*$!?Pd)+e7Mbt?@7KK zc;-$e8Y!fAZNV4*VcSwQ3pNCjicf+YGyg-+^Y?p~~b8~=EXp8(09n>I@1FInEGsqJqa zogs&qIE(Cgd?f+z zCRbbPi#1VtO@R2Ag=+}8`dOZ+k)_Ed{vGAa1LO-X!IwZ3ot0>06$n zvs3vq;TJrG!jU&KKC5FtzQHl^Em7CJoZ9@g9do4LY(%>4byUQ%U|opSVc7C+2Ummp zCzLf2f?=B#WnGI4Guujkv_Q}*A)NefP5-er>g$!gq0dP$Esie=5 zUQ08b9JP-iAuO5?aNY2}%A)&j%iWo$MpHd1;_^FsQ#d`@8e^PPLU2do=74A}TDR67 zkLV3<1xNCR3diY^{e!+RC^d)hW4;=nubsQJ4!tsKVmlCVt)$4H&dgQBCQB7D&q315 z(A2ZIB(UX}!bd2#CUNeeca#%fX_7QS%R({{I>cVtg~*Pod^Z2?)H;ZQKB~|WEPD~& z=Ky27tn&8zL<+^GBY)P}Xt9Ko7n7K=q+YP|uvb^qd5kQQaJe&yMkdRtD$NhPN_*Njcz z6JftMHj!L~HGSvM#1fVCIO`GTi{-yZLD;`YB3PY2bF!pDBujk}AV282$ynv{p4+!t z@nlP{s~*aBb5bP?>QTV6+-`nEtDqA03i8&esj ze@=g)W8}7%Ka>Vc&!kG%OZ{;Z3rjw(R{fU<_zY7v^rBCu2E9#QsIj)jKQ@@9dyKkI zN=WWDA32=Nlx>3PJ}A|_BdXdjN4vlLZawsMf#757(1^IUv3_7%qoCr*`bpoVwMUL< zl)8?sc@jYe85D)ADhOjG!EsQ;DNiOeD!*uS3b)QBh?M#@o? z${9DHj{z5l5~&;$V6K;Gbf$Z?>9dW7^E$aoazAYG3refyWqN!u=B1xgh1A2_%?n{H zB~%R7*b`t@K9YXE?~F2CjH6Jy`0a8~T8QwX*coCDaon8G4F!x(7ymA$R#L8{axmKEl+RtO-BL;ap8=@ zQPK0|i=v>Fh!Hu~U~_@ORr;HqH%EY1-gw9Ixy2#0Aq7|!@n6XmT<A?P|8`_h2U9IhGY$FBVw${c#H4BML>R(J(3X`i=F4~;kX@Co$bK!%lTae zyo(7q|Ai0}Cmk_@m4T;A_WyF8VyFDs0P=bJ5aj#|&jkoz`PugjtZ)g?$w6nfWMA*D zh?@MM?CRx!Wx!@paAmZ*4gnT1Gx72!)iIOMO_=^Sb^mXnSV!zAOcXA=T8EY1IO9T{;nd@YO9Y9Kj zi00Ocv*VJlqyw0jBXWpy)6>po#0+Kvf@NYWUgsfqdJj)J;25&B)^NJ$kM;k7iOixf zUjf#WSG%|@_>ZzY&lI|!ArZ)T@J0DV`xD@Z18kbjv@Isdt4JA51Jm?l{9OlE?N#@e zV)*$->IMP)dFnyznEJ8tyLKC%XD(b1or)PPUOkLi@gU18 zL&n{|I^EVzMV0jo+g=jj*v+~R^~rfPFjVRCy7jsEZ5-=XbpM)>O6-nRE!W9 zQ?+wM2Il~&U0kC;T$KKFn)f5e%DFhOm?wMaNdq%rs7t%6{pePhETjJy&@m$Vn}aN& zTqwih!Bcj!Cp{2i6X!X7a`n}wRqijmgCl;uTr07h$s@;e_RuD(0A}R3{*QV*O|y3i zjzqab3QmQKtvs6lNwPoU;}h$XX7=%!32iS=-w(=zJ0{p_kPK6w;0G$E2mUj}bjs5r zuYIA=tVTYR$48L?>%qi+7?)u=zPk_RE5|KTp2D{&p;0O+iI7>56Q>IXzy&YHSQTB< z->eQWbaS*n*_P9sBoYpun=>kq2DIZkuIQ!}Ze`fMDIibpq!3ab%50|=p&VSenR5HYHGH0E zwYJsGljP~=wZvk7{evVNuu0~YbLY3$fY;NGvMkNn@snm+bs5!3S~qI6+h&g1xeUuJ z{a1b<_kPhA0L4MoQ8mRKG5l;2Q@I0;`&tg`PmbS$ZELRe7XUORVOaYU=@}TL>+Tlp z^!Jz~C49f_3`y0Nh$az_Tzv^o#ih1fa!B$-D55iSf&gw>y-2A7Pz+ zA}Uwi>LFiR(cSSQZ6O$gc2Y{&K9Ucl(GU#mW?s=T8z!vZU#-uarnV}0x_<5Uw>l2%=Xj(uJDWbP^Vfm{(m2u5ku-Y4Xbci&;Cgx<7WdLBN0g(-Vp}YClOOs z$9|73yt0JFhcanjelaGmSauVPwiYFxCl&6m8YZA&6|TcGCeMmTiE{XwGZFGw_Z4+4 z<=U+)<7_kvVLqIJn?45>4+Y%}AD9I!+6T8)3un%6d(??(8&lVYcvp3C0X2HKmE6N& zDeEsan7*3^N3c?>b*T4v{Uw-8L69NwJWh01#4fll?q$Q{`(b0hUX~>;ItSC`Y}X*~ zShB0$KkCn$uvfTFceP4`P_=#_a`3 zU&t|i`?+tdy1aVsvFUI!rv84KgVw*zuTh^Y^g_jXaAvB-O|(K-c`OblAYIgHg5~G6 zLPu{Ol9e=!!YqVR@@4Z&EYA@bH0ZPVHRdT1qI(6p1ppkfxWiv6n-DwYRI)%<#tZKx zVDZYmgAdr=Fpwuc<1g}?w|jV&+$??=`K0WV$xm}8gKdWFnA1s zv*?YzjI|CZMe*+S2km}`>5?Uanza-bsZ#Gk?;UIfOZQng?)y?>?Xig5fG@Utp8wd8 zE=2mv$DJ)`XokF7j?fGo@ntJq4>DB90=+7Vx1^F#Q<5eJ@9FFH}~6qX*zp_RC{Zh&Ad4IKBySx z%l=2S)y+lAx)2cr#)S}8&KA;GpZMnE%5)a+zt1)-@VBU&_du3XBBWmnj2?nz2(w?P zVbmujGWP&krgv?Q-q8aK+8)^Ac@<8<&lot9Z;{)weAk6+V1mYx$_s}iHL8&Eyf@Y) z_=+#hL#T2zYCh*Ln-F)$0z984nvQoxY0D=jf>*4>!9s72{-KbBH}~iXc$`N3>Fl5V z0rDIO4i_WZ_K%X+>Q^Z?voSYwBWW`_qg)DfQt&WtEA z=a=xU!V>>d7~MN(PrJPiy@Z0}POxHhh80gwo%nd9mU%MTS?thiya7?4{)p zj;aZM-}I0RvE3lFuvFAm@>`-U(8=l+?#qmP`L=a#7xqT|@;&U;8l{6+&gu;GGoWi7 zs8Oz~o?abU7gZ*G-_Cf>K&5tCN{q^annZ8Q#EZy$_!CZ#y(B|tcVlv-+R?DVJBypx zahp!VjRWT?6|2C$9nc6a>zsX00&{#*mlb6%or$}aai*7>)f%YVYN?`a0^2vet_0qu z-J|QN;h1F^ALwk&37_xclPeq9?*> z95yB&Sm%E^2Q;x9Vz-F$e7~JiOZhvmdR+y+Nv9P^2H*Wp%3(RG(t(hlKxPp>06(Ri zuZ+@FOjwKV8-e)u44xZg?Dip0&OENyc&XV%V3 zN=7slh~Fx#w_OiUSrXrKJZCbx6&3MpvX9Z+ z;u?5FcJ}_Z7AdBwxJ7q4m5`L2_r?zqy2MrKe1EFk$oFDW&8sG^8fgSn_=dVCrZ)@8 zzy5wS)9WE8q~k?>`1QEb(7a+6iQ<#fswgAJq0R{F-p9+q<*hW^DKa#B=Z496+LH_k zBOO$VvQ`(QQu_f3r}$=A7a48)2E1XVh3;--q|4(%g^8ZIuERsHdd3aYFPcFY%ztUc zop{PpUsJ)~9tm1m+`tF&)*+Qg2Ek(E>HQ9mK6o{({8cAB|4q5oD0C$~4Q9>2_yys% z6tq8zYmVSLx(NM!M0!j7-4Ns03Trmj3scjbq@QI^MEm~doav;J_I=v~K=5&C&5s`l zu>qUfh};68m($a&@4?m zr+u5h`Tt%b^V0$2ANPbt?KL+K?hr59h_Og(3@AaFRGQrfdPc zXMm(;sUjpdL}l8xora**li-1-qIl<{u0G%G$*PN5)%p)-l*t(|M472JW(BB}XT8EU zO9IRJi^bl-J4Qt>to)V(P74sI=nWv?1oEPPI;IFYd^Us76K7=Yt-M-)AdXE0xN}`Z02aWYMVzVEYmlMX$s&(_{Z>` zmKVMfX*fmXJgBvMN7V>srors_5N0hhdy=&FIp&_!ih%0xj=j@Nz)*`|TH}dkJ;Ufy z{BqLM8q9oV(JB&cPL$-T7ntfxHq6;UhyEHiz3ZVN07(N&g4d!l>XIbAhgD_32 zg(63eUxde)2HVQt!0BMcVenq}C5@u= zKGQA%DnZu+w(hvkg&C!~-B7@3cP`>ymvy^_IMw1KC9lraA+owXLH!LL`wT@7&33jI zabV89@>7o_)(yK=Puk(d)NpNhoRdhp+WLl=r=mu31Ay=_pVZA*L)EOVo=1M zo=wdYI{D9gU79g#0r?|=o)T9Va_;IM|MbF`g&PX*=ZeH&{g-!zr6A~W=yNQp604W7 zYbbEeBIATzEJ9CgC_t~uMhco&`(?46IiZFOFl6RFSK2F7onwi6bvSnZ( zy$U^!C8s&f5Z#*Uk^Bj48!gR}s7LsC;C1vwlD}z}4*S!B@O=5s*IIg{P{QbaaGV7n zjikcmiBSrPsq;^Q8qTPo;Ybv(a4pB=)_Z&v=2|yy4mYs`WMDinAebu{hCkV)=TnUxH6?nuuBHiTZLC} zicYQDt|*0rt4|OF|A_><`D;~*SSVQf2GLHbn4Vs7es^RTehAhWnT#!OR6!ayX*v z1IrixRA$#M^s_&WJ%&lHEm)%8n%-{)gso|HU-wTA=At;dv&!((h{#vD4F{)7E@pla zfvT}20LRmQ53_pO&Ug(Q~xhlf^7c;?f`z$ktxmXO6rWy499D`U7#Xz zK(%&$pcyFkbnI}+P-A?DdD)hQWTDZ!j z-Wrl5Ps%`@8rL=?8;JRBrq}Qiv7lWiaWy1g*##|!SzwKlr@oD- z6H03U`qHTjAZcfPcTwRU@wQ0sl&Qvnz9-`nBZtX-7x~~U)nWb(m*PJ)Ki1T-cU@n} z_}yl!M4_}Ah_M2jrWPz1>Upr^#NE_OA?$Yv!A|<2erz&@Ha6=94FLuT;Q++5+Ldu*}Iw4$1%%qqN+^&Z-qDZSB&p*-`LR(?AKDG8#j~B z>e?Jcg&Oh+lU``BW(sFe@XjJZwg%Ey zG_2H2I)oqXd9}(xXF*IsN0~L4&*azv)?$>caU#LU*PG;G$8Gz+vl{+o+s`*yvNM6` z|Kz7MzwLiSMhjxg3XC*b253zP-%7*iH3~+4Jqwc&r=!rkH>k5yfnfMu1BS9fI--Z7 zYx(u{|443wn;+yUxv$=FM9Ds9T^5NB)%KxVp!^8}gqif`ovodrVYBFTYO}|A{yVUt zb7({c^Rsd}p@OE^flP%?s;MdLJ-Zk;Iv%IIzCfE=t@t0${TlNhl6~n5g}*na#Gdts zLk&}Bgj-zvA1i2tP?Gz&oR{NvCY&X!?;QM4u^(mYrlSg2eiDkP+U0o!lL`a5SaWmc z6tMe2`WY|2$db z;7x91DEM-8($f=bFtAmC{PCbf#_A(846B?Zxf5~xaVQCgy>aF+tV^hxJa!W|6c-J0 z;{Moc?*012DcCYcxhD49XahzsWKo-jE>2g>kTrFhqGTME>Vh#Vh~&F>E3fN+B7%I% zN;Y`bGDX<)yVn3WX6^31cR@!S^nGJ%B3T@(6dnm&&i!3pqz_%lpFA*m)GbENkb--B z>K6jR;`0dc>6(1n1^eqju(r}4oV=y#|5%D1>RcZfYE!h|6P`@B z|7br&L$|$~yygV{6@WWmPM>tKY0rthHb4oZ!nAprG!(>>2o>o?q-8^jmX3w&r;Sz6Ns>+yiyKi2auy*naTX64B5szz=8$?m{W zY)YheGo?0TjM_`78A6nxta~6#Arq(~g^qZCMF<^OQ$IOfM$b+7g?N7P>aD+4HD+D? zupZppo`jUQnSv#h+s6DZV`eYH7|ic=;-nMG0ACE{BIj5O4nOI64Xk^*^S`4lARK;! zIISq~))YE$E z0^$4f30B;{z~JLTT8WuYf2CyF-eb^aNW`PU z!C}osOsb6&h=rrr*l$qX+R&C^f)B|V;W#9-aB|*Fv7vw;SSc63vttYiHa18~z{i@3 za7p>yPUl)DNnXmKo>xGw+CzifZl7CAV~wY=Xz+BwW7#n>_~G-=wNr!plQm?~er=cU%K!#XDj@g8(qYsY`#9s}9MJ!mFf!?H&jKd42gN-eS{i5KWbEEq4 ztG|q-Oy|GeV8N7;C{*9J@R%qWV<5V}Bx!M(qEhI=XynLSyPqt2O+_Toy@~TD9LKy~ zqABH>oTT0Gf3U>id$L?h^!jq?!`4DSov7LW{^KX&FkQO^bJT@xBHC6@%8u{7I;*C- z*87z~ZlCWZ$VfEwZ$jz02Hsb>G`W(7gY6nQ6<(OHzZzMTbSz))JQNGb2L#Qry99J` zbek{kl)}o}MX?Ato`SAyD2i#Me%E?~1d(tKy*g3lD=N^o3E228W$7|Q;Zhj}J%g*A z37>P)&**)zO0=dAsd`MGAM<;{U2%5izHC>d)^&I+9)ctUOZxZR$6Zv(wyzURx;bV; zC@FC|*G+;9`Ofini`LFpV9>C!uC95>x@5|@RM-?*o){b3dRcC9+$`hd1TRNAwl}x z0|bply1IUH?xA2`x<;L^(?*WzSxOzxsf>`aE%z3P;oLlb_L!a#_O`doff?r6XTxSa zoQLZVh(A!0ai}LB&LtE{1aXHk%4R?Wyq|?lN_m+`m32WKCvzjkpyRg7s6c4fLFP!2 z7ufj|=JG3qJ;)?v5UX0EIToLD7JIePShmRwyj^+mjTQb7qZWU$G^3k62)mn}&h0TK zif!mi!!!54QJb4|<@hg_u4e`4Oau32alg)4&fe|FJ8s#4PX8I8mjYIZR4-scKi$)? zsT%4W5R04KY+g|bjN??P{+IcfM~xH&QeTwxmVn2@(Eo7|8|$MHp-{SeWEx>5ZxhO1 z)?@j1lO^!cV~RW#CyX2C%aoa-%H;tQxkvQsZFIv$>%X85Qg7gI4!g$q{TSY|em7ix ziUIv2XnK_SWGPk+1kvC;`$^M?*ADU!@31}6LOo59ZNRzFW+Da4QU`ocT|sxHFaLuAv#iOlOEJ!ibpFzWWb zcJ5VWd~g_zB{4zFiNj*2aCcPCP1Strdm;SsoML6Fd7rNdh)r+7OHBtS3x~^DF6pVS z3L;)FUlYR*S~#nH#%#lfNeVueP6}3Bx5~E0go_2zxQ^=BjWv#Y7{Eg!#Nc*PWKptg zof?WT!`NPX9lm`Dwv;WfBa7FV{?8q+tggZq!nrP}zsjAMuoXad-3peT0MdkaP1RLw zo9wRA*T$SyH>-}{YNJL2(wte)9#2t$wa-i%J@LM3U-v!QoSa*LACyuS8d({AYd1gt z#BM-^P++xm%A>bS6LLu8x@$97Je)1d;^RJd>V1dNB{cD5-=;F!xqMhWbXZo}N^i@* zb$_{bsCcb`r37D2v;NFT7UT;yJaE+C7y{{nub!(527QyWyld>~XXXCv_`ipdKXsct z*5Rma4>^^~0l|W4+88wMXb0b*vF(UD0t| z)@r9mIm2goZy8UH0v~a3!0_pzR0xy_@vR$Q@{aq_O(Jb_PcC0Md?65J=y?)B^Tqfu zX-J?b_8Q1Y-ac}RhAw5FQjd`YTm&$bH$C&+`H|>eGC2Z)o-;zLO5LonnFoVe6_JJDz*EIP>cZYGg`ro_U+@Bm1NsB z1?P-92^z9jIz+XUMnKYaMPxrJ(a60G2N8(NGYLgsr1;Kepo@+{hnC^m=Y^mCNnas1 zVO-mA^W*38r$=p-OWUG@<>ZGXG@<{%emCt|a4J(K3pnm~5+v^A7XySL^g~|M*9df3?7-${!^QD2+2|q=lC6nNt3WdZC%SM9K=#bBnqyOlJ9rA?A zJUx3iaW3)DA8Uf5SHC;$e(`PX$0L|xC&Eap46wI$pCvdJcH`R8##QJ?tN$u>CCKc~ zSUh<~PH~+5y4LTm40>lK>e(gppgMe#KeOAv(LEFFxWSN*_lVV6eGWRbUYq$`o3DNW zN2CW!1n0g7Av(oxd0}PcbpABp*5r|xejNEIbrv{6)jY=LcmCr7H=AA;Nr9+6>y)?V znV4*X6dT8)@)F~lS1&2hV6z$rYhHx?bT%fn_TJ$6|2nbIAnfk*w*5AL`d8y=&mX=R zW0+2Zmjn0LfaTM7F$p1I@Sn(QAqJ#;LvFG7j26&F{iIa7KT*WlQ+X%pQ>SwKM$v)5YM^0&sLzIOEtp=MJ!T{rC&b#J{zUjhzA}mP`GPjr~?H)crS!c zRK?`|^@x=r;A*oZMg;}Z-QJ5Tw_XipkH4EMh8&FF8+agx=`XnvG36TFdRau!{+QLfZIH_yI3is-k}D)I(Ap^22q|8t_4qLoNcW}4LLK{ z*_$E!s4Qx}%4H%O?FW_YWFz(lt^zaiIj*#Ep5CH@gR96gJ3m3LVx}|vxX`X14*$Z4 z8`SkXYmLh`q)P010EPWN z%rh6<=%jo8-DNQy9iji?E+HErDUr*F$DGri2N52qj6yKy4U@L=n#VbWgmT0^-u-V@ z$Vz~i_R((wk@!Jqa5!D&B^WAHyOE>_=3*#=!if|(r{4^GVpl!5{hIs)D)=)kB)<&y z7F%iEtHR^llt@yT4E?>(LKXw4K?yo}RZSTQJLxaqb&*kZVRBg7Ts5k@cG$)5;dmQ# zEL@C%00(MZxlMgVt_k6g=}0gTaXDrm9s`s6`%HDys3dH_s>+9seCzkd%e+Ph!Ur^zjYX^9(BAK5O-{9y+ND zL_aXx^ z?{?wfWXWAdirdUxyn9fIPqa0jay_3iwNlZPUAkd9l$o7U^E5X^ahaJYP1}WhzhU#v77Du{Zp>9<&j8Ite<>$2FofH-fs?VJnb6{H&q7DmOzi3 zJ1gVL!n55z2%n-UplZ=Eg5Gt;kb*uEYl$KyKy^<-=Kk#T#Od{lgOK3AeQ)`I5~8!C ze;E{I0qv##_$opD4rL@7XO8IwXNK-Vd_V-B!NDlZfYsdjf(#W14iAb~C;R}LWGQ(^ z-?w(i0OUR-<18!#ISdFAbV9Kid+6y`T1`en-;wv7Hpy4zu1a@KZpd-rTs< zS%-RPR{FWfk=XO#^#k;p(67t6pzYa)>?B(TJu*@SB(ScYLtkEzt=NyoY?)?b?N{|C zp#so#09UVH8Q8N^jJ=gMR`*Tyl1!@SgP4PW7^&Y-d33F4r>BqzwvjoO`Ua@#LEp;x z&1ZRmYK;^CCZCJd2*!cgWECN_H zP+kYN{C`=A_NLYuYxN=q6-vE`=CW7885m)A#V28hG-nP?Sd$~fjUA{t@#A~P93|Rh z1@xJ}Z*ZreBx~svh*j)?8J^DlQ0lu3r#Cn z?le30kOZL*)lGFq_664lq^c`@Awh}KNV%4Xm;Wf_JmJIo0GI`nXwMh4mxziTlgWLn ziuJz|zSP~nU`5`_T)%_P?rWWKqbZNFCM!{D z3#1&}y=2j+VfoZJe5}#4WC^gTz00dd`oay5sEL7ypN|$d!c` z5^ZwD{WVV4C;>X!eg^gyuThJ$NoNlKp%!WMj{XE`MAe5=j6zAYI=r*Y&oO_gK+cOH zwq^h8aq@sb@t?tYf4SC$33}g(ExSY%uwn zIyAVw`tL0kWsXg>7G&0>Bf^mbL!UDLl>9$by>&oS|Mx!*A|WZ#-Q6KdP6o;-fef!=kuQXJm+!F<2;@- zf1`dzJ?FGzhHHpG-{1j^)dhGS4w!}R?t{8QPvX?fU6gTK<1k(GZlgC)D&qg4I`)-}i zK>_*Um^wGzlH5$Yf6nZ**&3;QpWs~xdy}QxV7Wjfl`rDbJ zPy)om*xa(s^MGP7_bFy2c!-0CobeWP48$=Ki>yrs6Z##g}|#D$wIHM@y^P8*WP9E`S2$Xw{}QO^GN-* z)N1BA06z2#moj{RQnOU;WI|W`?mES-Epl2TI&AYzzUZQwJN#Xhq@j*+&m(1Px`i3T z*kUu=6`tn`@jY4*3+E-0@{mXj)8gMr(&yD&p^sGJ=Sv`JO=+K?E_OPnX1&=~3~t#z zcf7jlsHhlL0X6>}Z$1A#pz#a$w-i<}JX}#RYVN;F01<-o@el0LX=J%q{p0a{;{K?5 zi2XyqWj5XcwWzxn(cwZ>S+A8L&8bB$CqZ(>Hu~KhDb?yDhKiKw#aSOC!MuDA{CDVd z`t!xVit#arQ_w9|qLqj&zlcOmJ)N1skg%7VYe)BLWx-W{P)qy@%0Z2L02nLFJ58En zBZ37kuYv&07aO>U=KeH5cl@|wcUkaAY7RatMpG)gDIPQ)k69zfKkSEXiPUJ-fGS`} zMe3ra@4X0i=#X*v^g!D(v*qZp8~ddl=9jU@4m}=pv8ogLB%hgQqZc|O8&TKBHD|b| z?H4{=*%B7XdixvTSAO@?F-G}&gUlbXs4N5Y)Q7_VK8c2>dvtt^k!#ROhfiJ-KhMH^ zPx@8PBYjX%xZrC3AOd(W|8U1^O{B{8bkD5I7Ow;W)LN6y8;CzeEHPO_WJObt%=ZJc0~xWR`hlzsH5|#1WCfv zFAwGfIT_g~>q3qBzID>wqbOwjW@gh=B%3{&D^R#51X;07R?|ZcTdna^?{%jWW1F5* zMTe10P<6`0o5~63@=dOu?#;fM*=H9{4Y&`bf+heO^ly7JG&zo-cGybvoI#!~{=p`^ z53t2gT&$*&-RFrc;O0Y)ex8ax8_yd-gj7**O`&q*0rKey*hc!RA8gZrI6>oEeJjy- zC21{i^av4rNY_cPdabWw8L|(ng)ZY;@c+&c;VjOv*TRd5jO-tlVeD|@Z{Dy1v$cTv z+Q2uhh84`!KpNevQi+#)irHq$ZcMYi4%E6(1D;s3f?R6DZkekWlBu=}Y+8V?$EdsA ztZe91QeH+Up-(qmY#QKZ!(chEefiO(W%H|FLaWy`jF35 z?y#<&vzYR0Z;Glu!_N7h6L% zT@pXvdT`U;IlZeAH7e61q@8Jyi~aRb+1ta*Y;>3xD>-NYZoQ5yBdYvyGbUSD;ma)) z5iN(}q)en$UgYexYq#*e6)i4o10M&!Q(%?kI)`bdp>JZ&4DHz7-22a<-t>!0-&l=D z^dkK+a4EdimAj$H?(GrSS<-}_#2MTc-!u)1k%k^VE&B9Qe>yIePTXV1sdueTfNV!; z68M&4N;GnlKl5j`#f`rA2ji|?u!BNj_8jGng*V3oZx{{*fQ6fGWG_sP5Jb@j$w)$% zNhr6kA^!@A9~(F2%N;~1fg$+}?ZnVng0QUcQx?2Jo;5M$HE1=ZMxtK-irAP5%ZTOq zshKwLXWq<@+RlTkpchk+=;0od5O*8DLUd1$QuxoQnSlqFdDi=z#259~@Yks^7T;1B zjf(9*#IU$m35wNT^_UpAd00{P*Z*x=Pd(reX1^g%kCS}KhEFvZ+_;7}Bg|6%-4mn{ zAopOj+t&tftT;)-x`X^R0BXhARy^udSOV4BRuhBQu-U21cuv$EbzG;F)L6DARU zNu2~V@-v1QNwA;40L-=&`Sm4i?}WnMrt8mrg}x`k6fo2TA!Q1(mBMh(^lvxC)?;1{ z2tk9#TZpg~;5Q@~*O&>J7JndR1$wLAV-GJ0)h~QlHIw*a#&W~t&8?c55hWmcIUV}k z>V6{V3yNoqLOo1F`{&&SG35Kd3`_xK%}u)Oq`6VHM@pZLQZfWGD2o)JsiM$<&ah?4J5q$}Na2=J;h8u)OJH#rTAyaVh_FO8U&5sONP7I@`q|M? zact#zvPkzVW~RMDE3(VV4ZRGQHQQeDI&E7#XR5(qmJFHA&*~>KLBl*E$3CRb{yIY~ zpEGUuoTo-T2JL;D@xqm*A`BBpe*Ia;}I+k}D6RI`(00;!&(NSqq>A zzSvk#bzPc^_cU8|CV=F0*s8& zTIO3sEj&0rHd%PVMwn>-cNrm&>J`PA`P~6?n zk1Jy_>|d!W z8YaZl>%hotT>D#llW}4!-Qh|Gw|YF!24^5CA#eG>hhI%yO$tPQ z^gWj#9W0z`+9?U$cK5T=b^3OYWHmz3VnfAK3~UmrU?`$WH-Hn*d>Bb#iSD7_$rOK@%u2|e_oR`F&bBwHMxzf+4S?bb(()UV}%)NDS zh%=~dt=pSaRLm0smrI%6Antr5b~&~FC;281%D`}cX~T3A96BbEZV-U|GFWgD_u#S| zn`kp_dBK4(Y^O~92>)6lB|8!<2an}DqQD7tq}y!DOh#z@qGMb4Y`27vZNG^`P*y_) zAXUBDn_j+n-%xA&HObGu3z&h=@0y^~^U$yK2463`nf4y7v>H&!;rUPD?^B#{Q#rIN z_!&@)EdK60)g0$f{b?IEo>0Nb*z3R}a5GQ=;^N5{3$qm!qU?q$A)#uT!pLL(xnQe{ z_W0WSiEXqvQvD2&PV#|~Xls1+Fo+&+c3ER0!9HowfMf{+&AL&*+ri#CC0tUxA1Q0n zWp6nUv3H1rNc@t}ckn3n?Tb&)%y*TDhex{CE%E8z+s9jPQa#2JxYj@xS22|+8~S+4 z2LfXheSD7YqJ=l;BbZSQ)E|&)y5Y`yUD@<1Q^u_rH5i+EnjFm3qX=US! zIC6(;!GlZBi7l#MX!Eb+pu?aouSfwcqnXs`yQZoiMRckRfhV@^M~J4cEcgQsXfxgc z`)0x7u^3|*)sw{A0Q+fxLe^6tco5;4)2=Hn7L`ko3B1jv z#O(gDl?2e`I|ndYda*Z={?^%s!tG}?Sk0^^@P_@c-KXgIY&WCbiof4kp^Ms;2VZh; z9&&(`pVIV!dEnAa+VPbyu8Yw2;#+W)R`#ip^jqtq>}i6u;mn7$)&olSX2Mu&V?-zQy<-@#7~=aM)RQr z0OV#53ciYA%2T2*n*}F3?@h-AzKtI~7VJMV%5-e@A$p!hBKYb9m~GO#RIhtorbBzM zT0VtNhW3(ONK)ywTOWh!!rtu&@+!)AY(^7w4Nr>JS~ zT6Bk5N&X$vKNjrSVh#K_DXiqr7I23&-c9H|(Rl*AY@7&!gtgzLX#|>1n~x$wvLmzz z8;2GwdXNypNJ2-h5KROh)!fe_Ou}Yh!7^)-(fiT=3@W)OdY{^RBVlJ=oqyt4Jn$z1 z!6Hzlam9BO!6Ws;HNXp)7cM^qeP>LzJ8u=LZSmanvcyUYGHF=!^weol5L}X#mkA*^ zo*+PdH$VkbT`UFtL=fg{2SlxL(;onp+KHtkYn>Gf{r{&0V1qF?@F=AI;-(skXvT7Z zVlvo=Rc-G536Pe5+tdk5V9P^TyUl0zQaikR6N{i1qJ1k1@(g7Wb|YWN@`r;}xFQTaPJ*bKTHY3@kG0%) z8o`$Yr@O1Bw>df2mu$@8$H2IOD4(t!7n4LMb7r*>&jixMCGManY7msv zDWxNO&8CSR^57Op<#4ZHZ4!N~;^x6>vyVaR_1>ZU8z6CUY^J*P=he)@#Crl*$`Wwi zScM%qoSJ30z}b5~WSwP9==91e!QDPi0B>RlrGleez5pr=j?sSKeV5f z-~y5mn1RP*$IVoP?FM}78-nJPhu~@G4h;Z1K=E@YdW)ZJ*NcrSFXa`<|+KaqpR+H*V!(|hf#onZFjHxUz8x+9pbOtUGHLRr0la%vo z@&>jKs)$FaO~Git!2aFGrH<@qqPZTcTz@SfJb;(UG?_WT*obgBm)x2Q7)2*@=8WMH zfglI*Sk&X{h0JZIrZwpmP-RHk4DYJ$pnXr^cFKP8v=?}`IPS503ats0>6xA9Q>f+G zb?nw`p!Bu&OV06CzpTfL9Lun;|NGBbXQ?o_g`k{3iHi^`{~}#&)EtR z761NWj3ukS-|SPT>8QyA>~MX_zJ|4i>DzrjPjuRArx`q~Hjq`Ybtcz&^D3~;t#e}9L%7hgIJXZz?YY>_O~yy|Gwax4Dwy+7`PWrOt`!LCbi9aoM@cK86o z0Xz3Pl6tfEjPd0g@Un#3X&@AB-XmktQHERFRhP3NsXe+XR?vLN@Rlmt zAmPj`EsiMW1MNhX^n#-CKY=>4b1Z3Q-*RWRv}By!uD8YV`tq9&1^uYnY5AO|E+>PM zF?_uYHyrO)d<|SD(-0O-`e0;&VRQc$RYc#twq0;>Z%1!;y;&wuO<_|j@}|q!cXF)M z<+yPmnvId1W{>uN)&*WqIkE17Kl~rO_bs|9^fVLheBp(HW`gwSNMqxJBk%#+$Aobf zJ$hK)_SZ<8<9EK3n?=Q{L5$@Y=-y`Co8*=s%dF&{Po;&1L-~a*lWU>esFT^iUDJn( zDy`&%&>8T}M^SFTz}}C|bA^O!;8KLrvmNe`I*W1&KR+9omM18``lkg4BeWp-W#ism zlhC|))0H7T8zee38RS{{x1v6>LjV|EOUYc)!Z*zS^)k*7iIM-9lhkK79u!CX8-ijf zv$@m84&}_9X*^E>Nd=tWDIQMKA|6Fz3d>Qt-&6~`YzM9EpN6Wnn3X&NZ_Wty`cV6X zV2LA`<}O@u&o4;KdoRx}pgv2&_e7bX+y^F;`WrOAYp_m=xXqH=i7{`UK>s4X!!e!Y zUzOw*I`PLL$%iVN)aJ;|d5o{+)k!~x%}xvoO%8Pb>~q3&K5U?U{FLO9=j(hoQ;4?? zeffGZE(BRg&{0Z`Nr_F7pA{aa*^N_qtUgx&14m9RXp0Unr{N?n6{aQ!#^cn?_Ekl8 z31UsXMjc4Q#MD3L-Hm`GduL!h3FTh&~ znmoAqy$_KOSJ8~_tjD^V`h7rU?vDIqT4Hx1p)k6nBYlK$u}jnb@rvQv1kDKOS#bm0 z`V~A%K~t_~ZJ5*l`IFVM;rt03wj#mHoHlzV!;IYYU}}x-j<>J4oNY~imc&qJFewU_2A?nhoS@)_x0mp(7jR57cNr{YZKJ)&^7%8D;bQnOH?kU_t`{W(Eyi zTis{YEPe*X*qxqGaqksZZXJK9+4;`~5lw=NljQ&BNkJhTBp6#fuR_l;Vx16_E$zSv z1q&VoP|`s8OVTy$lZ;CAAn`8miJYLh%WI3}nOZTP2vcBBm094%hclUBP5P@ELaqtk z)E{A@L~row!B2OHtX$t;CjeGlU*?(r8o-F%_v??-fEY(k;W<$rO2e7*4F^y|pwG%C z8g|?6Inc71ygptzRO(hzcrNxq38O&0R*SEwcgsj(ePXup!_bnmx4IIw>f~>GE1s(> zlrd8!l~U7l?`Rj}PH8YGHzUEWJ_{rL+VOC^+E6r)o|>p+XB=#Q+_bk!e3I?VIbk6fe1P38uLmm*svsiv)XH%(Ej8K|v>D>(wQ+ z@2!8;@-%^xI5_)=jUET%%AK?wKw+}eALYlO&ufCMnU(0{&vP3T_!?!YD8`=Q*iu)2 z7vUQXQNjFv04B+7U~gO#zJGUPyy>qA7)nKU$yp6jEhRzg-Xt2gL+XMk0){nH_$^fl z-!tC5g*CIjZaoXZzZg)kargnI9cN#Coe5`fRATxA(1u`(nDT6?x5ElFT<2a-j)=>= zD{(n;Ht>GrG2w0D!)|osZK0R#S7*>e*Uh;~e2XCuLRKuouN-8nMl$*tuEaMyv2M*B z@u&LX?>8s`p^PqSGvd^@Bf5+Z1L;3D=_DMauYvZokAM7ixa9HSXCxXJKR)tAE~KB< zkGf*cC~G1C@E1KY0sp%gG6JN8egN_EbdE2*2VV$eUD58R+RftYv0B!5=N$}wobw&iY7Un}jA%MiYRoQLr`f9$<7< zy(X)r;!1L9?pZejsj7J1L+Jy8%e5d2yixQi6C!8*^A%3}brMfZ;fs>PZ{V>%M9TT- zUKeAxUF4wGkXrt5sM#6h_m8rtRTd#4|i^vDk!4>(MzZPCQcIA!c;SI)W78Fv; zwN*F7v4^xrHt}25amp#`q?57ZeAZnci^whTV%~^T2MtSxBN(f&1b=w|&@3z8zg-%2 z8~J1!bK#7uC~N3Tl#Ws4+m_q-$?p$4 zq3=;-hN)cVff=(v9(KBQkpLlJmHw-Jva_$>FdWRQ7WtpiCnjKAS%6KJ#L(=eRZmV>Qzx`t9kyr+S?D*c&EuPQl zbEzr{*UD`h;+gnAJrL!*IB~hyyPm8jl~S>KG*~RVV8nfIl_EP^Mf=26?XMVqqD;4_ z*xN^L%nm^hYuO>)M|&I=$w=LH*77n+4UBnq@b(^$TBPN}BZWw(tV*J7@!evdE=Db# zOSXEuf6o1HN5osMQb;-@8))ib{`Qwn)_cok1guL)+Oj;59TjdfcSXk%a?=m}2=HWh zus15d&J7@>lfUB$sqf;rM`zZ<(K{Z){T7!97aGE$0A()zwvPSHbXUH%M~J`_tF~47 ze62cy(ne6G5=SD>kCIJ7QKdvaMd&wsa_HEU2Je-YW39D%T>bcq?<1Ki^0jxn1A&uy zap`s-@bT5l)*B)`ko7B*J8)@&MjU78Uj}HDgrzj$P~8c|&OIxLtVe6MAP*#SlIL~M zYfJkG;B_eYLh8KZ=v~f8eLu9{kox(B!f(ru=^>VO#q+EIJ{*Kl0iUF}AoX^8qAM#2 zN|CRIsSOC=NE=1VpyW`GevjOZLZHs+>}+~ak00A0DKj@q{JXZ9P66oA2YB3#?*SQm zvkCTno@pV~?dXNRawm-BVqiUrCqVeoxVPF+eBjwWZoo~iu)G5b$6tEMI0kL<#4C*A zrob9`zcR(TDGNh~gggwlx5jAO1nfK98;QKb!LNqy+O`nm5Et#xc1*7bH0bqS-xf0n z(}QqvcAu`!VHh0BxgjXA)EkW_eKBDB>cMafOzafcWpMr8h2X1WN$1kk;`Z$;Y5_^% z)FTV%drsZ+na|>R6m28#XQ{Qfs5b&)GOpK;ZSg9eb^O3tS4w>3k@|(|4-_ni-r!|K zL7iM*;=L;9@eJLEKM(Bnv6Ia2%-;@IYYrv(F0&^SbN^65ruI$qcNWE5FhFYcslk4l zM%9k@ZuSF#W8moXps932TMP3ZSI61nWCYox5+19zjpOTWJXkAhBybb*urL$?ab6}R zWLS)x`k_^f>&#RuvxZGV?|XPOkK;?csZW+YX8#RpcdTnw&iek^>g)k9eErI| zta2;(ey?ZCJhp2n)T26c5WdOsH0VyB3Dpqr42_UBJf`yz%sv(7OAAmX5D;*ULeBeZ zb3!-uB%9wPaP7pjRzS+?e(*_~rt(f{x0;Ih|GiPGcd;k`c1XEfTJFg^$LY-5!ZSh7 z1`%;gEDSzDe{DZ)-@9G)Md;o20boXZebo>5?*|Qs8SNJnP>euR190c{412Sq&nBRR z-V)%skYSMtxlBud0T(bk?D9AsY;%C2Yt%e#l)+Agr{!hf?Ve$WP=dc-e|ljNs#za~ z3px4uJ;5Y+J6E&zf!Ju@v`G(Rys!&ZoYYh)^u=W9dKf%rslz2 zU}5er1qv7KGIa_aS=l$OVtxD#XnmS8*4(elE$)0IlK!=Qp@37afg0)%JnAY|hg_X& z+^s7m%4%Ow5W}}YxW!utTFX9!^;o;n%BVH6=mdVLKtfLO5lF*!y(>Xif1(h|xP08* zHtqGx1Wqj^a<_D(BC({r_hYIUiLdN&x>e+q?7R?_QK3}2gC2&pc>g_*$-6G_njRy| zjg0WM9n6q-nY*u}x7liJaw$FB0sV|2&+WTKbI97cc=F`<$QO+N7(A5nl_tR$GCBxe ze4er!y=9g059dI5nFu_{IU;WCr_JgH<8*)-0AEBLNqzuEq@fVosj5?Wc6UCs6kdnz zl8G4{;DV1)L=g|GiWF`Wa(#~pWdYEE;BWfGsS5V+-W0{v#yW$zsIuqgr# zWbl3}ec<$}q3b6)`BUvS^!N?Om5gfKt=41Mgk8eM`9Z9N>U0PlP(*)r7%tlxhO> zv>b?N`T~DniG}sIes%(OL9Bh_;-zLc@)KZZ0?KU+5!8u(MKvpZ+N-;#zEkL84RkYe z^DA{Yrr;2;5)TZytVZ^zUCgPMf3nC{7+b0yNCJJIprmtoZ#s#PTCj@r0UN38eW#kZ zVP{*UePJN0HBhoWPPFi>^qK7MoEr`=qR8d{U3pPIKv->;RmmvfG_}X8wCLt_bOzhU z+iMB(Y96dAI@?`uYt+18`ylX326&^Z9Rs&l2KTBv0HtdH3c zqPF}e_2#)9w+=775lBZnWufz2etFSc!NqZft{hiakz*Q2?QM(!3p#AQ0=%s*tbcv5 z-q=iy)V_myA`Uz;jeW_>y-swGWJB%Vf(#xK<&OPSqT}kRQ#sf6*8#h?sn!kfqp^q zdfW;Ag}qXTR$sg-v(NiqNRvtm()6+L*}G{{dRaary%hx6mgVYItf4W1#nc z!D&Um^IXW`E$c47${Z{72mbQ#MaHfPa0+d}{5`}?_l>{?v=8odv}35pC~&*hPD_DU zcPeNw|3XE=YcC8AaR42`w^uMV!Xth)eAL5tBS`Pw{Z5RVBj~$H>8tm#AB^BXkT)s} z?XQE{m)dV@{9&IHmOk8kdC~7njb!niF&r$a>KUV*r8}O3>Af++H~jDy&1`1FpN8L} zGJy2VW$F9{R}lwh6STzoIC)Z1U(ZrEQjJagKJy3hgD7Y$YRimI0oPRVVB z8C+)B29`Q9tMC_oTScP!p-5tBEh4J-Fdzlh-I59&IIYGc6VHA_%iM{=&`Am${1b8u zW!bBf!P0|IRq?*|i@H|@Qqa|cF8d$2*H`DggdUsSy4x#m^Dm#gxsI)MO8m|qZn5+^ z%*P^*q7YJa_{*}EiC4P3i%QZy!0;o#D#(BA zT(w00EDR|ZSHgL6Bl+1vYndqww+>yFn7rxOb%3Y`RFyP%Eg)s z@{!=8ogmt};7vB~Q-)~{X!x&O(3uknc5*!#4t!2vsS)?1206!4Cd#p^U}B`163=oG z!)TkP0W`Xr@p0B)8|+Jlp!r3d+UbvF2#Uegp@$tBlBvW?*Newok?#$NFKA0~fLe_# z(18Yrwpuf%bECE}NRy1JPDt-VhbV{j!=_hBY~VHbzTLH9SW|z2?NGspES|~^8S^RQ z!EdW;&!hGzsl;Zo%%1BfyfxDm>`N?8TWgCpWG<<3VHJPrk43w%F={`2TK42b#3J)k z9V6*rY!yZ6^>H#gkH)?AW~Qv?EwKRzjA3QW&Q|4qMMjf6k@h1pN;n76gY;BJy@tT0 z#7QR~+q}K0>PqH&dOff**X{F2*eM%L)UEQ+Mj<+KaQpKMj!dAtksz_W>81J~o#gO0 z%YVc^WA1ZBd!;P>dub&%|`Y+I71P>a?ujY0E#nTEZ>qxT? zZtlTubp!@$6@ZJNNxmlszI2k*?ycH~Aw|X>r@CW7VN7{O@Oa|%O=sFRm8>E7uePH( z-V?7JSH;DyeKx2sbD-o3Igxektr)2>Ovw5o@ZL*=KEJwCiJKd{(GYQ9B>Qla#(V@?3AMWfTq`IxrH-rDXEAe*jZ8`GNa3q2 zi~O_N$dYYc25S5NXXHZ%VJ^%0MP%)pdVi6-MLI*(LKa)60mz=mpFSMq4!myBe1T!}olewc_2Bu-G>&xnB+ zQW-=8Ckxd3#qxlEUIEXH+xk&>?Vbiv&L=!Gge!@V{RxuL`?RezRNM483RqhAY6N+y zJ|DS~iaX->sFNMx!Q8Ww+#v)Hp2h#M3f#k=2VBCYHs61;SD0EBVRGA=+T&SdZ;H0^gKV2ef zid>n@ss<=0kirmefxv5ac+oIdp&Oc_Gsg>`sfZ|2RpWwsy!04yySGg(gT*6h7*sh5 zRHfHJs;yLk9po8INyPPeB}cruM~aveiGWUL$E!*LyZdIZ#7ht+YPc-5#Rl0dmDVv8 z^>Pmd*C9NQ-?Jgu4IVb75hphd9}1p$ z0~CMbCS1Df`+eka;3>1(T-QGO+`9`VqIq<9xO&RpBUvt5_07 zpR2qvt}*w~`8pg2XATSBx%ns%ehI8CscA-^_0Zp8359Q8IA5NSw>}w2a>60}Phon$ zlCu;N5oXy+9zaN#w^;LHbAmE87Q3!uZKwUmD%uGbM*pV&Oy*l4N^ z%*9EdUGde$fJigk)&0k>B}l17E+&ZPuFWBhspE9o>wDb-p+t+E-Nx^IRQggHJ|9Bq z2uhpt?5jbVW8dE2(>8Jz`$1}L$0ZLjRIvBNMizwHZQA%6wjs-5Kdz!&XO-Sz~^vsGPLO+-vyXc$OqsSv_U6ex zE&Q2;|2b>VA=ukZ=UGK+gr`1K^jkqDf8FcL@tV{PP8s0G!O_yOF;J`c? zlv|&SIhg8@2I4%^Py-`vDD09=*agB_==o#%_&N*6w|_Lq9``T8BsAjyapvfoD`&tw zMqv^5?tH}#JBq-l&b#52ntFl$bpe_AC^b=O#324aub-_WKAx z%)bA{T%FCq+cC={@H$L21dmMcf}B_42u*Fqg`$oj z@3B;MG3iL(j`zjnw*yaV?? zkg$U-2!2Nm9z`${RGK_C5ue^&I54A)4iylXbaYpyNxLm+Gz zZPyp~;gfc`A*o4ltk!~L7DzlwFKT=$d6k7*jv3n@Hb|gf zO=nAwN83@@CaJH942^8hRqp3ruiUDu7F&Gu|GFJ2pzr_V310=GmW%M?Y0pZbWm%elp{b$7;p~4^Y94IIX_n`OD(63< z6{p1BPL&3bh9R&C>PB4&^qJ;Mo`btr>+~{A_C0u$DA*?T0?(pHysCAid^;4K&g;_i z(HJZ@S+K3rP4%GkbSen{NK;xO>t*iRoY{INocgmmEjRy0qbzi%sf)*8%wPIzUpHCc zM?JJu+`E1+#^}dyj(mmQH_D8^m+=03Qk=m6l@j^}hNABV$EM766AHxrfX|KV!fq1Q z!$(+VlH7e1HJ_#<)k)Ua$w1=Q9vB%LRBCf#GuaNW#0Jh$!ci%^fnuc$042%mCJh{=IkTg4F&;p&b(V`zVAU@|tZ#7qNNkSn9h|rEWyL5mc zq$39soUV33PQmyScnbyw$Ab8Y*=))BonX2+e85-wOSUCQ#||coA#a1@(C{BL6BxXu4&oLbIf z7`L+kQ~w%92q%@p*cZp*QnPMeb;4>X{CS`Od#!1!CdGwnhHQ?&zt!aW-)gGChccqn zVn9Jww>PWzjYM4oAu$<&ZwqBN(j)UX9GKwor4R!)ZC435@CCyX$@e5zKFyVG)o%)P zAXYPw`Jpe~%MCXkXStr|R>(;&0o@q|pKwYb;UPXt`znSt$J+`bq>@(Yf}Jl?C!Mj` z01;<2AwB;!Wp4y;}a7vxLwm^Z(1r07iT29vou5rQi#h09fW$fkv@B4@U` zfr-CBAUWKsjR^LN&q8GwApn`Ii^K=(lZt3EteF$sE3Bm~nytH90sJTy<~h)0AM-zN zKi=}?|B;wwb~yYZ`7Yr5#{+SX%-bx!4M|NxQ(0n==9d{?opD|}($J~`VriUHpq<#+ zz)g@>kE_-^z33`~2dl&SN43v`PCuc{_1U;zp7kZE&?B==i~HJTWh+fA1puKJrKw`b zxat*9xx3M9Dkz>g$dh;L#c*f}(^D}4^xbV%aO-00@kkKeD)?d~q~ES+T%pkKR7NIj@SC&($5&3}CD4tIkHfV0=y+z5 zrx&1(nc7+7;bT~n%D9g2Ll`Zv_tSjTZGr_xIqf!rhWNzW=GzUgI3V0n+6$AFsOweR zBG%Cdho4)#x2uEqz2pYgi$Q1}8I2p*p8l zisHY+rs^RTI`D#@CNhfxWIfzF5^iG9P3mc}ox`lC_@W#2M%%Y83Dp18joUKZB8ut? zopm)Nzhc#!tkFW5pzo4#b%wi`P^c!(tGzp3dULut57!=Y)%0s7+p+mWBTdaWoxCaY zS7Tp{K5~}%TkzBWz9F|mX5ALbraLdbn)0QvH-*l5!xx($FSNk>;Me`=FGdp<;YdcK z?y7TUTk-x|%vfDP@VhvtC8Roc>3e`WIw5+RhLAO4xn{ekfh%r_dK7Ibp_vr%&w>do zY0vCJ=gx&U|FxRge%nAjdI`;$ygPy@!8T(+Bd|8ubvK6p0VlkafUMZ`soo`ni`I^L za~;?-A1DGn615~5k=?Sn=|g(*k&v0;9+y|T`uK@7SZ?V7y&(BdP1KJ4jJbZMF}I!l z65%Ws1%~C1xM^+Cqb1LlXfO<;KOuh^)JsGD=KmsS_k!1W5NajC&6?w$^46d?Cc}1r z97MY|{^h2cP$fZd|A)bjP)uwjLil)?Xq*qbAeFV2Y8C8ox9Bugt2h4ioGkENKcXmM zO;cy_SoZ=si&_1a4`R%2rw2uf4(JkctFdvfb~9}8gE`%;mRCI1kz?rb!qLWMaU{s! ztLB~f74)PXlu|e_V*Be;S^Au0qwJ}hJ9dlUSdj!Y4rX!cbt%cp{>AX}=ATXUoHU{@ zz|lk9$rZbU@iapj*6y*_Tha%rVuI4JbdaOZr4RI+K0ub($LXrjU)L~PsE;@it+rF& zb@b0WhteJRMwwluE3tlPlkYX%qbK>3c4^~$SvC=c>wDc|MOmEuJ|uI>T-~s*?AEhc z4eP#lq2m9p&h{Q|9@`p-X;i%^Jc)Z;lj;cO5izmp@MUta&ZL3rkGnT#6MQx+LX`VUw!g^wPS_fro-*M3Pt zzi$HshU)ndsiQ+|djR<*3@4|0ss%|=$)}Mk{Fb#4#p8>;BikteR3GmXROLecg|7hw zXYpt^;5*H^_kQw?!;C($F^a}Z=OQY#1;^X_(6HMVhz#6TCdg`E{8djQU3U7#dj)eV z{_ksFrcAa6TvpeKQ$lVE7rPbLf9HjE+|n&Ah(a@5%K2Y7uCPK(tOefAK6;^U%5m$K z2dJOwh6#~pJShE|7muA+(W9I$P1RmRwW$L!O$zv8sRid*MAiCZ1yk%6HG{9mEiK~_ zy=-}$0M|(@v-sf*%S#!Da;BX38%$@w$j&$P+|&y zx!>0vYY2NBd{AEfN)4|bLjLBY)p`P>OZI0ULF8o;^CDrz z7#kLvui@h>!Zhg|@P3&}SCV@x{&9G%I_O7=5JSsf#t`v)7AyYm$1r*O$dq~?xe z1!zFsWh?^QV71}>)$<*A?QOiOU z2mz>N3!g0a6wlEW%fz!_=jF(Mo_lg!K^lC)k@a6`$58!A&%gS10Ps86z~rw1V91sb zF!8AB&dphrz>|Zje?5>gsy86sd#yWj`Ab4!9K$^D4w-srB_3AD!;@a4K&GC$8VZ_MNOuIXQUcrYXO9KA+nH z{1aq@trm*DUpnK3z>rLK*=<)hy^;6?a_RH=S8E`CdBlw6^GN~J!eb^jV1%!2U)vssDyO3Jub_?yO!S0%g5T1AISIuz3HdQFKkY`fy=}zQ+@4eeL-{`yJ{*WX_HatGIUER?VbGuTRUH>|pEsZ7}zR-G-F;o}k zlxUdE6>TCsgQ=9R(=##-x}+|BpZUx?d>BA4^R( z$hjQH_!@kRV1ahnEtW@C`Xrd;n`MPA`F#Ww1WwN=Ufpsv_LywRc%BLWbw#L$n*x;x z;9v7ed%y^z|1M}oa$nugd>fboeukESRc?vbb1lI}!eNB%Ko%*nSF}dgNoef`sn!ZS zzDtxdg*Pq&PRKco1r5XHR>P|s;88+Ldb!(iP3rAXd#E?n*$!v-AucpWs#QfiGJMYY z4&<#ZUi<#rt_QfPr$y0$h213gj$S3sDG)B72CD6q+^S>B6Oho?#Ap0)tN>|!`}eau zpRFe$(&r(HUX8J$|P9- ze|)`nJk{a<|8Enrl}#aJkIFugvbStbNXXtQ92uFBP2rf?ds9yK%nnhu>^L%x#B@B~b}+_h{Z83dH&!9z6@~EE zHd9x%xU8J`h|a({s*|`g@woyB1IBj!0zG<*9=!U`8`F?4;&n7NzaL=bufKdRD^{m_ zVd)!V?|xgXftD^qg0RqgHRYQp)NgVw#`nQaxaxe&4$CBEntA8_WUI~_B}V9*vXwWN zKa#p+844ky6tIfT5+3>DBE8ib2El!%PI{v;>f}nPQUMp*Uy~27TMmRrcL}yKq;=1q zPm%i)j~JLXEWHfA`sM^o+}>&vN1sH{`h5TH@~GVuj5iBoY?C_T%{1x#djOhdnmWoV z)X%@wtPx>Mo)--EN3M8S{S#%xT%-SrG6|{AeNw{2jP$aCr@sp~hN`2Bi$H4at<n6o*l*)UWLe z=l44x>P5p)-oY663Ee7-s;?-3$L+0y4&;@F+AGM8i|^k36uc3#?qTyz`uJBi|^lYpYg3nvhvuWY9ot#W)uiUtD|Q|0x|S&3sdMDy<(^jzkg6jUL8B})FlNT zRD|bdx17rJ5m#t`x`lf>vvrm~P)%0_En8O9B=e<~^ z7we`8M@#I0wkrTX8cy=ql|i=S_+G9;{W0kco2#iN9fcO(q20`R)vIxOvPDH+-;XFI zOG;=j{NuUJGu*&%CarxRa_%A_wa^Psvp>WB^lZZ<_@SUN1Ut!Ba|g%i;sR@}4{K^S zXR0H>sUfskV6Tu%pN{WcM~t>{0ZkaNz1ve1x^B|+AW{8Ga`qhpkYJgDGK zCGV|$`PZ1My3>yaj7ndZxE>}jI?PRuQcVY@A-?kVBlVnO1g$68bI2eFLhQ{zirW0euZsA>zkPQee34gYm#Mi^J* zD>+SLl{cTnXr(gOi4p#S+cUrBsVOQ9oOnJ^ zYC%b6Ek@J%b9W775x~p@Ts(2S^K?OTUPEuSCLZUFHY2i1Ts+xA1OpGhqa^Ue&S%@z z`O~F;Fj~&oF+mtM4^O6U*j16~ug%)a4jAm*iyPKFaS*CKRgK#6FJS@1!kuHJK*T^| z`JBY|*KOBT-kC8|+he)umnio1^mSd)N(3FBvI=4|;~FB}JcpK#B%q}*^dO@s=qwhY zRx?}E2c9DOHMzF3%1;Z8=A>1lHLCj|F$khlaN~vL6n)iyBXW^=v&4ePAi{??>O@1h zlOcWHm2^!Pd=dJ$DoyU7M=z*%=W(Ezd^pnIACqUXHW55+=sR4tO|m9bbg|pY%!#Ek z*@fFg*~0k6eVS~?6$f5q75TvIq9+bKKCGN2VYZ9TlR4K1rq&LX+%(Ya)ev@ffcZwu z(yiwpMRp0G-oW-dJ30i79rd63TS*SG=u{2$4q-q#L z{vQI+H)(H|SD8URx9*}hB_2Ei-*re;H+_lXe7-A1f@eO_0s~+4Pnrsgh+9Ku2B@Vt zPkQ41TvKimMTD3atodL4ml1c6Hh+=^IoQ}e133a*ighzaD&WUUyEo!hERp%FZ_(gy zjuX)-Fee`CZAelTZzgm?2>CL25J2=UH{%!5VjkQsfj&Z)x1@l~7y5Q?ti=Fa`@Z`k zsI6?`bBHQDmE@hBL>R6#`^O@2{i#3&Q?nLF5}0*y9p;2M+J^LttWX~N#UE8SOkbbm zK8wt9SI`x@GOCBOt4B!Tq4cS|&2l#PVf3`Io#5 z$#ZX`(;i!s)6E};Le4Nb^piA%_BqrlP34>a@*2X+IgnT5W67Q0%JLDBsx8@e(`C`> zsb5L06(3ARa~sQDfRv%+My&)zoHtvCHo9@ro)mN-#BOS$ zV7OB`$7JqGvJHyWwo89?ITkBX43cpON!I@&a{iG_&L(G2g19n_ zV7eh_4|#qCdzP_^D8=X46NrD8C~yqj!SG(f0!H$ANZiLSH8$QW5K9gl&HS=k+jHQc zT-iJ2_t{VT zZ=eThXB5{xs&h_nrQSDuO+_=LYYlg-7$bXlvu=+NFg`H9<4s_z!)`a#S_rY(z34N%f z^u3(}*cpN4w#86a_4@5mgYlVH9P{2N3E7ER>JaTpW9+)CO#eFlJ_;w zL75u)OdAJ3e4vy8l&>G)?ZdUhW7IIY?Im3$Tii6BMC!SR_($E(<+|`9CQj)RzaVql=x{yaRJN25k30fKZhCo>t zL->>j!wMX5lh*sta-iHwPgGkf|IH5rFqqkYf-qjq&1sUnLBV3X%md4PN{HP&wouwV zgY^SF7o3d2RC-1?k^`pr2Hk5)gieN|l5x?8j9Di|rX5MICO8telwQ0iBc5M#&__^w zfe%J;e`aGA^?pg!$i9{^wJ~NCLW)&?t!59>FG82fC&P5FyeErTGHy#bO5Ia}{l-H) z?xsaaKBnr7bhqQBS_dOpM}>#QvpL-RV~lwzm;Gv7Vj%(h3^{0bF5l>Z9ocJNz}7y) zcrUyeIoCB7YUO9`84DQ4el5=Z$Cp%&Nl+mt~>|O>`PIvKk6A5VPi=-yV1%qY3qZEG{|2yYx-5uC$f$ZutdV(L1b~Q*iISH|XxShBI>H}UuD#OtJc`w*l$hZ`AP_8}CUmL}f`6bXZc#lEI^K;xV(opxRjOZIxibIlL&SOV(Zwa=y zd2g*St3~Nsp&umHmc%${L`86Qg?a9Ftjga=xmNJ8k8|8K`=$gBM;m54Zro@S^efk6 z*DN0XoFkVJO^!1#FnIxto6T=gs?NO}Rn*t8u7Xt>vNVWo#4Xm}3`QYw+}PN4`!%?w z)+DgW$5h>ks|k*u5=)u?O$U~t4+#=e`W_{=#>SVYMcu$*&~4foi`S_ltT?bgg-fI_ z68`?H`_x1=E?3}1kJ`O4JryCtZIu3x`^s@F-3Rt4$zL{E@hz`0Z)d2*+Iyhl6P~rU zgA-J>*!?-)BAVToW-N;q8^4mWeJqrCQC38&U*u#C~6= zunk-#HoNaYoWxsqi$)ETUSB61F<5rbAj8F}XH1Tw^b1YG75%?3IEG)l%gu}yP5Ftu zwJO~NUlf+FKQf8~+uCi7tOB!QiFV=j(~7#5u^x#ld#xfYQT14S(!U4+cq_r@w;VW3AFGvsyYv z5Yxs*l0VHqsh@HaFJ$v@Ivy)@j7Z8bPU7ln3V%p60r#R*ag9Y(xu`q=i`|wX*4FD* z*Udi%@4+qHLF$-t`AqZno+Ccq9y7w^d0g-Z$Mu-;8Uud%Z@m0(3Ly4OQO{RQMm2?C z{?ZebZ%C0Y7P11=ihcbM3D?k&H}{`3!5#{z$Mrm*=buH2fcR5cZB9zs-pWm%ocT$F z-5TTpL=k8H4JRF(UG!Et0X*`iA~&Z|0tLf+OXqUZ&#xYpBc<`q-Xi31zgH1Da?yVK z**8jObRaWZ;v~VbBM7-kgsd%*8v3P_9f|JB5^XT8YYEAA^Kh^V*bH0hLNyTep*U21pS#p z*ngL=*YdEQOE7zbF0P!Q;YgY7*?a2;1~)mr*pQ?K7ijhJHCW5_(IS4b=yo6GQFOYC zKB@rO$Ddpxel$vo6oVxS(F>EaJNaR3d5fdE8*DW-&qFO_^{dTr74AO&r1t;Ke-qFl zyTZr~(B#|)3b+`ej}Dh;YF&bhH2D2oU?LPa7rr|aTO&8dnvx+YPd+7JOg_{w=PG=^ z`#j6$VhwfDNt4_EBPnX)#u$ZtM;eazB_o12Skz$z2L@84!LHKqjqjY*&6Q+D?6(O+ zT6UDYcD@A0d>*yqje09Hh$obHRLoEM^!>ba&nuCJyhfOLVkAl)@2}IU_){aR=!~Vh zL5p%;em&ElNa&+#HP8;BSyuZnD@*NH8l=fR!|?|<&Oq*Qckn;rTh@c!V~90D?I4P8 z7&;BB$0oPzFxp*id7WqPu2Yyy#tegZ$eU!YBg0XSFe&Tgx8V)7`*s(ad`c2CHHaj$ z6!B*O8-h{0of0IsfsiEiY@3((C`s=7!!%gXIpWVz={POqlh0eL_jC}t3l&T+?Igxt zx2^Zj#*JyYC|gXZ$(>uq*l1KxbPw+1K{W5W&^jQUH;Fb94w$cpEUC|W<01BF){`vG z?yZ27nrpZW#c&XmSC8SnA=zpm8S0q=YooL17t{7L5ZhZ0@8Mj6Tqz4>f=RDIvS?ot z1Vz2~tSRrjHtlbeRk}FO;lvPf?OEr7mGej(UVOK=C^+==^k9N|g$?~>NWOWO$F(CsRK^Z%_; z4zl)ImmA>ER|nUoDH{0-ZAsD481Cqt?I)~lY9IKpkhM)(2~%3~;H|h}h55gNjk_T5 zRR_FyA#uf;gIxV>Dt3Pj<{wUBFra3^Lk17L(p1GfE=kS$tTl{BC5?NkC~IFzaE%l8 zYLIz5HKGZlkCRUH#|N|465_SLq}P%x)@UDVOWm}bFe2W;P@W`78tg#c{UqEzk^yXY`5X!t)=V-Lh>Dv0Sbu{wtASgXW_*sNZ?mkx(>y|J=bZ1j?-zXL zpi>PzIUP7*`l-EKRA+%br4Mny#~GmR0ZpQvtAei7uck;+x9l_bW`qHwz!@mAa7sl( zbf@q3!422I1Sj>ICl;6|{B^3qw^L1s(abLgZOejlx`Pi*O8$gc#y#i)5Uxah*ui(@$~_Ww@55^_p`>a>8zKytBS*`&Dl|3}9iX z<&lmY+*qcIf?&@=+tDLXsemvk4@{CylA7W^0qhqd>M>*Z2S}XkE7Fs&%`IjZg|U;I zcyP6Y{z(Xi_V(3oa$IZF-`W(bt2qxG>%ydlInV9l>h2DCg%3Oe1BVIn5{j;qmm3?$ z4~%G1lJ~>@VmX?e{CnSkNn%^BVHF$ogq#Pr1i)4`TVhTECk~GC2SP_evcuUm;`f}k zp`mVefCLaR@?I{_q+BL=UVR=AtXXrEX)s7k4qEna75Cg*gIpK}i-of*W2pu~A9O$c zK@btoa@eo>vFL z4({xcG-QJ3cf*0>{bsPWobc%KLhC>N>q8vO3rP0KZ6<(RAYFjF^?)v}9k9r%*jrCJ zgUup_)`N&J>5ESbQ}`E%gXNhHbo8k*=D&t+0r(O-OR7xN;&1(;xGwstWeqp$^FcCS zFzSF8_N*UYQXIS<)jiTgU0zIRFG^J(!`_%Wt|I72kKHwaTA|Kdw$n9`5hoEs6Bo}P zc?j?LLuEMLF~+pJoUkv7PMkQZc7w5dQy|`n<^h=O=7-(l`_kx#GZ1=E)CCj8$C2ZO z%fN*0>f{6R()ENQmW_o=*TE!Eyv+Gi2sXp>oLa)S7kAb@*PJLb%$YfKS7(DQ2HSo# zv)?Sukcv`wD%&h;It?S=wWp@Z>Ld;76o10Z6Toropt14!p)PN??}_Mw3UexLO!<&E z=8bao{$6+AJ@IP7vBE63oDh~$pF&{)9uoXqJyL*~@;YOt_PUv3YR0hYBNR8*w+-Jd z2FhgkOfgC*4cLlgTGkKv0`V7DP)e5H@Md~roCiN#I0R@Z1vgaa8;NB!e^Oko){@I7 z?>^F96mkZ@u0#F!%H91-L7LhPv)PIjp!lv`2$Ys@@!QEhH1B$3R(SVgJpU2jec;8& zAtZwO%{m!`X$Bo6ckYc#o_KJYuxC93d{gFE;Z(sJ#&@)WL{zYU-ar0PjVor~)O@Yz z2r`)lk#y*4#91h6ELF>hKLzGL3Zp2#)*U9>e}1q`oPf-xx$^F6+>>a|Isk`kiv=hN z8J^AJg)k2GmeCpC&G(N0CusA64fO2=C%hQ^9Hqm1-};yu8Npw@@?)_sleJB}1hM`x zTRiwq6v_xSOs5FA|YcD>REi<>S}c` zNME)}$L$^j_C(hy`^wMBG4QQdY zWJSZU-7^6dWcI*ePH%iD*@3mGTC|kPQLk*FeH7cKj6rbE)OXFfL{PEFleM6%4R4Y_ z5i#iFW$wH-;=DN!Sx;0|s8Y@P2Tj4DKS-0$_fXbUB73ss1%Z@D-P9lPUbZp6E@S*< z$f_~P2A9#%e^_%eU&2;)8i&d%KCZ16mn&fvIMI zp)r(QH~qA9-#|fh@>2cVpp~GJ_kb7{(q)E?@CN3)k<~VIug7J@#UI@8;+CLtgb9@RvJ$0S|?9i3b<#vWi?KNN~_)RR2D8JNZd5RAi`fQ^Pq9 z@~wA|(U3U9*GB(v{|TnFzC-`+IiJA8&!S$KpGDAg^89C$hOed}_rLoSqW0s)@fGF= zvwQGs%eN6aeiT&8oZ%FS^DGG-GNBF#)aToF#~^oZXen~a>>KfTecC3;@vC13doPbo z(s`}$f~yfZgecIc016|cEy1W$YC&b!n?{WyO>7MJ!Vl- zbxRq%bUZ|eSm4XZ%Ef=W=~O7%dixVTxH9^DZ%RTVsB1U&qz?}W4oyy&zqn)SuNUW? zf;Td-6MpOQh#9|PD`xDd*$RMfh;D`9pSuq(DJ-%;Wo4eyN2qmf6>Hdzw4ou_T*(Q< zzvLwt8n-e-Ouhbe9)z))PN0Mm-hGE-?LJi4!uAd1wcf26ziKL#i?O6~=Yo~5`rjx$ z#BYu)BBg1Gi8gO#+y{(M5#Cp@vz(v!X|g@9NKXMVWiVN6wT{rS-x}jJTuKrvuQDCp z6+)B@-jjKxx9N8Nr!eBD!TkpHFbYf&C4)o=)WIKrz|DSaywM>N#ZIeF>DfmTa2Jnp zkLH~>b;Mpfwlc^ND}skWih8=^0eQo4D1rC_;-n9@N8;k^y@>m;02F(iiwqx20w8iO z;2`^YAFssPzeU``5V_FjITX;P|DLrPNCf;qYOgl@P4aNI9DiN z^i-1*f&)t~X>Dm_&55x59K@p?(QATnSHx$a|xWw>*|dC3!D?@ zad7$`3Z6{TmLPNI}gM`GywVr(EOGS&NDhQc?Fgxb?FKM=;U`Se7Ktzy*+FZwPm z`LE)0$X&ue8Jexsju`)q(?N@mufgn8LZ}VZ!k=6f&pb2r3aw)}6#qnM zI@5P|IekU>g%l-KyDp}yH9Yttw7)yS)1n#$rvJg^lC|TCUpHl77iS|CW9pn!4l!Xm6cmUumlE?g5P~znY2>pMczot6K=% za@rzf2#;80_cKw#vNq#ymH!KKPMqoghdD2929F3i(BvB`B3`o&S2RZ1iyd_#+awG*n=x! zTW%gUld--S7JLgS?xUVaVJ!d{(h0pWmC^G=nvZlYV=(?;VS6$%^d$-G8*HQ zx6TO|qhBaHyn-h=xk5K+K3SWyrz!`?e~Qhf=Q^5SR>|yqVGVnk>HGP?^Fvt|@b5tO z9_i?q>i8djZ|ut_e_!_cW7VQ}s_3cLf2QcDoS0A% ziH*7#c+};YA25S7ohObeT3jA_9d<>WVHShnasPYasP?nLX7fwB$bZs$xXSDu*i`el zS>V*i&xx4V#R1%lkyy{b$avsadj=VC?2tw}sQg~W@&?5BY4(BFmwu~x7V2%;J`FZ? z<_%Zk3xxB<+L3=YCz~EG;^fCG<;M?c!=5Kd4<~z{=As3DX3&jxtgpDX7$X|&D^1$G zB{%n!j{l4H=1^@EdngQR@`YvSV{iTk0k=sO{D^fxEVrqTd;7inxuJ~J9Nnnm8Or+s zrYN{J#Gu5u4fHGi%Gi54+R_hC4C;i*xtrdU~CbWSJ*eY>YKNkJlcI+d5Y6k8~aLEhjDd;f!Do24|_1bH&%-L zARjjcV^Y7Y9 znntU&Ap7B=7!B*${eGA%_q0^r?Ccc=;;5AOM8W~LMB&HJr{p@NUq@RzX#D&mNd+Sc zZ+|UmwY8BZ%f{F&-JE@(VMicW`MQp6lv~pKb||64Cl9ia6KUl+9Cr+ok}3FBhLep` z)S1M(T`51ix)tV>IKiUJV_}aNWFW!(y6VSrrKKlY2>)5CGNsosj}P7H|Ft131yrIl zHr!4B0mUaD;Lqz_@<$F zjJ~%ItWzQ{6QP0aD;nvOvnd(DpPG#QcbyLX7ZGH8@6sk7;Iw*uIbA`#9QKXkQ zI#j9|wZXKGMiG(-R{a@9e?21o7>_ee=~|T-&RaZd2$x8t`}y*;f7ixh>;{ZoZoP<=UFK=Y@vi5>3N^8@wJ7$6 zB0uthCMh`Q}hj|d=171^7#{0%3o@l5xyG8nP)lBS0ea034mw4`6a>Tr7q?? zra2G$c(r7Mb-hp{1`|gwXcc(~4WE+0Ia6SG(8&+kvAUctW0HA6Dm~PRdbzq0(UXvQ zW3POUxbB3Nd%dOno=b1cD^kxF!JT&4Jr8HJ+O7}Snr7|r#4V($$e}|p7U_Tc?BJD&>C4!Eb=plDXfj&-E``Ah zBsL-Db{XSP=r+{gIhB1E^{&7a6V0itt;}&2gK$@d4(^<IJD*W@iF;jMI7Z z=4dI^Yy`MVxu)ZFB*3;2Ok3%S%$t`F3;NOZU#6O`V12LfN`>O%-NBy64R68`G?=13 z5Ez6esb)?*WBL%t~VJDl*S8u z76FC<2*>VN7T1`_3BoF7lRodF-#tav8g>nB-+$w>+{#{9h>dRsV85$d*#duNP!rT$ z*>yC>9VP}K7*3NsXrTetuy&gQ0(K>{CVU0tea_`NNoR+j0u48%Br`drcf9@B-CvT2 zB-KSKzoC8|8fM!YE5EdHCu4P`B!J?b_7fW)GVc)8uq_LmP-pPtyPt$|qB8DrJaThH z3MMH1nf>V2j!H}#dO}i)_qotiF@H<;3c8Z>0$ zoYb8jJ{&$2T>+T+lJo^2-hJ~h-^(gAzO+vD1v48wsP| zME>~oLo1O9i>?GX@3?!W`Fkz>6qr3T4&JVj0il*7>Ayc1OvC62G$w5$gH+o&< zs_&eaq>ds+r~tBh64sU_DbS6*?Zz~rQxF~DVsTKddeiuaX zxP&%*$GyJtl!)Eur{X?BxMC$h*vgFp(<*Y^5!OSoyg5p=!yL~y$X31h@xLrjvCQ{n zpIzE5f0M~cU6D)0KF-tGr^Bq1W+x!pQH|aN+dndCF5pwuBZ62{x6uC$NxNy~N2aCt zD@L=izX7cF>BlzcJNmINLFoL5-8iqVXq63&!ul+=ZoPZ#_C9P#lUct<2$p@GdxlyePVL}3Je7^`h7T|jU9@`NB%4A<|iDEVp3u+VZS|2>PypE|`L%-s-WY|SKZ zI^Q^Uxw(x6h&*(@Neog?*ZvZI&=NS1vfFHW*koNN?8%0sNixy;`Raldp)__*tt&woe0k9H*Qvlaa!pFmJ-}RJ4J_7aE_Qj(0dstyF0Tu9aZ7b8hN} zBgmxg$Gve}DXIs!anbFw3i&qU-NChb*U|-dKV@ej2{xPn?TFa1xe95-HV-FZ!q_ab zQAzIx+buA-`6RK^!(BQuo-~X0-uUBgOJm4mvqhS8es!7`TKrKgLf7U8zp0mn`bFa} z0PmYB#A`*Q->3-QmgEI{sca#1H%u(8iNKF{6Gu{cnu@08SiK)p9uN^&o<2)>V&_PY z-rob`z_M|=onL zSZ3b@jN`&h+?;GfC_O+|acFFwJsK`(ydCKL$w}y;@cES@2lrEcD5Y>Wlsmdr=%F7Q zcE#NHyU``}ERz9d1)*lNL@$$XXKz#=hFiwu*@L0xhRoN5L^-qs);kb#=^iBX4z0%R zI~F1l?9n>3JaIZ664%X`6V=3TdELf0WL5<6rBalBg9ORa*V3%WdIj6p`V9$rSzXOS z@I2!C;PLPuAC>QI5`TzssLEhLF4#lB83|1fXjda>a@iD^op=SAc4~!jWk2xIFEZ&( zHqqC|gFv|n_NJ1{1(w6!dtN-tS-1We|C!Vy~?XUG|ILWUF z_{wk%tBJEer&oPj3ffb$X~_vw{B_jEMHay}V^MaYTqwKf3?pqtKKfBZ4RNU9kG(tM zcbXAlR|p;!9o_=dalC(`^+a1-fybY(95ydPa@LvimI?TV_I{G6g&BGmdmNL#yX`BZ zHE8caY~DdP5(3URSZGOl$|cj?N@7W6_~k$RGO}>?-bJJBVI%?rU&ZA3O>&)qNwz^=lw>Khj1`0cgZdKhSQhbaanF3keZu-PXeO7 z{L|39G?;fnRwP{8g2$Pl4+YF4NM6J0ErR0`gfStaj1SD~e&r}h|Q+&1P-6hv!MEXtx#2*Sq zo(Wp6fdjH`I}1MlJoD4i4jKMO3TD12%P?Gy6yzmz&>el^ka5bVEcqoK$(j@VnGJE7 zelCAu6q#iaIJ191pSK$i`%zXa#V*b*lL3wjR9&k>vfnoTQTxujf&=#aA%CvVwPT_+ zkVpN>ANlKp|Mjy&9$W(U8}Jm_NiBbM>Dg(zKiy%FdOF9@kIYp1Y{7WQV&I>6>CSuH zQvjJnHFdQTP-$WMq5~h>blA_AdV#W_Ju%+ zX>9o<>?$Xv8TC%7GQ@7#%i$|W>=?ohDeisMFw#ruFypD;{=xRo-<3$;oTs^VPmkno z!OVTwW4^yZ#>zy{iW6eyzIURPM9}nu@q=&>FPe{#n=qZdl~m6RHW!tm!Yg7Cdwbx; zIvM95$~g5gJ-33VVz1q0xVzyp-bW$vBvmRp1g_L^RkQQJCC>(Q>1XO#@rku~8gTz#bq!rh-oY{^Alwwrb-P z_+@MvoY~SBb`XtQ+k`ZP1AU@vh(A=a*TM?5_n~g&NKW2_Lol~Ck9TnMP&I2p^c?hf zwlpN1s#@T_u!OY+T&$fQL|=%;e7nTK=+%jy7w?(mWKEw;%cwVgW+toBP~kce45~Ih zw>Bq^8h$Q~`lVv0puangG~3J~fjt+?E!Fh@WPh`|-PRX^`pgkHb4LnuPO0N|J{(B0 z9)l5$m?={I^t<|oaRE4~@^au-x1|emsku+m9}c)2ty~Ui9cRAP0DLlfhYbgz8r4#>5#xTPv#$`EHo3k5(2Qv@tJa3)RLPX z1NLiU29!eu`@Ktiisxq_z?o{1G_8g74B#~|OFr3}rQ*%41EFM7u>z=~df684uZYuK zAP`v&#X+xSsfhd@S}jUftVOL}4|YNl+;X}a9E1jeWJ1y-4)(8v7VKVKq~DHH1{rLz z5Z9a37VYpe#jk$_Ot;iX;{TRq4+rGj*2$yYu3rO z!$qCpwCa!P$8)?mx80cx&(d7u3XUp_le7H$RQXlR5?CE;?gW>ZIZeCrJ~2k6n1yzw z)+Rl?M3NEXd?YMqJq8IF(}`oi@Z!*@xsxE_eIonZ!*={9DgsXIXiX8phFG|HEDFi3r^H-x=v+>mqL&?nDgeYj#TZ$v878xbf^L~jPL}|p7@7JFEeBuGA)GW0{v}3lX6-hKUQu)H z$LP%Cu1t(YRTorq7~z{X;YeEVfca{+TpPfNXW6U4rU9)`4^La7_|4-}px`owVwIFl z>3uule$q`uMw;uJW@&nFzWX!|AwwZg)yM`LnHbD3#NidCu!+ykWi-Y!7l2+fsDVHx z)94f)$OClTM_aP40ar)|p7Q(v{pz4>>05%m+5RVwHD>XF zV#hxe0s|QGTS|z-2$)v9kRlF==s=;yaCeaVa?1;>?mrkgfenA)9@3Q_4G-|3c-$59 zDDa)&F}|6P%4nOf<-ebTc))$hV9eCT+(j*Bbj;duMJ$zlbW52s*kt17(FVEN9Y6XAi~Udl%oygBb0odG~7rf zMrM>wU$Z6WVbo{-qI~9Y8%i3;BfX89!bnxIR^Bw686(s zeALLmpVrOb(a#5p(}QLHN7tDXX_+%UCERmHg0^-4A=LVXqseZ%wbg8KuHV-eLX(O= zK_1{?f$5V2U*T~!H%zf##M(P9-#_7YbMRbkAY~h|Cj6VMmxvguGmw$j^lXgE8Tg2X z#Q{HPhkkpWy0P5|Q!;6M5cnLEU5EHEX|j;G7=?wQ$o<2;ir)cT{R3C#;LCt|;F0Rp z3ORL}2kiTwd(Bz!hy=2GLbo%Ih)Sei8YTZ$n-goT7jIpYz>+o}5ab*v`KsFGyYR5c zM)50B2h|UjJju6FdesE)OQtOp+?76lI8?T3;Ih5Ims~p)@nT^R76S;NT`kVG4TBlx z@?ndCDI`4&PQX;WUek8kAGpTXZ+CcwPQe7D8xEWm3pD;isLl7{0=MrWKA~F^fU`N| zdDXXc81U!NJ?~=fVyPLoH@b6x0E!zIkcM-N=wUe8sbTKdAKlT}Ig=CnuK3eU_N6n$ zm4NdiSj5;dvi1Dhaq%x`lV|T;+@1t*{sD57P@@+}D)$Wb>||RP=aL9$ivG01em=vd zD5e5G9Dwp~e2O^e-cuO7E1iBX?=QIWm);zxQ>4|gbb!KBd@taB^HnuCm4e05-@n-pgJKE4Ka^@MfN0i6= zu_H-0p2sO@$ytenDUyczVx~MMzU!o)pTqMHzWr(XJq6O$93^$`+sQ-_#xZ830UgJ@ zY~vKz-6o*B9ag)w#Daw<0r{{CP#dg*Rj+xVcg9~m;{Z-RJ|NgD7=I8?c1!=3MApwW zO^9FkyuG^RwY&-~6wV&$=P=%%22VPWvwipr>R!yp+J=4So9XQG5o#29q|2}v zTn0A!ETI?*6J??Is|z$pKT(X({K+lMXM}rY#pe^&tC2`|*uX%2{M(t2=-rIP8X;G@ z3>!Arc$Y)q5oC0EI=;`c2yY=72>&Q4WN*8Mfqcle8xw|Z2wg(?(wax0rEq$SWlf|9$ zc|l~~kel{iO7PTqKPd!5fjY({n7}XgM5`2$(Xa|!m+`G@tGLuLT;ERbby(2JN&;qX zrx|f$u|9~B?gMJi9nP>9CkLN8(B+V0rR?Ux2tADiUr7O-sq29P z0f9O;X4)v<$QBj>((7(yNzo1h^}nmzRs$_VfGC;bz=F zm&CcAZ&o4;p<^vVBV^D41f6PK*6^DZgF+&C;oeF;;5*^ql?3Cn-#@-xm?+rt=&?oO z7{KD7flX#F3(a^7elI7dZr0K9AAgOvQ?T1p;Aa#c{1sjXL_UXI_`oI*<2%!t@1%r* zc6l_{`#Aio9=BzOQJm;|>Db=*@r4rJiLQ{Ex~T1b9TKGfn|^MH>C~#4e_zR7Uxnug zAG@cM7_UwbN^bt_6ZXzZyhX2iB6qZ3I(g2qnvsl z(8Q}SM#~=NWKDbqbk=fWM|NiZ4ri+3MpHcO=TJOa!E@NJEyMO}Kfn;wNV=6U2vJmM zmegua2UqOG`;XTT8IAwUfUH12y>}0RHzzO+TrAkqXPW}bFPClapLc7p%&Y*wNc5Y= zd-dPrr<-NtuwP#xlPG&QX5x*KqG}Dy5DV!8BInF>{c%+eNO|@PdTfGU){3O{?Uo2E zpYHCS`ys*^m}RBq0E;a8WGsg+{IhqBghyHup$0fWNW4ZuO%?Nt{7q>2M-I-^!sTQ)PIRWxmGm#q?dj!(c>4LGha~Y7x2e>Z_zTH>x4ilOg4W7CXvvoj z*NZpSF?1rYLv*i@n`h~^`C?`@xoY$lT4K0|EXYGNxX25Mh=oV_tWw5^3sg`fnea64 z9dy4g&Myd`}4HKzLuf~y^?SOjp00``KDB_9kTL6lw%3O&pdnRJuy`vtG?{|LNw#|iiq;-+^X zeH#y8s8m2*%k=^5Ic_*YZ|JSRZ1}oF5c$N;2%hqB7L0@SOT_r~n&i_DOBnVQrKaV< z{&cQpcy}TpT6xpI%QB#6)c6z6(S!Ez46t+ z$%ikd$YLKxAA<0;lj`71Jx`VMkjLGR^7&KP`1FU}G@y>}ReO~TnhN|TAkhlZ3o2=J z3>9^Dio=Jb558_6uA`TJtU*W_Cs)Q*6mC9N+!lJeM!D^#0<4}!eD}2#3#81P!sFMU z7W(4&?rO%NW`2i&zhzk&S5BwB`j2?0<`_v`nW8>9Nvcgvk;N+8KuQOF4lx1<~zgZ%|?+^ zArTC`R0+T>_&9`9d&>z^UFS-2a%b(pUodF#&G4HVZaprpIkD*L)Df0AE$63P7inD7 zQn;NaGn#nLPip$V)s9P}cG2*CvR*#tx@2(HT(a=S{@xe4a4c-+D}rhyaID0^GW5CA zLT&o2>A(H37D1wB(5@u**wf>8K@Q8e7;I zz|*$$aupU6%uW{e?jpWC(BO>i8jJrsm<5TN97cCSwDAbtfRuU-J+5x>r+s`y<-_U5 zm?qbdo=JG@eRaz{I0LlqDe03Cj;@~+beW9>*iCzNpADg{n=o3E&)7{)(coXRCh*Rx zaX4lx(in;50G?~gtsS(GfEVQk9_)QrgG4`56#sqwpdZeA z@Su5Zxotmwy;r_(cIod6uc+;(D~-ml!Q52~qKJ6UEZhZgVP98Cchs2TRBiW4ig4c~ zwKmrg2^5Tfi0iwySa5%+y`Bm@wJ0#3;u{@%JFzlK_h z3nGRP%FQpu#!{3!k$raMc4pN((avKDw3B6Z>00+N>m+Txei|d9FfV+;Ji%*Dxp+i{)njXf*Tj?ne9G(Be|Obz zdNo)jU@%QTNcn6>sSdE-C(Fuof_P`%nid5%j$>!0-rq ztou{<`R8F2SijEZcgI-66f^w#r-S-oZ#nM|RSkAL7b)SoMmS=p1GyC-KRmZraF1f$ z){gb@_@nk=CZLgq9PP(i^^MzHzavQ~+ttNs>a@85A@C;PM+A(+vpd>K>wbbZ$VvG> zOnrAem4EoYnVprrvO-yr6*;z02$g*Z*;_{8WbY9|iDPfsTMpT&>|Gt(v9bP1v< zDtrp)sYa$Dq3rMvJEpgG6hv&*@r+*>s!d(W?VsxocgI9|oKr((6@hC7-iY7A9A`lgFM-QYzgw5CSqIN@S>SoQSYzRy zjtj>*JkIw66muK=>Vts25^tuS;+Ind9Jjfzf9|4PF%7F-H4OuYssO>KW}ISl%s>?^mh=bhapQ${73887@Hyq4_6Dad zk5X{A{zrYmg|(U?w)WhptoZu6-p2QS zOhSC&{CtsQsI1Y@z$MXhh%C;0&K57ztDbokdBb=0g)+EFW3q?VJ)?Q3ekyfYo`Po7 zmy={NS#e^Fb(Bm(EgfsdOyOWX)=Q0oy`3q9#h`${dGHEL;0xZfU&M*PUdliL&oNnr z^dcR<%bHZ@p`AW(^L<9&HE);fPizq)%il<{YANBN&aTNxG6 zfc3+9fYKEM6TTcXz?;_l{)l#^TA2Rl(8kz#lr}YnD!aDKPLPVb{y?YsJM*zynbruK z=HlPWqB3>S-LE_D8+BQgKV(b(1UDMVq8YsK2<=9VK2*JPBWgGOlX^ z{vP1)Ks6ChIY7jH>~$;f4DfFS#+DNezXKmZf3~Z?UZ%{4;ODpi$VofWG~|k+8YKKg z6}Bq}6+J;dGmv~)n*-aSx@l7Nb*`leq6*(R#?5=ymvBjcJ0KA3wQ(Qh&%gp227+WM6azypa1F7qiU(O8`|Ls-q0o|0qGPcNpwX^Kv=gqs)7 zg9BunYEL#usJ{1riQy%u-A$oV(dz4y`!$$s7&+##K$605&lOyAMHIfBLv)wuF#)Xx z;qw=Mm=^Q^`IK$`{cOoE+Lou!i25ForCr6f?P)tEP%v^^|02o@ypAbPW#w3d_*?Gm z$shOZl!u~O?IO23k06@R;iR5?>>A7X?s=3q%f*2nEFPBU-Ht-G;SEM$6OaQ!#WTQo z4l#!etQ{Ot!hco3yGmy6NvaLBMYSo@PPM%-z4U#I8r4_h#-gzqdnvAvP{Yqz6i$#3 z1^WF!qBEgEn3WMBsp8zLD@+M?+(b**rlMiN35Ayq+h5y5*2VQ~qlhhXpI!8d`!6s&f~J1aQ6=qmEFH#>%T5`S{8dAu zi~5QxpbFAO2Mj2=Q;z&G{=jTYi9V?tvTtD#$aq<-+yybZqCuBAACgLk?%dDm)s^S1 zv(de7sIhT!8+sYA>sTC~f1fL(TUxpj#-hZ3r;?wC_6sLbvfs%22$3HJb38)(waQ73 zNq%ZAJH^_EJ+V(}35(+8ER=64sdGvt*2v~MAB=-OZ&W6|Nv|o0+f<=M$AyIIaJEG* zVj};quV*xw;})z-56qHc`_A%a+r9{3{y+!biO0?vtT95g^C1I(`Uh_vGb?aToK#YR z=^MZ2D_{+ufxVy-t}3Pob|!ypboaI(5VFmZ_Ar0)pV=E$gyvQYil>-}_rc%&y6fAS z{0~R?bQ&xj=xc9#P>^GXt;Hd!V_!a}vlUXR!?oW;gK8Eb-}=TpzPr)?MNdeZyLOWo z(cLoK&kVc?a0@c;#cRf%$n%uGa^KT?TUILh9v*VKc~Wk$MTbX`xw!_o8^xE{^!(l< z`*;|3Ut+!-so?LT0knqo+EMsBc07{wisIQmTqH$u(ge6x30=%o8*Z^(?m2H1^+M>r1_QiOGzIwsm3dM&H9#UY)ms1GIfw7)-?96 z$2}NP^r;joU8v(W{*;RUyrFR+F(A(V26#g2-N(H6YW}`S8uzLVZN(}2e_jAlsq$@W z0srD+C9c_+{L}(XtM+<#2gty(;3CFnQDAw5n5#EVN`9GIN~t@gp8L~>gOvwXItbg( z@W%E#VuZfRCYv7CmyP9$XCVA%h2CYSHei>I0(61WJ)YZB6HrIsy}=j-jPFe7T*8qJ z@<%^55k!h<;g->OnfKLb5xmHYTg^G(M6a47Q8q_|IH!Yx@3W;>1t@wFCBv(kEW>Vv zrI{ErWWT*>01_%^2M-T@R*1OJM$aiSd!C?aUWi%T4`N_p9}!`3*~rLS)~h3VUIN`= z47-YZHBX_cc+}t7mhg2^z=c6MVbd$W60h=GC2jd_o)q{(O0m+q5Ek5$72cmie6%x| z<&x|LXbBgxZkd8X<^tc`0fdma-shUFVxBdGENd9P|8feB zS(pJi32FP0m-X*+40DnIT5k=iglsN3J&oLYdO}mW{QU>-BkLy29bpmpl(od~waba$ z$3C4yYeQEUfrVM@$>`NdPuXa<`#{xv4Q8!vc>7`tZV_@3fFJ;#r~_Hbryy*FZ$u87 zm3E=Fsg_^9!ovqk!bP9%r3T1Rh(I#_-OKBNb#~>1EiWy{m9QWBX}J7IuB0CqwOp3J z8c08qP}aO}fZ&WAc^_uqGu?@iP~?*f&iu9#UPW@nhb)ccBN`;W1Pz^Lt^vm+7`ZOP z9Ntex#5$MbJnD|q*iq0qZUXUh9kz9*$<8%Y}@-*Vy<`{JO)<@*~UVLC&gK52lUl&m9R&JN!Ec65-WR(v7c!Z`(04 zu|En)BfS1>!}yNmJoQxBb%N*2se}@C5w!#N9(xV@XKh3J+0v>{6qFs>s4=C&<(K3D z?S%+&!=>VrEiiN{L&PkFU_aAhTN+PO@zE34wMo-B5<@E4OTcDO8Beh*o? z=K0Ipx#-e)9*%-}yLRFJbBFr`2t`QufRq)2N6y@mxtI@BT84JNa zeS(O~&4Pap-%2Vz``MB#W z?hJ=DaJ>yLm3=LUWE9W*=Pg>F>5AQLvi6(JuM1(Un73*lZE2R&YH&8?VKW9<}*g zl4|7UQ!RNO(z;~7ekP-iN6 z!@WZs=h*!xr1A_Nd=k*)>&Jnw5Nb;I^N$v=&mz;OFj=sGNWHh(GcZ|K7QeL31-nW) zX6?l>#_LVvv3~}H4)fmptVcP%SK$1cN-eeTwIyC*R#B-hj?pusuy5js0heXA8Nn4& zheCcl_5|Ug@qpD6#7o!UB3)TS*I!Y7H)&J6UXfP`_NfSlGj9_St^3d^6}_3V;UQgi zJ!}c)@<p_F_&yi}(<%bEKgBKum2HWjowi8zuf<0334A zPrw(DQKSAH=Y4GrTL0qTCVcRcAgXPAjkcW)CYHgy$Q$o3wQe7$sEV=JZ(vtYC8D z74x6*W14UVYe&G3f`t7Ed^*UNI%x3m7u(AsOEmw)VQg}NpuQa-58SOTlxxPcTvWt4c5I1-iMFay$3jcm=YKGDEIeFU(RLY z)_xDr+6tlMykt>Ap?IEJ0CuTL9z|%{5?~y$RO9# zr$~@#y(WP`*VYvsvo!{d;1QR#xbvMCqS=cIrNGE6cK0jHP=1K^W3@%8fhKea5Q4=i zssVE|+RDdaGoB&a19@1)Q4+)ohoi;bQ5@M>EdfGKKOz5ovN$rpbePaJ2rJGlY|#zD z+Ut+zq>cpg=kIL$tp$NvBDD#VyGR7Ik{t~CIaHT8SK!iR7_4J z+lN0MexaN#7`$nBl-VuJYmq)ei21So`7U%zpQX)i3XBWl79)t)YB!{hA(|k8aI5#tmYaA$TqgT8vZ>H78(n3zn?aX{ok0`qhxn|J%18Fw&!D&Zel z3FooFvRI$O$ZM&o_G*W1?>f0)K>!lxy9BRNgHsh$?=F1fk+1w)+@$gBltgJwr^2Um z({OP|P(^P;gG;FbVRobCV%V~M%#p;ooW{~0ARky?I$#RX2krHmTh>nMdJ7vkp;{jX z;nc_;Gw7G|w?FlgBXyxv1=nBUn0Epw&{P~jrB4}79Q4P+E^l9uKvxvQW1|hCyg2U# zC6A|6qL=TfQx%Xe>1V}57wBmK0(1?#>h<7S&cZ*|z51Lekn+vYd23L6PkRxrs8%5z ziF}Ude@LpZ$7H$(Wy`d}XN+c^0fQER`PmjHWO$~9zngWGUG-M(x1YHHE**Y8y#u@a z2{8>p7xDC$K=AM6y!RA<;J`l;CbjZk9x$=ydonfNHLiU&j9Vsy*$y{vL z&oy|R^yeY%eYktOKHjq2A#|^N|45n_;0`_%hOkm2rTN+M?D(Lj9&lnZjx>X6oFqJQslnqz>bOvO2&qyJY&jeFF4JK<7ib<1pC|O%n3wbt7ydAGk!SW4u z_E@xx4BeCOBX?xJ10f%5zql+dI8uK90zzYy_PN;o*+Bi&3!T-o{{pP9HaN*{0x|ij zx{Rq;XKe-%jRuL|Qw+49T#RE9#FZf6j2mwGhUqiyL`I?`d+fnoJjd)!!J~f;Sgs+Gox*;6ME0AlTg(IPD8?~Epv>BM=&wb! zJYniit5x{V&y!4rUmqn)nCJS9iCfb?6e?hRtWfeo%1xVJx#ENZRlnW%tXmy?3I6h%JUpihh7xtZcDJu= z>(MM`5OXwlw`6ARXmjP_1C-`_N97@Z=xe)8drWBbhx$Yz8)3Si$3rZp!CzFuAJ}m_qh5PN z%cFW|BcG5FsPW3!+#K4`!d4gVfX{*h_n72HZj>;w{T=&4P1e~c1!A=OQ0Bf<7d0lW zpB?|gRW2})h-zfr-Qyq01YuSiYcqBt0|8R_vFRLsQKSilEdLK86*iry|1Ue;1*vA@ zqL&lcHH4uy?S?!Hv7B&xrO2|K0l;QS)GND8YhCIvRR2!~00S|;gthbD1R9oatnVAE zK;Ws{;_%U>Bh)_|+fonsPQX`zZ8`W;IWT#4+Ma!P&DA`4t4^I-Ajq>pc|ZtRKWyp0 zmpI|2z;$>w!hXZBty-G`&`VnNGj{a`v z2ZrwpzS#h$5xnnT!}F%z-Sm(HF6W0r9Ztu*S5iN;^7h%F>R*7xG< zV5JH)8N^gw$P>h%II`9bc%b2X$|nm*Q=Gzg(-NwMV1k4%h_eCc>_UFdcSI)|UYJYr z{TEwW;W{njOMTUOhS3w1wc2D>!Z&z%b74JWaaSy8KG;ULh`%mmTf+uhh@WATU>>uL zVZFa-f^Xr!hAI1#m_M(Xy{6CwdeVD`H(_68 zy>v4j-whZXn?N03*>fYu!96&$%Ntm7uDI;&qP+)=#jl2!9I!ch;A&;~ms>we4Y(J$ zk*K5e_-T!rHb8gzwO$lvtc$>pQ7+AA(tHX76m?iFv6OGdQwPzfw}tc?WI+kqv-G^nFkuznB(EYRW6*Nx$ZtZ}?~ zxfOcsv3Zh>i;2Zx^Uvey?>c~k(3@fJg)A>7WK1mT*8vO5mLIX~}$T`2=Z)W-@o>5gF0kR|{-S(N#|JZdP@4M+KlrOKW9;~H-}%z@^hrw7fgc|(Uj zZAb7vZ+WUOlh;RvHi`dcqQI4a$Yat+t%IG#*9$9-0$i{;4S#oB%L#ICU1R~i49!|q zO?eSF$b1Gf#xL-3Qk;XlIyirV(a`dYUn!8h!d6_BpPnvVd31upk+B|)-E&|moO^;< zPr(dDbs6p#u6#J6Pi{Bd6!4k+hS`Bm6BF(b# z9X-0&!Z=`{lkKzcaQ&h5t=OSIUJP;k(mM5`Tr@d(Vbop@1Iiv ztt*>X$6@)>^7V#;24VziCVoSOkO2g<(e=WUfZju6)Nj_bBjjIU5g!F6lB2MetH2Fv zDeLfJ@o!BEcL6RZ41 zxc>U<(3==mX*!eOf)oiMKUbyDzO`h-_yJOg3|@a5nen%*QT^*C3d82xyQseEhJ&YP zC@Lv3LOTl&4pQjtKus#o2Yq5Ba1sZPZ{vX){l2pUkq-l-x(mswSr(G~NL>qtK0nfm zwH6a)n#IxeLM9EBPk8MQ!ZrSSbw6~}SWX+O*CuF_6FuO-t2X;EjN>U4>f)R>(GK0o z*An05}_u|2{z4!qh#D=6=Nimu+9;)|?hh z`?4e%>OFY5@2@rd*Z=1wo7`boRi>mYyjxzRt!qtTh^oFsab|%`VZ)@2yt` zSV3Qif0v~B{Kh$IhjH6?igsOVl0pd6V#nm@bxhW$m(O#W4p9Mq{p@7d9y_M}O!%XT zk@51FMVNcALHf7#Iuq=5w^t$B^wO1=jhq=*bgeZD!K_xZUWd=k#&w<@4~%|@f3HR( z!f?~gF+k1XTB*(F86wVSUu>+>OC~M%f@8$P>I`O!gITi$pr1SJ(kO++6Jyhr(`l@k zG(!nrNZuNr{%EITpSdOj-!1Da(mI~k05CHoxu1;T;QPhgHMm{1r&e`Rz2O9`kx;6v{CoZQfhvFL7rBqBmHIjuG$tn zaW|j-NMh;zdFcTlTOzSSkS)bt2o0!ypDQqZ;|wN_>7VMzRAy1DIPzwDy4c_GL~c1vw}Ca5jIY8a~Y129+9CBHyK37w19II(9 zb8Xia^(oEJlAO4I8Y+gEARfRKy_sol0j zDyF$h`o^C?g4t8J3d(I{S05O%Po8pQKH+;qbc3%}C8J4rMbhn_yfl#`D2}`TqJ`Cn z!m63j@bv+ArS3KJ;sLX}b4t=vw8V^F89tlp0-R(6wT;?g*S|RYmFh;aU9n)l+Le;5 z0_y$AYO$n|&Wcae{d={ieR=-n=g9BR)p1UyRX58igujV^SvvI2Y!gC!LPdrd$1(d4 zL5b-lR9k$3RRF`z{wa$tf`(h+<5wB{+I8{0cohl3NiSKi1+SGAH#=@^%<1fTQzM>a z&ma-_Q@@s$Ow|mo^fN4CjNd-r{wRWX_a)_-&>nKiv+Jo(Rm@>yv{wPZ>Pc0DhZz!-p9s#wZoQGYE9LNp~UU5DWjVEWa>L#Fc)PV*`J=hOd83Z z!O@)k!|P^%^8s)wl+VTvx9RwH9^KWll$4s=*12o|p36xw)9x{T-tf@)5B#R{8Puqb7{vAy3q;#mvxk76j4F zIEa&!GpK{NCA%0>E7!rH_jy3|zFN6C{9bg8fzT#fx%w0P+oXLj5f-Eb2_u9It;3Ak zvX*K(rr3=v@~9}{jlFJ-DKTj0Hq*;_k?F(T52RUxr9-moAo*4Q4lO!eg52w;U-sUXJ7vrFJpRuWFbh1U z=%82R9Bcv*pz9R`6yV!#-J|1@Z^R+Xws%{mix>eP_kuzwDJ#36K_Fv;gOcc=E1 zmmv6ivdN=Ex7GTKB8YPgU;j{c8|E*<%{+Xn!^iRMM>nQb1ZS8Q&0R_7y}+x{#;E=K z{+R?S;RgR~(DKFy?W!_tIz()pck~y`q%y=0jrdlL^`By52^q76?epf&9P4n`=0{}&Pmr`N!Ty~leDLm!%n-OZWfT%6wrJMsS zk|%JVO7OQSj!=Le!sSX4K!S;SK7=O;amT8@`0jPhQgn6fZ&DKXEC~x=y%e_mWmZc9 zGfd;1`S4Lvx{rn^$T_ex8Q~hR&K1_}OJ~`lEY+u<88vw2vtHlQTX3PHe#BxQL#`_f zIq39VA2u1Z@mNAq-KMScS-Fz%YJVl^2)ZY~Be%}kXZU1$^UIGnp#k_ALBAc0BUORT zuQ@3CIogI6wx#W19~bSM0e1<<`b=}N!@0dl;PCY=AX@c zsVA~lh?Lo{_)5~Q@_(6xaE3fG>w^Wm9FYX9-p8MSXf5=@^?dG~{P31U6K9X1X8S`> zY#P$y=1q(S#Z%xmatuI${^O52{SW@i_po=k_qGRmFcV#Ch*N_`ifITEbO?Oy-4TV~ zxiUr`wWjt>&+o?+j%Da!b(8Hz4t!!>&bc@^Y!n2-t5%hr-lk1_et?7Vu>aM zitkfiamztFoi2a3`UE(I|9GxN|L<)quW#^b8cEtL38ZK~J13+@-pJnv zYa2^x6zOPK&Jn#>*uUt`201*HU~PHIq@tym+9s3Qb39=Ec{o+6l{}5 zG*a!3_pHx+*}qcj7FKFE(`BMftg`(kcwQu&pg z5ye^#s~W(1_xELtRc1eCK|jJMojh{PC0U-Bjcjkr&)B6aQpqN3yDk(zvZ%sE-IM`( z{P}i>$XKhv!;Y!-@6Ohq!HyrYV0n;u5*)^XEEM$gYb%Gvog9ec%Df_}PXz`=ssg5e z?IT?Be0@UoYma}cWqcrygeL@iCJE}%Bdvgix&~j_E<%+~2U2KW$0pV>%BFg&Y$`36 zgpkkwwe(|`C?JnS7Q8F^Yuq=sU8;0b@yXcQ6pnxb!nhat&*yLIVZ{+c{Oim8l5lrY zY5~fopv2Svw<0Mm#dPc7d7TXH5V5@$m%l0G@)sFSikt|aU_fu*d2p9F_NA=x>4f4M zr^>{xn-TrSEm1X7a@>2#qx8SVelMM%-O_pj^UiVUByL>q0zYul2wBTl-#qjt=Gj#x ze`uF|fPUv<%<+t0qvv-29E*+ildNuB_>i>mFCB8#%!Yqbx`-vEOKL`Y_SwJuCkP!W zF~+1pVzB;i{+04@#i(-n1U${(N(GcMof(G7ryh(0`u{NOD<&L|?e_dilRS@VZA}X2 zpJTU7b)Rbed2s7+^Nz~7Qkn}Z*Zn7^^DQ`HN5dVx z-k0VJKCc5YCHM}E)~n+Beo6?t=Uw~L;yXk8fF*k2+3p@PeV+bHE7fnm3M!&%i?;Hb z8E{mtP5>G{PUtMi&m6k!ic70fiDSC1$dS;Rcfvs2v4S7^(BjwsSx5u<){<0Llu(O3 zq$4vlFQ25iS5q`tZ(mvOBavWc4_}h9l^#TzEA@)w?IrIxisNPd0s-l;R#qwQh#z^O zg*K?W1|Zx7A$QQeKz7%W(zy%-6yYlD7)Ukbs)4L;uzM~vCj}tyU?Q3f1S8iv_3!mf z+bhTdpx~MU^T%UpkO{XOKd2;&`;G0?gF8k}E~p9n9o;`0BfDZ~T?_oUFfbd;VsuwH zOSaXn{_;4#pTVnmqKyB}XNzM`c%C|N*I&3U;occX6%9pu!X1oX=R|7*&d~-j#INmkzn^BN9pG{fBKmb54-I3l|{fVXx_sxrNme!4%#=evk> zWsz7*G<@LJCawLMj1*s40#$Ow)g;H01(e);qR-WwX@{oouG%W&??1hFo)L!AZ$&vz zt9KX@Tq)kqx-%W&9M%2MGGm=9&Gznlj`;9-Hscs3wa7y$5+k} z0OgItVRN*n>3;}7l63H-`w{?BCfz5PR|8C)^e@8rJ^d5e4(OjfC?!{(l=t#|aO#t| zc?8`Jd?28~278nY-oW12X8~9|f%qpF3=rlX? zYcKxXygE5oc9aVBHDef0HdMJH!Yb+r1>qp|hJN+=TyW=fAe&ZKYlFa14^-@VBnU+Z<)8a@a43J$dw)@=y2} z{s|>D$RsMZ6Q60*5lFxXQ}EY+^hOD5|Cs%E*%js5#@7~qHtMKo-D8e^B!3~+vsMjj z4O%cU2NX{)viu{NWo!tN&mygaOj0Pzs~J={DSnuZP*9NF6PI$9Tw5t0ms$|uD^kbi zB11LfgF|<3Fc7_=V-+Kbi%51@V~VJIao6c0*l5IUdv=>Ke&aEH=CgS{qumVx8@5;q zQ|_RU!~LgB-JvI&CF72tW{+S8kEdyWW4>7&Z*77J{E|YaIF78EXT6%MO7m;ZC=803 zOq1D%0W+FF@iIRKA_!;#v%7y=)Ix>_@WcVJNAQT8=;t&(8JSIw(7^)Y6e-d;#IYj~ zvku!|0P@+qW$!9r_F7L0Nht{f;?NmNGr1F< zLN}hs?Ro#9P{8)_eW*X@igY)bnY&tiJXlTvWrL7gWJGFT$lgWKdUD`-dXgL0FB;_> zLjb$So2fvA=Lxlrs6b=LMCt^vxr#hgd9K(E{2F>CztN3CdSL!k-eAiB{7-mpvYhHs zX{5r?1TAHA{X}kDFA~zsZH)_ta`B3{k@@o9Z}UuI8E?xZMLwXBQ?-5qyo$w42;}*4 zI;dQAcVSZhy2SEJb`8$I*bb24ShZ^*R2TK)<#U{CaFL+8_RI4CgA0MAhX_cT};Yz)xAl6id{Gt^{Q3o8nR*uk=4$BXVCfl&JE7MJ&FjLEA}?2 zrL=>j%XFgJhIfx{Hrja``0hqV8A6BGdh`m&DFZd)z4=g++G!}pMO#W-5B<8XtpIEA zvYpZu<9v={C^gH@(+dbUP6W@>_428u7m=ZLUBnB}IrQI2)&fq0ywPsh`3XecB;HTb zP!<`$i6wHWK}kUx-3HkHZ-Mqi`~#+!WY_h0cFtq0D~_`6IU;wE#zCCOo?g`2Vj!8zvGQDA6A#;MSYEb z@9{LSKg=^0AMvz3okUUG6QfphNIdZdB6zwn(%iOR$o%L0_sf? z8weDSOj#}1`39RoY&UlkUZWnbzs#3>(ItN+ZhY$6XMX12+22N;6#TyQdT!eZJOb=~ zKZBiM(@%8bAL6Q+xSxG3uz8qA4I(3^#H6zHXWGt66LV^`X?LKVBw(+FZ?|4R^o0jE zV1ZMg6-)yDJceLxB8rxuwU+Ny-jo*uMDP{7(^R{89!t86m1UK#DMwJ*S+5USx1yr{ zjH4C#lO~!5jRQfV3IqPP_UtEVnuq-h< z&r)IOQNBcV$*@jQ3aXK|nz=xRDN4P(SAPprS&Hew^;*5_sb-%0EtL!DB?5lx<8Kjb zFJcGr`U{9~x%AzrZ~6`Q;NwEBB==wJ^taT5Ihll4lp95PONS_h4tD)O3bnOJJu&Cr zSneD=S)m(X@8qmL7Ws)pPleRSEf!BV`y<-l|3@Lr*r)Pgrl3cbU_Ef;Sr1DkCgG(x zs(+3biX-$Fzl2dmiomROpP(8aUCF(E#dop)?}}a@=d_pu0qv=VG0F*i|JzAOZpk^l!p`Z65AO+ltLUN`C_k>nwJy!N}WX{_fbcz{qBAK-d+Cw zQzRvAe))Bg>8K}4OtbIkVtsk11C_;b+|K)QUD#;^3pwCGf7P1 zV|3NglDXx_sbsSWi}{fW_*{t2gtqBQsnuw(;HcWEFKe1GIEkyR%G2kba7@QH6(%#D zk5QP8jK_;>F?EoqQQhCkqX^pQDq9TuCfd|AUM2_^`XubgF78X%omq&lIE|Rl8DJjc zzlt5x*1bMErwg%;FKaM$N_>W9E5JeSgwzw>9DIBl(QT#6OjXbv?fW;t#sg(RTEaI+ zqZ$eZMwb)PzS<62IJWQFy2Ob$trAByr;^oM4XL42{54VF)tha-kDa1ing}+FIj_F% zNOfdf=gofot^2>LufePT7R8FS+tG{VQHVh!k(JXxXB6T4bf30VF~U(RTI1JxuHY<8 zP2d4H@#j$;1|YC6jqRXb0r8kZ*jZ`C9|SLNNz+HLBI-Mr$+uAuiAfh`QhI?)&oz1YO+T*#cM@f| zkiMK$vnCV| zvs7`Y=DIr)ul4SbrZj28C+7$f9H%FLT`3SpvpggEdH4QQ2QQALLQYix z+?AkHYMCb_3}i!_DNL3@ zG@w~$yxOOV1OO-+xjp_AcLfEx*rXa>Rdbr>)y?fP)zN$()20ze@+e$zJi|1mX0zFW ze~>~LI=)MC(S}w`yuLV@#ifmN({`Wkuy7I0^?Jk7{np)%4XOuK0GCLYP;5F}D}c9& zfHS*$VteiuYKX*T0`Wx4U9?ye;SQLR|MbT*t`XI5GkR`^<@yXO6+QD)z&9vw7WRjp z)E>xUOYcpI*wZUKkcsSJlA4CLUIW@$*`qQTd=1Px}lOi5X+z;`=1R`&}5=%r;qer0zCR?yF5n7U;rc^P@;|$8v;$zltgD#k|F^ zKoo1Bg-iczsR^fyM)_c~rtT9th1Jb1N0D%Yv35FhvR}H*(Knl7h`fc0ayXA3C``Ic z$d(v2(+LTGGWfX2NBa2xUaq2IW}cI}7i4Ofqt7chUq*-A9x!LHI zq>0c^tb5Zc`QY45Fo3-A8yNqHh3BC&CWO1<@$* z9gW}5ox4~RZiJYaqcvZ?#uJN9OI>up>2}&#Llk4_fXUhe7z*s+ zOSvcA`NZY%j*JFs>4Om6HIILi&CO$ktLB7f?TPKV{by zAS$oYh*BO)70^#MRvpD+zp@hFG#o1LfPAW)1RXIJS%fu&a9dk*?MA;`0q(LOCb=7M zGGS^jm~p$U{WriJG?rm)K-F=b{!wrUp!fpU8Nu>LJsB|DWk2HWLm$-rGe8=$_(30U z(CO);%}@57mC4z_IqL1Fmn4@t0X#n04y8$J-LH4*I?UqKm}7~h42Y!xt& zLJk>)>*DS?X^OoMfL`}sUy><&E~KKH1sBmx`F6ZCM23SzXup?V)&Ga8w+@Ty{lb0$ zQ9x3<8z~8CBnAPcyBh=~rI8RAkP_(z0qF+mj-jMm8kFvk7!Zbuv-$qs_gv@v#dQsP z_UtG2-p{kveSem}PHD<%uj;zj?AN#Aa!yk>zkHb)@qHBv__X!Oh$EdI2y+*q+*f{@- zNMSa84mC>1>_9sqJhu4(>bj0(@XE@$mhtBT9Py~m!kKTvQalG$j0LyutN-!d2IE`X zFk#+kRC~bAq5{kI*9v4BbwYRzd4pnP`Vyypl#`ognVIzRbI!k-KNJxJYBijbV#K3b zg5d|9$MI2cegw=R;K^>@=gev0`*9Y`kP1KHK#zzR1vGcRsDA!^E-Kp4Us-m|DUP{# zZ{C(HbVq5?or`N^#7i3zhNcgF_2%eopNq7(Nj(OY;hVDP@$Y zFx)l;((7e40IDY6(UM-o2&_`4n(C6sOtoB5Iq%)|U7wB*tBl zvH_Ch!YSj>kCZ*TdGl^0p^@xr&oX1~NAG)3->T4u^5Hc zvT{Yr%o9c~vcC-sRwpWE1a-K$j(f3}BS!3t(mJ9y63@Ske{v)?W$nnRjqyEgD`$2k z>QNDplt& zrQDR#Ul2{Sn4@OIg^*_}$b8%*>k{JEOM!&|wIzFFbua&ZF(Ew>-_;9Goay8(HNHn06%t(nVveaPU0~;KMU!Q z^k=CUN25?aBn4o~&oh@&A8!fPfYfJ(9%yRRk=}6n{mORttQQo&rp|qflzR*z&@mej4 z*6mBcd422+U**e-Mi!^(T+K&5Fv#9o&Oo@znGld8n9u&r&(}k!+l9OXQU#oDrP;E) z{ZW0|X~3=to9c8(XIr+FCw;cV@<~OjH;q}9>YJ5p=bx0e*m=_S2Ua}1WdDNrg0Bt>%jm;%3k_#*8S zCa^vk$KoZXv}$vvl=fK>r?K{{5erl6ALQe&=Z|!*dDy|129_#}c{-mzlkX?T!80E? zY9Pi6S8;Jjm`boh%(>Jf+>r~Vs!P0Jjdr-)7StYjy-ff^Zz>Eu>1bdH3i!uc%pDCBeXmJ#~d?hx7p-3p9qHZp#FAd zp1@V#P27B~Lv3KR49AFBcYKC#_6NVcL9t?B2Ydp&MG9&YKSueXi`r;980fAv9qLA? z+tB)AzaGWBSbPGL7Pv!}TL?0(;O^2&CNOsw3^Bc&msC_SLKL_ujz)H_Z^ zk8D~^pN4MG<(HRib<4{@CB{VkY4_9}0LaxGM)fO`7h4FzA9oJMh9!CE@?|JO|7z7u zlbe=x;lYX>*@#kw)<04gQJnB*ZzUcC9n&=;R&$7WHp}J#=qNUDl~__-_?zviP>4+` zV0?+iZ1X>UK=B`$XpCP3TS^6! zrXp2}l*-n832J=Rf@M4C33~=z9mM8Ubj8!3Y>)E?EdJ=^&hkcUuvsf_Q$ zsHre&DM@Vd0NIj~S^xO7$_tHd+(Fk zQ!1!msE-gBHiFh@@tI?2MYJ1Zy^W6*2J`_{Ks_-)5gc0E9sPg@E09f4^2he!8@663 zA4l=>@>Z2tL0`oda;)OrJ*Sc$b~CzRl2 z*wspoqc(|-QA^df!RVpv&L|HW)D&Sf!Te*Xf!vi^1;p_U1}Geh-pNbOD{kSDAF zlh5-hH(xs!iFeG(xQ2z^uh}9C_a3+XMB3uhB|zBU#08Xj{X=X&e`4(D|4G~_<;Vwp7h12=HxBrvsSn@f zpDaN;h!1A><2v^)e`f+=Zr8i*%Xqpb_i~fZCk5(VzO)r%fIpRyn6f_}+S$+zTx(Bw z&40sY1iZS!cP7^Lfxm2ROc_E=WX{P3`OsZ?84vhdaxj*--o1fqY^fd-gAiYpu)ZUY zi?qf0NLbfnA|e`dtDGN)%oy^U%FS z2G^bdZyMqwN&p&+8{_SA>D)N7gX%nW!$-3>L0&ru2q^)vH`PE#L<)xKBZ+C(l|svk zIp>X^m{hn;9m9}3o4kUi9hXkDe}XX1C#F-ZbvM8Dk^QRI<<~mOwoYg=X0T|a-o?o* z(1=X<$9af94X^)S^g+~I`_cLw3ZQifi+G6J*IwdD4nkc!!|C!jQ1IXI#w-|AZz@PL`RVGeBP(vdesYHTj}zR%tkFkpdpLNb2i?Gp2LjjmUf;Tg$ zYc77qcu4LSJLg4@a>H2+JB;uzP)vzGC@30tWIXpl_NW5~-3{Umt&ey*-NqNi7EW9rt_*={Xe=D*nwMk_{Kf+f1a{UEAX3%CaR}torfv%kV zzfy~%Zx`%9B>Gt+G}K#HL7E}5RD+XLRK`NWEYIdY-hq2LWAXUeGuY3dv9P+k_$Mqq zFK%4v0Sw*t@^5Qt8?|TnpC#J?epRSal=POo4z0`{HTV>lv1XlZnnI%>dKwLJGY(Gg zi2Sj1hfNQR#*)?P&B&_E%XNcQ>h_F2elndfvP|8DRecpe?@Hymzl@9W5 zH+12-{6YS{xhDV6HMeGVCwf|_DlJm#+QT7uiCnB+uRD|wEQI;=7SdL0{~;X4{d};I z_@kSbW%R|p6*mlY!QhQ7*VtAvW4DR!;*I}ixMb&DW*R`D{aWSA+we{wx?kU~lnk#% zG+D};b#06s0UVUcyGX;0&#n-eJ501P=3_%>IqS0bVN1(*yJ4xm*R1fcivNL-3>EiE z8Cf9w?|Wzo0Q^(u|L{*5PqxX2-k_4oWYabYZH$s~cm{u~f7|f(5++;arS$68C|)fh zRq4g-KCmDkEZIz8g9GmMV0WLypJhQ^k+BJhE5JLxD^izMj?v_qe4Hha-VFRh9dGbB zfO<+}s!Qp7Z+gYT2{$XsbB@k4BIMl&-K6Z8-{q|$YV>8xg=}9cuaEZ(%VBO zT^mN{3OP|k<7}mw(dBXr2PN1lk@b8GbGiGTcrMZ_LlZRW{NLfeI7e9C15bR6$v6lx zf1K+CWu?61%;*s%sQ({ssF}sfaLu;!%%)-F=oU~J#*HQE9b6LJpp1BkHUd-ZexDsZ z4P>+oPl|q_@*hyE%QB|WX(*(JEU0hxd9fj&HK`7*U~qF_@e; z0e}@+*)RR_rH{RNG(lXypBHCfHC`gEMF;uN=b)UwiQ?mAWD4^v8^xj7A zQZ;@f4}aaVz8BOi4sYkNF8TA_{OQ{h>i1XyZ3WwBBF87tJTVe9tt0xzME8!-K^>+=cy&MUmK_a4?VQaJg9b>x zKo}j+%@X3>RJP3Q(LPqa8>%Vqb3ddwHXKe1uJ{qIITttsd5J%UZ(>VP4n!V_<@hX# z^^y!85?|90e$$C1`dAH%6GN9r4V$+$IRZ*y+4lo|CaEb=Vm$Nn)RNDkKxXF-@ei)KGZm9VAurf?`F{<4KllJe?4+@(-Vi_dKQKvfsD>sL^}G?DASQ9e>w zl-JpXvwQ=Nd0~cnW}{zH-k=J+9d#Bo=W~+wlp2#okiLEIP2E{L=?1 z=MzccC|I=U$mqZTvp$G1Uh#c~``h~Q|C;jTuBL6$VjF+wW0LZ{V|UgA9E(5}qHAEo zRn4e>1cceY6y2tnB^f@m#eV@?Y>2bQpqYV4wD5hq2E1Y@0fp=_9iIWL+R;y*J%5u;x4~0y_zV;VJEz>goR2|@oeQM><#=}e-)N_Nt zOYBE?fHG_l`CSgth4xy9i%AA{N{rzzCh*nH*Anw@^tH^&O+6eX5fA^s8Rt0Z^pAL%N&R5l$ie zBS3a>;*D7hGXE4%TY(?74C<)Xv7~(CQ(|&oLcWViW=@^ZM@wwKbx7+wePd(t2#t@# zGS?PdjhA?sOlrkssRH`jD&#d(tntlD?~^gi-6^1Zyu4@XfmTvRWsI9tiCK+rP+4jY zMrWS*I12@jBC$%O1DmH`Q6zC`AE32By)y~E?%;S>VuP$l9q0z=Cy2ypr+E-o*xQMI z#>1gMhMv8ZI}cfgKQyc$#USNfs1mWcQ;to8A9&0!bnl#@-wgG7l9otThR7qnb6} zgO;2NQCUE?9kfq4({lH1d8Ewy_65!6Id``Uhun@^&*=iP+1h&s!W0!@GciRZ+zD{C z4m)&EytPE%7EuGIII9q+7T4_s--A+mA)Z-11H)K<`jQ+w=^#Wh4l_rCWXG+522#7{ z@;f;B3DIW`h&+p#l05f*@TKIMik<8vNsoTKHg$+9pmWgzN)^zk1`stpz;>M9hz0|& z9RWm|dI%S^iG|R+Jx+z(@i)ftUQll*8-hr#+%A&Um8od>-H*-Ed zez2mV=T&0c*loU2eqbyOiRpoBZ;0FS#FpY*WbB0GplbNIq+gq$_qeekeu5Cox0V#J zVriD0lV83k2XQ&7bggo~{w5s1vBm(*9WJLD66Mly-5nDTSs~h!KBNp!7wXgzmD}XX zqi}DeaUr#7h|s{5s;$J?c z=f5-^q~@l%S2{CZ|Hl`(c6S+y=Zhh^$j15xZLF3vyTUM9CW~EIE zs*Vb8hqe)2V_y>XzY+yj^_;)F;h@&&a8gs@svK4=zq_mvKuV``x_(v``}AY^f-i8! zW8irX0qz$b)+j~p#OyIQ!gsO{+q0-Qn#lJEKIzz&kHI3=!I_?LS7VxHSv&QQG+hG> z7O<&}dR79VI+n&4ZrZ58h2fvd%f>kK)LFUgj=}HNU(X8nNc-D=P^6{J#pc|*R>z1JOLiP(o#Gf0$=9LzG+?O{g+01ng`!!g6O>gt7lRhk_sR~0b_Y^Vg}a!x z`=KF2|4;(+%L(IaU%QaDV)FxGOi!8%Bx3=(4UGccCTwzB)eOup$`vh99osa|n{!Y? zbL96eEeP;}LLd8Rv1j>DW)74GESHz1kMYCxuUS7WHvAG>R*ex($`>iDtN;)9Y7%F` z+L`I^G_;b9n^pv!cg`b#&*J&`_`}pjHYLPR^T8-qvRTPr-}OIe=LVUD+NTu1)Y>pI z{d@51{1#7KKvBDBOe2?N%fg%s48pZ$6fC#!Se}K~q`Nd>0|cUiBDi8b9$28RDvYbT zZFfqMsSA^+o->ohtswSRnf#H|t@;mqFEU6y3w2Nd_%DHve9k;wtY68@M)U9*^waGt zXom#8|G66Q<~WxUEZAg6K72+4{o=K`3VR%KPN)H?wwT6WXZQWm92vR@=LJouHoW;^ zNZ1{M)4BQSy?nn0kneGYAb}a8-=kT3UV0s$E8sRRId{v~Sw;}VeZeqn$X>(n%gU1+ zwx|ziZ>uIYP4j?`X6+JD|MhsE0Ve&n$V){MeL`k?&v6M}+EXSTM_V=e!(#De2Pm&xYnKUIrpJ z>`39Y>6xDfW5CUq3VJ(eAvchegCwT9Bw=cC?H@s392zQoJSjFgrY_4yJ|X=6=0blr4BJ zKiu?K>kQ5)ie^oynHyrDnk>He91eN0OdY zw%)|AW}a?Q87scdunT*?WIZ!=f;VG_;86J#GBHg)Y0KqF_9H$1MKQk3PLbLjU#_We zIwfs<(2px36t!4F-GN1^n*V2~d!t66&#Fx;NO|T+tl2l`uH)@;>qd9#JKs45428Ky zT&&kN%W91$i}mqA4Y>bMYkcyf%l+s{Q*!DU=CwpF)aOW-oJznLsfE2f!_LT_y2d!# zG+hhPQvbs0U?Ib!_O2MmU=^YPxCw|a@vb}YV7-wQu@pqH8f6-_?zy>xp{Qd~CdmJB zIB0DC^4-d#)6OZ}Qp8VBeh0TTS0`LL|Kyhwrmp)lWnrY2F820vfIV-hWa{fKm-k^q z(3;xhzs3^}s$!pq{t!q=Om2r3rrWIGDNxb#oMY!|NV#+K#tID&Pwl3N0RL?+wm7$A zZ42^^2V(a{jnQ!L|Cjh6NKN>?~vW1?5CwwRn+!G15`r#(^G&%2% z3c$zLpg)2?DuDV=J)eyIQPO_*KJM=MZN#x(C%)ZEbf_hbCWxh#Mp2D&=F;=(Ukb`s zTW=_B0}lh8Cnbk?O4_8aS%oH*=Zk3nL#2FuWkUYFisd-{HyUF0WmZFuKnU$en@36= zv!XF(VZtsFOe^7?e-4;g^-Cm00rO?h`EK^V9&a%*Ogg&^pmsyGLB2EfKHLNV9J7n# zAAoCK;}dBdO9G)Y^UQ3xcmgS+$bOS-2C@pi-TQTb!JrSFH z)VPU7s63EI!eXQteKeSin}yf+W|iZsLWb6$S^N2vZkivwKJ+GCokVG`miAX!R?MU6 zfhkUooKnJR@CNW$VM@--t!7y2`?xRkfjx zhh!wMJyVMPOl?U1-DCxPZxj2M>NIY?$K*I-8vP*a>~X4UPhU2p;2do)$;KuA56Kpw z#YnXB=bXGsbt-%@R_legc6!rF7ZdXuc`3<*9VWoAhOQ%$ds?!Y}AiTit2 zhQH>5gm&2t$2H)=OV`{P``vR1e1>f+2)$lPsh8v{N2M}!dsmA2X}H89|4Ja8S5VFh z9D7c6?r-J=%jduC`4UJB$jp{N$D-xfA~fHWxj*G>Zul-E9RIQ{q$s%Ig(Tq|(s>=Q zCq6xijO9*JSZD>-A;&lb+Cs~E?!dQe^nnd7#gZY(X)cAl#z&-G%b<08I2Hbz>OoDK z&ED5xq0I!?Z@OD@5L|ZW(!1J9B?G!&aWD;N#h?z7#FufBWXyP%#{)}_TK*X;7KAkx zBU)>Yn`BohJthJ911#@9u=QgUO__8=-Mx}-6WAAvmj^QW_e+lBInpT>W7Q*r;?D>t zWv)elWWKa5i%`^Ot>)5G?CM-&-7RduPdd}kF4Rc%x}N+J5FJFl-CEB3AEj2U*1!OD z2Ezz_75#)#@;xmIpU;iBW$@9~J{O(j0O5xRWw%`|OUk>&xM^na=y+8n6z}epwH|I! ziDzR&Mg&V%=5y<;j{+}3OxpL^7*E^lE^;$lMMfyzI^B~*&Ma16pmoFv$~Il;wr2X! z!pfrRhGBT;HQ~l{f8pdGtG05*aub2cqc1KKa!wSu`s@hTPj+yx4gN2;7S)AQHm5?E zTpVQ~TvI+r^Gc=8&0oL>1E)1*D4XYYu{h9hU|+ptEN|)?7KI%2E|lBs>bnFBYM?7F zXo9V%1AySvoR$54iyUYrM3iaY2tEL8zZZ9n!AlQ7;iWe+mUUq5=LA!$E2u13T|BPs z-KF7Ekw!rW!&y{{@n<7cr#lyYzEG#Ej^{!gXwEtg1%ExTLQ}jr4zh;lLLq3d-P z*SMp7-Y>n61o}N_lA)j`Twuxfv~0en$7M{5-#EkB$T2I)om;X896?oJQT9c#c)+7b zUv%LG%)n+>ig`?b6a9fnSPcDL2Ch%GOuWL#0?XitA?vOb88U)iU4gQn`O{RUmr+qj z2ru`ZPl(ZR;}2y>Yw!~!j5GVvTnk_}nAmk;pVyLto^6H2`nt4ZZYA@hVfwQqJdt=z zgZ6eoqNZ-snHk~H<;;3cE_Rl&$!?JTdi@Km_D^LVekZB!)#n^Tr>{bZm^;1ZA|y8{ zkf8ivfZ$a_Qb3K@DmU%wCi1K@SPe}z2!O7fjDSNMqM(nb$KLh<(81AGf<9fkS6#q7eh{Eo*mMpbn0OmtogY}I#O?6E#r%sip%t>^QNmT2s z$UcO>j6RG>H(AHozF8DaE(ji@bStM?npL!7*0!pwHf;o5t`UufNvH$7R_*<=^@qrP zZtmHYR0M$R>;?ZoDIvDgU;d!iP2{BTFJ@LNvZznz z$v@J1)BElbRD4pf?Vf%P0Nq^8{ zxDObczyKgr@8C7vbYpRnyUYOnOm~86FvSj^_^JZ=COt1dH#bq3J`t9ApZiAvft3{@ z#yphA_surg!AS-Ne;pNF<89X!me=04tU*`A10r?ubz}}a0I)O1S_e+u5wI2s{rgtt zVt}55Q2^_5PFyIQrhtBdXBfoETnIYSWUCd;#%l7J6kRW61Z_Np^hNYXV03o)`epbOyF={hHT0pQ^B_%YPj1%yr z-*%jl3LPQ)%~Dn|B&uhsk7N3LxrbbQK&Ql7Nj1MWtWX8YQ=%)4m%NSJ$hP=Maj_`Y zcL$?(w#6b(?EE8m(<-F@SBw7zm3K5h!ihV`|q+1ZD-mh5rT_mYyLuZiuW0Uq1NMT!CjPethnCmCFT&d7+bTUQyev&9-w+4YKn_ zLk?laPn;po-t(gQT~eR6{$(OF7u+KtjE}?py`+CR^^n{eem0a`cn^c}o# zVn+5mb#NdIC~l#t1>$y-g!LxQ*h(F8AwJ!DL~g%*5k}2EsZneD0E+2C@)<#aOx`-1 zmAgiGDT7dm2_PJJRKyS+w9<}?jr?4MW3*$$`E#yHOFCeOKPS1`BnjKRb~_CeAGt|Y z9AA$^_inYLM3Tje4z}VD+_{$q3YB~sIA2#@MiMz>b0%b&6AgE~u_=2!hHVxJ?iC7t zGPtkk@mNL?lIQkW!0kp?=liqv%tM;lO?D;apz~;WoGOHA$Wa8x(0)gqLf1<>=tW0y zmK?Cz{=f;v3?hSS*tH9N-NG9eLPoah4EcR6pyG?;5h0^E4DSZ$aFizto?&Zyqp~_* z#=SHIcpTU)(RN3YQtBj9(g&7_6vuBmn^18zawsHSM`{jke&3;`NS@#B=QOzA1AW`4 zYDHGySeP9M3(zcJ-R{eB>@uW3GYYNnj$DTXhia!*-4BZ@JB%ujkcFjHveTOm7efra#$t9ugcf^2l+ z(NS+gVZzQ#WZ+3_(YEY|4V+f%hqN&;6NJCpg+*jN@VNkI7%cXmvdc9wc8zVLiSDa= z`IS$oQMB#NuM5Ub(BHlPA!{mBItnj*p;+Qd@YQs>EH#-ZCllbQvv|W0HkbZ#9OsTM zE2u@^4EAw3<*)8o4;g={vDiZ~UYE_UHyv^S#lk*9VEFUv&Wfya}CDZ znIneapf_jv1cAuB0oGNm=;_20iyCuP$_>c!g@oZSF}KOk2Oy?>lMD>EQaKhBv`g^B znh9F51UkWP3fFYk`OxMQRIznUl_N}+ZmXN&Lb2L}z zPvt&#fwbd}S3S@xq0etGEia@IZ!e5)hM|S+KmSh0Q!L#+c634F{>Jt?Q1G}l1JG3% zQ7bsT<8Cygpq^+58$vrS1RZuqVf;wuCtAzFx+3B6@Pj$2zvx|PMc|ujjfiNxH|vLu z;K_Hss~4d38U*2c;*TMI9#jV}i&5iQU`(xzjW`WdDlS9N3v9?Q=8 zbJWofWdDN3RqU#=?2eHZR1j)^jlHy;{FixW=W_PUef!V-8Bj5rH1V!)Vq$z^ZJcMV zAK@=A|7WFk=i7(x#qMTdIOEB;uR^dwyM_bGP&nPxQ(JbvSavhPrj2F2^m5_tb_f?? z*P6joKmf&fNmufb)(CQFx{carfV_Vp5*PYccaWiyRK2YmyDzp^hRiH3{XI1~!s=#2 zt^~;=bJ|h+Vk6JZ1|g?=V5kxP7;zWnwhtZ3; zb_ej!1tghgfS=NHs-ES33DLnR3FA*9Hh{{8$ zdpvULn%Cei6lKdggqjePN|%4%3|5EudBmb}!En1h)T`GeSIfL�OvK^(Y5Qb;lE5 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_01-vector-add_thumb.png b/master/_images/sphx_glr_01-vector-add_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b63466c1610e2460c835b2efbfd17b025ec91c09 GIT binary patch literal 15532 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 H{jdKAB2#{q literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_02-fused-softmax_001.png b/master/_images/sphx_glr_02-fused-softmax_001.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cd504f6c98171f2f49a61f9376f2d786c4f3ca GIT binary patch literal 37679 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 E0A4^6=Kufz literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_02-fused-softmax_thumb.png b/master/_images/sphx_glr_02-fused-softmax_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..40c1da247fe01901b2afd54b06598ac2490d6efa GIT binary patch literal 23974 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 Rh5tIst{tX^_w;Sg{~zt7Ott_3 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_03-matrix-multiplication_001.png b/master/_images/sphx_glr_03-matrix-multiplication_001.png new file mode 100644 index 0000000000000000000000000000000000000000..879fdaa1c7d6d265c18c2fbb6842c58ec9de8b57 GIT binary patch literal 59582 zcmeFZRZv`Q&^0fB?ZQNN@{~!3pjj+}-}2yx;%b zoa=LOs!kOY)a*Tb_S3t2_3G9AOoXERCsZUtBoGLMDkUkd3-j0KrlbM~7+``4h!I__h#rA(s zV77NMXJH85&;Ty-#z9ik83aN%{QC=2DqLa-0{vl-5*JnV$Ua6QCi2!$5BUgG>q8YY#~bx#Z3my1aO* zl@cQl;k3H;&J)OR+8NI1qJnhJMHLV~v->3=VBv9g1b|9g{x35fRJ(cfKzAjN-2zXc}1!uu8X;o;WEj zZGdZ5=c9uID+L9GY&vV;#>R%qE!{t#NR*GOX9qPb9=ROOB{Z%2wNCEpdv4?u-^B|?5KtoH52v*vEs+atG zqpB~ekbbjzOnm$>31>Ct&olFU_#iVA6A%UoiSGK@pFe-1bqf`Wq;dU5}SovI2L4DK5kz{bIG`N6W?zz3Y2o=yN_=irEliDB{<;NVD-&*4uY zNlHn9th?$}r?s`U)y=B!)DDntK0lnWwCdmE)AI6a{1?0~sg{F_O`|QLCw+b5Mn*;& zbtY2t#=uAXUA+mr(b3WT>Tobq z`Ig-Tv1!Q(nZs)!^YWr)S3 z{=}rdIL{C0PRu=V|_2W_tZUs za0X3zE7l(}XORzPx>x;!yFu+<5nos3bNVi{n<96kBIOTErOny?OFgK-`KQON@j0kp zzOXtK&B3MTp@*U69G5ffI(6?)*I41cLQr2im@SFB?XbWd80Tx)~ ztS1Wdcun+pTi8s71?#?w+O*0XDVoWNIWMwo`CR$Oq3c&ljVW^9&!Bn6)C!h1MIGbS z4oZ)s8M#-H+D&3&LAQxTnelJ`rnJ56owM+s2y|f_Xcs1Cd?MvFNInaG)gK+28ZpCK zqGI@E?xe|;fz#^!^;4xD>cviXFM5>e`nV$IEBIFd)AZMGo^SFH;m5%JZe(^%vW~eZ z|E1JXO9Zs=MwT$Nzyc9@`8#L7&fDjM>W$_pDjEd87n18^+^zp_9V-nyl5P zK|J*>Y49>-(hBT)+TmNEXwn6$jdOhRVxto;uY9q-^62|MJ<1;VA2ZT zUwD3keky;uO5-h-N=m{OCmA{kBl*yG<=Kuwrq6bJ;kCY-*MIb`-v6uD4Ia#z@Jsmi zxto2Y(aW=g!yxrtoQox2fko{9V?sK;YT8JRM%e~cI@had zR-+Ka=Hyyg2LPo#kn*kFvO`vZs5{K53+=MRTVbk`dEIVm@k z*-f6L49e=D8g^SM;iKmWa$SP!Hu7s5o?82AQpJeyOT*eyTBM4*fxb9>gal7XXh*x( zc^#^U06R$F?G{!I5c)3iQVRIKmqIUXkF}#Y>nq;ig#HO=tAY?+aZo9}%OP!0wpyh) zddGco0!-njH2mVn6aN8Ww{dc%qKz}v=eB}y#x~})mK5e&Us1V#) z9z!utOr&t%uy>y#>9><{*dmz)h&MLGp@dPdVd22kljXb~e`dpAEXbyF*_s9}LzWw@#!8qZb$2+6yRaBnvlg=mVpvrfi?M7sIorDq9GnM^LZa2pTiiN71KaJjc zKU`<(7D8X63%*bNb#X3kIMiUt>Ovb$#*$jVV-vt--FF5bJSX#QIx>IW3_C-_e@%4f z(En{f?HRh!81hDHAAUFo57lhWsC5?E&s~+fs}d3FXuDzcywJ4^`Ub1rt-TlMTIQSA z=_Bm7ALjqdTRGU1Q~fKQal*{{{O$KvwQWQsx>wep;y&+;fH5vtylV_ZJsYd4Y`B|` zxE;L*F$g|1K0bdUi=bLkW>D+ejOz_X&%JHaV)8i+oGZb{QhsjkCO@v$XJL1qPROL! z8f<(1fhhEF6V|kXl_7*71AQkEzQ|#oiZBpK86;E=F#)-seBMnC1St#Pf;?gv`sNx9=0Jc(4UM3Xotb=^gvfW+70UPtmSuwbu;O9Kx&N=gM-UQhSf=GgwvZ-2O8GMS>l*Q!3v85h*uN*WJD3i>_V zL{X-`+jBAMTd7LKeN5%Ue;rDMl_$Zs0lVp9n-R~bT)B!PDBslmp~XfAW~|*Wd~`X7 z=8+?DKkdJ2lUe}}M#}GbuOl(@;!Zp&vE3UiF}#kEQT}j(&!kUJ^hGU$$POc=fgHAO z8`|Ht_Cw>lw8*xGK#gFqCfe7NIB(xHNA0Nk{7wZinOcpG(6gd9}xQ!%C_S|!=NG~ z^~UE;igi{eGr)6Ee1Rxzv$ywn1>bo+{I_&@_SYnZeZC35z=GK z17OOd&04*7OG}r-tc%1wT#EV=dlq;CdVe(#+YBAWLoLelReKfmbRQvdC9a~#+#;@{ zt*3V<1XY%C-l>`DfG;%K$)t`m;w-Dsv)h<)jLEo?=S6G%41qE(Ox~GDW%*L(%;1MBA6CKa3KYS> zZXvs7rns}FZQ~huXY0+Ti30N+TQ->s^Vvf+X*!R>;n(tSIUm4os0K^CwZg|98ymln z8S{OF4P0Fhs9{?^hV^+gzq99hJ-1__kmdQy> zJn#IVU)(O9yNhA?LjonHEk$<`wM~c%D^2BNd852ux?gw){ydaAmy^rY#N`qjG(495 zt0OUn>tS3u=U>tA4aR#r<-B6zHGcT@duUpepS}5yVc7||lcOeRy^H$_T_#^x*z9pO zVNAM@QYPxd5l@0>`5Q>6wmq)*gVy&Tr9%0~%)`U;#fzPYLmk%)S)+LZdNrK1IxR5Q zscBk-Y~C2n!baN#8mG0|(+%BM+Ukg;0qeIJa zJE{varXq7OE@*^7>aG`h`y{+R-@_ZeY9;+ubd=#zvKS(%MNCEkgTZ|ZBQ0BeZb}+i z$M9ZU@u~N5JMrA@Uh6he(AA}ven%-jgC@?9-tHa8bZ9?iT>u3IWx)MT z*1q~DbFsabbQ( z5DKY>NxZ8I2jcbkZLEAfH8z#I-YqAEL}>W8$+ctJs*My(7BZrsC@QOl_;J)$E& z828}AN%#YQ4uLPXUG^Vu_4$g`1w_nL zC(f(q>*@Br@&6DfoAlS)Sdw=>tF~Sq^c(U_Q8<9~ru)6WxvyPD%)4b+{=9E9*+cyA z?hODG;D;=6XMrK5)Aa0tn3xWmG239Aay1BwygUsA7q?EOIQ&pUCws2|0W1 z*w--;Tk!fV93HVhTSl*!F zc^~I`?KkMyy-kym&7~cYxIRDt$oJRLLCIPjt<|95{yHaU>c;cqT?#@^xq8%-D+myT zHhjZ@idm~ca_MAZ^L8Ez0JX@Q)A_J3Hjgx)?RP%2nJROnK4OGIzkO8-iXu8*9wSk( z7bR=Sn_Z#b*nZ)2^pcjBhS+}Q2(?$M2RlNgB#te$9CS}eTdT% z>EM-p``AH0cC@-mw27d-E+Wi|=QQ!Xyk%3*JEc0o>eGL@X>g;z#<6g2(QV#z%`Iwe z^UtBC1?`e6zK(x;^UI2N!O^e1{IZSAJg>4gjLps$aYYNx$ivm4LAMn6pEr?bjl9GK zUwe`w%JUr$d@&)(*uR>$Gg^qN=t+}^?0$Wcb^W41Vm3E zx+gaN#H;vu!2@E8u~bV}ifB(Pjo7nu!R;E*9{XTu?Dv)^B}K$Hh%jBpj*5!PB7yaw zuz|o?7Vh*i`p0u)@|P^E(0W>ekC%Gsb1{`iRg|n^*9Zb{|MBPF0m<+jx~-AqV-`3M zFR{h6lu29;`5Irp%X>$AfmFh0V3{denI66k@`(j8F?X+c6VM zUe(!I!+abdF3?1-eO_vg$U3ka+Kj+w-*eKF(wuID?Hgd|>-Ro=z;Uxh>OXQ%vXe2l zf7ZL+IiafO#m<6$o;~?CJ!bN8ovgxbG#FZ42$^L(_M$~-7iIL+ca(zxbuuAQ@_dr1 zZ6$~)z`*|<-kdM-K9o8ECsDGED;H7a6+bwv_lTT{CynRXd>yJFcJ_d~;KIC>`hac} zE+F~YnM~pFPNcF5Ql=$%oF4yPil689so?A9g78S`5x(=hU;a<8TiqfS<+389Ra_cM zv#;*NH_gi-IHUo$r1%K73*p?f)-&N$bCVTo-vH+#KNx(2@4oV;Qaj2zE|S0Hgbe4s z9~w4wxYbfNu||yu_~oGFrfCVyKS?8_a3iA{LPG9hhj`ugj>(_$Q&6p8 z_oh}u!S>zNWzB8!bw`>Y0#}J36w!24Gg*FYugdihVdS)dfe#OTikla$VUACOkwlaq zTpTCsDw9aGVQ;OfLapr>-ZQhJ)vrWD5Bd&nHdNX@(9J2o6EbD&!JD-wh+k7+6UO8n z2fI%^2jz%=r(Mep@bR~@`*vroM8Pms z&0>r^smD3cA0qRC$RWbxJ_Ba{l6SQQwln+n62xo>iw(C>HBZQ4glmJN zZy@h+ZOH~tbTOWS(qgeu?sA@pqu6Ijd$Ez#K*V!R2ePKVpQ0|#Hj1mBEd1A@)$SLX z`^1KSw2OzNv+ntNvLe(K;owaqIz98nbpo!7~ zB^+5VZ0hzm!t{1=QQ3*a4gq>40|iYOCWw?G<~^k!8u#6n`8_PP*g^|+(+h%H827&z z$133v`0B!p2^01%Y|LkiYDk4J{zF%)8}$R#d&0JuYk>UuOTr#{XEy>&6@&^Z4-t{cr}~} zZ^d%l2Xy;($nXIdL0WqpL{aXz`E z-JTdx2f7S-`sGIOzKa2Sc^~)rWN~noTTXVVU+87Q%M%Prq7i`v9{5r zq7))zB9bDAYAT5QV1z@DeAw5|2a zh?Aj^`-{kkririWFlA+@cLSnEo%&KR)Vd(xG8DxaL6;Pa&y=}w#XLRRzvF)|^*#pXQP&}vGC4@o;|urs~W!m_K{HZcDt{f|)a_Y}(+?NzG!2|eC!e)IMRut|t3 zLr|NfX@$Py;L4~vbBqQyD-p}F)lwy4T1FCMzU1AiehGG^K@j@M(aULXl0L@9SvX}f z96}%0!Bs(Z&MJCs?Y1wHLTEmDtvb7aj;cJI&tvVakX7<+1}-iM(XD3XG*pp4Cq99~ zuE_$1NxO`5vjL3Uo=?q8N0ZNV;HofY>+xa8PcXN%EgHCwO&XO$hG)u&>PC@7kyxpJD zNacIp`KB`pMMizc!L|7F`}-^F(zy7V{TGV6_BF>>Yqgpa4`O$FPz^j^qR29O+8py< zh`NJ!SeV76xTv`z9sQ)TMt=X1vV-R`uP;^KtDoZqQiy4K^v~x$JUm#1YOlVuHWGPU zClI*Vp>|nZay&Qc{M1nwF>+=Z(P};;x=8;a>q1MGDS*?irhjCeW+i_N19al~85xj; zJ_tnlZAoIT3A_j#&ckJ7TydB;(mU@)T21;stW`FND>hmvEhCdq%j2wm*K%wvmCUZM zQ8by_*q|pR!&ldf(9(KBGCEns*Y5%fFhRpSU+PrhgGE5kSPR~`K3#VhqN0RTSEdYt z^hO-u#zGHn5;e1>td!_U^AKE4IL8HwYLc?*BP+-1hplQ8rOmKYr9< z&IE0p0wyM9KEGFnay5RO{UUXp%2y6sE<%qpa4p&R9*#H6r|8nvAdC`~;h(O&;-AkK ztif(f3^LKY3?sj0Bmk5P4n-Jp-NG_Kq5S=xSqB1Uqd<7? z0r`UR)62rR1$kovew@rly{gX=a)KIBoLf8LC^_BvMrfDngPC3eiW}o=7j%GyC<}aF zy}o19e7tQl;4FRhir+z>FLI-}6U*AN@3*J|W|_wjbi%0K^6a78$h9CdQgV`0;sE8H zuzvTpv*H%iY*12obu?yc3SI2%t}n~|k5V}-w6wJPld`fnqH?A{A)$PbE4aat7RzltDb6?& zOGFctUy_UE4J1U&i(vG~F_evLHEU05cIslc-OKxSlR0+4-2qgYPye1Ue_)=ZmHg}A zqh5)%jry<`hgo|IBf)T;x#OT4V&SM{I9rIK3N1`vH*aKg+j(SZBpMPHjHN?O^C%wE zuT>5Kox?z6M2x(`hLKn`hG#}2uK-6ZlkQUl5x!sma`ux~0qZf-7Be9*x z5J|xQ>+}2uO-DppIxmYB6Ho@`K0jH4etswVls3ow{UJEjN?b|dXLdS#L1`&s`Lwj5 zAw~Ds)qqEy zg%x+Q%y8W~Z)0RXZ{HcQSq5Fl7%(@Dpp2Jc#>{(14bSgh)!e52HV@tHFd$n;I3WRO z$ooyl?T7K@(X~A$lIF;7$8DqWyD7gJf1N+|Td2CmAW*}LAvE|isVBxjykGY1fi zXR_XmtDkhj+i;(mW0Eol?f>%AozvlNG_wa+Ph(r~UI!QBem%R+Y`VJ{?~JzQiFG{s z30bK6TB_K)qPsEHZ==-WDQi55wx4ls1;4&7BtrFmDXxEmrmLcW{CQ=>gNZn4UZL~g z*=YYq>yQ(PNXZ}1(wmRbCoWHH-k3mp(=%4Ui0LfEDpN7Ont}x#ZObI#Nc!Dxoak9w zgXK(+pEiNyOH|a}cz?t^WolfZ(XR*mj@o_H70nAYrBqrxz4mx=<2#)mS#Rp0FGGFs z)9kPPh|h1DP(TOb&#!@Yc%OPUtbJ_XUuf-bgLm!7dgyu^$XjwRfV)RP=XllglD+K9_eiJAxG)jER`1g5qPEP67nhp!wwA~)v8(* z>uyo>PDxU){1OtjGk(AGeA08@q?&s$xV`-Sgx&r^K;V>b~(iRFBgx`IJ|-fXeN>27skbVp+VpiQS;5i&yJOV;lO3g_E|KsdNZBsr&G zyZ6jBZ1yO=IcO6k^iT6Usauo0rEGFynfcS<*k*V*=O-)6yph8mGK{xv`8>C04}GK` zW%36fL&2(yvQkZ7Ikw~IqU}Cp21>y(2++WFB>{?pEBOno)MSg{{_k_7S}>PW-~r@B#oJX(NLqCgQyYM|N_!eTq?R zI*8A8=5d(q2#i44cMbJ!FGUu=vPLQEK7Q3ELnP%yd;Al^S7{hHTcmF`f+ zt4M~kX#BWqYbjZ)qRW`5P;E&L>qS`naxHo&Bsr^YvA?C6aQ!eIzm%aK9t4sEv=x zMBDlr$U>}lUO5QxALB6!Zraqo@xHp~>VaKD?@>1!JEHYs#KV51er~3gc|vJoEmtX%0IUCj4~TT{0+9vPCqg1d z+`nT^qfyW#!q;f*Nk;X^K*jNzgGK91J$RxNl@;MES|Vtl^CLZ zpP&?qj*W=nt@c#OJ=&~aE?&V?qx}tg{VQYC8Z0}czkV7%TRp9f84)#kwX# zHVxK2xnvLNTbn6!pVJcrpw9W%PG4+YmIpFX1EPJP#Kh^suUQZ0>8z~}7f_+iqTHnB z(mgQX!(#{t*L#x7=4;mn8>h`&!|6%VQ)ZM=w+}3MdU=F_i(f^FY7tf;y%XS*?e!IO zN8bVCG#^ouh}K z?FtGzPX%Sso~07sJi)n8i@7L;{3#5t6UQ`*em_hA-XZZnpK6fl#zrIpD-a;mJfF_4 z`wjhxmaq6CMA;)4^2sASViJp}ve#%PMNaPxDsIY*q2b1EVzy5EngRskH+Kie!s4Id zkCvLYb8WMf^d^UToUf4s7_Mm=lPls&M3i}@R)||EAp_KoO=0aLN5adapNCPG8rG%H)9p1LrwJnqh+k$apa&Zw z>oA;zsQfXpV?6$&i{-1-iwUSA_2Xu;`+N}>*rO%m5Xq!?YSR>`3Uhi7ldj$ROX>?5 z$LxrS`LX=*?H(Gxg!@*9-pxe0BMTwd^}3s<vCV_zD+K&E&3TKvHwm_5)by;8MdL+C-THb`q?TaIkaV$F%Y}+5CCeF><awrez8M@O?wx9$hbtHAf4?_paJe1^9Vl7$u0||QOzcy> zNO&yEgM2G*wqDmw_K>k4nolK-@xri-ct1%jRYa9Y8-;kw=!JaO!hd}{gN<{@P;DRw zdyQY`A?l!6j$Sw)Dzrh4mIc$vgw;mfRt0k6Am=GOADjMCn5M4hjzx-wz=4C6SxNxg zeXK^$CbA{s@o5*6*-C%@R#08qk29X>-cZ}fZd zgNSg)b&jq2651>qb=KOz+K^1KI89h}ND9ypIhQ%t%<4$pD=%@b`9lth2_kg7@pR`X z*hW-Ubt2|_uYnzFi8{sG%vO!&mlB~%bMF80NTzRd7lfKY)V$tG^k=#m|K_SKZYxCo zl7Dp+c-GH%y~A8QxELh*h#_LD_=+rt{v+pZy1KjY*OOwX(=Y`YRKt$=1Kjg30_a9xkmW4_j&!FV|$G zFk#k%UK^p4gbR78mD7q?OuzyY4R5!08#nM+5^ez=9M=LK|F5&gE84oECqhyJudaw zeasCzb-XJpf$kw1>G1`|tb1wmR(TmcfI+Q`u@Vy)CMZ~%`YIZsd4*+VMO!8DTFKHb z2A6M2Qj@isttoDve8{|Fa!&^Q6zXft1_afZVe)`6unM?4e96R7yD@=x*K1VNJwR7R zTXPVI@i*M?^}EM{0_ThGhP8yF&PWD0ynox+a3|1RKJ=5eq6=3%d9!Fz!j3QL)c)2? zqC~)$1}2rzKDbB123L1}ruZmMlmUeHK-*>FA9IaNLxDPnzmt*Ud>=KFIzCG}zt@j_ zt~6gvSyg|^JdDb*(ppQn_w=} z4c%N~4n5LFZPrCfP|_Ncw>~C*n_+1-FUK+R#^pIyUQf(%n7-=JGsEKpF_=Eb;Gi+L4gN;j4>YQOjY)q_e#2WBDyyVb8iZ=f<%- zq_Z^n3_}$7hALZ+gPKbZc!X4&ZvWC0?YS%2e-pUo;p1Fk|m^Bv&R>hnJb_FU_@ zyczU5)8Yf-t@IbMW%Aa_EA=NB8{V$QJXQVbnmBS!vK=dih%>we<-Ypg7}5L0?Wfm@ z*MoJFbSptgPye!XiQc~9ouHohY3l{Nq5fpkX8Z1_a8X5v(d!2;USukxJ5X=lJZ~UR z6pq>8!D!nO5~n%wgJ8oCjy+AuULSc4}%k+Yy z2RF)Vj3N*SPBfkleNpztHnu24*;XlWiw0pu{e8VGuc{=Vo>J?sq5II6qo)Yg3chLh7XR6xO z+ODV7`&+EUAmBx8j46qIEMOA!QSc_)0vQ{Na&)yU#p1eRIyH`t0cZreXEa(7f)uX& z%NTF1NmsHRoOx?SYa3#$WB|qmC_U^^9F7l518w%I(P{A*!l8GrFI>ttQwE5N5w?fl z+)mZE=*2|8Xj*U-Fe+W~e^67x$qeJ!4XYI%7b+7BtrD}lJ%(>IwJ)DJ5EMf1JiH4f z>g-JD&OP?y(-3E+&|2yS$mgmIw{W$W-h*!8tSTDcgM~pQ zV^Se}LFEg25X;kD^(R38PdFI-D~fU_*jkXTw5MpJ?)S0z`K4zjCx-M8fFTCK#UHPJbl?Z_8Ah?pEuE#rvX~?wy z2{_7Nikc0B#vsm%2ZuVbxHQE<KEm4Z^;mq3Ldv~ z0c2=(ji1QlugBjPy)i6iMVm+aYmIV?H*XN>9_IgCVJyx;b4lQ(iGQ&PuEY-P!o_{+ z-c)vI#Z?ul4!$iW9ZucP={;`Ty#8ScSfPUH*U&g;1D&w$6L#+|nz_mh^-q7ETm|Nb z5H-w7dco)TBMg1Jr^Gw$owV;xN{YOlLwC`(JgLue_v*K;uAH6wG_wgZvIZ!QqK;fh zRk5D{JA9flZ&dP_NsxU`@_NzpDOKoyGkp#Ziqc@>?s3Gs5t4)|1=W3OQ8 z041uy{Q-it0Sg>w>vHT9Ao`GULOGFbC3GA}pf%-m?X)=nTl|}_DPSmk1ok)U$j5hY z&ThIpGl0Q(|HB8kPI~1YV0jWvZ%6(#7FrT7HEW#!*bbzfNrASzxATPk)%Wu$tx=5L zcoTtK*(2`603)zrCKCNgPWYOOa*0^4#B*|*3fR@u`?hPP-TMOA`c?0|E3egH(ft{f z==R~H)ANW+$@YKu!=;XqG-y>`{+S5IWl&RP03{dI53zXrt+)HHz7xUkx{ci&8`Nhl z=}CymBl8epOz3Fc(FIjmIQO%4k9)?9_F6S4|DoTC^Yv$K>vzBbM+bXv1G|oX zxbU5MzdSV|J~wDJ-|yc)$O3)6AmJn_Rc@jfBOJ}C;te+mNBG`dl!2Yb3BF-#F4hb-I+OGZ{HK$T<3boIo<4B7V?<#VzY|kPlO!=yRRH*olfF z4sNiLPw1z6)(q*B2j~OhOu*vqU%A9c(x@H(wJH@eZ>)axLrRozdwPr}(c710k7Cq} zpFg8xd}_CmCv7ZE2d*uC2iG3`WM{QBh+#K*JqjDm|4!~>mfHP`90Zc__+au^9{~~% z`9}=E(4Tq8Mz=0#(oCVb8uvgMow62SP$9tpJknQ0!9dE!CL>m8aes5x!qg0g4ujk$`obl)Y0stvIA$1V`!G3bjX%s#nPUxN%*n`(#HH}oM z7B#kOy#M=~j`Ii?$iyVvu4v+u96?-cEVK8q1#=p5T6x=zs*=)#)DJJIGJhGBRM-u& zm6UG`d#epEmK_CCn-ib&IOb zs_9heAg;h&W}hmXj7sY1uUavwv@$q=2}~C20m(B-DO=P+gqAG^CtDs)z9gu-6bp+w zNYFSS5*U-?z!jFa-zb*p@7jQFx6}05%}0rMMss8q8*Mc^ z{RES!M-{0I}iewrYM>lz+D-(D!M z#*^u0d1mDQa3k}_ed%pYa2D#$fvtX8Oz0FX;jkG2KaSrcW-1f*u8@-AY-6RxB9^wo z5JM+fu^cvxei)h&S$;wI*S$eW)(qe1be_*wZx3n-E87H4O^t$$EJ5@^j;WMsfAEhzRq`nYbd7=FLf#Ch=qTJ8vkPpbX@fe8?3)i2)T9lgnespj` zZ@T~qs3FQ`0CH5dF^QKpxiCk)~tF5S{Gb9sR;P%xaQwtbS{5R>xCqFe}In&By>6cQQ-bhp{Y#E z(PESN%kxv)?M75InQ-p^-Tf-Kp}#piEXz+~PCaEDC;0Q}W>w#pT_5pm)*fXt1MMK4%sH`HVd!FU>tPA4q{tH{TkV-)yk7Z=I z-z9_};%0pNWT5)6Yd__A*vTD1K-dD;h0J}V&k@?SiHPZ47jaf~rUxMC#bNC8|J@*5 z)Fx`Cq=Z?nR#~84t(THJWxOsummlQ;_RfBc|g@&bz7)Tphhv8ng^sH99u?+zmo z_Ziq=_dIh4NVyTH(WW-7n zV$SH#07xvoZJu)x@D9u!#7vDW)y!$2H(Z2Mls~)gX+HNsmV`A0z$r1gFYiB7Pg4AV zv!z_bu#D~7c1{3b4k%%mtIHGJ8JdKQ1%ri&hG~d|_}0xKIIk-uv`f}b8mpQn`0KbT zDYY=MFermNIr;#v*7Mr?Dhuq^&hxvE@O`*GJ8D`5#sjJy=S|aKHdwBTq>?{xco z@~CLIHI`judqr4oH^}qe6H&1vt?u`tebh!2AV&Ww{H6cFm0sXB-{P%G)|fu zuhg5$r1L5j?#v{<6M`>lb_SO9)zk^WADj8I0s1Y8BGPF{$6J;i20H;HwCV^78{ad>`sO z&Wz^a6!~`_FJ;~&6DzeeRSS2XJmfGtPSffNBHTW0&v$a$_FujHNOVL}ypQe7eyYV#8sOQfnXi}}+J zjK@=gAdm!HSz}yx#uj+o6qzjjUpdPs@A(*8oQ5t4WZG*)Vvm!*0!9t^*$CQj@F1QObOQuhIwxF1=XpiNaZA^H zF@OzyeT@P5J4yyei0|tMj~_2nIxF|**v$S2e_#>EU;lOKbw{9_9<1F}{KME+at}OI zpnKOq$mH(Q3Kure4HT_|_5OlUYK4{TaC+E4Cyu=qDlXusFu&Sfwtym4GRC)vaH<;b z8&Xs+YUW7I_Jr4SPgMK4g?5-j%z*#hYG=~PPhamJEdPhCuZ*g4i`E7t6eJXo25BTk zN=cPE2#QE|iGXx>C?X9C(xs$?bl0X)y1S9?Zn$%Mzx(g|qhmPEfxXwe-nHg@YHoi6 zaT<{>%EhkV&2h`?UB`D9LO!sB#XE7n%$=`*PHfb{Yg)7`G-$+j<=;|2nvCM;&59WH zD%X3~GFEpy#f;4t9wF(irt0ECx1g$ZTVM(uUyQxTYi#UG{>EJEV(o96w*#pP_|w!! z{J-cmlcQK=q0ediDh?tifXtuE(GDf8yx!n!UA5__OOZ^>&`($q!6Txq&p*3`ce6E( zClW(JxvTycM|qF-@IEJkAvxwdDIiRtPx8K}c|S|WHF$YO-uQCP-Sc$$z-&BUW#FNb zGO-&`qVL~tf8pm!rJ6LO;}hwqUtt#y_n^(5;v^f}PxO^uxr-w3e@U?&nU5E9!z+Vt zrL*v)H8b$y(gV*JQV8yPj-4`_6Km37?+3Gxi@mp@^!nBDlu8pp_JwC??kJgo>3P16 zp4}LdKl6^cP)JOF02TAhr#f~S^+tRlub%`cWtJRAH?}4p1U>^V8M;wrq)68Wp6vW?CunGXM`%+>Z+Ayx=t)VuYH@&O{w#lzh{ zMz!SzzGP_iRh=PrJ~QC!%e3FU8b4O`ZQ~>7{$RNLYP3fEE&4<$p>iW0R&$&9_O!z_ zJLCbp>(}_TB2G$r)7N+Y64BunyIHAuOTc%(yVq%jXkayXRDk3=&V6p)ub>n%l{8SV zC|n-mq0%%g*=D4=XmF}0cA`BDcun*TUnw7~mKOzP0NpKhUUOO>Ko@hX)K2OGAB zRAM1JOYUY;*#d^wF?*F?i`%_a<&ul-`D^an(*jqVS&&oz$aoE2jx67-G?GliUUKJ} z?S+#|Ptl13vY=!3rM=ADJO>J)rEZ6;g|x1n|i|;`RVoQujeYGby9M# zr|84{*{2Rx=dWV82P*}16ckQHTXXV0?spSz&mDdwFAEwOu0g5ysijVHdcMs=cOvu# zw7sCTg;xzj6cN@r--)eU1TaxexG*`E02610=h7^7R<0cGHrd#(?KX{=62 zz5guBFRdM^CV#sf_sk6WKmZHrWz{I6R2LpUR!G{q=C#80$dM8|KEC!qu%A>H4uk}o z3VmLh>oVGLiuwW`xx^+%>KEzGO_D~(R@GCwqWKOplI%hS8wXmW4~krPHpUq(XB;We z(d*j>Bav-~g4x^W%eVLhb&+TmX6yXHlT(-D9^#~+Fu$#-md#|Z&xh-hIk7)kDppbq zdz2NoYq2medMmi);uti#zkPdZkkU?gJsH}uoMN1sq&2g9#>08SmOiio%9S4$N}5pK z!>J#x8qS>I{_XEw!vNX_jq8x4ec8RSsN#@>yM2!7OtRU4sy`LK4{zQZi!9-T3Gs`n zW7T*0$stV(dg4o%f}Jb%%`{9!Pt16HyBo=s#g-r2A{neM^?1~ZU+Wf=Qwv)W8jpXl zU_&9KAzj7$2 zP16a*6g6}~dSxf1f@;#$j(*7{eBiyrdNtFMh?XBji%uG{NIwgw{SAVSN6t_j`})5PO(sz3Q>GHfplLC68GpTg2l4T110 zP@_!N%)X!N>a@VgiCB%OAb>%_(q%j3=6_#MkH zE5;h2jjy(IN*ywBIchX^nM)ywv27rNv(4djbm-l1JhWX2X}t{adtfg@nVx^Kj~(r0 z^CZZLEAPNT8p{j+z}5Tj&R?D*G2yg!q+7IGU(8*xj%Xk?+OMD>aO`JEmkhv6@=cM6 z?!LYT*EIeH0keACm$N}#x+n&F(iTxYAMvBc(cWY7bHU+MbnHSh@=w3BfzZy%s#_GM(5-Ba-a+brZx2J7cXq z6$ksWE=N7a>R+oqzKo3r+BsmbQ3=WofSG@0zi?F$WW&pQnrZ?<@roKw%MJGh?(@6y z{Gc^Ros~keAOPaXRj+8SD0&F*fNQa8c?7%7c%s4Lu@mJFD-yk}9wYnD%inlqNFS_A9v=g*Pe>Z7=v4p^xMM*7P%G|Y5>Iy5g z&gacyOI%3rgaw?=r`X1|66Vd{ox0_tmhMhNPQ*pIfhpET@oZzx=Tdbwd$QwFW$DeD zjhPf;MsOWkJ5#|5y}^Dnnot^xOGbf|#PO|~RoKlX3h$m1{vEY5A@4s(BdSx1=Bs~^ z{oUwar`fN-(mK#JYjvYVHQ`Y!hRhJ z05OWkCR!-43EB%)Xgimo+hH!A^Ad%;6r?QVd{#4@td84t6j!IxyyIW{9nI79ojJO6E2jXUi*fiL;;#G{F` z;xDhRxk!7LuOIc@@`!M~3uhZQ5L-DeZZ@WrKdf6g5v*k*ra)|L3$8qPR>1c^->#dOZqXYW@AGS_N9yvn@!7UFz-@Tl$!YaKjNBE~PjWLO#t zF@F-?p`oi{RwFRQR)Fy)p9)wHJ!O*f6_? zq_7|_OQ7LEFdf*jOgE9#wN*2PJX@v8sk+J%EX=#6;b$&JC?xkjC>t=vzk2Z?@Oc{J z-Jpg>s5F<8B#(E_>t)bhM7f1$WA# z|NBe2{Px+u4Z?^G7nQWU`b7t-2#kOrLgI$3EQ4+R>nj7aKURo_I**-3oG)MQkM|#J z>$==O*=@64`Ev8jvQo07Q0B#5)TItDMC(#+7iijcoM+nBg)N>bD_?CVUmF5hh{;DG zG4Z?XWHbBC(WbPgl29HpjN_!R$1DlF2cW>} zaW)zQv{Q8-Jpe5QbMXYF^tmQPq(DaCIyghli zYM#w_=A@iCc)w`S9l6Wj|KID^r~6EV2OE|QMgl+2&-X^I5Tt$Yn@y{s7yQFq;P|V; zV@R2<1JfFaxa~48tiigIh5tmz5AXjbkoZvSZG;uY4KTUy@}cY3LbGAHgY5}~?#9^q z3{4a#al7(&BWQV*J?huB$m&^Mxn2;#C5gf0EZB zcaMwHv?YjlF#JXu1SSwaT-5CHEWP;XH9~(z>(~dTd^5Uuae5&Nhq`25N>N6KGZ*arJRV(@_K1x)u5w8aX?P58In7ay?mB2WMWD_{_WIosTc~Rz7Ku8 zxTdT=2)j=S7+P4iQQz$|)|?c$y{<`jzYAroUX@)8)-(4J6ia!MHiqa=HI* zXYISH{J_v~*t~(iKT5Rh+b&2h!MKltEKDQ3lI50Tx^rt>jB1tQb@;a*)lKYD9UoOh zn~G;ByX0mEF3xt!-MMW!!E|(Vc~$*$55wk{sy5@1$*VX9v}Vss37=Jdi~9@`Z~H&@ zP<5wF1+Cnh2x%GNWJ1zDJ#+i#|2_Cmzb{Wx?$iz&FU;qz)h(2JwZ00!q--qw%;eXo z#aWW65-eqz;Ti)#0bYJ^L@hT=#F&YVLBhABf(fAMbg4{lNbcEYGt=bG zo2qarft_s39$ zKY1(EoP2)$R(YINCG*$P$hsG!=;ONneWk_Uv-yg0%+pj?oFN}6hR&yJ`k6Y7DPj+W zj(>|O$OyK%@4q~)(N&b-pQ>JCWxtLhe~5B*sX94b!$g$XroP@jI$$xx`t{`vQr?@N zY5L}j=JI?g*#-ZD-bu9_Q8hhXTtYJo0R3BHz(Q}XKM+S__xL8WOZd_q@E(WFcgRe_2j~&%_kG52Yd3X zgcscDNE5#7*@-c{eRgOrRd*xNLNX zBKE(hj5br=sD9Djs8%nyu4FF#g6^*CzZ-k7v>$Mf?S7Q^j5{H_bcqKW$5lnm&|;g# zoI)&;@ji6UK{ool_-5UCHQE;y`_h(cwu&M7+6v8l(h^UjIa7u@I%DY~T$U447G<-T zqecJxm=}jSYsVSUw*KvpR+$%BDuO)ZecX zrk+&JRZ-ospbAw@>op}D1?7!~t7Y~X`EjAThlC_VZ82qr6-9@UpcrGLR3*P4t`1ry z8VCrJ_K;iuJ^bh-qT2;*t7&$>e~72le;@oFgytWTEu1rwpUfh-^lPJeiyWrW>B9VLL|3 zckp~8H8ZIu04eGXl860?%le5l1}vG!HB|*WuuqnL0ivXzt_B0C1BA>y8(Yu-4;5q-VEZ0UAOi#%r#!Y z1C81f&kEAN687X&$Q>PTG4loN|KshZHKk`9m`u2DwW@6nOa^aADj*Lyi5-%ufG{a{ ziTL0A#`gN38HPyyZML^p?krtbWGQb}rvH56tJstK{0BWzkSZ^(%j{1$2Su#yTvk>8 z+3xWSof+oCcel0NZCavOX)caYSy^ir+y=OQ=$7_Ou;&T~UYJ};17T3wzwnutqERzv z#$fD&5dbs1aaG14B^s>kV{Vr^OjnQZ5J&3&X(Ao*)cSRtzWIBs;d>9JzTLzM=ix%bc_X`lO9?3*!JB$n8u=b*V2BC2;jv0!j|_W3?Lrfj6wy>znQ?V_1&%UJ}Z zRqmV{mS6eo&nHiWMQgH2l$8~TFqD;{O3@lUc#hnOR?|9l<4456)q~RD`)|RjO}Q;G zB!2PM&@k)S6QQg0Xol5Kc$5UGt*mquWW|>cL zJ55V>m22_LcE2lS&S7=)XtN_)PQb|0V8__!kBvWBPU=K(USA~`9}Zrw1OYMyrH)Ga zuN32jq&7-pZnYJvnRsBO8;*tQ@{dt=fOcWJ7A5mOcbk^?Tfr+89a)g2VJ>BfL^neN z9bRj$K!kci03f`;OFWk>)M1NK_X&PR$L3t|)h-|tJ#$3nM-Bm`cRrIr1y=9NUs~9q zpoavb3g{?QQcKP8^3|>KqD36iM~r^Vo9iko@1E7d)luV_U$MClo^n7IUe6P&H#wUL zA165Bmpj%H!;kw~?0?e^DfzZdiyfRr%J#eO=z6-GNHso^qjdy8gZ5F$8cKn#Sj@v` zMAX*b#k@8&ZQr2PgIe>q8*;s9&aZy%FAI)~ z1Z_8L6%KG$(H|dH+Ch{e`RfOPZ|+f2hxKgd5HNr{&OIAHr%z)&H=6-k&DaQr zMEdq9udXp(1+M$toam{AYr*k-Hz9EQd0&?V>8X(d}c0j=vm0fEbbh9Ly3d!s_)HA(}#>- zaVjcPPaMXSEH$hN!HT3X{~&AVl-d~uG95Q>5lSc;)l$E^5{T%itH{l*I$Y1GgL~ur zeXhHq?~T#EDMbB?~hnA@9Y1;E#5_o zxP?ftl!rfKNmKU*@{->lB(?1yY|A4(8eq}b-SF)h zuHXpJJ+x~&7TAIR;A97Z|G@g*7tQdXA(M1a5YusdJrtdL9-dYl1W|&klnFLpMTGqyJuIctkmAoN!CO2V?*tS`-MrgirDv9a-wU1B_M zU4q;-0nCZ6@jmP_{bR_0O8Y1_wks5qGpxjThC5W2d3{eXaan8AjmBoKTr2aS!m^z$ z*ViLl7{SE*l&3wnqVwlyN;}3~nk~=sgytxNc;1o5Ew59qa0b75V{)2=h{v?cddVWz zPo-~f1EXhe@Kk;%yU`gyVyN40)Nf8%GWS!ubaEF9bS`!KI_*vB_9(lCLUEF4Ac%@Y z2hH4Zv$OZM;+$3=r_yT{mFw|ooX&i|9;)D)I#3>PIm$OittdWE)EYWs)sQTqV|pkR z${)dyg?7sIks+}~>F_5?!IZG8z>~1=-f^Ss%Eyb%T!SdE@o{(kE`sO z)NeGadwijhdMwZJ!U(R_O2auSAVI5I91K?vWzCf8(F%B+n2{zG6aj~-fa;#=c%Ya- z32SCg4FfhXkyWL-c@ySn;SC~54DmY+o6&tg6l_B#tPeIG91WosxUnEI2Q6r30bIJM zWVx+HixN!vgTT|-h@TS=;HM4Ei&bXdTjfy%gZ5annI^h+?+_&IB2H{2@6-EB+2j&f z&aO}sM#REakEYE#Potrs+s1Q?UKi9-U7yWY0t{bxa(V7Wu@_2LQ~Us585?NbHx7&0 zL^60$v^=d{N{@K6v)dCw>`bmL-8`qx*)V^7kUke~-(K*_l+}tR_xcQ!2J(IC(9mv0 zQYGxUV`O8YlHqAQKFEWCT_x@^XtjWtIxxjT>+Z`Gv%1^wA5s?LKP>v*AWws;B;a^70T^3zOxk)~Y|d-_b7nBUwRznNFyIlWfy zlYHDP#_E7a(z|o%G>?jgehXrFf$;%QcL>LjP*2IuEvv0tI7I235-#swcH`SZvI*|S zqCh$P-18{j91Bhoi!(#iMuAlTWI6@blh2b7D=uJZE_FSAR=ha#M*OpP%E_~#Vte&X*8@~2DNhbYaKA7{ zJv={D^anNhZXjC2GYx7=S7JMw+PJ@1mLJ^WpB|U@q7%`GO0|e?31fT20*2I{`?a{D zVywjh`wD3D)YX!Vnu-m{19FkCQSFdL4j~Ni(jhsy_+oyVefQN)b%K`(Va5%i7$t7y zRJvB@b~;d*^GT+z~piFjNmT8o1AsF!}%f-nc{S$ za5(@kSX5u}FPsFRDn)x}H`Vzfj4X~_>f1%#^(f;3u=)ZXUWD|^Aq-Fw8T?1LpO?@E zZ=#U?j*Bp|Sht=2&$VacWj04-bFakMq)1Ib&tOAeXBkFkUG*_g0lYUmxZZk_N0q-q9;Dy8HawYjL8on3fZ9 zr#_A%u5IlzJZ*#O!6zp|ubsWahJ!GN${lJ$SY(w-bp+}boKb+`{&jHL@W+6C5_CPp zXe%>{o|%``o2Ssuv9KT=B%ZZfs+?9HF29af0g}wSK5_+dIP6F;GOGS+tAe2mJO4`5 z=bm0IOFg_Al77EAB`~BYkNJiaRB+u3NMymgzA)ldddP;CzNU{*!%lpxfF8wXG)Pv- zU~{|pjBD<~pN;gM9brEHCCz5a_|TJ+8_uiS(K{z1_Cf2dfL;xC$A!G-3$)5Vi(2)` zT-d7$brF5Q8vrjVkSjP&93bDZ-cE6=T!{#R6drHDtKNmgv`jS3WT>kZ3zoifacIf8 zD7?mpD7SoE&tI*$5b*IHVnyHu_~CW+AlWa6l(Ki8xk_M7V;%NC7Cu@awkRRuLjCo^ zh`c5ruF52qC)F>Ftbb2BLJO7N^YF8^%vtkz(e&`f0Od_)YU3>Gm?YF1BbY;Mr_ zXWa)tO;f*IG!9KKe$fz-Xo4e zBCYDJ^1WxgTT&i5?-VMEz0a;t>tw~l%TA7B!s!0Ex1l?t2`^IKkP9;KgQT<0+p5gN zuG0=sOMe;W;aV&v+`kjtGmpTQkK`N~Wse(+NJhU_`#^s*;3pRylEf&JP5kf5S?Up^ z71Ep>j(u_8g&QvCJNlx#S7OS_po(ns(8=`aPQ=H0u&RA(F_Jt~l`)v2RCls2_WKSo zO|(w7-Y-L~lkKXZUY_0wgcMk?Rn!0@# z-897&HP7ds@6zsJt{mMlqYiYSaNli|(W4ld%Wq?eKMdK_{E)>1}LF(3@)GlhiRYL)fldh?9# z4}ZTZDI?uK)m1Z+=C93v^}vp*;WaW%-?Tjw*z7rZwSctv>r52ElLj{0XV8#Txu;( zxAk$B8d0mrWd~=keY%_L|IX?lcCDMBU}GEJ z4U{A(4^8{>_U=c*SC1tPrk7lR?hmevUn=4;UbYEapR9DJ`R+7vf0#PEW?4Jy3B~g3 zodxmlYp;nSg|>V3@-#WHb@J7YaC1(Ts$Uq575jUMB*l|V2Dfd~j=!m{^-3p_oT~~Q zLERb4XunZ^b^u8?WQQ#*Tk7sGpiKW$e3Sf{+lz2}OJq89qU5xfuKV@?R+(TlN-tlY zUFmpg=LGu;zsu}oNNlm2G}24NlL{5CS>-IImvy|hnY4paVx29cq3RY2udIs9i|q5H z+IfSUc%Q$2uS(1uyuLc6fqvWZ@78yl*9#f~9isiERCySBV6A$yr?}=`w=fo7>g(s} zanpOtW=iI^tgz`eBdihazx!-shU<~{ee!4dq6hdWQ}b1c)~5ns%uPP;z!CJE-nWbF zs4sr^fwLZCOV3j)%5`$VbK;z0Vpz&s=;rInOMcu22QwQi?}1wi3J&>nn7_-6_u4;2^9a_`}km>U~+XwXxr zs3X%t?lD>Ay53Nk#;9`N@g=OXhU8`l`e(-$i84gQ5M|;?5Rb9EfXiSt4}V>SzV zwlYcp45neN1_DhHX)+v@vd;aww~PeCOkD_qx(0j;C^$Keug6RZA*AhH_JZ zy|e97eR$Z)&1+$ZI3I22!nbFDwo1G4r#=y{rB~wJ1B4#DVyc0 z0ihq%@O=AZ+JsMoPVNq5fn;l8>Rivv$&FokvXAYbbN3)B*Iuge;(GI2c$8S=5WH?{ zR6^*w`;I7vG_AAgW`cAtXy;z=d%kQPD4$;Vw6nV%YAh-FO)M`hVF=u?Hd<$^Okd}) z9gJs?IedXUe(tewT%nK(s~NG)p!KFIgb{9C+c{GLcL*_41SSNs{up^^NN2;D_5zyCAV}?2g8)lSn=hm7{p{GSn6NoaukEA8Q!dlp+aZ#qeIzr~XCJ zkd!^H*kU$E5jiOSp>^3c1V^IgaQs$X^0r|sf+sr{lUlIk;wTQmwj~k|ru=T2Of>93 zsl{i~{%lWg2%f(kMWxmXOg@N1 z6^>3u%M3qc=X?;dM@dyUxWPVdFN%eYhcdf=?!1t%UT|rPGG2B_NTYi^%w;KHQc7_5 zP5C|)r?aY%wK6IHp&BX26U}<|O~Lprs9;gRpPw_l`~WZ(kZ-s^(hFq~6&QFvA9}e*5yt++We29xW{?4G!9m0>HBn zv1G-+JSLXB2ngu&U|RUDHvQ4BWu==qrfW&7Cv+A@xW-HU%dE5|9@`dpsSQwlPW(;*J-9;~GoF{u*0O+beCf=sUN)DGn{6aKG11*`z=viuP#0|6>X?%T^Jxd->tG8PCS2u=y~?;GfPN1STkiK^VpjYB^%7^Xp;TmC z@HI+=Y9Ed-C9-jB1N>4+V%NQr|x+q#E z0XF(oK>4SA^2D~_IUW<@zHFW4T@}exlXfN__o}%8LTZ>UNRxjZGi+79wBMDSs=%u? zGAF1qQxg|oHEI7QI}(Pmg)$&NrTFFqRuD6eEvb~-`3UQD| zfW|At8;~S6|Kuw|SbM3LZuE_p`b=LYp#0r1>E`j0`+%T9t$+KbawTQ0=hDGNyUio7 zLaoFz>m@}jtmC8k{W}2tyYg+dbjlj{(`Gb1$WQp!QX(&0;3!$cra;k#G&w`l8Ry5h z9K?pugDf)MGJa9wXox)h_c;|kPV`SVEhZ!k|0d(R-*|e>blIU%McGrsVQ{ov@K-;Q z(?{b*u90jLKp{$1w{!dI>G7#U+mDWo8{}X8HVf#UottYDZdNhOj)QZnZgHW)Z7kBf zT`R0<^XE>@w)OJ2@wa!qMt5&Sd)Sb1CIG^}KFpYp|H^L6Dg#ye9p^ zJNxPU+H%XC2erz(D1EwJjz*9wx6 z$x$xYJ)DkZ7ry_o4=k>2`CD|IL{gugphZke*c7r{{OsD>jyvFkB8bz(6_tl8QD&ew zBeT?czK7!Ktyja9;m68ryvw$!psl5l1}kvbz;%mcL7<5lTYwKdfE)#4k9jtS_507A zav{f0_c&&I%)ef)6HI;hH2aBg%W55xW2jPudchBC6Bbb3YUniar*Qd;X%8Uvys`D< zbKmdtklK!W&l~RO;m*w^Sa0P|EW-pBMbwo$E_ZA`ga7~@{-z*0dU&QMQbyowvu}wh z@#_V$Mxcp;O`f2o4*v#R61;y41EL)CzeztmGY0k0+@Txj8-*{=2Wrap_y8)z^78mH zf`xbm;Uu5p8|BXrUxW`ru&SPn;Eme-SErlYhRs(MG{=EJP&^l-W51(ZR|i@wh;+#n zNG?z)QMYO}C;+B1-=0h@(Ejhau#lA(7QVEHeFs!H>_- zY>w4a_BwFlin`T@0&8FX2>)?yH(@ft38;)ADXp!0G7*fCmaDEfyTd0uOfi8tfvI4> z(jNJ*`BWzG+{oBw@X=(K!ICE4YI@rYVw8QMc zXUCeIPYb&Bh!U|o4N@hfsKjmW2;z){^}mCnQowL2Y%VT8|3|O7bLT!Bx?4(D@{(`U zUKpf&oI_`e=1h(t)6_xH)9O$B6xZ1Mz6AcPsQ7d9bE~fJ$Il^>UffIPceGA+ecch8 z=d3}JqEkB$nwIbu_P99PHthz4Yn~`XxyC$G4Z9LLpz#n}>j0mp%!B`E+wZo3gv@x0 z*lsnx_xPJK6U<#x{?}!EKArX1n^4ucrLSMWa4Dpuq#<3B;o`i{>Ne2@JR%hMolrmI zKYGnh46d5m$B7W823q;NgP6Y54l7;PfaelJxBf$^o4iC-@3wCY=?k`UkoR4VQ`g*e zO?Gj2o#xLo@#NEx>;T1g@R=>qa*t?o;uE2;KT_Qq0ztboA#M3*Abt2&reMLQT_ieH z)#^yxQOy!;$rDG@cKO?4$}&ggAq@Vs&;ED4-KWOy6cm2R&Z~4V7Zm#0s@x0rDT3+J z|Dh_Chex40FCF!;`{*qkNffaC1iycR?M>r!p|<*HXJ?L%kdz3WL_4j)AnPmvM!{K? z|1=;Q+2G7YrEQ}$EEmuD2~kA0coW;>-40ZF;+cJOdsUCs?7x7{8`LYGCYIl|jzc=z zLsa5O(D3a;o(Tj{B<>U^;@tzZzC8EcZfTH<-Aa5>RxyK&F#|FT&G-uj&V3$5rRKUL z^5&KgJzqMu9~hjqeNTI)9O^XzhV;YObpYT&{-?beJOF_=r*9XSFQWD+Fc>i;FjTZu zEXMBEUEIZ^L&$8U1lE4pkgV;fl9N&C&hz2r-!L za()oNe zM3YJL9CzoNDB#ynLNxMqvGrWJ2-BrH+ixS_fO2g+&VYQxamg~n-J}+yh8b|j12DEk zMstCj(TUr=it>z!i%trDC zoLk;+YLG+@v@#>VlMuwi5D98yw!iAjznGXAg9~z|UYqi8z0` z1UmhFB&rXfMq+qn9aLDj4d6mtT3#N=l&3jx6$!e>VE|)UYtGhkK2d+QbzY2AjS=+_ zgz>C;L)pq|?DsJ7se=d9YaNNgm69{$xe%NC0UODxh6~XmbgY!$cz?F1g#H@S91E|- zNR(F3%Z*sk|FN)ZoFFaDH{GiMH& zoa!}W-F`(KJh7Z-Pj+H*FGvk9G~k0ztmE{|*&~z@rWx^q!o8a?4i3GNnU(G z6D(yieEX^hAzLRD|DPd!o~4ajdfVCMJljU+#w;Cj8f`)`>i3!LOxbA88j#x}mnMLa z*|vkD{GnlMutxGe3_WgsUmE4n($+SzKrD+plq6DM8c{J-EzsN+wAhz?d=U)ZPp~_0 zx7Ko-go(M*gOx9jo&*EK?CI37%0N)R3ut>zEYF>WJVOSImoF{o&Yg@V87>$bBB_nb zgL3t)7v+)jIWvF5wr_21?az1_j~!NOITZ&Jp-~73>5l}A-n~`sV6G!m|w>EckKoQ1T;4{7o^#*u)bDOYR*>9SsBVvO<(3E z4?)MmQiUnDRo2y#`^MgB3?@?=C0WzLsmwAM|)Zn=9AJod}oLfhz16^NK##x?Kvi1mELz!@zuB^=T960xzdf$80A z2Rb!_dhXXEL`43KeG^uG%@T!~mT(?mYx{n}{ABwq0tYN2Z6eaEE9E*NZhem{Y!dUc zG_?f4DF;QNd+A{gAvGkL%h5baRORxFoTv_{^?LR!<@sZ}=Wo%bEEO*FOKlsuZQ-%@ z|8auVo2qtNp0GkJ!l%j9u67hYp0qmYYLEwf~6?F zlA!FGW1W{4zek^D9t-OCl8-trmo0RcYTH<2Xh;U7u#^P7S2bNQM$kY|2f=8H?{919 z>=R$@9UnhQK>e1+GbN56u$^w9boXxaB?ABAWf^@ugqV;pYr9X*;?H()(4CJ|+gL$# zOm?{$vc!&>B-<&?W=qWNzGaQsLnim3c(y`OjFn|M^B2pcjWXfCTG??%VsJQ*(S7PeiRop+WB@r*U{c(MTu~g%ia@2 z9?(2t8?B5ona@nc_8^V7)O_`69G|Hfh{+85V@apoog+E4c>_Nq(>jd;QVL7Ah7i&? zk1+3mmlMiFb7@Ck^S|(kK`7D7oA!XP`c>}naTM~T<&1?zRy6-}7ul>x2NR5mHO90Q3&GxBa)6w3&o32d2E*iDV4XkB3gdBLMU~7xe#k zIHbNSgkF2~$n(25!uNv^BArNIItOByNHBgkME7w2bg2h*6oRCY(lD;#e^34a^2t9q z7*b6^8+}jgaUI7mGGE!$fk0XWI3I6SEbp9p7)3VvL|~1W!BGfL9jjhm$g6SHVNY)x z>l7?G6paYr(e&vuTBxbmf4JWDe?M(G4a=KNB^PipWVNZg|*P#+C$lfQk^ zG>dTB%)+H6JQht0@nR6WzWw#9ft01`F4i~WYtRtn6r~4^Y;$O`QV*K<%H&*$jE|NX z@b8dl*3Cj(7pmYBE&x$i%^mx1)E};o@aWZh7oG1fb)`y&QM>OnU`={mUm_#TxDXe6 zZ*@O2B&v{+860sv9mz9bk301z9_;^a3HwIvpiTGc(qh{RqDCMkCL!5cRB9?K_Lrk_ zbq>;2>Zav{$$$i&(MP^+m)Falfdk?de(}EPU$!{U$>& zLtz^n(3ehcciW&R%d_ zu`#}agGt6X3|37_S~>!%B6oLT%kuc^tMjl2iW%QTtcu5aJ7|COKk3}|vyyNVixVK} zKiDZT`~C+QXN3`B>v~d0M@?b$^amScU>GXrST5l}o^^DEs1*te z%66rBd`0H?*=SS%16@JMdgNOtRXOi*iPjq)9>tEqd%q_8OWq(NRiel;Og)PS&rIVV zR4k5oNOQkz!D#-b?D!ZV#*`tY68X}3I-i7VYtn72vPb`mOU-hUUAr)FH~^KX2mZ=VvFMTsoStpksatjk`@c`^Bz)=}M8Z|%u&z>6 zRAe%eN7c~K@Y(RywI}Hdf7_@pD1CircPjIY3R1?$OV74LLw80ETNM!~xnhU%$N8n| zb3G#*Vl|ZBdLw$mn4r7z!4fUq8;9o3s+8N=rUZr@@I)Wxv`8l~kq6J`>cSbCEEBbG-vwA$L&eGCH1O zvJO`@e=VY{zsLwDK?El%3eqQb2f0w)cSuOupce1=_br4e$IJbGh#%hIH841E zLYM8RusPelx;m@&>h5lByRJ=<)*r}WNxwaXs9isbVjTTM@cdgKtPH$1);2cWHN)>q z)igCDVq(;Wqwl4>e$k+5wOZ{JM(yh~Gc=P0V8X${dH(fZnF?D;#8g$O=M};$%SQK5w~bR{Ty#MBKQr5%Ewp7JwIC}C$-8f zCR+d0loonJlw7nl%X5@7m(x(1>*d3>p`De~*+q*>)4GaMX08$4E;n=2Uqu;#-fzoWz@NmeK%F~cx39(X6QB} zu{MI>%swa4^ISgVwKww*@eTR+3>4nC*Wf%B5GWtzlDU#_naD*HO6lEa*UXrC_0ksu z=V1RpyY4m_*|Ey;gw=X=6slB6yV#+ufh!#%>6)0O>YU_0Bb%>aw}Z)iAG)2Q`XdGS zxT`Gt=&$|TndonLo=PGvU*}Mwk*7U$Ex9`UjJwlDb9O5wU%R?op#iR*Yn@^ybc_$R zwY$4dgqFS}C5C4HVz#K6AX4*t6F8WwWDsuHYr&G?dXZYK_i*=B}3oY@a%e1aLEcj|f~GGsEj zLZx`#A8;|-s}S%gUTDWMd+Y1#*Bno~9jpzp%@iUt6t}9k_avt?GYE_}`Wa8wxh@?e z@JM3sjfI4T)&(K*F~){fcYj56(ub{tSxx6Avu31eH&F1eY*UXe zT1Spce$P?;KZ~|;Sc;=&jW@+_cI|djBXpV7k5yqKWU=j|?|`!GJ}+-c@4}BCKQ4CL zX#RcczfZH@pF6PMjq6j2i?b~d~oRQ=2C$09rde>df&Ti;7d z`EE&0ipsor(YV$v)BlO(24u%v9-mpr=TqWkm_MRC-`Fw!qUEA(%8+M4) z^~KD|?iu5}fgw)*d1mreW$|cTt>+p^h?H2IQ}Z!>MWiE+7nawOL!95RmZph_Umn%G zb*Fyk%TAY?hJ~W7eE98;6qau3{rBI^WcNLpA8lf1EA-D{z_;LSh%q1O*~Xf^?4`9_ zW|%eDY#jWO1qB&gWZ8Qar99p&5zQ6PyTf|*eCsNt3r6vDI zKD%&(W`F%ums^0_SfN~Uuq0poZLo{ewcx2k$_F!_^Zz03Eu*U3zVOkF2uP!Z(jo$q zN=b(jDk-2KB_Q41sS?r#DJe*INOwwiNq2Ymo%{Um|9-sp!#!g-#yK9?`+e71bIxZz z^OU66}D=CAzjopf#OK{Pxh(yrkE~hZcd=Dem9& zeg3y8jtH;^ovZWd>pN6ba!DF$=MPaX;&gwR)AP!$=6p*aDLHv{APs*cSCcvPi8yz}PpsRw&&)&d$Q2g) zM{^j1C&*E>4L-EAJR>*Wn2Kr&5`Q1+6t1^U_>TXoxxq)<7}F20o@aWc^3#tW*BR&J zmxVQhSr{lNX9C`~4xO{FJ88^V&7!BBh2J~8rwibu=R+ry(Obl)@g~sE?5y|52+Qo#O{CCU?CCxYRnVPB4th>{Dg0|vD`BU!r- zT%3-zEtTexv#Yv|(vQaqwNc#mFnRgcDnFs3&aUSjw$as%7R)T6yFT95zuG!Q$Y4f4 z$Ic^p7p1lkxH>JTAyR)}KCnvF8~6J9_5Un6`uiU*i9c|e{Z(bmHmik6x3<1X*H>Tp zCFW)0<+cbKb*n;$2WtjImYbf@6qC*s4m}O~+h}}K&KOBaGiUar#jk36hKSWl(UsPT ze9iAkhP40E%?ZIV<-%bwO>-M5AJ}W`7`tdScp5h*j(bj)GH3#8kfi+`5y14AlkjMx z&(e@L7LoYFl1I=?2#bY!gQSxOwYL6W=g-e0czaU?k?giXI4EO`@erf`kAsRvF&kaLc2Q#j${C~ag!%t{kn$iL z0jZVPXY~3Eb2MmSGjf$pT(zzHDh=$`l6p*3{@PKhDas8FXtBQtxRO!>6 ztK%KB?G6lT;TOji^m=+L9rmk9QO-_Wo+(#8waFrc>atDaQ_Ly_l3>`*45f_wu+U8`e`Y z@@})4L(RtpRe?O$r#-qd(KqbZ8=PC^$6PjEu*k4R4I7Yo;CYOy{tHjP0#E<%tR%%p zCD7F*8Hr9y0i7Nk9o=;VBWtyW7`YgP64Mo^1*H|WuOj{| zsr@@C*0COGK3Q?QN5K_kfijtHtVPJonRRDmf9zM!z3Ty|RPz|$(&}UP=7;cE6FD}j z*t{GZ-$zH^iF#t}bVhUj{{8!2xba}Rg0uI7O#g)iPvzCR{rfe_^~JlE@0kX&c~u4a zQXKAH#9b&z%^J)r&+%O&IBYpE1<24vYh5k_V!x^(fg$$dcZ9>%#8~=zsmkL^6O8M4 zj3*2XX@bvh55XYsk5?*k&wBa)mCM!-wABo*9T)FEBe{S+`q)A+9FJ=|nQ|sl# zCNJ0+Bw&eyAMPOGmDCan(cAvax1N?OY&sUJ|tK+G*jJtQZH%xY(9pm?^{q+oh<$e>yQH%O$ zpytco(Qd1!rO|c6m_%bEH&wla%5K{*cFy~mPA$WGBOfUK#F?nr@xpgy7TA#9d|(^v zzxVwIkV6-jNk@;1`wv@sI#39I1YAK_MKk?J zC?_$6z7{8TysGlpGel6me<=_tQ6>;RH4|DH9v{~oYUuf}myRHX=qltY<%%Wge+Ev6 z5-a5TlwY%rI^yo!d-I8tW67@S!7N=_^ShoJluWtj$Kg47`FhuPd~f2@YvEzBJ>>>@`v1$GUAy>y^OJETN?(p9I1m6rTf!(QF4EU`-}p z2cC&UY-rsO^;4s?`eV&{XbMkHaGcb6p0sc(qVWFe1oh}Dce*6IHrSxT!l{B}>audb zU(Rj%IOXcaAs>lr_8Z;u2)E#G)1f!Doswq-VW^y9juw1K88vKn`y*|I_atmLQ@FIh zKg$vonJ}ZY9wwez&ceLr$^!O@53$*fS}8 zOnzicEC$CK6%)feS(~JBF}+k9Nq8XmTz%QYiGN(zT+?c7ek8Q$uqP+VNaj`s>2par zbU$4@+xes5^AO$oEwqiYVpPbH8_v9EjW(U8?Xln^Q!>vNIeJguG(N`W$mO)^L!^AaC5U!KjNB5;jtRtC8#epRrdNM-cty6Xpywh*Fe=5l~^ETha z2t^)S?fiSza?KlGKaIDftk$-aF4O&T=|h9WKc`Y1)ja)oQN*!c$fYOFkz(+gZw*Z| z?1}gG^(EUBv0EX403&(6K9uDb8jA0Fyv4fxq}g3c`tu5Q1fqlJ4D{t}rp+w2^R zFL)awYNT1jouQf`bEVJ0*!bf^;t97ft^kd3wEt|$E1Et-H^|Ho@>{5SLV$5&NokqIqg-^ zcL`65mxxO@Vvztuaj}p{!xG&DZLrpCtpDJlBVEo@TsoP<{wgdS7w!NpN(+TWX#&4u#0?Hh*Zu77t( zF_K)>5O}qc3(9%fiu&j2LoU;hiyckI5uQE4l0=w{bZ0&Ip52CiBB(Q;x2RuF|MAEu zmPLAX)3+Qb#YIK5yu71E3Bkd*-QC^3m%!*7>@BoGQm12S+0*1t2n+Yi-ZZ*2r?8{j z7yIr^j|j1)%uwjoQ`;&jUC+lGEX8OcSC^N2+Z&Y?_}EI=l3Y|DeO4z!dk^ymrYVPi znx395jJTCui;30_j`vE6ZC5`-`gXpo@0i-JE|x{E>zkUq;qAY|S%vU&axx#v%+I0_ zG@*vqgIW9FPcRL)K77z;AS=zAUB74&Dr?GyxqHg&beUREKEsmj7 z(Q?*oQzO?J8)<6_;j!qFZ&+WwIwMD@-vg}>&>cO-z_Ey9a2qr%|BEus4 z9T)b^JGv!Eaw~X2RS16bMmg#urgC7CH9Xnbch<53I%NoZTV@aE?n^$s_`1+ZB)BQa zE??BT8}ee8qmYxA$o3Y7G=>Zpec^LIIKjI-$luQi!nusAT`_u>kLXSq@jBFs3Nr2p zG;jHqY*SE_-`v-L%gMQCf1S%$;QLgoSf@drF#k_}^S_CT4`dIJhROlCpcJEkdcsAV z5cWW7{S@>r(c^5%*S1imFONoTOqflW3%!yq5Y1{fI=h=f6nM;rexUTnY0UYpj2L{t z7pa$bL={#SmezjM5;DvT$j=_E*5Vgmc&k0L#=*QNZ{xxdlDhSqVWroke&nvq)#3O> z$Eg;t{XCJHEvx)Zp^tI;D2<t=rkqa-BZn zva@uOU%x_zpSRHuy^<8m9B>^rdP6VV&&~gK-h7>|6US~}R!>lhUr?-gf@Wl-*@`M% z^hss^Z)ckx@U93Pb6z6D9GMFiSk;MFu&9i&e5j0!JLlUwBU%Woj`xp$D46n0YQ`sP zUTSyR^W56QYHIJy>~(=;?&NZHTGic+8-K{{7Ww{-2=v=madOpE?(`#1mV{vja{@XN z-{IejCKr2?4$%9}V=d2|go|>AIGpZ3rucPA!3jwz@`U|`{X2c9iQFS3YVr;iPlbjL z?yt<>murfvYaA9EzC^}TEE>$j^w%nR4d3a`Zr2(ZU>&pTzUn>=6kQgLw>%XD?+)xZ z@%Ulo>;XC(y~aaYhR-f+hk9#w;ro+r!O6z@5rd6^->}$mHnNEkH*-Arn4Ob-J{WG8 z*VZ?XkUjq?A-9kn_TfLjrF_h8@^9#W+|`!{$de@FCRlZz>oGp~#ybC*AtK)7fJjy_ z#!6uQ=@h@E8A||FTjlZ|)sfa@s80skXEL1c8Cpn-_<;P~&eMIXg)biC1%2BO4VJgh z?1w5y)a9oNEj2GHUw0Hl{Flx@ClZ52rcqSV+5Pah4dwO4kagm(b(Q2k;GJK=(>3EQ z@In+55x+##&ErzFPPST6$qzUO$!@AV+3l>mW`flp5(gmRbs z?u7ZI^qY|Z*#vZ4UN!zXgL(S@ooKrIn2C=ZF)^>RPiDtPRC++q+tG>MC-sUfM*A zC4(iWf6gBa6c3azwJ5Ix>={OYe_Cwzd*3uMST(9Y2RnF6M+UaVqQ75zO7Ifveqvdl z&J#rS+CjrqL(S;o_*KyLk6n=v3~llG+gw(rUXeK}1szRL7$azi0>htZYHhr}Oz;?Q zzQ!`TPV#?2XtHK9r?alGP!|gB6iL(B7;pf^$qr0AMGi&EI&k{lWf*W=ZNA0fYPtPN zK#&ow^;rV}GF~Z8>$JQT+cCxLTEJea^N)6*_owNu{Z6>?e@D#~xi5DyF+taOW-icb zXHj8RKh+=q!i}navZea3I2$C5U4}fUJBsU(JB5c0KrD^2>B5sfCz632TVIZm*ZM}T z=0NSy3Y8>BZ?%Kt2J5DEKR>Z^O?d|2H11hQPpF&RvRa&VfpvXjck%}6U8G}q1db(I zTF&=v*1>ppu4-)7`3;27`a#p%b+wIKQ@?{Aeo*>=d5A4xn%n$hS!u&a=f7{16PA#O z4h;68_UN_bq1vGx=jMZI+)MMce`TXY!k-)`+w5Zl1e)v6QD1e)HNMde2<=W2H@%4r zvPo93IvnBgcnR+4r4~>!o0G}O_=*>bChVL1ht`1vE$_^lefEJaPbeKDt$*k4v5`iZ`2zjp7Y<@-d}{aK)42l|SR?&CI;J|(FQ!ABMqP+_eWbw$HS*vw z!0$t~+2!UzZ{CrP79nBqMLW``A4?0%N<_DH`!04II-;O-3b5Qv%<@#3Fq`aEUBeQz zL?(eDQ^CRIxOt_nl+2vWZj^2X97Rldy~xmnGrh z58AIKL_LptWY?8vntCwuC>PZBxPkeNnsDKOa136pQ?{#v(+;`f?LQRil4LZhZncK4 zm#W(b8ocPIGwU>8x!sFum}C2Kx%kk$qvGRwS%e*~y0kjbWd)_hk82bEi{#JYTi5yr zbfyH|dGaMuBSLF#uoJ9N2b5Ox0IQA`@5sH%#4kFt z#v`e&XifssjOndD0iT2(OB8LZUTs*Bp!Sx@5M3ZQ5Q3x^580lwp~>N~{`XA`@J+4nK>ch4*3O*YPss5b*325Fnh8~RZiO<`U?kc+2Q@Jwsfu9sL~t!4@1c<5UPX) z)Lwns96ub-QCr-bY$is)o7L9&C!ofmX6UGVrl}XRDz$%Mn9-pkiF`hNG4LhFtek{U zmnbYe$UCnp`#jQp;SU^v7&%^ZdneO0A2RGU=At{0IDonRtwYvgk|^M{AiGn)mbsi; z#&8|-^Ac{$T71o{bqdw*+!PHl*f5>tk8vrQe3HymdVG9*dW)Cx0MW2?EG$AYGK?ks z6f%&XAuWgJwvYQebuHmChJ!YuZQ0}IOopWVV$8|uz~_WJ2~_gBr7gVUyz>_8?{Dh_ zVgxA$026xW&K)LxBFIV_>g!SP@mF=2f*yL!)l5{NQLkB^^p!r=IKB$&l#U*B$d+ZO zm6N>Q`Ofh@s>GaZcXhYZi03nVR|}vQWto||kKZFN%FD}t4Vf(BR}g^Gf>BXP$v-d< zwQgXb=o4*bES&9Q8OC=dGPN5qf4Bwr&G-rBbI`Bi&zk?$r(d*U2-6D-#s56wUR6yq z{J4Gt+d3^amO^ZAd4naZ=@w0Zp?Qv$92XlK9uE)CDju6x&<&Df7B;-4&OS>&-{)$< z(?D`jNh?W9a+B(F<#cR98}@}e4Wf|@ud%frLz=TA;Fh|e_FnwyfXSjo0YTEj-j%^$ z+eS2SEfYn{34R-9mq!E1MJIdS9;&54xF`ZZQ5ciQ^JwTQj&b_u!jV{yP~BFU;9fl< zem;SF8l%AV3ehZ7ZiDvJyx)??63?THZ4Y2Q!YOr(Gb;LG-|m^3GTHWJt`>;}5OyH% z*q6om?^N!=`7dMW5rm>~VqaZ0-&nTbAv-A_DOkWjb8Vo)SP!1NB=EtIb~rs)!Hmt0 zV|rwQG*>U!8Y=KcwO5(bc$g@mE_dHqi`VY8?z6_X{+sxh?&cnOR(xQRQG33;5}4sH z7{n}Y{oug^5K#C&HZ?W<^y$;dMo~{tdoTsxceuWXM14A(StUO||2{8oS>3#V!$zV~ znjGZUu!m6D#iNxBx(_06uAj8t>3Xnxj^<6bE^lcQ5;|Q5QwR$SCoFX8f!xUnce!6yJYJFTG~}m&#|f%Yl9dome=|dopgk@j?ObVIXPo)iCYT(fG4-w57+ZuOFb&x zU3<^s^}77I5pV=i$+5|k_jm>@Y&bXRk)}1~Od5r&4p`l+) z3^`m^MaRU{o-X6!!VgSb>)05ny1F_#&OM}3k@?XaM&rflnc+1Bg?7Jmd6lOdeRO$r z@s3%2V&XGN{aV2@Iwj9IDKi@uixP`b^?xcdy-Do~Qq}_d4nA&-DN+>6#l{2gfLlf0 z+4Sw(w`|Qy631g#^-D>{<{pu28Q^Pj)c#at*@8&ym8>is7grd_{t7H6`7Nev%z3wF zXP?Q);0QQwRi%My3O}An;PwGfqxVES1XObz21EtHOuQXrR|3p$hy++ij$4znk9C<9j6BB)# zvpmcR^9Az@7qp}AG^a^}zYS782uzopeA2(KuO?L^Fp2g`PHyQlzOeRce@f6j_8VSs zHSPXi+E9Yqw-x5rhq6@(y@G;pY;0|#ISuikQK&L2N+tVUJ)ykd$BYa{*pHL*^CFK+ z7s(I`%sS}Y=mu@p^Yf$4-JP98`}JXDBSl)g3znhfs3YQI}xW4cx=qW?}3R%RjQOdLEhij_^j{4<-CUK-FB-onM@4$Dx`?DzRID&pC*XB*?Cq0akD;k+msl@6?{tE-Ze zEmDlIIee~1EU?<#8+i)J=t$!MTdF!7Rv*k!hdV$c*jJxqjZUZ&dybbi1~>c^7E&oR*>ugF?zH z)<)_>{Qc|u`fm5)-(bXqRqpTam!fD5AZCu@&<~ik(29p1pm?~S61p@9K#tUS19IS=XH;L5r(>v{AvxwyHEwD^Yc@fg)2 z19rqpjhw6s;yQqkh$8u_6XSOk0waC}y zaE+AG6Q&v_^qT{SDTG|YJTA`^Djm%G2L@FCm=MGFd}#YlmvUx%`}rHZx56l~ za1LX5EDgZv`ub%&6Io;BHRy4{S z$gX=ZZEpTc{#xdJaBRl(v>6VH918d>;azS+%lPJ&3Ex*a45YX?x05QI_q%x5f%k3+ zB89_(D=#k(y;XdjU0p~`4l*JHlW`}(+31WDhy*dZpcduFj~@|8dVF)U3xY;8w`qhz z^p`KUem*rfDYk^`cR|lN0KvnpjaszU;}WSQ7r8p2#TPmtsC3+3DqoJD2j4OJ@82CF zq9%BFBe0#-OHp7ceI+NmV$t!T2ncuB>4DZ+TwMHhnjB^FJTUHM6%~6RZ2|!~LR4hd zq}t_B>Hz{^IxJ1*ck{TL*6zU{3TNq$ z>Bt_)rgRMr4V`l3(*|_R&4cCAbm2W^;sr?=7#KD-H=}v29{~5xfmqO@mmBnSwDLOA z{1NSh7f@7MKy z!nO8?4-H-@sDJ$A;PYCoZ$rRCus*wk_Oj|C4tDU87x z{-5B|NDL*=f25XunArkdsNz+ z=I0PMFEQ&NI#+oym~H3%jJ3{A>2jxQhYcc;C2H*Pfb_sq%EgU^rF-wGLxaxUQ=ur>YT2!8K_D33Ctf-l|h0cQ?`bOA&{u zQE&eiZ%~<#1#ifOHD17^!lk- zWLcvp`<&WJ!-9w$G$v5$k}Lvu3Xe0te1$agmNh;AGxQ!I3{_RYl3pLj%;Y?Yd-GPw zH^|K1JY}c-hVSB5=Qk;$_qsPR;FiiQg;&Uu4hX+~{P>~N_iN%0AV4x!47DNqmEMm~ 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_03-matrix-multiplication_thumb.png b/master/_images/sphx_glr_03-matrix-multiplication_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7460a7f98dc7550db615753baeaf589a7e098223 GIT binary patch literal 34433 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_04-low-memory-dropout_thumb.png b/master/_images/sphx_glr_04-low-memory-dropout_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a5fed589d17fe6ee62d6a9788519dba471fbd65 GIT binary patch literal 26794 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_05-layer-norm_001.png b/master/_images/sphx_glr_05-layer-norm_001.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc9070feba2095ab8f720dec38b398cb3357c3b GIT binary patch literal 32618 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�wi_u3P9-R}o(C zP-_~=;HQQ6bhqS>vMoY5$5@>)EXphzspxkkoggJ(y<9C~*RGbZGK%Hr6deAh2 zL(jl+;ZoG2uYvLbY3T;{V;A}<-l0Rvq^N-V6zV87b!(Z8Yg~)>koiM*B%3qzI)8nx zI&im~SL~OYEli(uNp}R6_y^E;5x3+`H!_(5SpL-1_c`D@^?awZusT+oMXM=_ERLQD z2#cXzZ7*dwAfZuYye>5r;y{UYCSitD;cOleb77+m=65G9F_iShNGHUujeM$%do!HU zF977X$)a#0>m#J+n#f;=KnsM_-a#I&V=c|R z&Qxc9Nr+W6j&ZR)TUP4on=T8j<{Gy*xp9$I;eBWaodwU{t9>kpx<2$@$xl{1LXnjV zWGv_UsSFnHMdg}lm6UYapQ3%YDl}BG7K01t_ca=xL_vg1FaMFCC-J0tdE3NCJ->4#1n9V|ix6FY)e zCbbq-y&k?nwlFUCgFR0N&!bp1A4Gw)MJF(@V9M^yqVEs8F%SsbNJ(wfwso4AMiov$UDfHXK&ekZcH`U z2V|@Ok^R^b{~y;{pdIQh(rDpNZ4}+w6x9zvI%8~{#S#ZJjT#u>Q+vQKSWQnM%$WKk z{gbPTO2|w@)ql5)`~DQ-JCP*}K*ENyNl|d4wGZGMR%5R@AFY*E4en4r9=bv_Wyyen z{s4h5BI*=zW+n5y9K9ifBO{xD*(l4dvs>&32}5_R=>68gx2w`lae8ll*7~>OZD0(t zo_2TvTKcZf0IQD#(bm>>*_(;`kDqp(e2>tg94g= z%z9x6ARoViU&v7pvEi4mU%Nq0a1E3v9_s+;(I?B+n1ZKgJx1V(V0j}nM8T87@hE9I zIGzLm3NcQ^_XZyy|1IFTW*S{fnxg(WfBLk%TR!B9h&$BObgLJTnIEdJTJLYHYeA$2 zByxK`aLMgi!rl>MrmoK}vLD)qGx14F{%2{r7bqYy(Jy)=@Ps9S5OE7|rJz+Mpa>Tc zV-~@1oVM_V&c8PJoen|I@zRF?+)Mz{gx>wCE`5+dWdITvL8^i|G}*O*7KVnKof5>? zPFAC!$Xhx!Om_9F?$km50-vi8D}Y5VCaFVf2dS0=n5`4y_pcOjTtgdIjix?WC?Uys0q>s&0%*4O|Bq8Z$4WcAKeH3Qj zc9&$|dL0HrzcUE1jaC?>To%g*t8labt(DpTi^QZ``!<30otj?%MV(;$lghQN%ote< z5#*gk9OD|Q_Jdzeh@*osxeni#qtM1;VP=kwdnLo+fA0fCGK0~)OMTUr;}(Cvp)u=J zFN1cZOUYl&Q$JLpH_7JqzR_R5(0sUH+dARyt__UW`*8i7i5z)$w_SU0dllR^BHS|% z{m2wFc@2V%d~0g@8YmM^T^#QJG~tkdW6##T-}>9nXt?hXolBO zUY?fOwJX+?oC9^Q2=~Zq25Xn4Nj?nA+V~5x&?Z92O+-brokxU|X8;xZY@M~}v3(AO zu+fQWRKtjYnAf7*SLxbzzip;RA{#Xe$IOEdqV#ikNMfTld|aeRVsR7yNtK5Lgdg^l`qgG=HpNR2>Vu}z+naV@P zSz|(lgOUB^$jJ&`&PAfbHHYjL@-X#>QyjR{GqSn8)F6cU%QP@UM9xMf2GeLITX-zrQk+u3C=GS!Mti$0v0A!fV$?84xc}C%$@3cOQDB zQE!oENm0vhbm?-Hn@~iKXuWJ(t)*QCvZCYTUdr(rYb~G`kh8LSBl-a6B-V34f*_

    HIo#2DMe9-Q4y$ibJl;}CD4w30SDz;sC*L)zv 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 literal 0 HcmV?d00001 diff --git a/master/_images/sphx_glr_05-layer-norm_thumb.png b/master/_images/sphx_glr_05-layer-norm_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..55628cccf39792f27eb75ce10f54d9433f35074f GIT binary patch literal 20810 zcmdRWg;$hcxHU?5cZncK2+|$W-Q8W%Fm#BZfPf%~G)M`|kOI=(ASDclG>CL}e`kL8 z-aq1Vty${KTj!kT?5FmAV>HzjaIvVckdTmYl@w*Qk&qrGf)51-8u-S`^lJbTk`|$o z>?>XWti1(4|Ic>kherpswn<9vk&#juF9@U+q%!zWjpTeDAxB3q$C?=!d@_^DKt&}C zdSy$fk6P6Dl?0Qv@FM346GQlEqOCp8`rX?5=k2|u(n;w|8{TH#cE9XLYd6IFMC<#u ze6-Q*u2~o&3EY%)zJ&ey;zuHl!QhOh^aT7hBuf-cARW!~3FT=dLB1+eI0i%HbK?I$ ze>$ze`^r;PROEU5S1C)q7$!p~JtajI|Nh@dCNUAw>bB;PT)grVl`kAt5BGOH{rxsI zv!=8k3G&gnDR5kt+Oi)ZqrLRm)HI0F;dIu0JmFl2Lobn)BOcTwLc$=6tK01BN`n^# z>wYfC?}pQ3UELsp0=~AZGd81@ZiH&RAYh2RshQg|sy<_q7rd;<9_Gc z&BPtvE^9^T-JNTlt{I? zDtEadnb$zkcKH~(g+i#+>$-%OAnv|#NFn0$JmmV+YVw=f z=2;+E5VdR($mOuby|lSG-QeILhhY^`M5mOr^kavyoM%i-kx}%aX}^CP5)l&*4heErsmVuWbdah3)tim3r})3ekN0^<5#b zl`g6~9PTVvFkx9gH?eaDmaEqIg+7clTisxNrg9!f=?VWp(zCgS#&PQ49}INMpdIaui>@0^)|Yhh_! zy^V-Smk1F-vg!Z$!Zp0sZ6TwiKL`Oj>S;D1!OdnF%R1MUwa!7*Cdm(2IQc{!CSvHJ|!ri~6@gDNwu z`29G=ZeQLm#V{-`zO+OtGeO_ls)*6U(1IvEE`2X?s|hh!2w(|5d~~{d)gSRG0=>IP zrOHWXz3(!}p4Zk^${D(2O&~olMu}W%ub!i8rq}(xl!=J=q`jDXx)Oh(sk8l|JV{B; zQv}|Wyz8Q<{Fc{Y>QdErWF)kkE)`SpH415=`N z&sL;T@)IEn`Gogqxc9+$E&AB_Vqei_#W+ zi=HMxp z#DbMdq;7jGy z!56eYGtqhNJ2LoRdOj69CD>eFFfK@Qwa4N>tq&Fr?~^)hdc7o;lan(a_Hg(2@87C` z6Z`l0^rI}f!ClAe!;hk4W7lRKa_vqxC#FhuqJXt|T^?G6Uap{T&s1t4a0Lz}y*b~r z+4@zqyVRchiBZAJ5BIgeu)_C@G;tGL>9Mp&?U~<0yNQUV)&~e3C-Qeag=h{3S)eLq zp&^E~7)^c#X8M9dGvqk|Xn|*MXDp&va^4iF=nenXwJwPI`B~5>ArV5pdJjf*M~dHvVfQie z1)a`y`7=95Cnqum6U!?r;l0+KwmgJ{gpW#&nGO7ur=05m6gk78sBh})1$~?E$R3wx zFoo-S;zdErs7X;7<)thwXWdwyW9&C!f8jDv>geD2cOTY^<-acsAK?pY6WL5vFi49+ z$Du;W7KJehhqh3er1Pv#yPGuBTOL@xZH-_*mB>{JhUa0NJu;w#tx$lnN#aZ9Ex+#vHU8tf7pF zA;(iM{c**m{${VdH|MwZprc!8OocCoL@QEaxZmC$oYa3HCtI@LXjG$HKRw^L9(0p$ ze|&ak_q)mp05-E)hOCkjrhQGiQZh5}*-DCv&tEtl@79bF0dF>4Zc;tB2QVzN)8Jp5 zf`S4saFyf|L^I=`tG#SfI0UcmZw@BEzCyk}+u1;bCF*$dp`tx~P}B$m<3D!#x`jm)j=J{#l#1Ubt9#|=mX}*Bbs~3R ztepCpcV%YSvEp3m17&mSZ_XjT#I+VE|9%_GXa}T8qCeEc%*UK`3#l z3dwF<7q0umYy@EGT9UV4^{bXV6|Uwl;&~`^u}fV|_`P>`XNOwD7$Toy7GixjhX09v zj|+cPD|T`0IHl$g8t_6nx*9;k2&&=~I;lLzV>Y z!@dI5E+m$$iEQplBns_X*mxk+EZ<7zJ>!wfwP-`@5@ zKRR-*Ud5Lz>4Y%2=?4ai^!D~v;1wt*fhz=`5|WU0{jOf;^#~Q$(sK5lNqPpAVl1g+ z29shhDSqqGJMV4;IjCr=Sq#Eo44HvXL_?Vv86yzE!kFX(%~v1E699(4&gczD$;iHN zl5t#_dC#nPOby6IKEcL>eV#Xkd{tG{L>?eDk_+s?sN?)Q#R|7O-*0xFo=M{-^~Rn<#Qi?*MqTa%brSk|Li z!b~hIYg=1`Cu5RhUtX9fYG`asDA2DTgguCIwcj4|o2*WgBuPON?S`k=cEgc}{g!V7 z-P+A)qtS7-gM3vpP!c4~@3B#aCu_!_A#(EZZ$%(ewn$p=G`sVS$ziu^^dMwV>b*-(ZTG;;`_;h-()Gp7A?{R|iJ@CwVy232B)AB21XIkuXIl^V`NBsJ5>LiE- zx!Sm zv9Yg?)*9>__ zRwNfo=Ce8eD0xtJ?uV;UwKXbUR76*owD10WOl2ik{Zgo?xw$!?`(jpQ`+Y`&7NVv;FQ;Kn&Gq>aT6A&B=h24vRg%JRd&d07_W;u~BhwwehZouL(6hPsWSL=kk18m=oVArf#TGHA=Py z1e>@%c<|n59~=^rE*T~PRs_IIR$Iso5jFMj<@qV>{*@kY zE;Jh~hR7?x9(nui|7glN^te1$fxpd=FvH^d@ZejAu?m(^g?;;ccQ!dU>^^;Y+0uS2 zCmzIvn3$Nr-hNiu+d9-e`iMpK(;=tjxQWIEAZ{h%n^_` z<*|;*5vTm^LN#pE#&ww~)oHvi(-ZV;+7qZV4w-rm{}6ci%0Pi>K4!wvcIZL4h63CQ zU;_!*$NQT8a2b5@9`MnF$Qx5>ik^>%)5c`=daP^4J5U zSuL%tr3RIBDyf{P%e%8RX{yXEp)*UXYir%Wu_HmIt!if3uC(Tx^k7rVS0NXAyFX#u z_P<{W`D;S#_}xr}Z4~mIUoW+Z>%-u1D_u&rY$=KROPdcLJ}4?F6aTf3T%4)aLxQ3HE_-AO$%GV<0*7~5sKDl^C<_0se7GQ#duaP9r}wzn0b6$6TT zm(}hTb(HX)n2L{zw}b@~it_Sk@&$w;dbDqv^9u_j5dhmN1ucNyVd;50IXNFKPinx@ zi-y$c!6 zKPiNK6hq=;!oR#Qqy5xCXJKIx%-%Hh_BlCEalaZVS(kyutAoYy+SO@o_;afGKY{gj zDs^q^w*kOTWZ}%1J!*S@P!$ro5*c{>&2w5>^NX-+tE+j%Cy~k2pCLoSZg^sq?L5yD9=b zVq$YUy61r36{_4mmVs(tv$HDXi(?)jH&lUf@wBGO6a)qrWZlfysqC#SRx|GYe)Mq5vbz9Fn*CjUxSpCq97XUDOY_}yGt*u7Dz38a zZ8QcL&V96e0p2`FEXO2aRCc6xa{~Sc;(Er`zlUJ8PYwwn{S<&>-oC${(&Pi$N>p^+WA-X_+u%8t;E4C`8oQ^r0n0dQu&AVK8{t z>&oyEG!3!5wy@2-<5;=qOa{yzxy2w2NK_mhZg_abNBQ|^hg`iuo4dfXGkrr2kL5Ri ze)#Vh3wcUsD+V9Oux)Pc-St1fX1e1jp+ARySF^?7Q2V|d;gJk<)f(O`R;d?#0Ye-f1jyLeN3L1aGqPmmv|%K>K1&V)M{S${-?eFsaA?C z5z!D?GJ)MQ%)%sLnwJnZkcvtiGA9Fj6kK~pzRVRC-Xoi$>ee$`b2zEtjI|#_yu4NF zD}4*_i0MH6HKWsBU+^;Z#$IhyStpyR`uV9w7OGMF* z0bxe$w~(NQ4LVjMZPKl?!_`G#*_>_10rH)m1ZV zhJG3NnSQueKl6i0TYHM56rka=)ZSPEe*)u#Xw;ek`T*m zag%4so@y`u5VA0E6ggB+2%rw)Q{#XJPFk*-%n#)3T)8SsZdM=-=cFC?^2% zpZl=NDNIevuT+PXItq|}ez!9FkG;L&mF`6nsw>POL3rCG&5!KRfy95$0F@{wyTA9V zQx2ZxNm2d62?^QJE@(W8xH@n^5}{$+GTZz2-EivWeES(Yc2e@nsS{+jjaI)x7u)*o z4oGDxQ#YfE%TxxOWXt!5fBKK{Z(J-oCl(H;{|Qkylaq%U?T3+XI$?K zVagW^@Gt2N=KnNU$O+jl;r?2j^LEz-IGuQG*FS}Qw;y8R8O2|pVBp@lj<>x+hG1f7 zMqIVEIb(eFK3t$05PGZ)0M@bHw%TxQyuaAYf#c4r5SwzrnB?h8D3SA6wq(b`ht68LduZuo3Q0 z78aP1<;{7g0(~hP?nq`gGJeT+zw4idU503C&1Xc>aOYeXcvcvra@oe>Et8NU+F~|mv_nQyC2VZ%4d3&b|do$< z7F`(4{j~wVCYR~ho~Ygrw*_SoJb?0Lk9|$G$BHyvz+Xa8{FZTZ;|#jkw>w(xy>M7B-J7eoxcGsS(o!qHtAqRee3QZ5pTX^Yd%H3dz*OUBOCiPf-r`4*&Ldo= zCEuv9XS{Y$l0fV_l)@fxy;Xb!>JZL#N$KfIAl-Qs{qZ9+D{D+v77eI0;Y+!=aDZ@~ zwKX1;`a^Gz6!a@h2SGJzTyIr3q1*(X*`kuF+^oU?&F+xWlL(u5YFMxS!ZP^UNl)E= zMVg<2%e1?kc;F+g=O?>DQCs6eeG!H@{pi9p8Mil-Sm`xI-Q8UlMR)p zo~ZS7$Xj#uT&{CJdhKgG?{5Rp@acZ$$wV18craYdd*k;f&~LZ{JV8Z8<*;bW`ug?B z5BH_fLZxJ7_ihmVGRV9~vJ}Xyo^?qfYMw1y{Cly)6%>l0wOGNNlr5?!e8ZBXNg6{R zW{TSs^}b1@E2FdAD&l`N{ks;_Fx-bW)8#tY#1^4Od&gIoYugTT zaupw|0=;+01`gtBMSq-Lt8lgYj2z&gA!~@A>Don|N|qZJ*_+?J;v|;-OdKyi;xJ&^3OfJh{n?Cj(Jj~)DwE%|QJY&DA=rgbo=mGXd7}_cS-W43Qx5xZ131c;ci3>L zn^X&E49DGdDfBm}Jb$dc22SMBXs!YK>zlLW?8QhAR7uIY3s9LXIb%9#gE^}dliXV5K3A@E7AaVk*qFB91Z4D7(R#%(@k=N^CfaYprw75?*dTajoq+r zSXr3_c~^*kAauHas&t#_;Qq#Hhy>os@16r4d*=3$Dbef87c_;B9khOm3v>+gddbYr z4@qj7Qw@X38qx=g&=l+XW|1bS43VPnT#bSr<=)}~2%{M8RfoSER)&@Go76dXMiW9k z)}VUM#0_yc{H*e(xvI|W4w83;$}dbye>{!!@TQ7~R>Dh@uWv`w9(6~-P&?2fwy%#* zB9<*7n3!6rpokz9qGn$E9J7$dh@&cyABXyzuMx4dE^S~d2tW7B`xHmBbx^gq%(RjB zgoU>qqVQom&z?CS{cvMutu2LCxzYb2WPB$} z?BzIUe}V?Dw%)b!X*#b%KHPb0vKSvxMYiSP_WC<8gjZmiC4y@4GeS_lMXqe}@pN$q z<2c+3lR>tqntTuZ0H2;MzF{%3c@VJ(+^l!t z{6Wh5C-L_S8Q4r`Wi_muSUMWZV9U%9bo=H*Z}!B_rgVO$^F|Re$|oi#cSH4HRfbS? z!SRZPDmOd4O8n4AX5A~}cC3Ht-u5&zxYqsO1zsfX?z$kRquF=wH>h2pHZk~053(TatQ1qo%UY7ZiJh+>I^;lB9R z^{L)+((?H&ysi_AK^C=i3dOo+c3@~|6|_~00#5$nPz%H<(1(2P=#V--IbrAh%)?&Y z*?&NKJY*KuU8!UcO&737?}$5oD!1AAn3JXR&wgUl(6efAEjj2ECr7-zjJ-WGwSWtv zh+z?W^$x%_sP2tB!{qf+4pLu<@35Ti1)~HdpKYG@?L1gH8f?~~ows6SqD$ALe%*gk zMJlb-)?|3np^x+oRWqr$O%VPrP^P0&sYrs8A+o_JB}2+bgx2*>t<}}>I_T>jfexzI z{=6`ipj(^;323W`yyJ3GU`zODc)dx~VwLuSk< z;=??c59Ggu7)a-ix9ik9@tw!ji1c}TYxDI4t@R?MlKJK3n^BZNuJJ%= zPb$+(!X)ypf3KEj2(0PCMJ~eqY~M*pfYDHb(SUY9Zs;{@fkJ{kXnZ*GQEkIv{h)6W z6C2w-JPhOMZe(?$OsuwH81pe!(fTQv7VPFV*O@r?q)_~jg&0-rwzHj;&!2>cXl1v3 zr9*OM0H?$|!8rw`4lRCHo+HwuTv;4TmPrYFQ%IgMFJwRBaFJ~mkSnlt zoe|W6v=RH!Y|;K~KWKzUXsE>1)s=r>le^?YzKPH=8chb)qmi%smL+hRq?rFUHAfjJiyi;u9Xsqm#s>|WPOwQ4C=ePN znnF2*TO-O4aKiQ{Dn!Qouc|bonSbIr6!i=Zrt*r&^iRHiD}5j-o|=9Pvlo)=BC^DU zvxhkb1Dj%zUm-rN2niP#*L0;tLifsYMf3h@UKE|zoLnS%l6OhwonKkqwWZ4?l1OW2 z&lYt7CpZ2pEw;i+ogKB0BbqkMTF80u*UM)8@K0C_P}bDA9#H;G3`a(9TCH&ZFyh=D z;DObaBm8$J;A2%4fkBiHEmaDWwY>CQRNiI_Rj{NO>Gav#If=K2ITd)?7+ScE5PAi$ zMVkE%>;ZuT%pelz`^>fm32uz#a@~o-;6sb8K}yQXY%@3Y8RefzY&{ltoTM{rU%?>B z)BW@lj#JV-X@uhr#3*&|;xD=5`PZhsU-|9NBLc7I&!2a6cSp28+#RUq zh*5$~3Gke&^^~aGxX$|c@8I8m|B?V|m1q@!>ZV`ge0zPa;C<_2M6A&zntnBIWs9@S z2CB!ZxX>YfLoMl_kw-e>1`5oPCCtEFPIqP!?(c4r)6;>ol~A&_ehPRK2@==Q^r4sG zpo~m~kB^TqinplP2!K2JH&S3wX|EQ0{XC9?(Qi3V$jVuZ3{-k>`3_q1+34X zF9QUgDlI_!U}Ix5I6Pd?(9m!y@V%xcT`YhHG%UoHLM~|O=mZVS7nYqmCWk|cDV7qe z+{Q%-rA4~>!ae*&e#1r=*#RNt?=&U~0)~HP3MPP^=mkPUWo2cg=d7%+U~p@mbme{p zP@Ej!IomvI=P&zTb^$$Tx8qA(TBaK_z~6G?xIJi({1mwsak*#zON%^b2PO>4#A3+P zne|A$85TjvxjJoT7<9hN@cel+@Bv<4UKC>fFLOiADG|Z?VA3Ac?2)bPNyewtB)eyF*lj9Y$5OKPFXY8C3sLL&%DRhZLl@`0FFbb)RzYDJ zG(3n4CI)K8BtSXW%tItQ`2K2x&vE<>C{t5_AF#PvI>1_D;Nx#>73cawe(!S?BA?z< z{+f}Qb{mky*&vJHM|Y8f{w}cKK>304VDBuo$Vee3Gu7L@1W)+t>}3c)dCi3u^oeaR z>@3KHP{?)rAnPOh!?G^Nq%OYd#P%6S?5fXzB$iRo zvUR>Pg*uBrT7(5}bjT}G6g3NcB@5_mXig`=qQbM}j%nvtJ7+mjNw@5C6sEI(zA|aF zKK$I${QPZyF8GyMy*-RgN_}cC3KB6sN@{Oy!;R6UGbZ+mWTTr!~}psbfXB#g^u>u=|qwu>3h$CMeG2Dsj)0P{wI}ZNZIHV z!JURCYLw@tm3W5dT}$Wu)ud8`>r3Y%)ubgiFX6~b%+8g>OK5DYl($nwO||}60xvDJ z7eoUT79j(x2!{NrWQt>7kWvpd;882U^P$RyZtp&CJQf^fpF`TL zbiwynhfT{MMzdjRqdC~kE={}n_Rm`jotN*S?e%8*=rSjA&&BY2SvAwV)|b=r%!iYP zw~;7=sUsnJN}cr#{%B@54dt^?mD5#b#T%v8D4(3=NvS#)6)(7}u~&x`TGU>>?Pkld z*jLm9DfohO8ET)0UicqT4a_p9nNp5mIZs_UN`yJGE`uU@=Aw2X}kXTKS6 z(`f**ahQY)i^@ePF%SQ==XGjgdN567ik;R2f^~aH#Xo!_XPh8Jt&F9A8lTZGQ%~aFE{4b8i;g z18qs(_fQnAq~gVPy72baezESUon^w3#o^R3XrWQ?BaYc^@f|{(K7#QZb0s=f%MpXI z7>yA4`p%qgHqw=VF8N-(#?MbE`HGJTx4*gy!Z>4K4n0)aBD~E_R@3}hmb?)K6hCLT zJ4`&#u##82zKgu}6KU8Fy1GDDjNczJs^7nMSi$49rPrjt@6dPlt~kuu=C}@HRc=kf zIEO}9j6QEQc&(PrKPYjTndy&KIcIod52HuM%`_OD@_bjYd`*- zx6QvTIP8!LFMqR_;8y&F_4Jz?u|kaUsT^x!tA*LcM@@8Hn-?jUb@C|p5}^7u3P}DldX-U&D&h}+cEmV~W$N^Id)cl`C15}DIK^P~oSbQ)+c$rRmcA55rHc(UE=6}EA? zGdHD-UTThkf4Z@#Z&WriCHn8%9s5wBD`W*O+TIl(f-Q2T2l>pKD_~ z{Hf=CpT1$R^gM>rll<$+n-b2l!<=#J?->EUPBq)B7+YVjZ*V12h?Mm`$zbZ`)?3v@ zWg5l_xyAGg1Sq~0Qg{NQ)fs&Wyy5Q7)pw!*K>j89D5q-Htb zC*$9;ur^Nz2|`ui>Y-0Yc`7T+Rz>1befV^+anMDyJ)V|TR46&*eOW$7MkL=#(J0qM zbEx}j*Xq!G;O0_;q zSyXVFbd7!U>%vpyhHp@KkYw&d3}zgI1V@g-oS1Tb(}E-M#J~1Fz9DJY1W)yiY~US? zoL!^L)>7wU$wWa{BS|W!@svrqMsLn=(q+;|QtopJ|ydJ6SVo>_~ov#hr7# zrZrdR@UmPQYux4=$H4y6Z)$r2wOHb^2i#F(a{Yc*M$ z^Wi!v7bMD0;g=-T=f&|CvMH@C_lZrPb1(irM#JX|c{84AX8PRiL$6z2hqjcuCtg2q zg15*9Uql9O{znU1gQ$NzU~DP&btb~uAsG>r=)%EAFTpli*F9(DBsG6JlN4)S(7&{) z@x}q^)#59ZAoR)SC4?*AJTl(%73uBi%U;W^mS4yh->q%c>~GKFjeTG4c>HfSt9vR( z$Bb4zWu>PS3;VXB+G zkO9IA4a>e)>g!pn9@kdqg$FC(e?OnutI{#QZFw7w8)Ij9`*It7ie*Uh1Hl0S zm}CE~)|Zs36lZLmFRBK(pAv8g1)!=gfry-1(hgcmm1s_}? zW}|>5UvK{-T{tHoYrQ|UX0->4)3oi)h!rC^hs^55<;`9g3n$0Nrcg-CaY9!~C9__L zd)KBw!Bz0m#?RjZ5o7yTWzq+*9&_pIbsz0xo!>c4*(Z$~M@OffGu`Bp8j`_c!G}kh zOE>2*G7-_REPz>T6%m$`I)e`5G`75Rk=H$=Gvf)KveU2l{Va32=tRL&a zI_H+n0+(i*DIoG)Az{>WSTE6ZH&2Z9lpYhh^*h&lJv~8LqQA+hbC~`vX(I^<-We~p zqDSmDi2rMFJKMW%QUEc@O&Zoy$69etyzl3pJ`_6s#q|=&CYk*plp6FgyHs>G`$uza z?8}$q@z>oLz~tJuNWgaqOkBL|jWJCB#{&>7?7 zh#-??zWaPj0#bhNSKNGier3XB|ix6!BjO9WRvLd~-9^(4YbPp*d*Tkn!7%COeOdep-Y(QmEKR5f`-&6?UkZj9B zCdb#DspmA?fvo2)JPf*iswezQdb%N~E3-fzM1SybEHNpl;cyi(JnTdL?3_s5KKrl# zwC6_$I)|lqA-m0038%wbC;{kN{q=Z9b*oB_IZ`(R=Tm2uv4fUf`?WUSzwdXnb+vo! zcI-G!xNLr;vvRWbxd_@+8&x#A{YdBD#OZn0Hz8Ig%&^FC8E|b@Z=wvFAo@!xn`l5V z(w$*((hT$T-xM3yHC(qi3IY(RVhfBrEBR+$oQ%sYgmF&iN3z3c_g|}gjXMd|7MrK8 zU2_9J^QjAGw$p?AZTHQ61l?T&Vg(3Y52u2@sEeOZnKin-w4S15{Z9JnORl_^8&44D zu9e>(H!!ju7v6$b5rf^blZoHNeq9r~#kRx)kOf^Z$8J`vW#4VeNz;luZi`OvNmYe?II!)zWs-s>rDFD>V zz-uBX{);^Uz}`^;%jWv@k0!8&aP#nrPz<>78*V9k+!$pBOxgLWnns5!uZPs1k}q@f zlb#Z-5>dHObEF4yl2lI^K)a7dbN1Di509zd z39PQ&(@(a0hHV*;OPd08ey(Tv!g4>Sv8CpYRt%E!v*9%w<`JfwMT$Pg3RRL63es=_ zmxJ@F?&!a4JD=tWF~2$Q$Q%9rdot;0s2q_ZZoR0h;G}>$Be(FUd$sG6tB~B`GB$=D zT!aQBdswvprz`K3^Me5&_Upc`cFsbJg3y_ANv24G8Ai;)_k+9}M}zws{$c$$6u9!= zE^H`-pC02r(6#V=k zhM-C!4Kxa$Lxr=`=j@MXbH;#QiRMBN9kj@}Ma9pK`tKHu;1cOQH8EmG-NYnDv1!xZ zRNW?csic2FQF~Uq=QZtJbt2iz|_sr>kxVktxHH3g;62Hp{n_LsBV34#>bz&zlc zRrmX&^Er1NZS5`u-8mrvAFwugKwXHDpFbt+;bsX@)QKTx`R=u@3`%Pr3v;{_I4QRn zYzoSuSePnAX=y^Aju!e)DsLX14a#6>t;{!}{;IZ7Kmz55vLLLjSJdui~`hT@0-2)8ovYcKebNCQlLm_5q8H98n1wPdOW40(Rj>|(j4y~ z$m6?im_^0HPH(C-mIf+yN*G!)fRXnIL45>8EfEcgD<(k1|NQy$@=6|Bgt(X(pkx2u zJO9PWuA!mv)82dQA;{mKfSx{K!HtEL6|;F^KdE195xC+Szft?^zODI%L$}4Iofq4e za8JatQT2f0R_NWC!8g@(K+3gIF=4EGJ%cC-0d~%S>g_xo(Fhx9W^FpBVZdhZF z3wUkIpor}-RicIHHzRtRfSoq+-A)DQveJb-pMnEAYC=jvlf*;< zP!FiMGLn))di3Z~3W44__uS7i6=THK6HW|$LpLEl<$N5tFyZuin$Hf%)I4`kv~^O1 zlrP6(9$vog=Qub0-MxT&U@zB&)ikxUx;+kBMW2}n1g-u47U+JZx9g!b@=z-pig>Py=kO2zdzT;h*B>MX8N@%0d%dvQvq$mMDTlJR;FrK z5{g%>w~>esD{!q4h@v#cQ88d<{qBs5z`63p0Kvlp07MXUY@HiI)BrEDb= zS@XN2o&J;AiZTECgJ!YCeNR3rqdCynYXZI1$C=%I-jWji2I%dpHIH(SEKktQXp?|0 z2zb5}%h6HcpL2on(`N1N*`S6EAOlW zMXNQR%pG0s9T zr+_@+`@cMXlmOI55hid8za%NPj`@aF>GTA=Ja8Xf3ef7@l}4|f-37VT}P2Sdr-Tb5m8#Ev9W(GN4{4=Fc$*bK6Ie?iq7 zLFEQ;mL=r*mXuxJvf2>QvUHp(A%q!J{`*y=fT{H9z zrj*RSim}7z?4FsdH+44wZEm)Dw{V~R`E<{>rb>9T}e5sOdJ;rU*v9eKVtyR;kuRS z7X)tr?;DAa3Kt<71r%VU%bS}u9})003_?N_ZvYuY3gSc=?<`XcG+}M`*RK(DWmVO` zrNuc-D>uGEv@Jib_>W&)#T|&WiP3)nW*Xp@D+QPspfdCv6&*b}IT=~=&kzPCX5QDY zNN)gZ1qsloRUVc=qvrC`9|#e_t$;_NZaV;RRFYRx+EfV98S+l*@ES1f?JmHO>5U~f zs&}IWf=-v;RpEeioS2&0zuFr++ZG~9E8_D+LV_+{zWes-MA-Wu4(O2rbyLd!`3!^; zp@{1C?7lcyTj@4HZtv1LFxpQ*Fb6~cFQyS-cCmVPzWY+!?qVx7sQZ6r)e#E0<^v7# z^-l_Pot7_O+6|HL@bHwF)N_L7$}K&@Q#5Z;fGqd>KN$>$if+Jm@$~fU>FqT;sR7ev z9cutMlKu5mvF4R5EG$tS9UaOa%2weeD8GPisqJRJ z`8D)LpAYoMfKIlwv=k^I=GWc*K^(Nw9TgK7$MFJvO&QSSvm`3zx6PlWu9h(yc?A%>g|9nJ-y$A(YfSO9hL`QcZ9!O$dvQ#`rl1H!QBE6^)#00#m}mbcqN6Cl(7cOVznn6Uj%3WF%E?MV$u z2&Y-o)c^c)0wOu@3gfyVxYazAXZqY=3Xqldw>6RUh&kBUu)@N^ z45FkxJ-J!bvk=1T3Oq#rA5i%B$QJmJ0KJN9ugj|r>@z%C5m~^vH>Jfw0@e%!(L{uV zE8Chvz;2n7V-62J45GZ)hd!e|`%lTQ^Vl<2;5!ibv-O6E@WV;~<)rF=sC8R^>ezw4 z7R?eUMG*2K5EUT=-AF)JF$k2)3ax=>6g;*VBH16kH%5;D%@0WEL6q?rs9x%6lDk(d z0Sk-o^>iE{;%(<-2v9su*ruNmx|AF{Oc>gMFTCE-K0wE6}n&7*$nOh)Y7Xv+PKDT)aAeT(_0w%HFcH?GT?}iJ+ zp09s5db5ZJo_+-lw|W}D)ijxH@MHu!L>xLX3c!|0N=hqrQs<3P(#1H?SOz5*5@XQbe*0KiUDo!Ed9or#q5!2y6`_p4Zg9wBrc20Vk9goO5g5YrznlxI6L4q%XiV(-C{UtVqGA|U1N z=Aszrnh`NSSWBxqV+48b=;#Ou#LnM=6jj7;UlqjKkCc~m%1!FOg+1KA*`_iBBBOXJ z{?%}Fx`tBjthhLwFPvr{M(k}s@L3de4Fo60z2p`i8`*xp3YCaK2ya+r`G_p`9T*5P z71f7cYb%h9*xK1~+YS(HPnXAnGXaqiNH@HJry-`M4(hH(LMW+lsRhQ%O$3{K_pmx< zYa9?-MBtwg?>YdwCC|g5Lht+ zr`dA74dZj3ijJoi{O&mM^rt;fkKYQVUz~!Fdvm_8ey+U z;0zEmh1e26IQ$kQazNb!E}9B@>L;M33-~{2AO`?3cVTfc@9Sv};EF(!0hIlkAY}s= zAL7I8bgKt%WdN)MYoMokBO=5Fgm3^5UwZ#jMT{GeW&96XFC2l~802-JPfu&w;1ND! z5ta=$WVOpI5AdgQ0Ah8%spf%n&}FeD9oY1u2M5q`#rAd~bX?&53rIkOg^-&9g&jhf z3XB{KX$`yp;u{!fFyNp9sZkWz$K2o@0RVPJfqZQkDE0?NN9{p!$LI7b66m^)_Ue}w zr@VCx4Woh7378JRsg(O$Koj~0THODoQ!V$`J0v6|%Ro{Hvc{^pJw(G7SeOn>{{^#Z z+8emD9Z<1Y0eQwvh%Bo6m6jHvlatf!QHYL>}loB|0 zl^SqA`TE}%vM<;1H1t5K>$osS+I&%r;{2^^9|g9pbB=u zXJ9Wct-4S^2(`sC_7ZF*#3+C$8SLI6Grxs*04u@Lwp^~pBIJUAOk4xZQNV3}AexYI z6QD3cW)40ylA&4P4J01G8obVTfz8iq2g;k0(b3U?aH;@^ug}k!f$|QR2+%ewDk^>r zxj9$OmBK6mCf#x148-b%>U68(#-#QBfX}yBJ zJ{fos2@(iCbATUDK-?7E5Ihl}b{7H0$-MWNI0-p%t!#OhLQ2bq-14LPBz9iI??G{RyLTKnct_SQGlq_ zEF+7Um>9g+1R)9#kjF9-keadpC;+DX>GS6v;2bDL zeK~-M*n`jdHW$jIb1H3?+i8_`oh7=lzsOa>BZ zWGh7hK@zAa%WwvXfG81bWDH`Eoui?@w;$7fW1Ii_zRz>-!@YMNy3vv_BfO%c&+ng0 zOY=#JrtIgkg8TdXwZGpXlgZF(vMbyZcQ|Hy0$SfWm=wPoV07q*rraH>4eEjcD#Xr; zh$>vB6nFG4*hnR1UPYaeE7q@Huw;o!>mTWK-_~v~qlfvRM(5Fv(B#q12sncNsc(If zdMHO>5fP!q{y&Y3{Oax@(DP)*_%4>!`j+f ze3)rjS$>nIlarH5x%9BZ)vLCxy11~gFpN?`+RDTze9fNT-ZPn(01Gp`Ek{R31p#6? zKolh09cK@5$|+RH`OD-sfhRLAZVF@{96P4J_@jRN(dG8K)h*v zxLSYOGE)?C+x4vsrzSK<1Woz6{NXokZRdbibU(eag3DQ1#y}3P zO_F;4{Au*{e5W@27t8xCgUvd_TpLbBc!Ovu*l{lk;^vg&@nQ_V@tJ4dfe@fA{KAJk zArx17Tm*+7Qfg97og&?60PoY@butaIdAg|NO3!+8bNzF->p(*iHxG|x&dv*u9GTM2 z*Qhq`@b~YqtuKjryp3)7*_s3M?1)?8L(8cXDaLmCU}VXc&9|>sub@0K95Y|G4DHv= zN6|Z}@tu*?>ex93$8(3x=2KcHhMwxRd&S0g4YWU9$&Nt9N}fY}vj*d@(To|khnwGV za477&bKRy`f?e5|+h0wAhxM_h)nhs7=`PXHt1)Zbd)3s_qbe#Y(#kIb(=r!VMV;LC zxh%hpm;@_pYnQ@%4m4R5g_?8=kN=JW6X1jN5*o{_xpQ}SJ$d8VjRo`OoxB}p?%+^5 z91*U#A)af5FqpEbXX9t)DM=YGrlqB+RYOfpP1^VC{d(S`!KhWQ3m(L>NKi}1ngqoe zifIH{J&H#sj6dxC)KZ`kq2#2kh$=0@B7k`g3H|;+KaFuvaxDZ}M3hW3cMDoK&YWcyPBUM6vB7>gGQwh@?z0Vz|U+@ zvU!GpwdXQ2wt%&xbP8yfsAS1VwH*(3%{fZfo*aGNh-%CY*kxg1L5{`Z$_Fj^s*mpg z?pQ9lpbFuIV9c1FlhcTZQ1QI%p4{pp9jOQ$R6X81or2?v)px)43nLnnC{qj+Pi{Co z*?KJ|lsB&!Y4;OWoj;VzDc#IlH3fy$ryt1k11l54_iir5i!QJRyON598(#%T$Z2Zw zOKk_KrUZFu?V=(jj&XL(f5 zj6`){W@cu6NqFPBxV~9J{7X@OM7V+B_f&~IuFEm9Bb5ur%2wF>K_uxcLw-Gln=tOj@6KYM=OryE ziqI?;(Mt3YQ9{HW^W|g6eJ&`U5+s1C_utmZIII}X?Ay1`^TNBC?8MdrKfCgPi; z7B$$u3rFKg2}D?aU+}MyXYFE=-<-3y4R;IF*6_>H4B>=tXlT%O22dUU9$2YlCniCI zf7>9RK5F>y1BiX*d60~y{?$@ z07j@=l-TXlwY!v0QO0zvTAe20#lvP~+Tv2!N=HpKQZl#zDES~w=oM|XqdaN}cN6#G z;UYQ$^_Q3#OBZVTBq z?m@Q}l!4*34t-!Mijh?Dayj6aaSisY?bI9?Gg&3S18(QVIkmNq`NHWvjQ^aMpI^$Y zqj%M{=6>r{pH5y843e(W5$RMBr*rZ3og;xHSeTg|g@iCJ!BNLe#6qx?Edkx2KB-hX z%xZDG9t9wTkMJ5~`}g;G)eGVZ@jbDpKzzD#pdtm_A|9>jnh$)>r)ss@4q$}6y?uAW z{e$Yih682+6Im_aTd!Oh{GcKp`MtodAe(DiK2!ob*Q`*?)+s^hrpr?~`lpoPX`jkYd4lAaol^3;M^V zPd4$>BX@Lhv{y>knT67HxO>ko`>ji_O#kYHMV;!+nKS>?-%-p)U_oZDPn7TOnF{zz q>{7KSvnn^M+5h*}{wHT}VoEugKUnH8-H?n#$@Z<@TdukUANvo-lI2DK literal 0 HcmV?d00001 diff --git a/master/_sources/getting-started/tutorials/01-vector-add.rst.txt b/master/_sources/getting-started/tutorials/01-vector-add.rst.txt new file mode 100644 index 000000000..9bf7322f7 --- /dev/null +++ b/master/_sources/getting-started/tutorials/01-vector-add.rst.txt @@ -0,0 +1,286 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/01-vector-add.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_01-vector-add.py: + + +Vector Addition +================= +In this tutorial, you will write a simple vector addition using Triton and learn about: + +- The basic programming model of Triton +- The `triton.jit` decorator, which is used to define Triton kernels. +- The best practices for validating and benchmarking your custom ops against native reference implementations + +.. GENERATED FROM PYTHON SOURCE LINES 12-14 + +Compute Kernel +-------------------------- + +.. GENERATED FROM PYTHON SOURCE LINES 14-50 + +.. code-block:: default + + + import torch + + import triton + import triton.language as tl + + + @triton.jit + def add_kernel( + x_ptr, # *Pointer* to first input vector + y_ptr, # *Pointer* to second input vector + output_ptr, # *Pointer* to output vector + n_elements, # Size of the vector + BLOCK_SIZE: tl.constexpr, # Number of elements each program should process + # NOTE: `constexpr` so it can be used as a shape value + ): + # There are multiple 'program's processing different data. We identify which program + # we are here + pid = tl.program_id(axis=0) # We use a 1D launch grid so axis is 0 + # This program will process inputs that are offset from the initial data. + # for instance, if you had a vector of length 256 and block_size of 64, the programs + # would each access the elements [0:64, 64:128, 128:192, 192:256]. + # Note that offsets is a list of pointers + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + # Create a mask to guard memory operations against out-of-bounds accesses + mask = offsets < n_elements + # Load x and y from DRAM, masking out any extra elements in case the input is not a + # multiple of the block size + x = tl.load(x_ptr + offsets, mask=mask) + y = tl.load(y_ptr + offsets, mask=mask) + output = x + y + # Write x + y back to DRAM + tl.store(output_ptr + offsets, output, mask=mask) + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 51-53 + +Let's also declare a helper function to (1) allocate the `z` tensor +and (2) enqueue the above kernel with appropriate grid/block sizes. + +.. GENERATED FROM PYTHON SOURCE LINES 53-74 + +.. code-block:: default + + + + def add(x: torch.Tensor, y: torch.Tensor): + # We need to preallocate the output + output = torch.empty_like(x) + assert x.is_cuda and y.is_cuda and output.is_cuda + n_elements = output.numel() + # The SPMD launch grid denotes the number of kernel instances that run in parallel. + # It is analogous to CUDA launch grids. It can be either Tuple[int], or Callable(metaparameters) -> Tuple[int] + # In this case, we use a 1D grid where the size is the number of blocks + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + # NOTE: + # - each torch.tensor object is implicitly converted into a pointer to its first element. + # - `triton.jit`'ed functions can be index with a launch grid to obtain a callable GPU kernel + # - don't forget to pass meta-parameters as keywords arguments + add_kernel[grid](x, y, output, n_elements, BLOCK_SIZE=1024) + # We return a handle to z but, since `torch.cuda.synchronize()` hasn't been called, the kernel is still + # running asynchronously at this point. + return output + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 75-76 + +We can now use the above function to compute the element-wise sum of two `torch.tensor` objects and test its correctness: + +.. GENERATED FROM PYTHON SOURCE LINES 76-90 + +.. code-block:: default + + + torch.manual_seed(0) + size = 98432 + x = torch.rand(size, device='cuda') + y = torch.rand(size, device='cuda') + output_torch = x + y + output_triton = add(x, y) + print(output_torch) + print(output_triton) + print( + f'The maximum difference between torch and triton is ' + f'{torch.max(torch.abs(output_torch - output_triton))}' + ) + + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + tensor([1.3713, 1.3076, 0.4940, ..., 0.6724, 1.2141, 0.9733], device='cuda:0') + tensor([1.3713, 1.3076, 0.4940, ..., 0.6724, 1.2141, 0.9733], device='cuda:0') + The maximum difference between torch and triton is 0.0 + + + + +.. GENERATED FROM PYTHON SOURCE LINES 91-92 + +Seems like we're good to go! + +.. GENERATED FROM PYTHON SOURCE LINES 94-99 + +Benchmark +----------- +We can now benchmark our custom op on vectors of increasing sizes to get a sense of how it does relative to PyTorch. +To make things easier, Triton has a set of built-in utilities that allow us to concisely plot the performance of your custom ops +for different problem sizes. + +.. GENERATED FROM PYTHON SOURCE LINES 99-128 + +.. code-block:: default + + + + @triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['size'], # argument names to use as an x-axis for the plot + x_vals=[ + 2 ** i for i in range(12, 28, 1) + ], # different possible values for `x_name` + x_log=True, # x axis is logarithmic + line_arg='provider', # argument name whose value corresponds to a different line in the plot + line_vals=['triton', 'torch'], # possible values for `line_arg` + line_names=['Triton', 'Torch'], # label name for the lines + styles=[('blue', '-'), ('green', '-')], # line styles + ylabel='GB/s', # label name for the y-axis + plot_name='vector-add-performance', # name for the plot. Used also as a file name for saving the plot. + args={}, # values for function arguments not in `x_names` and `y_name` + ) + ) + def benchmark(size, provider): + x = torch.rand(size, device='cuda', dtype=torch.float32) + y = torch.rand(size, device='cuda', dtype=torch.float32) + if provider == 'torch': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: x + y) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: add(x, y)) + gbps = lambda ms: 12 * size / ms * 1e-6 + return gbps(ms), gbps(max_ms), gbps(min_ms) + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 129-131 + +We can now run the decorated function above. Pass `print_data=True` to see the performance number, `show_plots=True` to plot them, and/or +`save_path='/path/to/results/' to save them to disk along with raw CSV data + +.. GENERATED FROM PYTHON SOURCE LINES 131-132 + +.. code-block:: default + + benchmark.run(print_data=True, show_plots=True) + + + +.. image:: /getting-started/tutorials/images/sphx_glr_01-vector-add_001.png + :alt: 01 vector add + :class: sphx-glr-single-img + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + vector-add-performance: + size Triton Torch + 0 4096.0 9.600000 9.600000 + 1 8192.0 19.200000 19.200000 + 2 16384.0 38.400001 38.400001 + 3 32768.0 63.999998 63.999998 + 4 65536.0 127.999995 127.999995 + 5 131072.0 219.428568 219.428568 + 6 262144.0 384.000001 384.000001 + 7 524288.0 472.615390 472.615390 + 8 1048576.0 614.400016 614.400016 + 9 2097152.0 722.823517 722.823517 + 10 4194304.0 780.190482 780.190482 + 11 8388608.0 812.429770 812.429770 + 12 16777216.0 833.084721 833.084721 + 13 33554432.0 842.004273 842.004273 + 14 67108864.0 847.448255 848.362445 + 15 134217728.0 849.737435 850.656574 + + + + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 1 minutes 42.537 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_01-vector-add.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 01-vector-add.py <01-vector-add.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 01-vector-add.ipynb <01-vector-add.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt b/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt new file mode 100644 index 000000000..5d9c1a595 --- /dev/null +++ b/master/_sources/getting-started/tutorials/02-fused-softmax.rst.txt @@ -0,0 +1,337 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/02-fused-softmax.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_02-fused-softmax.py: + + +Fused Softmax +================= +In this tutorial, you will write a fused softmax operation that is significantly faster +than PyTorch's native op for a particular class of matrices: those whose rows can fit in +the GPU's SRAM. +You will learn about: + +- The benefits of kernel fusion for bandwidth-bound operations. +- Reduction operators in Triton. + +.. GENERATED FROM PYTHON SOURCE LINES 14-18 + +Motivations +------------ +Custom GPU kernels for elementwise additions are educationally valuable but won't get you very far in practice. +Let us consider instead the case of a simple (numerically stabilized) softmax operation: + +.. GENERATED FROM PYTHON SOURCE LINES 18-46 + +.. code-block:: default + + + import torch + + import triton + import triton.language as tl + + + @torch.jit.script + def naive_softmax(x): + """Compute row-wise softmax of X using native pytorch + + We subtract the maximum element in order to avoid overflows. Softmax is invariant to + this shift. + """ + # read MN elements ; write M elements + x_max = x.max(dim=1)[0] + # read MN + M elements ; write MN elements + z = x - x_max[:, None] + # read MN elements ; write MN elements + numerator = torch.exp(z) + # read MN elements ; write M elements + denominator = numerator.sum(dim=1) + # read MN + M elements ; write MN elements + ret = numerator / denominator[:, None] + # in total: read 5MN + 2M elements ; wrote 3MN + 2M elements + return ret + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 47-55 + +When implemented naively in PyTorch, computing :code:`y = naive_softmax(x)` for :math:`x \in R^{M \times N}` +requires reading :math:`5MN + 2M` elements from DRAM and writing back :math:`3MN + 2M` elements. +This is obviously wasteful; we'd prefer to have a custom "fused" kernel that only reads +X once and does all the necessary computations on-chip. +Doing so would require reading and writing back only :math:`MN` bytes, so we could +expect a theoretical speed-up of ~4x (i.e., :math:`(8MN + 4M) / 2MN`). +The `torch.jit.script` flags aims to perform this kind of "kernel fusion" automatically +but, as we will see later, it is still far from ideal. + +.. GENERATED FROM PYTHON SOURCE LINES 57-64 + +Compute Kernel +---------------- +Our softmax kernel works as follows: each program loads a row of the input matrix X, +normalizes it and writes back the result to the output Y. +Note that one important limitation of Triton is that each block must have a +power-of-two number of elements, so we need to internally "pad" each row and guard the +memory operations properly if we want to handle any possible input shapes: + +.. GENERATED FROM PYTHON SOURCE LINES 64-93 + +.. code-block:: default + + + + @triton.jit + def softmax_kernel( + output_ptr, input_ptr, input_row_stride, output_row_stride, n_cols, + BLOCK_SIZE: tl.constexpr + ): + # The rows of the softmax are independent, so we parallelize across those + row_idx = tl.program_id(0) + # The stride represents how much we need to increase the pointer to advance 1 row + row_start_ptr = input_ptr + row_idx * input_row_stride + # The block size is the next power of two greater than n_cols, so we can fit each + # row in a single block + col_offsets = tl.arange(0, BLOCK_SIZE) + input_ptrs = row_start_ptr + col_offsets + # Load the row into SRAM, using a mask since BLOCK_SIZE may be > than n_cols + row = tl.load(input_ptrs, mask=col_offsets < n_cols, other=-float('inf')) + # Substract maximum for numerical stability + row_minus_max = row - tl.max(row, axis=0) + # Note that exponentials in Triton are fast but approximate (i.e., think __expf in CUDA) + numerator = tl.exp(row_minus_max) + denominator = tl.sum(numerator, axis=0) + softmax_output = numerator / denominator + # Write back output to DRAM + output_row_start_ptr = output_ptr + row_idx * output_row_stride + output_ptrs = output_row_start_ptr + col_offsets + tl.store(output_ptrs, softmax_output, mask=col_offsets < n_cols) + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 94-95 + +We can create a helper function that enqueues the kernel and its (meta-)arguments for any given input tensor. + +.. GENERATED FROM PYTHON SOURCE LINES 95-125 + +.. code-block:: default + + + def softmax(x): + n_rows, n_cols = x.shape + # The block size is the smallest power of two greater than the number of columns in `x` + BLOCK_SIZE = triton.next_power_of_2(n_cols) + # Another trick we can use is to ask the compiler to use more threads per row by + # increasing the number of warps (`num_warps`) over which each row is distributed. + # You will see in the next tutorial how to auto-tune this value in a more natural + # way so you don't have to come up with manual heuristics yourself. + num_warps = 4 + if BLOCK_SIZE >= 2048: + num_warps = 8 + if BLOCK_SIZE >= 4096: + num_warps = 16 + # Allocate output + y = torch.empty_like(x) + # Enqueue kernel. The 1D launch grid is simple: we have one kernel instance per row o + # f the input matrix + softmax_kernel[(n_rows,)]( + y, + x, + x.stride(0), + y.stride(0), + n_cols, + num_warps=num_warps, + BLOCK_SIZE=BLOCK_SIZE, + ) + return y + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 126-128 + +Unit Test +---------- + +.. GENERATED FROM PYTHON SOURCE LINES 130-132 + +We make sure that we test our kernel on a matrix with an irregular number of rows and columns. +This will allow us to verify that our padding mechanism works. + +.. GENERATED FROM PYTHON SOURCE LINES 132-139 + +.. code-block:: default + + + torch.manual_seed(0) + x = torch.randn(1823, 781, device='cuda') + y_triton = softmax(x) + y_torch = torch.softmax(x, axis=1) + assert torch.allclose(y_triton, y_torch), (y_triton, y_torch) + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 140-141 + +As expected, the results are identical. + +.. GENERATED FROM PYTHON SOURCE LINES 143-147 + +Benchmark +------------- +Here we will benchmark our operation as a function of the number of columns in the input matrix -- assuming 4096 rows. +We will then compare its performance against (1) :code:`torch.softmax` and (2) the :code:`naive_softmax` defined above. + +.. GENERATED FROM PYTHON SOURCE LINES 147-186 + +.. code-block:: default + + + + @triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['N'], # argument names to use as an x-axis for the plot + x_vals=[ + 128 * i for i in range(2, 100) + ], # different possible values for `x_name` + line_arg='provider', # argument name whose value corresponds to a different line in the plot + line_vals=[ + 'triton', + 'torch-native', + 'torch-jit', + ], # possible values for `line_arg`` + line_names=[ + "Triton", + "Torch (native)", + "Torch (jit)", + ], # label name for the lines + styles=[('blue', '-'), ('green', '-'), ('green', '--')], # line styles + ylabel="GB/s", # label name for the y-axis + plot_name="softmax-performance", # name for the plot. Used also as a file name for saving the plot. + args={'M': 4096}, # values for function arguments not in `x_names` and `y_name` + ) + ) + def benchmark(M, N, provider): + x = torch.randn(M, N, device='cuda', dtype=torch.float32) + if provider == 'torch-native': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.softmax(x, axis=-1)) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: softmax(x)) + if provider == 'torch-jit': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: naive_softmax(x)) + gbps = lambda ms: 2 * x.nelement() * x.element_size() * 1e-9 / (ms * 1e-3) + return gbps(ms), gbps(max_ms), gbps(min_ms) + + + benchmark.run(show_plots=True, print_data=True) + + + + +.. image:: /getting-started/tutorials/images/sphx_glr_02-fused-softmax_001.png + :alt: 02 fused softmax + :class: sphx-glr-single-img + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + softmax-performance: + N Triton Torch (native) Torch (jit) + 0 256.0 512.000001 546.133347 190.511628 + 1 384.0 614.400016 585.142862 153.600004 + 2 512.0 655.360017 606.814814 154.566038 + 3 640.0 706.206879 640.000002 160.000000 + 4 768.0 722.823517 664.216187 162.754967 + .. ... ... ... ... + 93 12160.0 814.058574 406.179533 198.733401 + 94 12288.0 814.111783 415.661740 198.995960 + 95 12416.0 814.163950 412.149375 198.556711 + 96 12544.0 814.214963 412.971190 198.815254 + 97 12672.0 814.265046 412.097543 198.873965 + + [98 rows x 4 columns] + + + + +.. GENERATED FROM PYTHON SOURCE LINES 187-192 + +In the above plot, we can see that: + + - Triton is 4x faster than the Torch JIT. This confirms our suspicions that the Torch JIT does not do any fusion here. + - Triton is noticeably faster than :code:`torch.softmax` -- in addition to being **easier to read, understand and maintain**. + Note however that the PyTorch `softmax` operation is more general and will works on tensors of any shape. + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 3 minutes 22.066 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_02-fused-softmax.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 02-fused-softmax.py <02-fused-softmax.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 02-fused-softmax.ipynb <02-fused-softmax.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt b/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt new file mode 100644 index 000000000..0673f8bf1 --- /dev/null +++ b/master/_sources/getting-started/tutorials/03-matrix-multiplication.rst.txt @@ -0,0 +1,529 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/03-matrix-multiplication.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_03-matrix-multiplication.py: + + +Matrix Multiplication +====================== +In this tutorial, you will write a 25-lines high-performance FP16 matrix multiplication +kernel that achieves performance on par with cuBLAS. +You will specifically learn about: + +- Block-level matrix multiplications +- Multi-dimensional pointer arithmetic +- Program re-ordering for improved L2 cache hit rate +- Automatic performance tuning + +.. GENERATED FROM PYTHON SOURCE LINES 15-42 + +Motivations +------------- +Matrix multiplications are a key building block of most modern high-performance computing systems. +They are notoriously hard to optimize, hence their implementation is generally done by +hardware vendors themselves as part of so-called "kernel libraries" (e.g., cuBLAS). +Unfortunately, these libraries are often proprietary and cannot be easily customized +to accomodate the needs of modern deep learning workloads (e.g., fused activation functions). +In this tutorial, you will learn how to implement efficient matrix multiplications by +yourself with Triton, in a way that is easy to customize and extend. + +Roughly speaking, the kernel that we will write will implement the following blocked +algorithm to multiply a (M, K) by a (K, N) matrix: + + .. code-block:: python + + # do in parallel + for m in range(0, M, BLOCK_SIZE_M): + # do in parallel + for n in range(0, N, BLOCK_SIZE_N): + acc = zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=float32) + for k in range(0, K, BLOCK_SIZE_K): + a = A[m : m+BLOCK_SIZE_M, k : k+BLOCK_SIZE_K] + b = B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N] + acc += dot(a, b) + C[m : m+BLOCK_SIZE_M, n : n+BLOCK_SIZE_N] = acc; + +where each iteration of the doubly-nested for-loop is performed by a dedicated Triton program instance. + +.. GENERATED FROM PYTHON SOURCE LINES 44-137 + +Compute Kernel +---------------- + +The above algorithm is, actually, fairly straightforward to implement in Triton. +The main difficulty comes from the computation of the memory locations at which blocks +of :code:`A` and :code:`B` must be read in the inner loop. For that, we need +multi-dimensional pointer arithmetics. + +Pointer Arithmetics +~~~~~~~~~~~~~~~~~~~~ + +For a row-major 2D tensor :code:`X`, the memory location of :code:`X[i, j]` is given b +y :code:`&X[i, j] = X + i*stride_xi + j*stride_xj`. +Therefore, blocks of pointers for :code:`A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K]` and +:code:`B[k : k+BLOCK_SIZE_K, n : n+BLOCK_SIZE_N]` can be defined in pseudo-code as: + + .. code-block:: python + + &A[m : m+BLOCK_SIZE_M, k:k+BLOCK_SIZE_K] = a_ptr + (m : m+BLOCK_SIZE_M)[:, None]*A.stride(0) + (k : k+BLOCK_SIZE_K)[None, :]*A.stride(1); + &B[k : k+BLOCK_SIZE_K, n:n+BLOCK_SIZE_N] = b_ptr + (k : k+BLOCK_SIZE_K)[:, None]*B.stride(0) + (n : n+BLOCK_SIZE_N)[None, :]*B.stride(1); + +Which means that pointers for blocks of A and B can be initialized (i.e., :code:`k=0`) in Triton as: + + .. code-block:: python + + offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + offs_k = tl.arange(0, BLOCK_SIZE_K) + a_ptrs = a_ptr + (offs_am[:, None]*stride_am + offs_k [None, :]*stride_ak) + b_ptrs = b_ptr + (offs_k [:, None]*stride_bk + offs_bn[None, :]*stride_bn) + +And then updated in the inner loop as follows: + + .. code-block:: python + + pa += BLOCK_SIZE_K * stride_ak; + pb += BLOCK_SIZE_K * stride_bk; + + +L2 Cache Optimizations +~~~~~~~~~~~~~~~~~~~~~~~~ + +As mentioned above, each program instance computes a :code:`[BLOCK_SIZE_M, BLOCK_SIZE_N]` +block of :code:`C`. +It is important to remember that the order in which these blocks are computed does +matter, since it affects the L2 cache hit rate of our program. and unfortunately, a +a simple row-major ordering + + .. code-block:: Python + + pid = triton.program_id(0); + grid_m = (M + BLOCK_SIZE_M - 1) // BLOCK_SIZE_M; + grid_n = (N + BLOCK_SIZE_N - 1) // BLOCK_SIZE_N; + pid_m = pid / grid_n; + pid_n = pid % grid_n; + +is just not going to cut it. + +One possible solution is to launch blocks in an order that promotes data reuse. +This can be done by 'super-grouping' blocks in groups of :code:`GROUP_M` rows before +switching to the next column: + + .. code-block:: python + + # program ID + pid = tl.program_id(axis=0) + # number of program ids along the M axis + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + # number of programs ids along the N axis + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + # number of programs in group + num_pid_in_group = GROUP_SIZE_M * num_pid_n + # id of the group this program is in + group_id = pid // num_pid_in_group + # row-id of the first program in the group + first_pid_m = group_id * GROUP_SIZE_M + # if `num_pid_m` isn't divisible by `GROUP_SIZE_M`, the last group is smaller + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + # *within groups*, programs are ordered in a column-major order + # row-id of the program in the *launch grid* + pid_m = first_pid_m + (pid % group_size_m) + # col-id of the program in the *launch grid* + pid_n = (pid % num_pid_in_group) // group_size_m + +For example, in the following matmul where each matrix is 9 blocks by 9 blocks, +we can see that if we compute the output in row-major ordering, we need to load 90 +blocks into SRAM to compute the first 9 output blocks, but if we do it in grouped +ordering, we only need to load 54 blocks. + .. image:: grouped_vs_row_major_ordering.png + +In practice, this can improve the performance of our matrix multiplication kernel by +more than 10\% on some hardware architecture (e.g., 220 to 245 TFLOPS on A100). + + +.. GENERATED FROM PYTHON SOURCE LINES 139-142 + +Final Result +------------- + + +.. GENERATED FROM PYTHON SOURCE LINES 142-258 + +.. code-block:: default + + + import torch + + import triton + import triton.language as tl + + # % + # :code:`triton.jit`'ed functions can be auto-tuned by using the `triton.autotune` + # decorator, which consumes: + # - A list of :code:`triton.Config` objects that define different configurations of + # meta-parameters (e.g., BLOCK_SIZE_M) and compilation options (e.g., num_warps) to try + # - An autotuning *key* whose change in values will trigger evaluation of all the + # provided configs + + + @triton.autotune( + configs=[ + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8), + triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=3, num_warps=8), + triton.Config({'BLOCK_SIZE_M': 256, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 256, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 128, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 128, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=4, num_warps=4), + triton.Config({'BLOCK_SIZE_M': 64, 'BLOCK_SIZE_N': 32, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2), + triton.Config({'BLOCK_SIZE_M': 32, 'BLOCK_SIZE_N': 64, 'BLOCK_SIZE_K': 32, 'GROUP_SIZE_M': 8}, num_stages=5, num_warps=2), + ], + key=['M', 'N', 'K'], + ) + @triton.jit + def matmul_kernel( + # Pointers to matrices + a_ptr, b_ptr, c_ptr, + # Matrix dimensions + M, N, K, + # The stride variables represent how much to increase the ptr by when moving by 1 + # element in a particular dimension. E.g. stride_am is how much to increase a_ptr + # by to get the element one row down (A has M rows) + stride_am, stride_ak, + stride_bk, stride_bn, + stride_cm, stride_cn, + # Meta-parameters + BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr, BLOCK_SIZE_K: tl.constexpr, + GROUP_SIZE_M: tl.constexpr, + ACTIVATION: tl.constexpr, + ): + """Kernel for computing the matmul C = A x B. + A has shape (M, K), B has shape (K, N) and C has shape (M, N) + """ + # ----------------------------------------------------------- + # Map program ids `pid` to the block of C it should compute. + # This is done in a grouped ordering to promote L2 data reuse + # See above `L2 Cache Optimizations` section for details + pid = tl.program_id(axis=0) + num_pid_m = tl.cdiv(M, BLOCK_SIZE_M) + num_pid_n = tl.cdiv(N, BLOCK_SIZE_N) + num_pid_in_group = GROUP_SIZE_M * num_pid_n + group_id = pid // num_pid_in_group + first_pid_m = group_id * GROUP_SIZE_M + group_size_m = min(num_pid_m - first_pid_m, GROUP_SIZE_M) + pid_m = first_pid_m + (pid % group_size_m) + pid_n = (pid % num_pid_in_group) // group_size_m + + # ---------------------------------------------------------- + # Create pointers for the first blocks of A and B. + # We will advance this pointer as we move in the K direction + # and accumulate + # a_ptrs is a block of [BLOCK_SIZE_M, BLOCK_SIZE_K] pointers + # b_ptrs is a block of [BLOCK_SIZE_K, BLOCK_SIZE_n] pointers + # see above `Pointer Arithmetics` section for details + offs_am = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_bn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + offs_k = tl.arange(0, BLOCK_SIZE_K) + a_ptrs = a_ptr + (offs_am[:, None] * stride_am + offs_k[None, :] * stride_ak) + b_ptrs = b_ptr + (offs_k[:, None] * stride_bk + offs_bn[None, :] * stride_bn) + + # ----------------------------------------------------------- + # Iterate to compute a block of the C matrix + # We accumulate into a `[BLOCK_SIZE_M, BLOCK_SIZE_N]` block + # of fp32 values for higher accuracy. + # `accumulator` will be converted back to fp16 after the loop + accumulator = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + for k in range(0, K, BLOCK_SIZE_K): + # Note that for simplicity, we don't apply a mask here. + # This means that if K is not a multiple of BLOCK_SIZE_K, + # this will access out-of-bounds memory and produce an + # error or (worse!) incorrect results. + a = tl.load(a_ptrs) + b = tl.load(b_ptrs) + # We accumulate along the K dimension + accumulator += tl.dot(a, b) + # Advance the ptrs to the next K block + a_ptrs += BLOCK_SIZE_K * stride_ak + b_ptrs += BLOCK_SIZE_K * stride_bk + # you can fuse arbitrary activation functions here + # while the accumulator is still in FP32! + if ACTIVATION: + accumulator = ACTIVATION(accumulator) + c = accumulator.to(tl.float16) + + # ----------------------------------------------------------- + # Write back the block of the output matrix C + offs_cm = pid_m * BLOCK_SIZE_M + tl.arange(0, BLOCK_SIZE_M) + offs_cn = pid_n * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + c_ptrs = c_ptr + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :] + c_mask = (offs_cm[:, None] < M) & (offs_cn[None, :] < N) + tl.store(c_ptrs, c, mask=c_mask) + + + # we can fuse `leaky_relu` by providing it as an `ACTIVATION` meta-parameter in `_matmul` + @triton.jit + def leaky_relu(x): + return tl.where(x >= 0, x, 0.01 * x) + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 259-261 + +We can now create a convenience wrapper function that only takes two input tensors +and (1) checks any shape constraint; (2) allocates the output; (3) launches the above kernel + +.. GENERATED FROM PYTHON SOURCE LINES 261-290 + +.. code-block:: default + + + + def matmul(a, b, activation=None): + # checks constraints + assert a.shape[1] == b.shape[0], "incompatible dimensions" + assert a.is_contiguous(), "matrix A must be contiguous" + assert b.is_contiguous(), "matrix B must be contiguous" + M, K = a.shape + K, N = b.shape + assert ( + K % 32 == 0 + ), "We don't check memory-out-of-bounds with K so K must be divisible by BLOCK_SIZE_K" + # allocates output + c = torch.empty((M, N), device=a.device, dtype=a.dtype) + # 1D launch kernel where each block gets its own program. + grid = lambda META: ( + triton.cdiv(M, META['BLOCK_SIZE_M']) * triton.cdiv(N, META['BLOCK_SIZE_N']), + ) + matmul_kernel[grid]( + a, b, c, + M, N, K, + a.stride(0), a.stride(1), + b.stride(0), b.stride(1), + c.stride(0), c.stride(1), + ACTIVATION=activation, + ) + return c + + + + + + + + + +.. GENERATED FROM PYTHON SOURCE LINES 291-295 + +Unit Test +----------- + +We can test our custom matrix multiplication operation against a native torch implementation (i.e., cuBLAS) + +.. GENERATED FROM PYTHON SOURCE LINES 295-308 + +.. code-block:: default + + + torch.manual_seed(0) + a = torch.randn((512, 512), device='cuda', dtype=torch.float16) + b = torch.randn((512, 512), device='cuda', dtype=torch.float16) + triton_output = matmul(a, b, activation=None) + torch_output = torch.matmul(a, b) + print(f"triton_output={triton_output}") + print(f"torch_output={torch_output}") + if triton.testing.allclose(triton_output, torch_output): + print("✅ Triton and Torch match") + else: + print("❌ Triton and Torch differ") + + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + triton_output=tensor([[ 1.1045, -36.9688, 31.4688, ..., -11.3984, 24.4531, -32.3438], + [ 6.3555, -19.6094, 34.0938, ..., -5.8945, 5.2891, 6.8867], + [-32.0625, 5.9492, 15.3984, ..., -21.3906, -23.9844, -10.1328], + ..., + [ -5.7031, 7.4492, 8.2656, ..., -10.6953, -40.0000, 17.7500], + [ 25.5000, 24.3281, -8.4688, ..., -18.9375, 32.5312, -29.9219], + [ -5.3477, 4.9844, 11.8906, ..., 5.5898, 6.4023, -17.3125]], + device='cuda:0', dtype=torch.float16) + torch_output=tensor([[ 1.1045, -36.9688, 31.4688, ..., -11.3906, 24.4531, -32.3438], + [ 6.3516, -19.6094, 34.0938, ..., -5.8906, 5.2812, 6.8828], + [-32.0625, 5.9531, 15.3984, ..., -21.4062, -23.9844, -10.1328], + ..., + [ -5.7070, 7.4492, 8.2656, ..., -10.6953, -40.0000, 17.7500], + [ 25.5000, 24.3438, -8.4609, ..., -18.9375, 32.5312, -29.9219], + [ -5.3477, 4.9805, 11.8828, ..., 5.5859, 6.4023, -17.3125]], + device='cuda:0', dtype=torch.float16) + ✅ Triton and Torch match + + + + +.. GENERATED FROM PYTHON SOURCE LINES 309-315 + +Benchmark +-------------- + +Square Matrix Performance +~~~~~~~~~~~~~~~~~~~~~~~~~~ +We can now compare the performance of our kernel against that of cuBLAS. Here we focus on square matrices, but feel free to arrange this script as you wish to benchmark any other matrix shape. + +.. GENERATED FROM PYTHON SOURCE LINES 315-356 + +.. code-block:: default + + + + @triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['M', 'N', 'K'], # argument names to use as an x-axis for the plot + x_vals=[ + 128 * i for i in range(2, 33) + ], # different possible values for `x_name` + line_arg='provider', # argument name whose value corresponds to a different line in the plot + # possible values for `line_arg`` + line_vals=['cublas', 'cublas + relu', 'triton', 'triton + relu'], + # label name for the lines + line_names=["cuBLAS", "cuBLAS (+ torch.nn.LeakyReLU)", "Triton", "Triton (+ LeakyReLU)"], + # line styles + styles=[('green', '-'), ('green', '--'), ('blue', '-'), ('blue', '--')], + ylabel="TFLOPS", # label name for the y-axis + plot_name="matmul-performance", # name for the plot. Used also as a file name for saving the plot. + args={}, + ) + ) + def benchmark(M, N, K, provider): + a = torch.randn((M, K), device='cuda', dtype=torch.float16) + b = torch.randn((K, N), device='cuda', dtype=torch.float16) + if provider == 'cublas': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: torch.matmul(a, b)) + if provider == 'triton': + ms, min_ms, max_ms = triton.testing.do_bench(lambda: matmul(a, b)) + if provider == 'cublas + relu': + torch_relu = torch.nn.ReLU(inplace=True) + ms, min_ms, max_ms = triton.testing.do_bench( + lambda: torch_relu(torch.matmul(a, b)) + ) + if provider == 'triton + relu': + ms, min_ms, max_ms = triton.testing.do_bench( + lambda: matmul(a, b, activation=leaky_relu) + ) + perf = lambda ms: 2 * M * N * K * 1e-12 / (ms * 1e-3) + return perf(ms), perf(max_ms), perf(min_ms) + + + benchmark.run(show_plots=True, print_data=True) + + + +.. image:: /getting-started/tutorials/images/sphx_glr_03-matrix-multiplication_001.png + :alt: 03 matrix multiplication + :class: sphx-glr-single-img + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + matmul-performance: + M cuBLAS ... Triton Triton (+ LeakyReLU) + 0 256.0 2.730667 ... 2.978909 2.978909 + 1 384.0 7.372800 ... 8.507077 7.899428 + 2 512.0 14.563555 ... 16.384000 16.384000 + 3 640.0 22.260869 ... 24.380953 24.380953 + 4 768.0 32.768000 ... 34.028308 34.028308 + 5 896.0 39.025776 ... 39.025776 39.025776 + 6 1024.0 49.932191 ... 52.428801 52.428801 + 7 1152.0 45.242181 ... 46.656000 46.656000 + 8 1280.0 51.200001 ... 56.888887 56.888887 + 9 1408.0 64.138541 ... 67.305878 66.485074 + 10 1536.0 80.430545 ... 79.526831 78.643199 + 11 1664.0 62.929456 ... 62.492442 62.061463 + 12 1792.0 72.512412 ... 71.588687 72.047592 + 13 1920.0 69.467336 ... 70.172588 70.172588 + 14 2048.0 73.262953 ... 76.608294 76.608294 + 15 2176.0 83.500614 ... 85.998493 85.998493 + 16 2304.0 68.446623 ... 76.563695 76.319081 + 17 2432.0 71.305746 ... 74.521127 85.134737 + 18 2560.0 78.019048 ... 80.908642 81.108913 + 19 2688.0 82.823267 ... 89.888756 89.464755 + 20 2816.0 83.233226 ... 82.916747 82.759409 + 21 2944.0 81.967162 ... 82.509987 82.237674 + 22 3072.0 82.181572 ... 88.197981 87.651868 + 23 3200.0 84.099871 ... 93.567248 94.674553 + 24 3328.0 79.901550 ... 84.945483 84.496824 + 25 3456.0 81.600781 ... 91.511426 84.775569 + 26 3584.0 83.798127 ... 86.542919 95.148565 + 27 3712.0 81.615477 ... 88.640059 82.017526 + 28 3840.0 84.744825 ... 91.777595 85.399230 + 29 3968.0 92.024087 ... 84.183469 89.558851 + 30 4096.0 86.424811 ... 87.438257 91.992956 + + [31 rows x 5 columns] + + + + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 6 minutes 4.559 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_03-matrix-multiplication.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 03-matrix-multiplication.py <03-matrix-multiplication.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 03-matrix-multiplication.ipynb <03-matrix-multiplication.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt b/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt new file mode 100644 index 000000000..edf37f86f --- /dev/null +++ b/master/_sources/getting-started/tutorials/04-low-memory-dropout.rst.txt @@ -0,0 +1,271 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/04-low-memory-dropout.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_04-low-memory-dropout.py: + + +Low-Memory Dropout +================= + +In this tutorial, you will write a memory-efficient implementation of dropout whose state +will be composed of a single int32 seed. This differs from more traditional implementations of dropout, +whose state is generally composed of a bit mask tensor of the same shape as the input. You will learn about: + +- The limitations of naive implementations of Dropout with PyTorch +- Parallel pseudo-random number generation in Triton + +.. GENERATED FROM PYTHON SOURCE LINES 14-29 + +Baseline +------------- +The *dropout* operator was first introduced in [SRIVASTAVA2014]_ as a way to improve the performance +of deep neural networks in low-data regime (i.e. regularization). + +It takes a vector as input and produces a vector of the same shape as output. Each scalar in the +output has a probability :math:`p` of being changed to zero and otherwise it is copied from the input. +This forces the network to perform well even when only :math:`1 - p` scalars from the input are available. + +At evaluation time we want to use the full power of the network so we set :math:`p=0`. Naively this would +increase the norm of the output (which can be a bad thing, e.g. it can lead to artificial decrease +in the output softmax temperature). To prevent this we multiply the output by :math:`\frac{1}{1 - p}`, which +keeps the norm consistent regardless of the dropout probability. + +Let's first take a look at the baseline implementation. + +.. GENERATED FROM PYTHON SOURCE LINES 29-82 + +.. code-block:: default + + + + import tabulate + import torch + + import triton + import triton.language as tl + + + @triton.jit + def _dropout( + x_ptr, # pointer to the input + x_keep_ptr, # pointer to a mask of 0s and 1s + output_ptr, # pointer to the output + n_elements, # number of elements in the `x` tensor + p, # probability that an element of `x` is changed to zero + BLOCK_SIZE: tl.constexpr, + ): + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + mask = offsets < n_elements + # Load data + x = tl.load(x_ptr + offsets, mask=mask) + x_keep = tl.load(x_keep_ptr + offsets, mask=mask) + # The line below is the crucial part, described in the paragraph above! + output = tl.where(x_keep, x / (1 - p), 0.0) + # Write-back output + tl.store(output_ptr + offsets, output, mask=mask) + + + def dropout(x, x_keep, p): + output = torch.empty_like(x) + assert x.is_contiguous() + n_elements = x.numel() + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + _dropout[grid](x, x_keep, output, n_elements, p, BLOCK_SIZE=1024) + return output + + + # Input tensor + x = torch.randn(size=(10,)).cuda() + # Dropout mask + p = 0.5 + x_keep = (torch.rand(size=(10,)) > p).to(torch.int32).cuda() + # + output = dropout(x, x_keep=x_keep, p=p) + print(tabulate.tabulate([ + ["input"] + x.tolist(), + ["keep mask"] + x_keep.tolist(), + ["output"] + output.tolist() + ])) + + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + --------- ------- --------- -------- -------- -------- -------- -------- -------- --------- --------- + input 1.541 -0.293429 -2.17879 0.568431 -1.08452 -1.3986 0.403347 0.838026 -0.719258 -0.403344 + keep mask 1 1 0 1 0 1 1 0 0 0 + output 3.08199 -0.586858 0 1.13686 0 -2.79719 0.806694 0 0 0 + --------- ------- --------- -------- -------- -------- -------- -------- -------- --------- --------- + + + + +.. GENERATED FROM PYTHON SOURCE LINES 83-101 + +Seeded dropout +------------- +Above implementation of dropout works fine, but it can be a bit awkward to deal with. Firstly +we need to store the dropout mask for backpropagation. Secondly, dropout state management can get +very tricky when using recompute/checkpointing (e.g. see all the notes about `preserve_rng_state` in +https://pytorch.org/docs/1.9.0/checkpoint.html). In this tutorial we'll describe an alternative implementation +that (1) has a smaller memory footprint; (2) requires less data movement; and (3) simplifies the management +of persisting randomness across multiple invocations of the kernel. + +Pseudorandom number generation in Triton is simple! In this tutorial we will use the +:code:`triton.language.rand` function which generates a block of uniformly distributed :code:`float32` +values in [0, 1), given a seed and a block of :code:`int32` offsets. But if you need it, Triton also provides +other :ref:`random number generation strategies `. + +.. note:: + Triton's implementation of PRNG is based on the Philox algorithm (described on [SALMON2011]_). + +Let's put it all together. + +.. GENERATED FROM PYTHON SOURCE LINES 101-149 + +.. code-block:: default + + + + @triton.jit + def _seeded_dropout( + x_ptr, + output_ptr, + n_elements, + p, + seed, + BLOCK_SIZE: tl.constexpr, + ): + # compute memory offsets of elements handled by this instance + pid = tl.program_id(axis=0) + block_start = pid * BLOCK_SIZE + offsets = block_start + tl.arange(0, BLOCK_SIZE) + # load data from x + mask = offsets < n_elements + x = tl.load(x_ptr + offsets, mask=mask) + # randomly prune it + random = tl.rand(seed, offsets) + x_keep = random > p + # write-back + output = tl.where(x_keep, x / (1 - p), 0.0) + tl.store(output_ptr + offsets, output, mask=mask) + + + def seeded_dropout(x, p, seed): + output = torch.empty_like(x) + assert x.is_contiguous() + n_elements = x.numel() + grid = lambda meta: (triton.cdiv(n_elements, meta['BLOCK_SIZE']),) + _seeded_dropout[grid](x, output, n_elements, p, seed, BLOCK_SIZE=1024) + return output + + + x = torch.randn(size=(10,)).cuda() + # Compare this to the baseline - dropout mask is never instantiated! + output = seeded_dropout(x, p=0.5, seed=123) + output2 = seeded_dropout(x, p=0.5, seed=123) + output3 = seeded_dropout(x, p=0.5, seed=512) + + print(tabulate.tabulate([ + ["input"] + x.tolist(), + ["output (seed = 123)"] + output.tolist(), + ["output (seed = 123)"] + output2.tolist(), + ["output (seed = 512)"] + output3.tolist() + ])) + + + + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + ------------------- --------- -------- -------- ------- -------- -------- --------- --------- --------- --------- + input -0.952835 0.371721 0.408716 1.42142 0.149397 -0.67086 -0.214186 -0.431969 -0.707878 -0.106434 + output (seed = 123) 0 0.743443 0 0 0 -1.34172 0 0 -1.41576 -0.212868 + output (seed = 123) 0 0.743443 0 0 0 -1.34172 0 0 -1.41576 -0.212868 + output (seed = 512) 0 0 0.817432 2.84284 0 -1.34172 -0.428372 0 0 0 + ------------------- --------- -------- -------- ------- -------- -------- --------- --------- --------- --------- + + + + +.. GENERATED FROM PYTHON SOURCE LINES 150-153 + +Et Voilà! We have a triton kernel that applies the same dropout mask provided the seed is the same! +If you'd like explore further applications of pseudorandomness in GPU programming, we encourage you +to explore the `triton/language/random` folder! + +.. GENERATED FROM PYTHON SOURCE LINES 155-160 + +Exercises +------------- +1. Extend the kernel to operate over a matrix and use a vector of seeds - one per row. +2. Add support for striding. +3. (challenge) Implement a kernel for sparse Johnson-Lindenstrauss transform which generates the projection matrix one the fly each time using a seed. + +.. GENERATED FROM PYTHON SOURCE LINES 162-167 + +References +-------------- + +.. [SALMON2011] John K. Salmon, Mark A. Moraes, Ron O. Dror, and David E. Shaw, "Parallel Random Numbers: As Easy as 1, 2, 3", 2011 +.. [SRIVASTAVA2014] Nitish Srivastava and Geoffrey Hinton and Alex Krizhevsky and Ilya Sutskever and Ruslan Salakhutdinov, "Dropout: A Simple Way to Prevent Neural Networks from Overfitting", JMLR 2014 + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 0 minutes 0.480 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_04-low-memory-dropout.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 04-low-memory-dropout.py <04-low-memory-dropout.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 04-low-memory-dropout.ipynb <04-low-memory-dropout.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt b/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt new file mode 100644 index 000000000..28e5d273d --- /dev/null +++ b/master/_sources/getting-started/tutorials/05-layer-norm.rst.txt @@ -0,0 +1,370 @@ + +.. DO NOT EDIT. +.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. +.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: +.. "getting-started/tutorials/05-layer-norm.py" +.. LINE NUMBERS ARE GIVEN BELOW. + +.. only:: html + + .. note:: + :class: sphx-glr-download-link-note + + Click :ref:`here ` + to download the full example code + +.. rst-class:: sphx-glr-example-title + +.. _sphx_glr_getting-started_tutorials_05-layer-norm.py: + + +Layer Normalization +==================== + +.. GENERATED FROM PYTHON SOURCE LINES 5-262 + + + +.. image:: /getting-started/tutorials/images/sphx_glr_05-layer-norm_001.png + :alt: 05 layer norm + :class: sphx-glr-single-img + + +.. rst-class:: sphx-glr-script-out + + Out: + + .. code-block:: none + + layer-norm-backward: + N Triton Torch Apex + 0 1024.0 307.200008 98.303995 307.200008 + 1 1536.0 347.773587 134.050910 341.333333 + 2 2048.0 420.102553 161.684218 325.509933 + 3 2560.0 458.507457 181.238943 326.808501 + 4 3072.0 511.999982 191.999993 317.793096 + 5 3584.0 547.872604 208.271186 310.527060 + 6 4096.0 564.965515 220.412561 294.323343 + 7 4608.0 504.986315 232.825259 290.267724 + 8 5120.0 527.381977 242.845844 287.775181 + 9 5632.0 542.843364 243.545956 288.820505 + 10 6144.0 546.133354 248.661056 285.767458 + 11 6656.0 532.479975 256.000009 285.767438 + 12 7168.0 507.469040 260.260201 286.242939 + 13 7680.0 479.999983 262.564106 279.272719 + 14 8192.0 462.607053 267.130429 284.526763 + 15 8704.0 417.791980 267.815384 284.599455 + 16 9216.0 431.157889 272.394084 288.751954 + 17 9728.0 438.857162 280.278512 290.027323 + 18 10240.0 449.287041 286.433562 290.153487 + 19 10752.0 427.231788 246.935876 290.594591 + 20 11264.0 426.397479 245.760001 286.676558 + 21 11776.0 423.089806 249.888595 288.981596 + 22 12288.0 419.504980 254.673582 294.323369 + 23 12800.0 414.016170 253.674644 288.180121 + 24 13312.0 411.181478 252.959629 289.916513 + 25 13824.0 404.112047 257.190689 292.056329 + 26 14336.0 393.215988 254.485198 286.719986 + 27 14848.0 385.245405 257.665934 289.012175 + 28 15360.0 373.495460 257.970599 286.211174 + 29 15872.0 371.637071 261.626369 289.899545 + + + + + + +| + +.. code-block:: default + + + import torch + + import triton + import triton.language as tl + + try: + # This is https://github.com/NVIDIA/apex, NOT the apex on PyPi, so it + # should not be added to extras_require in setup.py. + import apex + HAS_APEX = True + except ModuleNotFoundError: + HAS_APEX = False + + + # Forward Pass + @triton.jit + def _layer_norm_fwd_fused(X, Y, W, B, M, V, stride, N, eps, + BLOCK_SIZE: tl.constexpr): + # position of elements processed by this program + row = tl.program_id(0) + cols = tl.arange(0, BLOCK_SIZE) + mask = cols < N + # offset data pointers to start at the row of interest + X += row * stride + Y += row * stride + # load data and cast to float32 + x = tl.load(X + cols, mask=mask, other=0).to(tl.float32) + # compute mean + mean = tl.sum(x, axis=0) / N + # compute std + xmean = tl.where(mask, x - mean, 0.) + var = tl.sum(xmean * xmean, axis=0) / N + rstd = 1 / tl.sqrt(var + eps) + xhat = xmean * rstd + # write-back mean/rstd + tl.store(M + row, mean) + tl.store(V + row, rstd) + # multiply by weight and add bias + w = tl.load(W + cols, mask=mask) + b = tl.load(B + cols, mask=mask) + y = xhat * w + b + # write-back + tl.store(Y + cols, y, mask=mask) + + + # Backward pass (DX + partial DW + partial DB) + @triton.jit + def _layer_norm_bwd_dx_fused(DX, DY, DW, DB, X, W, B, M, V, Lock, stride, N, eps, + GROUP_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr): + # position of elements processed by this program + row = tl.program_id(0) + cols = tl.arange(0, BLOCK_SIZE_N) + mask = cols < N + # offset data pointers to start at the row of interest + X += row * stride + DY += row * stride + DX += row * stride + # offset locks and weight/bias gradient pointer + # each kernel instance accumulates partial sums for + # DW and DB into one of GROUP_SIZE_M independent buffers + # these buffers stay in the L2, which allow this kernel + # to be fast + lock_id = row % GROUP_SIZE_M + Lock += lock_id + Count = Lock + GROUP_SIZE_M + DW = DW + lock_id * N + cols + DB = DB + lock_id * N + cols + # load data to SRAM + x = tl.load(X + cols, mask=mask, other=0).to(tl.float32) + dy = tl.load(DY + cols, mask=mask, other=0).to(tl.float32) + w = tl.load(W + cols, mask=mask).to(tl.float32) + mean = tl.load(M + row) + rstd = tl.load(V + row) + # compute dx + xhat = (x - mean) * rstd + wdy = w * dy + xhat = tl.where(mask, xhat, 0.) + wdy = tl.where(mask, wdy, 0.) + mean1 = tl.sum(xhat * wdy, axis=0) / N + mean2 = tl.sum(wdy, axis=0) / N + dx = (wdy - (xhat * mean1 + mean2)) * rstd + # write-back dx + tl.store(DX + cols, dx, mask=mask) + # accumulate partial sums for dw/db + partial_dw = (dy * xhat).to(w.dtype) + partial_db = (dy).to(w.dtype) + while tl.atomic_cas(Lock, 0, 1) == 1: + pass + count = tl.load(Count) + # first store doesn't accumulate + if count == 0: + tl.atomic_xchg(Count, 1) + else: + partial_dw += tl.load(DW, mask=mask) + partial_db += tl.load(DB, mask=mask) + tl.store(DW, partial_dw, mask=mask) + tl.store(DB, partial_db, mask=mask) + # release lock + tl.atomic_xchg(Lock, 0) + + # Backward pass (total DW + total DB) + + + @triton.jit + def _layer_norm_bwd_dwdb(DW, DB, FINAL_DW, FINAL_DB, M, N, + BLOCK_SIZE_M: tl.constexpr, BLOCK_SIZE_N: tl.constexpr): + pid = tl.program_id(0) + cols = pid * BLOCK_SIZE_N + tl.arange(0, BLOCK_SIZE_N) + dw = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + db = tl.zeros((BLOCK_SIZE_M, BLOCK_SIZE_N), dtype=tl.float32) + for i in range(0, M, BLOCK_SIZE_M): + rows = i + tl.arange(0, BLOCK_SIZE_M) + mask = (rows[:, None] < M) & (cols[None, :] < N) + offs = rows[:, None] * N + cols[None, :] + dw += tl.load(DW + offs, mask=mask, other=0.) + db += tl.load(DB + offs, mask=mask, other=0.) + sum_dw = tl.sum(dw, axis=0) + sum_db = tl.sum(db, axis=0) + tl.store(FINAL_DW + cols, sum_dw, mask=cols < N) + tl.store(FINAL_DB + cols, sum_db, mask=cols < N) + + + class LayerNorm(torch.autograd.Function): + + @staticmethod + def forward(ctx, x, normalized_shape, weight, bias, eps): + # allocate output + y = torch.empty_like(x) + # reshape input data into 2D tensor + x_arg = x.reshape(-1, x.shape[-1]) + M, N = x_arg.shape + mean = torch.empty((M, ), dtype=torch.float32, device='cuda') + rstd = torch.empty((M, ), dtype=torch.float32, device='cuda') + # Less than 64KB per feature: enqueue fused kernel + MAX_FUSED_SIZE = 65536 // x.element_size() + BLOCK_SIZE = min(MAX_FUSED_SIZE, triton.next_power_of_2(N)) + if N > BLOCK_SIZE: + raise RuntimeError("This layer norm doesn't support feature dim >= 64KB.") + # heuristics for number of warps + num_warps = min(max(BLOCK_SIZE // 256, 1), 8) + # enqueue kernel + _layer_norm_fwd_fused[(M,)](x_arg, y, weight, bias, mean, rstd, + x_arg.stride(0), N, eps, + BLOCK_SIZE=BLOCK_SIZE, num_warps=num_warps) + ctx.save_for_backward(x, weight, bias, mean, rstd) + ctx.BLOCK_SIZE = BLOCK_SIZE + ctx.num_warps = num_warps + ctx.eps = eps + return y + + @staticmethod + def backward(ctx, dy): + x, w, b, m, v = ctx.saved_tensors + # heuristics for amount of parallel reduction stream for DG/DB + N = w.shape[0] + GROUP_SIZE_M = 64 + if N <= 8192: GROUP_SIZE_M = 96 + if N <= 4096: GROUP_SIZE_M = 128 + if N <= 1024: GROUP_SIZE_M = 256 + # allocate output + locks = torch.zeros(2 * GROUP_SIZE_M, dtype=torch.int32, device='cuda') + _dw = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device) + _db = torch.empty((GROUP_SIZE_M, w.shape[0]), dtype=x.dtype, device=w.device) + dw = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device) + db = torch.empty((w.shape[0],), dtype=w.dtype, device=w.device) + dx = torch.empty_like(dy) + # enqueue kernel using forward pass heuristics + # also compute partial sums for DW and DB + x_arg = x.reshape(-1, x.shape[-1]) + M, N = x_arg.shape + _layer_norm_bwd_dx_fused[(M,)](dx, dy, _dw, _db, x, w, b, m, v, locks, + x_arg.stride(0), N, ctx.eps, + BLOCK_SIZE_N=ctx.BLOCK_SIZE, + GROUP_SIZE_M=GROUP_SIZE_M, + num_warps=ctx.num_warps) + grid = lambda meta: [triton.cdiv(N, meta['BLOCK_SIZE_N'])] + # accumulate partial sums in separate kernel + _layer_norm_bwd_dwdb[grid](_dw, _db, dw, db, GROUP_SIZE_M, N, + BLOCK_SIZE_M=32, + BLOCK_SIZE_N=128) + return dx, None, dw, db, None + + + layer_norm = LayerNorm.apply + + + def test_layer_norm(M, N, dtype, eps=1e-5, device='cuda'): + # create data + x_shape = (M, N) + w_shape = (x_shape[-1], ) + weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda') + dy = .1 * torch.randn_like(x) + x.requires_grad_(True) + # forward pass + y_tri = layer_norm(x, w_shape, weight, bias, eps) + y_ref = torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps).to(dtype) + # backward pass (triton) + y_tri.backward(dy, retain_graph=True) + dx_tri, dw_tri, db_tri = [_.grad.clone() for _ in [x, weight, bias]] + x.grad, weight.grad, bias.grad = None, None, None + # backward pass (torch) + y_ref.backward(dy, retain_graph=True) + dx_ref, dw_ref, db_ref = [_.grad.clone() for _ in [x, weight, bias]] + # compare + triton.testing.assert_almost_equal(y_tri, y_ref) + triton.testing.assert_almost_equal(dx_tri, dx_ref) + triton.testing.assert_almost_equal(db_tri, db_ref, decimal=1) + triton.testing.assert_almost_equal(dw_tri, dw_ref, decimal=1) + + + @triton.testing.perf_report( + triton.testing.Benchmark( + x_names=['N'], + x_vals=[512 * i for i in range(2, 32)], + line_arg='provider', + line_vals=['triton', 'torch'] + (['apex'] if HAS_APEX else []), + line_names=['Triton', 'Torch'] + (['Apex'] if HAS_APEX else []), + styles=[('blue', '-'), ('green', '-'), ('orange', '-')], + ylabel='GB/s', + plot_name='layer-norm-backward', + args={'M': 4096, 'dtype': torch.float16, 'mode': 'backward'} + ) + ) + def bench_layer_norm(M, N, dtype, provider, mode='backward', eps=1e-5, device='cuda'): + # create data + x_shape = (M, N) + w_shape = (x_shape[-1], ) + weight = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + bias = torch.rand(w_shape, dtype=dtype, device='cuda', requires_grad=True) + x = -2.3 + 0.5 * torch.randn(x_shape, dtype=dtype, device='cuda') + dy = .1 * torch.randn_like(x) + x.requires_grad_(True) + # utility functions + if provider == 'triton': + y_fwd = lambda: layer_norm(x, w_shape, weight, bias, eps) + if provider == 'torch': + y_fwd = lambda: torch.nn.functional.layer_norm(x, w_shape, weight, bias, eps) + if provider == 'apex': + apex_layer_norm = apex.normalization.FusedLayerNorm(w_shape).to(x.device).to(x.dtype) + y_fwd = lambda: apex_layer_norm(x) + # forward pass + if mode == 'forward': + gbps = lambda ms: 2 * x.numel() * x.element_size() / ms * 1e-6 + ms, min_ms, max_ms = triton.testing.do_bench(y_fwd, rep=500) + # backward pass + if mode == 'backward': + gbps = lambda ms: 3 * x.numel() * x.element_size() / ms * 1e-6 + y = y_fwd() + ms, min_ms, max_ms = triton.testing.do_bench(lambda: y.backward(dy, retain_graph=True), + grad_to_none=[x], rep=500) + return gbps(ms), gbps(max_ms), gbps(min_ms) + + + bench_layer_norm.run(save_path='.', print_data=True) + + +.. rst-class:: sphx-glr-timing + + **Total running time of the script:** ( 2 minutes 12.003 seconds) + + +.. _sphx_glr_download_getting-started_tutorials_05-layer-norm.py: + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-example + + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download Python source code: 05-layer-norm.py <05-layer-norm.py>` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download Jupyter notebook: 05-layer-norm.ipynb <05-layer-norm.ipynb>` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/index.rst.txt b/master/_sources/getting-started/tutorials/index.rst.txt new file mode 100644 index 000000000..c8a39cdaf --- /dev/null +++ b/master/_sources/getting-started/tutorials/index.rst.txt @@ -0,0 +1,152 @@ +:orphan: + + + +.. _sphx_glr_getting-started_tutorials: + +Tutorials +================== + +Below is a gallery of tutorials for writing various basic operations with Triton. It is recommended that you read through the tutorials in order, starting with the simplest one. + +To install the dependencies for the tutorials: + +.. code-block:: bash + + cd triton + pip install -e './python[tutorials]' + + + +.. raw:: html + +

    + + +.. toctree:: + :hidden: + + /getting-started/tutorials/01-vector-add + +.. raw:: html + +
    + +.. only:: html + + .. figure:: /getting-started/tutorials/images/thumb/sphx_glr_02-fused-softmax_thumb.png + :alt: Fused Softmax + + :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` + +.. raw:: html + +
    + + +.. toctree:: + :hidden: + + /getting-started/tutorials/02-fused-softmax + +.. raw:: html + +
    + +.. only:: html + + .. figure:: /getting-started/tutorials/images/thumb/sphx_glr_03-matrix-multiplication_thumb.png + :alt: Matrix Multiplication + + :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` + +.. raw:: html + +
    + + +.. toctree:: + :hidden: + + /getting-started/tutorials/03-matrix-multiplication + +.. raw:: html + +
    + +.. only:: html + + .. figure:: /getting-started/tutorials/images/thumb/sphx_glr_04-low-memory-dropout_thumb.png + :alt: Low-Memory Dropout + + :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` + +.. raw:: html + +
    + + +.. toctree:: + :hidden: + + /getting-started/tutorials/04-low-memory-dropout + +.. raw:: html + +
    + +.. only:: html + + .. figure:: /getting-started/tutorials/images/thumb/sphx_glr_05-layer-norm_thumb.png + :alt: Layer Normalization + + :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` + +.. raw:: html + +
    + + +.. toctree:: + :hidden: + + /getting-started/tutorials/05-layer-norm +.. raw:: html + +
    + + + +.. only :: html + + .. container:: sphx-glr-footer + :class: sphx-glr-footer-gallery + + + .. container:: sphx-glr-download sphx-glr-download-python + + :download:`Download all examples in Python source code: tutorials_python.zip ` + + + + .. container:: sphx-glr-download sphx-glr-download-jupyter + + :download:`Download all examples in Jupyter notebooks: tutorials_jupyter.zip ` + + +.. only:: html + + .. rst-class:: sphx-glr-signature + + `Gallery generated by Sphinx-Gallery `_ diff --git a/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt b/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt new file mode 100644 index 000000000..7319b7b50 --- /dev/null +++ b/master/_sources/getting-started/tutorials/sg_execution_times.rst.txt @@ -0,0 +1,20 @@ + +:orphan: + +.. _sphx_glr_getting-started_tutorials_sg_execution_times: + +Computation times +================= +**13:21.645** total execution time for **getting-started_tutorials** files: + ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_03-matrix-multiplication.py` (``03-matrix-multiplication.py``) | 06:04.559 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_02-fused-softmax.py` (``02-fused-softmax.py``) | 03:22.066 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_05-layer-norm.py` (``05-layer-norm.py``) | 02:12.003 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_01-vector-add.py` (``01-vector-add.py``) | 01:42.537 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ +| :ref:`sphx_glr_getting-started_tutorials_04-low-memory-dropout.py` (``04-low-memory-dropout.py``) | 00:00.480 | 0.0 MB | ++---------------------------------------------------------------------------------------------------------+-----------+--------+ diff --git a/master/_static/binder_badge_logo.svg b/master/_static/binder_badge_logo.svg new file mode 100644 index 000000000..327f6b639 --- /dev/null +++ b/master/_static/binder_badge_logo.svg @@ -0,0 +1 @@ + launchlaunchbinderbinder \ No newline at end of file diff --git a/master/_static/broken_example.png b/master/_static/broken_example.png new file mode 100644 index 0000000000000000000000000000000000000000..4fea24e7df4781c2c32c8d7995511ac89e953145 GIT binary patch literal 21404 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 HW8D7$6^1w` literal 0 HcmV?d00001 diff --git a/master/genindex.html b/master/genindex.html index 93e50074b..be440e689 100644 --- a/master/genindex.html +++ b/master/genindex.html @@ -15,6 +15,10 @@ + + + + @@ -89,6 +93,7 @@

    Getting Started

    Python API

      diff --git a/master/getting-started/installation.html b/master/getting-started/installation.html index 81d637580..7b7428ca0 100644 --- a/master/getting-started/installation.html +++ b/master/getting-started/installation.html @@ -15,6 +15,10 @@ + + + + @@ -42,7 +46,7 @@ - + @@ -98,6 +102,7 @@
  • +
  • Tutorials
  • Python API