From 2b025df19942e990050ef344784662fe77fd7309 Mon Sep 17 00:00:00 2001 From: Lance Ball Date: Wed, 12 May 2021 14:37:21 -0400 Subject: [PATCH] src!: revert bump to go 1.16 and template changes (#340) * Revert "src: rename boson import 'fn'" This reverts commit c0a6f561c0b19d0a44503d0f058956a1d850db14. * Revert "src: all test dirs set to 0700" This reverts commit 99f01220c2310d5915b383583b4141024140b437. * Revert "src: better error when custom template not found" This reverts commit 6673395834d920fd8f08825d63b0a360559bed44. * Revert "src: better errors when custom runtime not found" This reverts commit a31a6f67a1c537cd80f88db306b7a8e649e1b40e. * Revert "build: create separate target for templates.tgz" This reverts commit 11164bf8d9cb718ae8252fa65baae73ad2202e02. * Revert "src: use consistent separators for fs.FS instances" This reverts commit 4db07b412f0a7c97ddfcfcbe4271bdce8deb45f3. * Revert "src: update go event template dependencies" This reverts commit 3bfc13380fa5d6f18c792a43afd27f2b78b18ead. * Revert "src: tarfs assumes forward slashes internally" This reverts commit 6cc0e67b1ccb5ed8ed54ff447efcee0a6aa71987. * Revert "feat: support windows paths in embedded templates FS" This reverts commit c2b216857bcc1e18555a2e41fa3ad675e75cf1c3. * Revert "feat: positive error when runtimme or template unrecognized" This reverts commit acc56b0900113ca68270bd3ac68310864e42b5a7. * Revert "fix: lint issues" This reverts commit 895872aee76b44be739bd0eafb9f2cdcdc137494. * Revert "ci: go 1.16 compatiblity updates" This reverts commit 1e3959c045793875ac107012439ecae650d0d467. * Revert "feat: preserve file modes using in-memory tar FS" This reverts commit 7dc772ec62536fc77b84b16550bf7d2a1f0b6a09. * Revert "feat: create templates archive on go generate" This reverts commit 63b7f1147176ce5cfd21c3b74094fcc8154298df. * Revert "ci: remove pkger from ci" This reverts commit 876b0dd0f7266d7d19d27822aec578d90aa58be5. * Revert "src: remove pkger dependency and tidy" This reverts commit f006ab1e32d9734add81dad067b8cc37f1327534. * Revert "src: remove packaging artifact" This reverts commit 4d9d0a7b4e2bfe8ecbc384fc8eb0ec850d26720c. * Revert "src: remove pkger from make targets" This reverts commit e44c1ad74cfce7981c2bdd2f56e6fa1e816d8470. * Revert "src: replace pkger with embed.FS" This reverts commit 38874a4afd08fa0ec71eb455916450e373596eca. * Revert "src: update references to deprecated ioutil" This reverts commit 4025460f73513fbda96a869b2cbf27d255ec39be. * Revert "src: require go 1.16" This reverts commit 512d4c2580c05a4fc95eb778a09b44535cfc4955. * chore: update pkged.go Signed-off-by: Lance Ball --- .github/workflows/ci.yaml | 61 ++-- .github/workflows/pull_requests.yaml | 53 ++- .gitignore | 3 +- Makefile | 47 +-- buildpacks/builder.go | 4 +- client.go | 5 +- client_test.go | 249 ++++++-------- cmd/build.go | 12 +- cmd/completion_util.go | 6 +- cmd/create.go | 14 +- cmd/delete.go | 1 + cmd/deploy.go | 16 +- cmd/describe.go | 12 +- cmd/list.go | 10 +- cmd/root.go | 12 +- cmd/run.go | 10 +- config.go | 5 +- docker/pusher.go | 10 +- docker/runner.go | 4 +- docker/runner_test.go | 4 +- docs/guides/integrators_guide.md | 14 +- function.go | 5 +- generate.go | 77 ----- go.mod | 3 +- go.sum | 6 + knative/describer.go | 8 +- knative/lister.go | 6 +- mock/builder.go | 8 +- mock/deployer.go | 10 +- mock/lister.go | 8 +- mock/pusher.go | 8 +- mock/runner.go | 4 +- pkged.go | 12 + tarfs/tarfs.go | 224 ------------- tarfs/tarfs_test.go | 62 ---- tarfs/testdata/empty.tar | Bin 1024 -> 0 bytes tarfs/testdata/single.tar | Bin 1536 -> 0 bytes templates.go | 306 ++++++++---------- templates/README.md | 24 +- templates/go/events/go.sum | 118 ------- templates/go/http/go.sum | 86 ----- templates/test/http/rtAtplDefault.txt | 2 - templates/test/tpla/rtAtplA.txt | 2 - templates/test/tplb/executable.sh | 2 - templates/test/tplb/rtAtplB.txt | 2 - templates_test.go | 207 +++--------- .../customProvider/test/tpla/customtpl.txt | 3 - .../customProvider/test/tplb/executable.sh | 2 - .../boson-experimental}/node/json/index.js | 0 .../boson-experimental}/node/json/json.js | 0 .../boson-experimental}/quarkus/http/mvnw | 0 51 files changed, 527 insertions(+), 1220 deletions(-) delete mode 100644 generate.go create mode 100644 pkged.go delete mode 100644 tarfs/tarfs.go delete mode 100644 tarfs/tarfs_test.go delete mode 100644 tarfs/testdata/empty.tar delete mode 100644 tarfs/testdata/single.tar delete mode 100644 templates/go/events/go.sum delete mode 100644 templates/go/http/go.sum delete mode 100644 templates/test/http/rtAtplDefault.txt delete mode 100644 templates/test/tpla/rtAtplA.txt delete mode 100755 templates/test/tplb/executable.sh delete mode 100644 templates/test/tplb/rtAtplB.txt delete mode 100644 testdata/repositories/customProvider/test/tpla/customtpl.txt delete mode 100755 testdata/repositories/customProvider/test/tplb/executable.sh rename testdata/{repositories/customProvider => templates/boson-experimental}/node/json/index.js (100%) rename testdata/{repositories/customProvider => templates/boson-experimental}/node/json/json.js (100%) rename testdata/{repositories/customProvider => templates/boson-experimental}/quarkus/http/mvnw (100%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 207cd2d2..4d34e630 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -10,22 +10,38 @@ jobs: steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 + - name: Determine download URL for pkger + id: pkger-download-url + uses: actions/github-script@v2 with: - go-version: '^1.16' + result-encoding: string + script: | + return github.repos.getReleaseByTag({ + owner: "markbates", + repo: "pkger", + tag: "v0.17.1" + }).then(result => { + return result.data.assets + .filter(a => a.name.includes('Linux_x86')) + .map(a => a.browser_download_url)[0]; + }) + - name: Install pkger + run: | + curl -s -L -o pkger.tgz ${{ steps.pkger-download-url.outputs.result }} + tar xvzf pkger.tgz - name: Test run: make test + env: + PKGER: "./${{ steps.pkger-binaries.outputs.binary }}" - name: Lint run: make check + outputs: + pkger: ${{ steps.pkger-download-url.outputs.result }} build-and-publish: needs: test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-go@v2 - with: - go-version: '^1.16' - # Release # Create a release, or update the release PR - uses: GoogleCloudPlatform/release-please-action@v2.24.1 id: release @@ -33,6 +49,8 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} release-type: simple bump-minor-pre-major: true + # Checkout + - uses: actions/checkout@v2 # Tag # If a release was created, tag `vX.Y.Z` synchronously which: # 1. Triggers release-please to create draft release, allowing manual @@ -52,23 +70,28 @@ jobs: git push origin :v${{steps.release.outputs.major}}.${{steps.release.outputs.minor}}.${{steps.release.outputs.patch}} || true git tag -a v${{steps.release.outputs.major}}.${{steps.release.outputs.minor}}.${{steps.release.outputs.patch}} -m "Release v${{steps.release.outputs.major}}.${{steps.release.outputs.minor}}.${{steps.release.outputs.patch}}" git push origin v${{steps.release.outputs.major}}.${{steps.release.outputs.minor}}.${{steps.release.outputs.patch}} || true - # Build + + - uses: actions/setup-go@v2 + - name: Install pkger + run: | + curl -s -L -o pkger.tgz ${{ needs.test.outputs.pkger }} + tar xvzf pkger.tgz + # Standard build tasks - name: Build run: make cross-platform - # NOTE: - # release-please adds the version asynchronously. Without using the - # synchonous tagging step above, the version can be explicitly passed - # to the build using the following environment variable. However this - # has the side-effect of causing inter-relese binaries to not include - # verbose version information, because the special version `tip` is - # overriden with a blank string in those cases. - # env: - # VERS: ${{ steps.release.outputs.tag_name }} + env: + PKGER: "./pkger" + # NOTE: + # release-please adds the version asynchronously. Without using the + # synchonous tagging step above, the version can be explicitly passed + # to the build using the following environment variable. However this + # has the side-effect of causing inter-relese binaries to not include + # verbose version information, because the special version `tip` is + # overriden with a blank string in those cases. + # VERS: ${{ steps.release.outputs.tag_name }} - # Upload - # All build artifacts are uploaded whether release or not - # Non-release binaries have a verbose version `tip-[git hash]-[build timestamp]` + # Upload all build artifacts whether it's a release or not - uses: actions/upload-artifact@v2 with: name: OSX Binary diff --git a/.github/workflows/pull_requests.yaml b/.github/workflows/pull_requests.yaml index d5087717..e9b4232e 100644 --- a/.github/workflows/pull_requests.yaml +++ b/.github/workflows/pull_requests.yaml @@ -12,12 +12,61 @@ jobs: steps: - uses: actions/checkout@v2 - uses: actions/setup-go@v2 + - name: Determine platform binaries + id: pkger-binaries + uses: actions/github-script@v2 with: - go-version: '^1.16' + result-encoding: string + script: | + let platform, binary; + switch ('${{matrix.os}}') { + case 'ubuntu-latest': + platform = 'Linux_x86' + binary = 'pkger' + break + case 'windows-latest': + platform = 'Windows_x86' + binary = 'pkger.exe' + break + case 'macos-latest': + platform = 'Darwin_x86' + binary = 'pkger' + break + } + core.setOutput('platform', platform) + core.setOutput('binary', binary) + - name: Determine download URL for latest pkger + id: pkger-download-url + uses: actions/github-script@v2 + with: + result-encoding: string + script: | + let platform = "${{ steps.pkger-binaries.outputs.platform }}" + let binary = "${{ steps.pkger-binaries.outputs.binary }}" + core.info('PLATFORM: ' + platform) + core.info('BINARY: ' + binary) + return github.repos.getReleaseByTag({ + owner: "markbates", + repo: "pkger", + tag: "v0.17.1" + }).then(result => { + return result.data.assets + .filter(a => a.name.includes(platform)) + .map(a => a.browser_download_url)[0]; + }) + - name: Install pkger + run: | + curl -s -L -o pkger.tgz ${{ steps.pkger-download-url.outputs.result }} + tar xvzf pkger.tgz + - name: Test run: make test + env: + PKGER: "./${{ steps.pkger-binaries.outputs.binary }}" - name: Build run: make build + env: + PKGER: "./${{ steps.pkger-binaries.outputs.binary }}" - name: Lint run: make check @@ -28,8 +77,6 @@ jobs: uses: actions/checkout@v2 - name: Setup Go uses: actions/setup-go@v2 - with: - go-version: '^1.16' - name: Provision Cluster uses: lkingland/kind-action@v1 # use ./hack/allocate.sh locally with: diff --git a/.gitignore b/.gitignore index 00645038..ae89feec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ /func /func_* -/templates.tgz +/templates/go/events/go.sum +/templates/go/http/go.sum /coverage.out /bin diff --git a/Makefile b/Makefile index 33ccd7fc..abc39f96 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,11 @@ REPO := quay.io/boson/func +BIN := func -BIN := func -DARWIN :=$(BIN)_darwin_amd64 -LINUX :=$(BIN)_linux_amd64 -WINDOWS :=$(BIN)_windows_amd64.exe +PKGER?=pkger + +DARWIN=$(BIN)_darwin_amd64 +LINUX=$(BIN)_linux_amd64 +WINDOWS=$(BIN)_windows_amd64.exe CODE := $(shell find . -name '*.go') DATE := $(shell date -u +"%Y%m%dT%H%M%SZ") @@ -14,21 +16,23 @@ VTAG := $(shell git tag --points-at HEAD) # unless explicitly, synchronously tagging as is done in ci.yaml VERS ?= $(shell [ -z $(VTAG) ] && echo 'tip' || echo $(VTAG) ) -LDFLAGS := -X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH) +TEMPLATE_DIRS=$(shell find templates -type d) +TEMPLATE_FILES=$(shell find templates -type f -name '*') +TEMPLATE_PACKAGE=pkged.go build: all -all: $(BIN) +all: $(TEMPLATE_PACKAGE) $(BIN) -templates.tgz: - # ensure no cached dependencies are added to the binary +$(TEMPLATE_PACKAGE): templates $(TEMPLATE_DIRS) $(TEMPLATE_FILES) + # ensure no cached dependencies are added to the binary rm -rf templates/node/events/node_modules rm -rf templates/node/http/node_modules rm -rf templates/python/events/__pycache__ rm -rf templates/python/http/__pycache__ - # see generate.go for details - go generate + # to install pkger: go get github.com/markbates/pkger/cmd/pkger + $(PKGER) -cross-platform: $(DARWIN) $(LINUX) $(WINDOWS) +cross-platform: $(TEMPLATE_PACKAGE) $(DARWIN) $(LINUX) $(WINDOWS) darwin: $(DARWIN) ## Build for Darwin (macOS) @@ -36,21 +40,21 @@ linux: $(LINUX) ## Build for Linux windows: $(WINDOWS) ## Build for Windows -$(BIN): templates.tgz $(CODE) ## Build using environment defaults - env CGO_ENABLED=0 go build -ldflags "$(LDFLAGS)" ./cmd/$(BIN) +$(BIN): $(CODE) ## Build using environment defaults + env CGO_ENABLED=0 go build -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) -$(DARWIN): templates.tgz - env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o $(DARWIN) -ldflags "$(LDFLAGS)" ./cmd/$(BIN) +$(DARWIN): + env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o $(DARWIN) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) -$(LINUX): templates.tgz - env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(LINUX) -ldflags "$(LDFLAGS)" ./cmd/$(BIN) +$(LINUX): + env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $(LINUX) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) -$(WINDOWS): templates.tgz - env CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $(WINDOWS) -ldflags "$(LDFLAGS)" ./cmd/$(BIN) +$(WINDOWS): + env CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o $(WINDOWS) -ldflags "-X main.date=$(DATE) -X main.vers=$(VERS) -X main.hash=$(HASH)" ./cmd/$(BIN) test: test-binary test-node test-python test-quarkus test-go -test-binary: templates.tgz +test-binary: go test -race -cover -coverprofile=coverage.out ./... test-node: @@ -69,7 +73,7 @@ test-go: cd templates/go/events && go test cd templates/go/http && go test -test-integration: templates.tgz +test-integration: go test -tags integration ./... bin/golangci-lint: @@ -91,5 +95,4 @@ cluster: ## Set up a local cluster for integraiton tests. clean: rm -f $(BIN) $(WINDOWS) $(LINUX) $(DARWIN) - rm -f templates.tgz -rm -f coverage.out diff --git a/buildpacks/builder.go b/buildpacks/builder.go index d8813cab..09e8511b 100644 --- a/buildpacks/builder.go +++ b/buildpacks/builder.go @@ -12,7 +12,7 @@ import ( "github.com/buildpacks/pack" "github.com/buildpacks/pack/logging" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) //Builder holds the configuration that will be passed to @@ -37,7 +37,7 @@ var RuntimeToBuildpack = map[string]string{ } // Build the Function at path. -func (builder *Builder) Build(ctx context.Context, f fn.Function) (err error) { +func (builder *Builder) Build(ctx context.Context, f bosonFunc.Function) (err error) { // Use the builder found in the Function configuration file // If one isn't found, use the defaults diff --git a/client.go b/client.go index 0ebcd817..a38153c4 100644 --- a/client.go +++ b/client.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io" + "io/ioutil" "os" "path/filepath" @@ -339,14 +340,14 @@ func (c *Client) Create(cfg Function) (err error) { } // Write out a template. - w := templateWriter{repositories: c.templates, verbose: c.verbose} + w := templateWriter{templates: c.templates, verbose: c.verbose} if err = w.Write(f.Runtime, f.Trigger, f.Root); err != nil { return } // Check if template specifies a builder image. If so, add to configuration builderFilePath := filepath.Join(f.Root, ".builders.yaml") - if builderConfig, err := os.ReadFile(builderFilePath); err == nil { + if builderConfig, err := ioutil.ReadFile(builderFilePath); err == nil { // A .builder file was found. Read the default builder and set in the config file // TODO: A command line flag could be used to specify non-default builders builders := make(map[string]string) diff --git a/client_test.go b/client_test.go index 12c460aa..39cb37ef 100644 --- a/client_test.go +++ b/client_test.go @@ -6,11 +6,12 @@ import ( "context" "errors" "fmt" + "io/ioutil" "os" "path/filepath" "testing" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/mock" ) @@ -31,10 +32,10 @@ func TestNew(t *testing.T) { defer os.RemoveAll(root) // New Client - client := fn.New(fn.WithRegistry(TestRegistry)) + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) // New Function using Client - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } } @@ -42,19 +43,19 @@ func TestNew(t *testing.T) { // TestTemplateWrites ensures a template is written. func TestTemplateWrites(t *testing.T) { root := "testdata/example.com/testCreateWrites" - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.Create(fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.Create(bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // Assert file was written - if _, err := os.Stat(filepath.Join(root, fn.ConfigFile)); os.IsNotExist(err) { - t.Fatalf("Initialize did not result in '%v' being written to '%v'", fn.ConfigFile, root) + if _, err := os.Stat(filepath.Join(root, bosonFunc.ConfigFile)); os.IsNotExist(err) { + t.Fatalf("Initialize did not result in '%v' being written to '%v'", bosonFunc.ConfigFile, root) } } @@ -62,19 +63,19 @@ func TestTemplateWrites(t *testing.T) { // Function does not reinitialize func TestExtantAborts(t *testing.T) { root := "testdata/example.com/testCreateInitializedAborts" - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) // New once - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // New again should fail as already initialized - if err := client.New(context.Background(), fn.Function{Root: root}); err == nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err == nil { t.Fatal("error expected initilizing a path already containing an initialized Function") } } @@ -83,7 +84,7 @@ func TestExtantAborts(t *testing.T) { // visible files aborts. func TestNonemptyDirectoryAborts(t *testing.T) { root := "testdata/example.com/testCreateNonemptyDirectoryAborts" // contains only a single visible file. - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) @@ -94,8 +95,8 @@ func TestNonemptyDirectoryAborts(t *testing.T) { t.Fatal(err) } - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root}); err == nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err == nil { t.Fatal("error expected initilizing a Function in a nonempty directory") } } @@ -108,19 +109,19 @@ func TestNonemptyDirectoryAborts(t *testing.T) { func TestHiddenFilesIgnored(t *testing.T) { // Create a directory for the Function root := "testdata/example.com/testCreateHiddenFilesIgnored" - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) // Create a hidden file that should be ignored. hiddenFile := filepath.Join(root, ".envrc") - if err := os.WriteFile(hiddenFile, []byte{}, 0644); err != nil { + if err := ioutil.WriteFile(hiddenFile, []byte{}, 0644); err != nil { t.Fatal(err) } - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } } @@ -130,25 +131,25 @@ func TestHiddenFilesIgnored(t *testing.T) { func TestDefaultRuntime(t *testing.T) { // Create a root for the new Function root := "testdata/example.com/testCreateDefaultRuntime" - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) // Create a new function at root with all defaults. - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // Load the function - f, err := fn.NewFunction(root) + f, err := bosonFunc.NewFunction(root) if err != nil { t.Fatal(err) } // Ensure it has defaulted runtime - if f.Runtime != fn.DefaultRuntime { + if f.Runtime != bosonFunc.DefaultRuntime { t.Fatal("The default runtime was not applied or persisted.") } } @@ -172,18 +173,18 @@ func TestDefaultTrigger(t *testing.T) { func TestExtensibleTemplates(t *testing.T) { // Create a directory for the new Function root := "testdata/example.com/testExtensibleTemplates" - if err := os.MkdirAll(root, 0700); err != nil { + if err := os.MkdirAll(root, 0744); err != nil { t.Fatal(err) } defer os.RemoveAll(root) // Create a new client with a path to the extensible templates - client := fn.New( - fn.WithTemplates("testdata/repositories"), - fn.WithRegistry(TestRegistry)) + client := bosonFunc.New( + bosonFunc.WithTemplates("testdata/templates"), + bosonFunc.WithRegistry(TestRegistry)) // Create a Function specifying a template, 'json' that only exists in the extensible set - if err := client.New(context.Background(), fn.Function{Root: root, Trigger: "customProvider/json"}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root, Trigger: "boson-experimental/json"}); err != nil { t.Fatal(err) } @@ -195,91 +196,21 @@ func TestExtensibleTemplates(t *testing.T) { } } -// TestRuntimeNotFound generates an error (embedded default repository). -func TestRuntimeNotFound(t *testing.T) { +// TestUnsupportedRuntime generates an error. +func TestUnsupportedRuntime(t *testing.T) { // Create a directory for the Function - root := "testdata/example.com/testRuntimeNotFound" + root := "testdata/example.com/testUnsupportedRuntime" if err := os.MkdirAll(root, 0700); err != nil { t.Fatal(err) } defer os.RemoveAll(root) - client := fn.New(fn.WithRegistry(TestRegistry)) + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) - // creating a Function with an unsupported runtime should bubble - // the error generated by the underlying template initializer. - f := fn.Function{Root: root, Runtime: "invalid"} - err := client.New(context.Background(), f) - if !errors.Is(err, fn.ErrRuntimeNotFound) { - t.Fatalf("Expected ErrRuntimeNotFound, got %T", err) - } -} - -// TestRuntimeNotFoundCustom ensures that the correct error is returned -// when the requested runtime is not found in a given custom repository -func TestRuntimeNotFoundCustom(t *testing.T) { - root := "testdata/example.com/testRuntimeNotFoundCustom" - if err := os.MkdirAll(root, 0700); err != nil { - t.Fatal(err) - } - defer os.RemoveAll(root) - - // Create a new client with path to extensible templates - client := fn.New( - fn.WithTemplates("testdata/repositories"), - fn.WithRegistry(TestRegistry)) - - // Create a Function specifying a runtime, 'python' that does not exist - // in the custom (testdata) repository but does in the embedded. - f := fn.Function{Root: root, Runtime: "python", Trigger: "customProvider/event"} - - // creating should error as runtime not found - err := client.New(context.Background(), f) - if !errors.Is(err, fn.ErrRuntimeNotFound) { - t.Fatalf("Expected ErrRuntimeNotFound, got %v", err) - } -} - -// TestTemplateNotFound generates an error (embedded default repository). -func TestTemplateNotFound(t *testing.T) { - root := "testdata/example.com/testTemplateNotFound" - if err := os.MkdirAll(root, 0700); err != nil { - t.Fatal(err) - } - defer os.RemoveAll(root) - - client := fn.New(fn.WithRegistry(TestRegistry)) - - // Creating a function with an invalid template shulid generate the - // appropriate error. - f := fn.Function{Root: root, Runtime: "go", Trigger: "invalid"} - err := client.New(context.Background(), f) - if !errors.Is(err, fn.ErrTemplateNotFound) { - t.Fatalf("Expected ErrTemplateNotFound, got %v", err) - } -} - -// TestTemplateNotFoundCustom ensures that the correct error is returned -// when the requested template is not found in the given custom repository. -func TestTemplateNotFoundCustom(t *testing.T) { - root := "testdata/example.com/testTemplateNotFoundCustom" - if err := os.MkdirAll(root, 0700); err != nil { - t.Fatal(err) - } - defer os.RemoveAll(root) - - // Create a new client with path to extensible templates - client := fn.New( - fn.WithTemplates("testdata/repositories"), - fn.WithRegistry(TestRegistry)) - - // An invalid template, but a valid custom provider - f := fn.Function{Root: root, Runtime: "test", Trigger: "customProvider/invalid"} - - // Creation should generate the correct error of template not being found. - err := client.New(context.Background(), f) - if !errors.Is(err, fn.ErrTemplateNotFound) { - t.Fatalf("Expected ErrTemplateNotFound, got %v", err) + // create a Function call witn an unsupported runtime should bubble + // the error generated by the underlying initializer. + if err := client.New(context.Background(), bosonFunc.Function{Root: root, Runtime: "invalid"}); err == nil { + t.Fatal("unsupported runtime did not generate error") } } @@ -299,13 +230,13 @@ func TestNamed(t *testing.T) { } defer os.RemoveAll(root) - client := fn.New(fn.WithRegistry(TestRegistry)) + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root, Name: name}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root, Name: name}); err != nil { t.Fatal(err) } - f, err := fn.NewFunction(root) + f, err := bosonFunc.NewFunction(root) if err != nil { t.Fatal(err) } @@ -333,9 +264,9 @@ func TestRegistryRequired(t *testing.T) { } defer os.RemoveAll(root) - client := fn.New() + client := bosonFunc.New() var err error - if err = client.New(context.Background(), fn.Function{Root: root}); err == nil { + if err = client.New(context.Background(), bosonFunc.Function{Root: root}); err == nil { t.Fatal("did not receive expected error creating a Function without specifying Registry") } fmt.Println(err) @@ -353,13 +284,13 @@ func TestDeriveImage(t *testing.T) { defer os.RemoveAll(root) // Create the function which calculates fields such as name and image. - client := fn.New(fn.WithRegistry(TestRegistry)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // Load the function with the now-populated fields. - f, err := fn.NewFunction(root) + f, err := bosonFunc.NewFunction(root) if err != nil { t.Fatal(err) } @@ -385,18 +316,18 @@ func TestDeriveImageDefaultRegistry(t *testing.T) { // Create the function which calculates fields such as name and image. // Rather than use TestRegistry, use a single-token name and expect // the DefaultRegistry to be prepended. - client := fn.New(fn.WithRegistry("alice")) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry("alice")) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // Load the function with the now-populated fields. - f, err := fn.NewFunction(root) + f, err := bosonFunc.NewFunction(root) if err != nil { t.Fatal(err) } // Expected image is [DefaultRegistry]/[namespace]/[servicename]:latest - expected := fn.DefaultRegistry + "/alice/" + f.Name + ":latest" + expected := bosonFunc.DefaultRegistry + "/alice/" + f.Name + ":latest" if f.Image != expected { t.Fatalf("expected image '%v' got '%v'", expected, f.Image) } @@ -422,11 +353,11 @@ func TestNewDelegates(t *testing.T) { defer os.RemoveAll(root) // Create a client with mocks for each of the subcomponents. - client := fn.New( - fn.WithRegistry(TestRegistry), - fn.WithBuilder(builder), // builds an image - fn.WithPusher(pusher), // pushes images to a registry - fn.WithDeployer(deployer), // deploys images as a running service + client := bosonFunc.New( + bosonFunc.WithRegistry(TestRegistry), + bosonFunc.WithBuilder(builder), // builds an image + bosonFunc.WithPusher(pusher), // pushes images to a registry + bosonFunc.WithDeployer(deployer), // deploys images as a running service ) // Register Function delegates on the mocks which validate assertions @@ -434,7 +365,7 @@ func TestNewDelegates(t *testing.T) { // The builder should be invoked with a path to a Function project's source // An example image name is returned. - builder.BuildFn = func(f fn.Function) error { + builder.BuildFn = func(f bosonFunc.Function) error { expectedPath, err := filepath.Abs(root) if err != nil { t.Fatal(err) @@ -445,14 +376,14 @@ func TestNewDelegates(t *testing.T) { return nil } - pusher.PushFn = func(f fn.Function) (string, error) { + pusher.PushFn = func(f bosonFunc.Function) (string, error) { if f.Image != expectedImage { t.Fatalf("pusher expected image '%v', got '%v'", expectedImage, f.Image) } return "", nil } - deployer.DeployFn = func(f fn.Function) error { + deployer.DeployFn = func(f bosonFunc.Function) error { if f.Name != expectedName { t.Fatalf("deployer expected name '%v', got '%v'", expectedName, f.Name) } @@ -467,7 +398,7 @@ func TestNewDelegates(t *testing.T) { // Invoke the creation, triggering the Function delegates, and // perform follow-up assertions that the Functions were indeed invoked. - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -494,8 +425,8 @@ func TestRun(t *testing.T) { // Create a client with the mock runner and the new test Function runner := mock.NewRunner() - client := fn.New(fn.WithRegistry(TestRegistry), fn.WithRunner(runner)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry), bosonFunc.WithRunner(runner)) + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -536,19 +467,19 @@ func TestUpdate(t *testing.T) { defer os.RemoveAll(root) // A client with mocks whose implementaton will validate input. - client := fn.New( - fn.WithRegistry(TestRegistry), - fn.WithBuilder(builder), - fn.WithPusher(pusher), - fn.WithDeployer(deployer)) + client := bosonFunc.New( + bosonFunc.WithRegistry(TestRegistry), + bosonFunc.WithBuilder(builder), + bosonFunc.WithPusher(pusher), + bosonFunc.WithDeployer(deployer)) // create the new Function which will be updated - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } // Builder whose implementation verifies the expected root - builder.BuildFn = func(f fn.Function) error { + builder.BuildFn = func(f bosonFunc.Function) error { rootPath, err := filepath.Abs(root) if err != nil { t.Fatal(err) @@ -560,7 +491,7 @@ func TestUpdate(t *testing.T) { } // Pusher whose implementaiton verifies the expected image - pusher.PushFn = func(f fn.Function) (string, error) { + pusher.PushFn = func(f bosonFunc.Function) (string, error) { if f.Image != expectedImage { t.Fatalf("pusher expected image '%v', got '%v'", expectedImage, f.Image) } @@ -569,7 +500,7 @@ func TestUpdate(t *testing.T) { } // Update whose implementaiton verifed the expected name and image - deployer.DeployFn = func(f fn.Function) error { + deployer.DeployFn = func(f bosonFunc.Function) error { if f.Name != expectedName { t.Fatalf("updater expected name '%v', got '%v'", expectedName, f.Name) } @@ -610,11 +541,11 @@ func TestRemoveByPath(t *testing.T) { } defer os.RemoveAll(root) - client := fn.New( - fn.WithRegistry(TestRegistry), - fn.WithRemover(remover)) + client := bosonFunc.New( + bosonFunc.WithRegistry(TestRegistry), + bosonFunc.WithRemover(remover)) - if err := client.New(context.Background(), fn.Function{Root: root}); err != nil { + if err := client.New(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -625,7 +556,7 @@ func TestRemoveByPath(t *testing.T) { return nil } - if err := client.Remove(context.Background(), fn.Function{Root: root}); err != nil { + if err := client.Remove(context.Background(), bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -649,11 +580,11 @@ func TestRemoveByName(t *testing.T) { } defer os.RemoveAll(root) - client := fn.New( - fn.WithRegistry(TestRegistry), - fn.WithRemover(remover)) + client := bosonFunc.New( + bosonFunc.WithRegistry(TestRegistry), + bosonFunc.WithRemover(remover)) - if err := client.Create(fn.Function{Root: root}); err != nil { + if err := client.Create(bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -665,12 +596,12 @@ func TestRemoveByName(t *testing.T) { } // Run remove with only a name - if err := client.Remove(context.Background(), fn.Function{Name: expectedName}); err != nil { + if err := client.Remove(context.Background(), bosonFunc.Function{Name: expectedName}); err != nil { t.Fatal(err) } // Run remove with a name and a root, which should be ignored in favor of the name. - if err := client.Remove(context.Background(), fn.Function{Name: expectedName, Root: root}); err != nil { + if err := client.Remove(context.Background(), bosonFunc.Function{Name: expectedName, Root: root}); err != nil { t.Fatal(err) } @@ -700,12 +631,12 @@ func TestRemoveUninitializedFails(t *testing.T) { } // Instantiate the client with the failing remover. - client := fn.New( - fn.WithRegistry(TestRegistry), - fn.WithRemover(remover)) + client := bosonFunc.New( + bosonFunc.WithRegistry(TestRegistry), + bosonFunc.WithRemover(remover)) // Attempt to remove by path (uninitialized), expecting an error. - if err := client.Remove(context.Background(), fn.Function{Root: root}); err == nil { + if err := client.Remove(context.Background(), bosonFunc.Function{Root: root}); err == nil { t.Fatalf("did not received expeced error removing an uninitialized func") } } @@ -714,7 +645,7 @@ func TestRemoveUninitializedFails(t *testing.T) { func TestList(t *testing.T) { lister := mock.NewLister() - client := fn.New(fn.WithLister(lister)) // lists deployed Functions. + client := bosonFunc.New(bosonFunc.WithLister(lister)) // lists deployed Functions. if _, err := client.List(context.Background()); err != nil { t.Fatal(err) @@ -733,7 +664,7 @@ func TestListOutsideRoot(t *testing.T) { lister := mock.NewLister() // Instantiate in the current working directory, with no name. - client := fn.New(fn.WithLister(lister)) + client := bosonFunc.New(bosonFunc.WithLister(lister)) if _, err := client.List(context.Background()); err != nil { t.Fatal(err) @@ -755,10 +686,10 @@ func TestDeployUnbuilt(t *testing.T) { defer os.RemoveAll(root) // New Client - client := fn.New(fn.WithRegistry(TestRegistry)) + client := bosonFunc.New(bosonFunc.WithRegistry(TestRegistry)) // Initialize (half-create) a new Function at root - if err := client.Create(fn.Function{Root: root}); err != nil { + if err := client.Create(bosonFunc.Function{Root: root}); err != nil { t.Fatal(err) } @@ -768,7 +699,7 @@ func TestDeployUnbuilt(t *testing.T) { t.Fatal("did not receive an error attempting to deploy an unbuilt Function") } - if !errors.Is(err, fn.ErrNotBuilt) { + if !errors.Is(err, bosonFunc.ErrNotBuilt) { t.Fatalf("did not receive expected error type. Expected ErrNotBuilt, got %T", err) } } diff --git a/cmd/build.go b/cmd/build.go index c6304077..011629ba 100644 --- a/cmd/build.go +++ b/cmd/build.go @@ -6,7 +6,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/buildpacks" "github.com/boson-project/func/progress" "github.com/boson-project/func/prompt" @@ -106,11 +106,11 @@ func runBuild(cmd *cobra.Command, _ []string) (err error) { listener.Done() }() - client := fn.New( - fn.WithVerbose(config.Verbose), - fn.WithRegistry(config.Registry), // for deriving image name when --image not provided explicitly. - fn.WithBuilder(builder), - fn.WithProgressListener(listener)) + client := bosonFunc.New( + bosonFunc.WithVerbose(config.Verbose), + bosonFunc.WithRegistry(config.Registry), // for deriving image name when --image not provided explicitly. + bosonFunc.WithBuilder(builder), + bosonFunc.WithProgressListener(listener)) return client.Build(context, config.Path) } diff --git a/cmd/completion_util.go b/cmd/completion_util.go index 82178ad4..8a8c1be8 100644 --- a/cmd/completion_util.go +++ b/cmd/completion_util.go @@ -8,7 +8,7 @@ import ( "github.com/spf13/cobra" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/buildpacks" "github.com/boson-project/func/knative" ) @@ -79,7 +79,7 @@ func CompleteBuilderList(cmd *cobra.Command, args []string, complete string) (st var ( err error path string - f fn.Function + f bosonFunc.Function ) path, err = cmd.Flags().GetString("path") @@ -87,7 +87,7 @@ func CompleteBuilderList(cmd *cobra.Command, args []string, complete string) (st return } - f, err = fn.NewFunction(path) + f, err = bosonFunc.NewFunction(path) if err != nil { return } diff --git a/cmd/create.go b/cmd/create.go index 27f3a8d1..f1cc8a7b 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -7,7 +7,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/prompt" "github.com/boson-project/func/utils" ) @@ -15,9 +15,9 @@ import ( func init() { root.AddCommand(createCmd) createCmd.Flags().BoolP("confirm", "c", false, "Prompt to confirm all configuration options (Env: $FUNC_CONFIRM)") - createCmd.Flags().StringP("runtime", "l", fn.DefaultRuntime, "Function runtime language/framework. Available runtimes: "+utils.RuntimeList()+" (Env: $FUNC_RUNTIME)") + createCmd.Flags().StringP("runtime", "l", bosonFunc.DefaultRuntime, "Function runtime language/framework. Available runtimes: "+utils.RuntimeList()+" (Env: $FUNC_RUNTIME)") createCmd.Flags().StringP("templates", "", filepath.Join(configPath(), "templates"), "Path to additional templates (Env: $FUNC_TEMPLATES)") - createCmd.Flags().StringP("trigger", "t", fn.DefaultTrigger, "Function trigger. Available triggers: 'http' and 'events' (Env: $FUNC_TRIGGER)") + createCmd.Flags().StringP("trigger", "t", bosonFunc.DefaultTrigger, "Function trigger. Available triggers: 'http' and 'events' (Env: $FUNC_TRIGGER)") if err := createCmd.RegisterFlagCompletionFunc("runtime", CompleteRuntimeList); err != nil { fmt.Println("internal: error while calling RegisterFlagCompletionFunc: ", err) @@ -60,16 +60,16 @@ func runCreate(cmd *cobra.Command, args []string) error { config = config.Prompt() - function := fn.Function{ + function := bosonFunc.Function{ Name: config.Name, Root: config.Path, Runtime: config.Runtime, Trigger: config.Trigger, } - client := fn.New( - fn.WithTemplates(config.Templates), - fn.WithVerbose(config.Verbose)) + client := bosonFunc.New( + bosonFunc.WithTemplates(config.Templates), + bosonFunc.WithVerbose(config.Verbose)) return client.Create(function) } diff --git a/cmd/delete.go b/cmd/delete.go index a4db216f..25a3bb90 100644 --- a/cmd/delete.go +++ b/cmd/delete.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "github.com/ory/viper" "github.com/spf13/cobra" diff --git a/cmd/deploy.go b/cmd/deploy.go index 8ad91a4f..72088e60 100644 --- a/cmd/deploy.go +++ b/cmd/deploy.go @@ -14,7 +14,7 @@ import ( "github.com/spf13/cobra" "golang.org/x/term" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/buildpacks" "github.com/boson-project/func/docker" "github.com/boson-project/func/knative" @@ -132,13 +132,13 @@ func runDeploy(cmd *cobra.Command, _ []string) (err error) { listener.Done() }() - client := fn.New( - fn.WithVerbose(config.Verbose), - fn.WithRegistry(config.Registry), // for deriving image name when --image not provided explicitly. - fn.WithBuilder(builder), - fn.WithPusher(pusher), - fn.WithDeployer(deployer), - fn.WithProgressListener(listener)) + client := bosonFunc.New( + bosonFunc.WithVerbose(config.Verbose), + bosonFunc.WithRegistry(config.Registry), // for deriving image name when --image not provided explicitly. + bosonFunc.WithBuilder(builder), + bosonFunc.WithPusher(pusher), + bosonFunc.WithDeployer(deployer), + bosonFunc.WithProgressListener(listener)) if config.Build { if err := client.Build(context, config.Path); err != nil { diff --git a/cmd/describe.go b/cmd/describe.go index ccea02b0..04bf81f6 100644 --- a/cmd/describe.go +++ b/cmd/describe.go @@ -11,7 +11,7 @@ import ( "github.com/spf13/cobra" "gopkg.in/yaml.v2" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/knative" ) @@ -51,7 +51,7 @@ kn func describe --output yaml --path myotherfunc func runDescribe(cmd *cobra.Command, args []string) (err error) { config := newDescribeConfig(args) - function, err := fn.NewFunction(config.Path) + function, err := bosonFunc.NewFunction(config.Path) if err != nil { return } @@ -67,9 +67,9 @@ func runDescribe(cmd *cobra.Command, args []string) (err error) { } describer.Verbose = config.Verbose - client := fn.New( - fn.WithVerbose(config.Verbose), - fn.WithDescriber(describer)) + client := bosonFunc.New( + bosonFunc.WithVerbose(config.Verbose), + bosonFunc.WithDescriber(describer)) d, err := client.Describe(config.Name, config.Path) if err != nil { @@ -109,7 +109,7 @@ func newDescribeConfig(args []string) describeConfig { // Output Formatting (serializers) // ------------------------------- -type description fn.Description +type description bosonFunc.Description func (d description) Human(w io.Writer) error { fmt.Fprintln(w, "Function name:") diff --git a/cmd/list.go b/cmd/list.go index de5da7c2..b112f554 100644 --- a/cmd/list.go +++ b/cmd/list.go @@ -12,7 +12,7 @@ import ( "github.com/spf13/cobra" "gopkg.in/yaml.v2" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/knative" ) @@ -66,9 +66,9 @@ func runList(cmd *cobra.Command, args []string) (err error) { lister.Namespace = "" } - client := fn.New( - fn.WithVerbose(config.Verbose), - fn.WithLister(lister)) + client := bosonFunc.New( + bosonFunc.WithVerbose(config.Verbose), + bosonFunc.WithLister(lister)) items, err := client.List(cmd.Context()) if err != nil { @@ -105,7 +105,7 @@ func newListConfig() listConfig { // Output Formatting (serializers) // ------------------------------- -type listItems []fn.ListItem +type listItems []bosonFunc.ListItem func (items listItems) Human(w io.Writer) error { return items.Plain(w) diff --git a/cmd/root.go b/cmd/root.go index 9e94216c..e0181437 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -11,7 +11,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) // The root of the command tree defines the command name, descriotion, globally @@ -150,8 +150,8 @@ type functionOverrides struct { // Function project at root, if provided, and returns the Function // configuration values. // Please note that When this function is called, the overrides are not persisted. -func functionWithOverrides(root string, overrides functionOverrides) (f fn.Function, err error) { - f, err = fn.NewFunction(root) +func functionWithOverrides(root string, overrides functionOverrides) (f bosonFunc.Function, err error) { + f, err = bosonFunc.NewFunction(root) if err != nil { return } @@ -184,7 +184,7 @@ func deriveName(explicitName string, path string) string { } // If the directory at path contains an initialized Function, use the name therein - f, err := fn.NewFunction(path) + f, err := bosonFunc.NewFunction(path) if err == nil && f.Name != "" { return f.Name } @@ -240,14 +240,14 @@ func deriveImage(explicitImage, defaultRegistry, path string) string { if explicitImage != "" { return explicitImage // use the explicit value provided. } - f, err := fn.NewFunction(path) + f, err := bosonFunc.NewFunction(path) if err != nil { return "" // unable to derive due to load error (uninitialized?) } if f.Image != "" { return f.Image // use value previously provided or derived. } - derivedValue, _ := fn.DerivedImage(path, defaultRegistry) + derivedValue, _ := bosonFunc.DerivedImage(path, defaultRegistry) return derivedValue // Use the func system's derivation logic. } diff --git a/cmd/run.go b/cmd/run.go index 3aea23e1..23a42b33 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -6,7 +6,7 @@ import ( "github.com/ory/viper" "github.com/spf13/cobra" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/docker" ) @@ -40,7 +40,7 @@ kn func run func runRun(cmd *cobra.Command, args []string) (err error) { config := newRunConfig(cmd) - function, err := fn.NewFunction(config.Path) + function, err := bosonFunc.NewFunction(config.Path) if err != nil { return } @@ -60,9 +60,9 @@ func runRun(cmd *cobra.Command, args []string) (err error) { runner := docker.NewRunner() runner.Verbose = config.Verbose - client := fn.New( - fn.WithRunner(runner), - fn.WithVerbose(config.Verbose)) + client := bosonFunc.New( + bosonFunc.WithRunner(runner), + bosonFunc.WithVerbose(config.Verbose)) err = client.Run(cmd.Context(), config.Path) return diff --git a/config.go b/config.go index d7382497..4d730bc5 100644 --- a/config.go +++ b/config.go @@ -1,6 +1,7 @@ package function import ( + "io/ioutil" "os" "path/filepath" @@ -40,7 +41,7 @@ func newConfig(root string) (c config, err error) { } return } - bb, err := os.ReadFile(filename) + bb, err := ioutil.ReadFile(filename) if err != nil { return } @@ -89,5 +90,5 @@ func writeConfig(f Function) (err error) { if bb, err = yaml.Marshal(&c); err != nil { return } - return os.WriteFile(path, bb, 0644) + return ioutil.WriteFile(path, bb, 0644) } diff --git a/docker/pusher.go b/docker/pusher.go index e007832a..aa2098a6 100644 --- a/docker/pusher.go +++ b/docker/pusher.go @@ -15,7 +15,7 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Opt func(*Pusher) error @@ -30,7 +30,7 @@ type CredentialsProvider func(ctx context.Context, registry string) (Credentials // Pusher of images from local to remote registry. type Pusher struct { // Verbose logging. - Verbose bool + Verbose bool credentialsProvider CredentialsProvider } @@ -48,7 +48,7 @@ func EmptyCredentialsProvider(ctx context.Context, registry string) (Credentials // NewPusher creates an instance of a docker-based image pusher. func NewPusher(opts ...Opt) (*Pusher, error) { result := &Pusher{ - Verbose: false, + Verbose: false, credentialsProvider: EmptyCredentialsProvider, } for _, opt := range opts { @@ -61,7 +61,7 @@ func NewPusher(opts ...Opt) (*Pusher, error) { } // Push the image of the Function. -func (n *Pusher) Push(ctx context.Context, f fn.Function) (digest string, err error) { +func (n *Pusher) Push(ctx context.Context, f bosonFunc.Function) (digest string, err error) { if f.Image == "" { return "", errors.New("Function has no associated image. Has it been built?") @@ -71,7 +71,7 @@ func (n *Pusher) Push(ctx context.Context, f fn.Function) (digest string, err er parts := strings.Split(f.Image, "/") switch len(parts) { case 2: - registry = fn.DefaultRegistry + registry = bosonFunc.DefaultRegistry case 3: registry = parts[0] default: diff --git a/docker/runner.go b/docker/runner.go index 4b1ce63f..50f10fca 100644 --- a/docker/runner.go +++ b/docker/runner.go @@ -15,7 +15,7 @@ import ( "github.com/docker/docker/client" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) // Runner of functions using the docker command. @@ -30,7 +30,7 @@ func NewRunner() *Runner { } // Run the function at path -func (n *Runner) Run(ctx context.Context, f fn.Function) error { +func (n *Runner) Run(ctx context.Context, f bosonFunc.Function) error { ctx, cancel := context.WithCancel(ctx) defer cancel() diff --git a/docker/runner_test.go b/docker/runner_test.go index 795c177c..ac97dc6e 100644 --- a/docker/runner_test.go +++ b/docker/runner_test.go @@ -9,7 +9,7 @@ import ( "os" "testing" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/docker" ) @@ -27,7 +27,7 @@ func TestDockerRun(t *testing.T) { t.Skip() } - f, err := fn.NewFunction("testdata/example.com/runnable") + f, err := bosonFunc.NewFunction("testdata/example.com/runnable") if err != nil { t.Fatal(err) } diff --git a/docs/guides/integrators_guide.md b/docs/guides/integrators_guide.md index aafe80d4..69972ef7 100644 --- a/docs/guides/integrators_guide.md +++ b/docs/guides/integrators_guide.md @@ -9,7 +9,7 @@ To create a Client which uses the included buildpacks-based function builder, pu package main import ( - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" "github.com/boson-project/func/buildpacks" "github.com/boson-project/func/docker" "github.com/boson-project/func/knative" @@ -28,16 +28,16 @@ func main() { // A client which uses embedded function templates, // Quay.io/alice for interstitial build artifacts. // Docker to build and push, and a Knative client for deployment. - client := fn.New( - fn.WithBuilder(buildpacks.NewBuilder()), - fn.WithPusher(pusher), - fn.WithDeployer(deployer), - fn.WithRegistry("quay.io/alice")) + client := bosonFunc.New( + bosonFunc.WithBuilder(buildpacks.NewBuilder()), + bosonFunc.WithPusher(pusher), + bosonFunc.WithDeployer(deployer), + bosonFunc.WithRegistry("quay.io/alice")) // Create a Go function which listens for CloudEvents. // Publicly routable as https://www.example.com. // Local implementation is written to the current working directory. - funcTest := fn.Function{ + funcTest := bosonFunc.Function{ Runtime: "go", Trigger: "events", Name: "my-function", diff --git a/function.go b/function.go index 34197a8e..210ff030 100644 --- a/function.go +++ b/function.go @@ -3,6 +3,7 @@ package function import ( "errors" "fmt" + "io/ioutil" "os" "path/filepath" "strings" @@ -222,7 +223,7 @@ var contentiousFiles = []string{ // contentiousFilesIn the given directoy func contentiousFilesIn(dir string) (contentious []string, err error) { - files, err := os.ReadDir(dir) + files, err := ioutil.ReadDir(dir) for _, file := range files { for _, name := range contentiousFiles { if file.Name() == name { @@ -236,7 +237,7 @@ func contentiousFilesIn(dir string) (contentious []string, err error) { // effectivelyEmpty directories are those which have no visible files func isEffectivelyEmpty(dir string) (bool, error) { // Check for any non-hidden files - files, err := os.ReadDir(dir) + files, err := ioutil.ReadDir(dir) if err != nil { return false, err } diff --git a/generate.go b/generate.go deleted file mode 100644 index 11c9ce67..00000000 --- a/generate.go +++ /dev/null @@ -1,77 +0,0 @@ -// +build generate - -package main - -import ( - "archive/tar" - "compress/gzip" - "fmt" - "io" - "io/fs" - "os" - "path/filepath" -) - -const ( - archive = "templates.tgz" - files = "templates" -) - -// on 'go generate' create templates archive (tar -czf templates.tgz templates) -func main() { - if err := create(archive, files); err != nil { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } -} - -func create(name, source string) (err error) { - // Create file on disk - tarball, err := os.Create(name) - if err != nil { - return - } - defer tarball.Close() - - // A gzip compressor which writes to the file - compressor := gzip.NewWriter(tarball) - defer compressor.Close() - - // A tar writer which writes to gzip compressor - w := tar.NewWriter(compressor) - defer w.Close() - - // File walking function which writes tar entries for each file. - return filepath.WalkDir(source, func(path string, d fs.DirEntry, e error) (err error) { - if e != nil { - return e // abort on any failed ReadDir calls. - } - - // Header - fi, err := d.Info() - if err != nil { - return - } - h, err := tar.FileInfoHeader(fi, d.Name()) - if err != nil { - return - } - h.Name = filepath.ToSlash(path) - if err = w.WriteHeader(h); err != nil { - return - } - - // Done if directory - if d.IsDir() { - return - } - - // Data - data, err := os.Open(path) - if err != nil { - return - } - _, err = io.Copy(w, data) - return - }) -} diff --git a/go.mod b/go.mod index ad04633b..f8b040ac 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,13 @@ module github.com/boson-project/func -go 1.16 +go 1.14 require ( github.com/buildpacks/pack v0.18.0 github.com/containers/image/v5 v5.10.5 github.com/docker/docker v20.10.2+incompatible github.com/docker/go-connections v0.4.0 + github.com/markbates/pkger v0.17.1 github.com/mitchellh/go-homedir v1.1.0 github.com/ory/viper v1.7.4 github.com/pkg/errors v0.9.1 diff --git a/go.sum b/go.sum index 6e2b9524..c3c6a9a5 100644 --- a/go.sum +++ b/go.sum @@ -302,6 +302,7 @@ github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLi github.com/evanphx/json-patch v4.9.0+incompatible h1:kLcOMZeuLAJvL2BPWLMIj5oaZQobrkAqrL+WFZwQses= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= @@ -377,6 +378,8 @@ github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobuffalo/flect v0.2.2/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= +github.com/gobuffalo/here v0.6.0 h1:hYrd0a6gDmWxBM4TnrGw8mQg24iSVoIkHEk7FodQcBI= +github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -625,6 +628,8 @@ github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7 github.com/mailru/easyjson v0.7.1-0.20191009090205-6c0755d89d1e h1:jcoUdG1TzY/M/eM5BLFLP8DJeMximx5NQYSlLL9YeWc= github.com/mailru/easyjson v0.7.1-0.20191009090205-6c0755d89d1e/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/manifoldco/promptui v0.8.0/go.mod h1:n4zTdgP0vr0S3w7/O/g98U+e0gwLScEXGwov2nIKuGQ= +github.com/markbates/pkger v0.17.1 h1:/MKEtWqtc0mZvu9OinB9UzVN9iYCwLWuyUv4Bw+PCno= +github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= @@ -1465,6 +1470,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/knative/describer.go b/knative/describer.go index 56f1e7cd..3f22a351 100644 --- a/knative/describer.go +++ b/knative/describer.go @@ -5,7 +5,7 @@ import ( v1 "knative.dev/client/pkg/serving/v1" "knative.dev/eventing/pkg/apis/eventing/v1beta1" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Describer struct { @@ -28,7 +28,7 @@ func NewDescriber(namespaceOverride string) (describer *Describer, err error) { // restricts to label-syntax, which is thus escaped. Therefore as a knative (kube) implementation // detal proper full names have to be escaped on the way in and unescaped on the way out. ex: // www.example-site.com -> www-example--site-com -func (d *Describer) Describe(name string) (description fn.Description, err error) { +func (d *Describer) Describe(name string) (description bosonFunc.Description, err error) { servingClient, err := NewServingClient(d.namespace) if err != nil { @@ -68,11 +68,11 @@ func (d *Describer) Describe(name string) (description fn.Description, err error } - subscriptions := make([]fn.Subscription, 0, len(triggers.Items)) + subscriptions := make([]bosonFunc.Subscription, 0, len(triggers.Items)) for _, trigger := range triggers.Items { if triggerMatches(&trigger) { filterAttrs := trigger.Spec.Filter.Attributes - subscription := fn.Subscription{ + subscription := bosonFunc.Subscription{ Source: filterAttrs["source"], Type: filterAttrs["type"], Broker: trigger.Spec.Broker, diff --git a/knative/lister.go b/knative/lister.go index 321b0fec..09195a48 100644 --- a/knative/lister.go +++ b/knative/lister.go @@ -6,7 +6,7 @@ import ( clientservingv1 "knative.dev/client/pkg/serving/v1" "knative.dev/pkg/apis" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) const ( @@ -31,7 +31,7 @@ func NewLister(namespaceOverride string) (l *Lister, err error) { return } -func (l *Lister) List(context.Context) (items []fn.ListItem, err error) { +func (l *Lister) List(context.Context) (items []bosonFunc.ListItem, err error) { client, err := NewServingClient(l.Namespace) if err != nil { @@ -54,7 +54,7 @@ func (l *Lister) List(context.Context) (items []fn.ListItem, err error) { } } - listItem := fn.ListItem{ + listItem := bosonFunc.ListItem{ Name: service.Name, Namespace: service.Namespace, Runtime: service.Labels["boson.dev/runtime"], diff --git a/mock/builder.go b/mock/builder.go index 3b0fdc24..26daa58e 100644 --- a/mock/builder.go +++ b/mock/builder.go @@ -2,21 +2,21 @@ package mock import ( "context" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Builder struct { BuildInvoked bool - BuildFn func(fn.Function) error + BuildFn func(bosonFunc.Function) error } func NewBuilder() *Builder { return &Builder{ - BuildFn: func(fn.Function) error { return nil }, + BuildFn: func(bosonFunc.Function) error { return nil }, } } -func (i *Builder) Build(ctx context.Context, f fn.Function) error { +func (i *Builder) Build(ctx context.Context, f bosonFunc.Function) error { i.BuildInvoked = true return i.BuildFn(f) } diff --git a/mock/deployer.go b/mock/deployer.go index c91e21b6..600c4780 100644 --- a/mock/deployer.go +++ b/mock/deployer.go @@ -3,21 +3,21 @@ package mock import ( "context" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Deployer struct { DeployInvoked bool - DeployFn func(fn.Function) error + DeployFn func(bosonFunc.Function) error } func NewDeployer() *Deployer { return &Deployer{ - DeployFn: func(fn.Function) error { return nil }, + DeployFn: func(bosonFunc.Function) error { return nil }, } } -func (i *Deployer) Deploy(ctx context.Context, f fn.Function) (fn.DeploymentResult, error) { +func (i *Deployer) Deploy(ctx context.Context, f bosonFunc.Function) (bosonFunc.DeploymentResult, error) { i.DeployInvoked = true - return fn.DeploymentResult{}, i.DeployFn(f) + return bosonFunc.DeploymentResult{}, i.DeployFn(f) } diff --git a/mock/lister.go b/mock/lister.go index dd18480b..1dedd5a8 100644 --- a/mock/lister.go +++ b/mock/lister.go @@ -2,21 +2,21 @@ package mock import ( "context" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Lister struct { ListInvoked bool - ListFn func() ([]fn.ListItem, error) + ListFn func() ([]bosonFunc.ListItem, error) } func NewLister() *Lister { return &Lister{ - ListFn: func() ([]fn.ListItem, error) { return []fn.ListItem{}, nil }, + ListFn: func() ([]bosonFunc.ListItem, error) { return []bosonFunc.ListItem{}, nil }, } } -func (l *Lister) List(context.Context) ([]fn.ListItem, error) { +func (l *Lister) List(context.Context) ([]bosonFunc.ListItem, error) { l.ListInvoked = true return l.ListFn() } diff --git a/mock/pusher.go b/mock/pusher.go index 0aed6f8d..b380d77e 100644 --- a/mock/pusher.go +++ b/mock/pusher.go @@ -3,21 +3,21 @@ package mock import ( "context" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Pusher struct { PushInvoked bool - PushFn func(fn.Function) (string, error) + PushFn func(bosonFunc.Function) (string, error) } func NewPusher() *Pusher { return &Pusher{ - PushFn: func(fn.Function) (string, error) { return "", nil }, + PushFn: func(bosonFunc.Function) (string, error) { return "", nil }, } } -func (i *Pusher) Push(ctx context.Context, f fn.Function) (string, error) { +func (i *Pusher) Push(ctx context.Context, f bosonFunc.Function) (string, error) { i.PushInvoked = true return i.PushFn(f) } diff --git a/mock/runner.go b/mock/runner.go index 2f6c7f86..6ada496e 100644 --- a/mock/runner.go +++ b/mock/runner.go @@ -2,7 +2,7 @@ package mock import ( "context" - fn "github.com/boson-project/func" + bosonFunc "github.com/boson-project/func" ) type Runner struct { @@ -14,7 +14,7 @@ func NewRunner() *Runner { return &Runner{} } -func (r *Runner) Run(ctx context.Context, f fn.Function) error { +func (r *Runner) Run(ctx context.Context, f bosonFunc.Function) error { r.RunInvoked = true r.RootRequested = f.Root return nil diff --git a/pkged.go b/pkged.go new file mode 100644 index 00000000..5eb75be8 --- /dev/null +++ b/pkged.go @@ -0,0 +1,12 @@ +// Code generated by pkger; DO NOT EDIT. + +// +build !skippkger + +package function + +import ( + "github.com/markbates/pkger" + "github.com/markbates/pkger/pkging/mem" +) + +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecbd6973a3bab630fc57decad7a7cf6e0693c45df57c081830d8906692404fdd3a0588068cc0b48d07b875fffb5b0c761c67cecedee7de73fda13b16080d4b4b6bd25a4bff799516bf96ebab1fff7915a755b209fe0897f9f760b95e16ff2857cb451456df7f6d8ab0ad304957573faebe27cb3cfa4efc228c029f90efeb55f8fdf54fbf5d2979b95c553ffd2ab9faf1463fdfae743f8fae7e5cb5a52a5d1657dfae26cbf0eac7d5d5b72bdb5fc551d5ff3697cbea93c3d1fc2a4cae7efcbfab3faefee3db9555f924bafa51ad36d15030237fbd2cae7e5caddbd2ff87a3322a705484f58fffefa4e978196c7efdf2c9f27b12ada2ab6f57f2524a49b46e1b0e491a15d51ff1f2eadb55b82c7ea571fffb30a9be54667184fb9f559497c4afa2755bfc8f03c4fab6964515edabab6f57d16ab55caddb66f2b6783296dc5f6541fbf9f7b6cdd5ab2fdbffd322fe9e47795b6f5966f11f69f1bdf673f2c796b9fa76952ebbffbea7cb4d9592ab6f57cbb6cfd2af92efbf5212b53faebe5dad97ab7610eb6a9516f1ba1df3242abb01079b5f5d13415d45eb0e0079b98ad6ebefbfda199e3e889bb4ec2154f96911adbe93745d0d0ffa2987abbaac96c71fdffdbec5be10a665d24d7628e3d39778ed3f14a2f07111331c478f9f3cf89e1655b42a7cf23dc23b7f85d7e7d50849cb2a0d1f9e24b97f523a7ebef20b3c00effcd57a1354247a789163eea1d07e77520a472785d309ac139f7e5462b8eb47658e664eca675d56e4044e7b8e1a3f2e7d2fb374dfa25b112e715ac4273fbffbeb823e2d07fe3aba1e3d7a9216feaa3e7d9244a7ad7d5facbb4d7d2c971d1ebe8cdb4ff6d967f1fecdcf1f1629f7cbf57b36d1bb365a940711fec8967cb3debac2dd9e7c66f326fe3a19fe7c0f5721db6de8c3b4da1de993f8f451586e4e8bbff26ad8d8c7474554552b3f8c4e9f2dd7dd7a9d3e2a97849c96cf3f5945bf48145624ad1e3d5ea7454ca25f248d9347bdaeeb75d8d2f3681f8551b17deed5a6e8d0f4f8bc8ad615593e9adda658fbbfa224f271871c07caf66b7d46e1facff29eb2b57fbe0769fcf0b35a1f7e0f1b344ff368f8f33ddf902a2dfd0e68dd83df9b6515e1729516951f74fbae88aafeffef495595273fbbff0ed03d3e3c0c7f78d692c272b5ecc8605bdeac8e4479b9ee003490e767a8f400f5ee571cedcbe38fefebbaa8fc167eab4d51f5d3197e7d0f3b9674281d81e957cbbca37d4fde0c807bf27c5daf1f718a70d9ade481677cbb5ad71d436eff3c343fac6fcb15fb716d8a345ce2935fdf37d52ffafa71f9b62bb6cb7df5ed6a1b1578b9fa1e2f895fc47f2c57f1f7fdf703d348fc30f119ea7db5ca25a96996e2dea8ddfd6977d77beb1d08e96b9537ab6d746040afd44b32fcebf51a4f79cf2b95df98718b80b858b7fff268bdf6e3979a7b84e2f1a6db426fd62b57cb7dfd4645e67b52fa61f64aad1417fe0bafd7f57a2079cfbd6d77daf775146e56d1f720c5e96af322b4baaad5ca2fd6bf96abfcb54a071c6d1b7c4fbda26def3fbe5dd9d1ba3a11290fa2e33f5b327726341e9f0d9f9d488fcfca6e0f5bbefdb0e563fff1ed4a5be276ba3ffef3ea9d82bae6a7c5416efebc6e202fb525feccb7dfe3e51ff912774d8068b54e3b919dfe831e5dfdd77ffdd7b7ab5f3de4de506c7e7c3f42b1addb6a43ed5f1c557e4aba4745af8f3c54fb76b54e9be8eac7881a5f7fbbca5bcaf483a14737a3db113da2bb27ffecc0fbe38aa118fa1f14f70f9ab169f6c788fdc15cff31a66f298eb96546ffa0463fa8960ea5eb7fe2167e3d285ba2d96a5bd1f6eac7f5e8e67afced4a2996573f589aa16e4634f3ed4a2769915dfdb8e9d62cbafa415fdfdedc7cbb72527cf583a628eadb95fcf0d3fde73f4b1f53573fa86f57266e1ba5be5d592713e049b67e545c86d9faeac7edb7abbb2acddba15851d876c250ed04a9eb6f57faba7d3266987622a3ebfffa76a5bd51f530e7fffa7625bcbfaafbcf7f6e8acd3ac2573ffe1ff58dfa46fd47b7b2add07fd1472ffae8451fbde8a3177df4a28f5ef4d18b3e7ad1472ffae8451fbde8a3ff4df5d18120b693c9e2f72b1d27cae97f7dbbc27ee55ffd283684b4cdada2a27a68f0e19baeb7f7eabcdf4df16ea2897fe4f875edf7a1da41fbbd1d8d0ecaef88a1dea1f5deb46a1d7dfb44ebfde593f59b6a2fc51ed55efaa0f6b22c7d7bfb09b5b71bf99fd07aa976222cf71ead7798f37bb4de87aa7f89d6dbcac1e79aef03cef42f5fd36b1fd4d41eff062d7558bcc76aeaa9eed9d73e1280bed86b66fdef4764e5e1d1d9171762704a0c4e76ed912c5c2935ef2048ef0259a290abcd84545b28129f784c9520866cd06e39034c428294a743d94cb00c1a45966a64f195074da24ccdad323597c8d5dbdf2470f9b5e79a24ac7731961312597c855d9d52649528d343bb205384a441ae5a7a705f4639c814596a845c8c4de6360e59b3c6ae4987b9532ab2ca2953950e72ae0cf230f6643af11910cf053e097223f69884784cd5bdf3e1a8eb5399aa2464c11acbd2060b7c1cca5581a0b141cc3856645406b2b311e2e542a9792560c3d8778d1833e3da67b599503ced4b91c94699b6e319c53ee41a2c4beb60aaf57dc9fcce673009f3bbd8cbc9c673556e2ef0ac2f93852ff00b0f8e622f771ebe9341a64c51e9d9cb9927e3ad22638205bef05d7389a1b2f198713567e824ccabb487e3b86f3f1d2f02686cbbb9b86a2c64edd89c6e0c41ca974181b63ed3aecde978401eb06a3bc622a8f91443b246f2dd46884bc7979d38cc4183e19ef221571cbe43025704cc5d8c72b246165f06b9bec6b01d074fb5df78cc788365b0c1532d0e186f80f7e9baf399efaac463cd6d58646b2107ed9c32048dd873b5d8b3f86950f30d9eaab4c702aa1d8332c54b1fea4b45264d874b701407505aa1b63f17253edc275ebe27dd3ac8fab67d8e5dbd5f23388a0dc0ab42a19701246bcf55622cdf0ee3d2290f7299e7aa9922ef4baf5093b0c88ab0e6e380d5e3077c3ce283e5b96619305c12c8ce4c20608365b256a63aed31718c6552218b4fc29a2701540992cd6e0c21dbee0bb2687138640015d67c19a47cea432e0973d2c2a4ec9e0db04442f7be85e7cccba506597c8c98dbd82b4019c8668ba37490eb940fc79b767fe06916cfa63a4116bfc453731736cbed9cc1259613da4bb945c0505bc48cd71ee48a3983b7738634210b4858df36ba9dd19a90cd3cabed8fd448a0779eab5291c55301335ef7305749e88232ecf7e10609030ea5fc2eccc78cdfaf7f12a43cef88598c73504716dff8902e0359aa15e16e7684b9cc6f43e62e0e6569e1335281acd14c88ffefffbdfa3ae1235ebe2e757452e5078dedf43fe81b9bbefd31bafdc1ddfc71cb31ecedcdf8e6e61f14f731633bcb8e6f6faf8f52c7e8ef37b6b3d72c333e0808d734c58e589a7a46eca0a93173c3b23787aac7393f153b5eab7a31b65f8ced1763fbc5d87e31b65f8ced1763fbc5d87e31b65f8ced1763fbc5d8febfd1be162fff2a7b7bbcfc1e6da3a27ac3db6ca8f3795733e60735fe8365a86b96baf984ab59a7fdde1cb55fe65fe16a76a2fdb20cdd4d64fc82d1fd51d561ce2f18dd5fa87ad17e2fdaef45fbbd68bf17edf7a2fd5eb4df8bf67bd17e2fdaef45fbbd68bfff3bb5df838efa572bc1dfff083629c1d16afd47cbc75fd789cfea1e746376fcba1fda7b0f84dff443eb74e2dbaff3436b07fe4137b4d1edf1e4f6f696b9a569e699e0abffcee7c11737b47f4b4271be8f1fbcd2900c72cf056b3c59c6a10b92c8e2caa01ea701ab6f83749c7b506ae6106fe750a57db8cf90abccbed4c3e430c24f3bba8edbcdfdbaa32b35b269ea474b63a83f6e462c777b4d51f4c71d5d3b0233fe3a02d38dfcafa0300c45b337e316187dd5e39c9fb3b9bd5cf542612e14e6dd14e60597d76950f393401ed348e0259cf7ee8c6601361e6b9601339a09049340d6b701743a77c2088ee930e537c80d3b17d593ba8922994b64f169c0903572d5de95d6e2730cb90596c93648f945c0984491f52448f9b47d17b06033b801069e9c24416eae91c51501c3e3d969b9ce366dfbbefb687c715b0e204882c2e8c617e6a009e571db2689647d8d5dbdc43958776e7e351f18cc7e8ba1119b2e22416136ae959cb812eaeb8005191adecd73b29dd7d95a91551a0b3c17b04eec31d24699aa24806306590757d08478cc3a46f9b856a6fd188f2eb8272e8c834b6189059ef5e17eddbbe7f2db203762bf000d16f8dc87dce04accaf3d4836ca1425414ed6812cc63ee416014377ae9696643a8ec0d7c89568e4ea54588fe2c17553ecc62f8f7701041b7cb79c99326010dc6f43a15f379483044f418d5c2df68a2cf6a099f5aeaf628ce56e1c1dac8eeb01c654dbc73cc75b4fa2967e3b0f794f5cd624216b6c10735b2a32da86294fbcce7d1511af775b5e0f735e040c97fbae5a2932a19429de8679d528535c62398e3bf7df69db9619cfe3e50cb87ce6b99d4b758b4f3586dca61f9fb4f1e07e8b6a7e8b7ab7d118b5b8c010aac585832bece07ed9e19d27f0135bcce28055628fd9970872d4890becfa644d4e5d949980a90812783a64c806d57ca2c87412142009e43d37877a8da0442168c43d3e99fdde992c6742cec75ebb5f0a7d1bc8cecc63411d0877151478c3a6754711e84c11f08d92272490f75b65b18c95a285c73e530aaa50a4dd4c11ee2a4bc09380e1a876bc73d7e442d9b956646917b66367a40e9fe64cd904cce8d137c8a24b3459c69a15c6eedd3256045a51299dcc5d7d8b5d7581ec650b87760f543d9eb77f932470f9357af2cda15f93e0945b05b944f92e22f31c8cbcce55de39efbb0965b0c039a843866c83453b8ed14eadf95048ef627f6a52e1a4dd673477b287370ffdf72ebc1d0c5bbc6df7934c6f3b3ceadd7e837e6df56d57bfc511d9dc7a2ca85a380d2ecb7826e017dd83bd7cdcc2ac0aa7ead6cfc1020be30e4fe6ac5923e86c032895413ace02466fd43afb7a97dd03411e08ff1b0ebc0373e845909b374386be50921a535f2749dd7c306288bda16f99e331e32dcd52dce87a7411a42e82d4bf5e901afa7990a20238ce30dc3fe2f4425c16417db79f2f444a88cb8e4bfbae4a14f98c1af5dc830c92d73664cc55a7ceb15ead4cbd7abe3036daddf2afa140895f6012fdf15614c143b5231d1abfa1d27da9cd684c7f21211a7f42a53b52a2dbeb6b6674cb5edf5e8c46174af4afa7440f1bf381183d441b9da85df172e6b7e21aab528a10cf044b5d74a2a59b504abc54951c555850dae7dbb05666424c7a8224dca58821943f05e93cd7b781355e74aa62a74e7054588f1b24af2bc4dc6ef1424985349b09e9ed56110f6a1b9f2862af52f5ea96b1e9de4b3a1d4ef96d58741160f2897ad8f8106f7ad50134f7f1723bafef7ef784555bce8cb3b2c593b050b7e159bd21326f84056e7298e7f9b7cfd679a1bd414cde0c7328bb3908cb5ef5a89301565caf0208598c5cb50e586536af6fe359daafc3ac53094c124d8d8d71ec7b17bfd1f6719de6d9f1fbb532c07f9ef57fdf3b6e45281f8ff5eeadfaf1efb3676ddf75988febf7c0732ef04f6033cb1f8ffd73f3bd5b9eb7d3f6d5c120cd667d5bbce2412e0b6467e9b1e648791dfe4fd6e1304f65ba9e0990e45d39bdbbfe691de7043db82f5167e288cbfbbaed5f89159b8a5b75bdfbce2079e01a1bb3e06b1f72144a936d58733696cdb6ee5a11d432285012c8243bcc5199aac46340897390cdd33b8253a58779bbb70c5223b78fbe6d714c88c95888fb3e9c69db9699cf048560b2df28e9716ea5103f7cd78e4d28a8bfc646dc13a4e391e23ba48a9323c9c15a4cddfc9da205f385d6e276e47f42b4b869458b9b67949c8b6871112dfe35a2c57177fe49f9a2e84c7b659087a9d0c91bef5782e6cc4017e3652974fc8d7790ab53d660825464b009d9de9489e524c1c291eec71ed417c8e5a9b0e693ce8cdad2d9c7f2488c5bf9461ed3f8c83f4607fef1a89fd9d488670ff3d800218ba3dd526d79bc61f1950fb93280d27a2ef029768d18e7d2da8727bc2b5eaa075e73bfa08efcc6ce013b13b29900877a44275824e24c501d13e8cedc01d07438676edfed95f4ac9ed499e7964a279b712492a52a94f7647ee08ddd788d74661cfbde380ca01c664c87b94e6682da99c9eed3db6d208f171edc2f0356a7ee17f1ee7e72b7edfa8bb316e66a9f55c1194cab264139d92068c40753700bb7333ef9c07f1f6403c183fa0ab1ea16432e9b09d9113e337bddf1344510c78acc9581c0df0871a66281933dd74c0221697966d9f1bc82eae54ca95b8fa11fa09ef0d2739c4886cc10c37bb209a7803af25c19932007f590b5a1adfb3c2e408ee978bed87fff124ef8c77a43fb93e5f84186e108aee352116eb78a4c9721db9bacc31cec3124750b53941312c866d3ee950ebf5c934290de0d66f9e501bffbb5209b01d70e38b53eccbf33994fcda5d7e263577790cb5d65c04f33c1532d3e1e77c4edd8bd7e1dda311fe5f853b94c4d3ca62ac27c4c07b9b19c59bbf87cbec7b59c50cfafa5ec2d95fc612ca85b136e8b05be40902361de1d1b0d6bc06f1fafdd00c7f42eb621697af3fcdd061ce6233bad5eb0f065b0f09bdb0ef77f19e5f8ebcdb89d3fe6eb224eefb1f92f0c4119b39710944b08ca2504e51282720941b984a05c42502e21289710944b08ca2504e51282720941f977b7e475c4faaf0b40e9b0fe7f5af8c97874093fb998fb2f44e2d55dfcdf29f8a41bdfa7434faee9370e13bfd66192fb3ae2d28dfc127a72a12efff3a9cb2b81270a904c43111fb94dba08ee1701430f4110648b5d250e72c02a22de9ed6552cbecbddede5e33290411dcafb041f020286e0902edfb6f5e0d88ffa538bd887a319648e27295d3e74d74a4ecab7e53c6ddb27cda33e8f011b66d38d4f4c1c20dd0da737a0c1536df32f0fc288cb7f4d10c600f3f7066108f9bb8330f2301f57075cf00a758b599d8429bf0dd3c3bb6e8c2dde54ed1a2af2be0c72e75a88cbd893bb793701b32742aed361be7b148880fec704227cb51b70b73dffdb87215cffb7094360ba3084670fb02e4cf5c254ff4ea6fa6f1084d09bcd3e1b8230a2de2042e77603b6d58c6f479fb41bdc7c1d11ea46fe793fc19b1133ba1dd1cc7b0c07c39cdf633878a87aa142172af44e2af41704206c906b6c3bf1ec242061662c3b67fa07a73f697310bd9d83e82d8c3ee4f8dd5db72327149ede6d9c21663c64801be68442aed2c7665b77bffbb170d621ce7a66f13742bc54dbefe759423c6892308dcb792665488853e3702d90403b91cb1325ddc54adfffb655517c38ea9c92def1bd86205760394ee7c25daad5cae0c8ad6d00ab9658060a8252865c65a92dee762d8c0470bb3e71c03b773e6fbf5d2b82fad3a2f79bde99f0e8b097fcb4f88d0f779d039b00dbf5e0e4f0e0542e8f9b39d129d4d5ddc54a3e38c7cbe3faa812153a51a6b8f65d93dc9f3baebbd4ec97f11732903fe5727e7bcdfe9dace40b33207523bfb0920b2bf97761255fe5709e73040be34ef53e2fcf9996e6f39d29e58973fa2180ed9163b11323c835d85587abdf24ea24c08d443258e0de7198f55d7319b09d6371471fe75d7e0e930e73ae5126ca4e9bdcc59d7962aa133cd53a9e76528ebdce84f128e7c346c8bb00ab18c8a0c10f0eb9942294dd1c7cc8157362945dc0918b9230bd5b76ceb6f55dac4ca8ded431ed4d44760e5827078b80553bbed1f221c1edf8dcb8e7853d5c3a2765babb0aadfd6ea96458024217b07474183f3795f426ab96e67365201c8295b478969ff358a77dd7054b1d02e504eb054773f1d46199248a2c7657cc05b99984b9d1e59f19f8f3c109bc1662d207dc4dc3f88177ebbb80e11a047afed4f2b030077b45287b9c20c7b99643e0d6fb9cd7a7e12027743c6e89ebbedd037f6fe18febae7f3a981a1dbc910cf2763e3dff57b7689a6d0c66bf0d1967d9f170eb76ab88ddf5793516f85dc0ea543b0624934ea90b77274eda2f39cbcbde5229c006b93cf1d82ec8f2e04c5d06e9513eba5604c0f481626add3b4af76d7763233ad5990fa9fe9a41c5a6e256ce18e043cd339460595aa3344e31e448343df6551fe16df5f97e8ef2400bab2e004ea2b0ab4fda774ffa3dca44dc14b92deef5f25b50181598921db294b2732c1794f47c2c33413de281229b2512f84dc01a71c8b47b527cb8b251e0a94e36eb73d650872b2007fc1c9cc6975f2db3141db37f4d42297a47a13f7965dfa865c063fac357f68dae473734f73ff3cabe61ceef914f1eaa5e3cc62f1ee3178ff18bc7f8c563fce2317ef118bf788c5f3cc62f1ee3178ff18bc7f8ff46435ca77afe45eee26ddb7fc3b57df40feef6077bfb077b7373737dcdd2ec8763a63b0df8c1e184fd1768c01ccd1c2df437d7f4cdedf5e8f6d9cc976d55fae8f2799cf3b331d32f56bd68c0170df8a2015f34e08b067cd1802f1af04503be68c0170df8a2015f34e0ffad1af05f7c71df49175f113b3dfabb1cd73abdf82b7da03fe1b77612dd38666e699abdf8ad5dfcd6fe3b108b3f1b3fcd6d910c7e87359d6248d6a8f361fad26485a763fd742c353da6ff566af3856eb2fdd02ff4e6426ffe3de8cd0b11d5f7016392795e36871cc78a78b8a7e1e48e857839030c587bccb842fd95785cc0825a9139824fdb38bdb66ecad70153128f353e76c55f5c3e73c51fd920198cda3e3c895aced37119e4268904ee777872c51f7acf157f77e5df75c5dfec6fbae26ff6d6157f063433bf8f2eeeafa213daf19146918f57b23d811d66d5124f4d12c46512b264e331491d30dc16bbfa3ab23a97550abbeae6107dee49ed7ad365c880789ef22a4a0f38723a4f738bda75c9c79432e54998a36d9853b107394ec8a52682dcc29faadb201fd3617d74936ec7b4ee22b987a8fc90917204f7dc932b15e5be0d4fe057c8256cc0aa9922a33a60a80ee6bd5b743f96b9c0272d7c0ff350a66a826b9ef1e09e46dd3a71148252a6c8e3fcc9fce2e54ca9b5d8eef25fef62e426c463c1217e92478549c2f464fc79187b32b70b2cbe0c0a9df2e07eed09bbee5acce15acb1af7785186f5a37db10e18bd5b334556b976bd10d469dcee875d1907055f2953957ea877d7f6df6538080bb0c13269f76b8f53321885f2b8e960355509b27812e4e62e60c866c840102bc232f684713cecd787f742bb1f95c3359e27e31bcd14e1eeb722df6d7d1924c1d45cce599578b09d336842e62e061dae830d9af25bbfcb9bddb9cf26dd9d15877a35bf44505a771905fa3df3b45d66dfeed70d72f5c613fa2c0e087259288fcbee2e8e2eb4488c0399305d3e68568b0fdf2ab2be44505f1d6073fe3cac1f3208f4f9dff5a6cb530e478739a7613e6643a6c567891248f56a0ef467614153cb99d5e1dc0c76e10477d7f37a3cac5bb20d59e3fa7e7237d284f10116db87b9e87826b474ee610f6057278acc2fb0abaebd3eeb43ec88631bc87771fb7ec8eb3d6b69df537af3b01ef7f172e6c97ce7e61c32e33532caae4d45a03d45e27f3ab411cfa111abec3a0d72a9429672ad08aae3434cc2b473ef5f6057a70286266146b2ee6acac5dd5e5b68946e7becfd244b7f3dbe22f2e89a8da764d75d2de9f2bb40268b3e03c268eb17ada87b76ad2424d97d7ab73f5c0b3977e2c2609c2a1cf2d2dfb73ca4bb92961eee5aa18fb9edcfbf39f48b64c0ccf36ad3f68b7367f3f29596fa0e419d41aedab4f06bc7315fdc0dd758f2afe14207dbe39ecc4182dabdebeacd40f3d77ebb4efd1e38dd8fddfa0aa4dae21cd4813c4e9040efc27c4c21d8afe123fec46216d7dc2694e9df61dd87563c84c08c5f6ce3808f9821ebe0c1053f3b66f718c22575fbae51249d84052a3dc68901e4129c4b65204b692083f858dfe26363c8d431072ac15395f3846e6f67c855621f7ab3a734846f695e865c938479cbc340d6f13959258a3c6e61be0e182943ddbd086a1232a0a5c99b217b478520bd0d8bac85578218a70b8d11f2438efefd3660efda755e7b6e76c8b2e21c4260fa75212fc92dfdd5b9d396ef77613601865ccba3bb7017d78a37f33e8bcab67fdec9227d688e2c6d0452952d9e23564d86793ef9aee731b81ef07ee3175a394f793e9077b1d7b6c7dcc5286f65a613b9a10fcb89914cea761d03566d7967dd675b196d9e662fe9f84ed7f79099e4af5213d30247fb3f166fb86b1c6b1d95c4d135f3772a895f78d97b3ff48b92785112ff3d94c4e3de7cd0115516b4326383a76ae9b14671bf2b3bda8205fee6ec5e9cf521bcfe977537ee7418179461ee2cd533fd49adb31b215e6e67e972d6ca9c4627af1c78ef23ded0874e9e67d0925b7d645c75bac7a331984dcf3394410f1ac57d16a6a39eb316d2eefeb9a34ea08847fe7fbcd7cd28d4adcf807a9ef24ecb5b86ac527d862a8650bed0cbaf43f85f1cb260d13eeb433d49338f97f1acfd97f27f992c353bca33c7d0ff2e3ced3ee59370caaf7da80f7c67fc3b64c69b4106fafdd295dfb3cfc954a7ed1dfacf90eb6d7c866bfb67d0c91d43cf7cf3dad5dfbfdf92ad14a1c79f41c71878be996059ec7458e42654984b0b2c83477ae023fc397ed7c963ad7cc4f8b00b491cd6d36979701db246d757284bb50769826550f7fa7827879cea44fd78ceee8c0a18f577cbaf1599502103d628e52bcfcd9ee81c5dc86adba6d1e3cf314479ca27618b334328ea195e5fb7f0ea71bbbb469e3a9de3610c3fad87f6e6f9e99e346e8edf8bfcce73d524b0f89b63ea8b29153f84b4f630e9f7c401c71eda3d6fc31ee6fdcbe2e94e7feae135e9f04a7cb4661b4524f9f03ef35c3339a4e1e86c385d1867272b3e8bdf5dbf838d659067d33e94946b65c8eedafd56176a75a3c39894292a3d8b9f39d4f87e5ef04958e8642664ed3a6f4f6d05ca14913027790440835ce524bc77d7c9e961dadde1142b32c915214e4ec27f1fdd7ddaa50149ef62e518e23deabf13ba6755a7db424ceed3bbc2ce6f0f57ee1fe95298830582ad4e6814433be3fbf6fb29356bcb27fdae0326dcf890cb833a2e9ca9baf51830dc7bd4af835a1fc77ef3f2b749dcdbc5cce12e4ebe953949abb3b4b4439d562fe1d306cb63bbe519411e2e672e1dcfec7537c6becf963f0c30b5926e3cedfb53b8f4f49b4b7dc82561912dfb6c8e8ff6d4f200bb077a75579c66e66be98a0f1107ba3ec3f500b3814edd15dd5816658b1f25ca0941c2b14e877ff7690fabf6d92f2b2bef77650befd9a3cc85431fb369871b5d28b822dc6de7359f0535dfb4b41ccbc929efe8f64fd777dcae5dab27813a18fa6afb10e2b20a1893eeb24aba4997b220ac4f60d6e3e1cd5f78e453fa61e6c7d13f5a59f68fce17ef55a1fe69f5e3dd9ccc887de3e2ef2f4bfdd78af75d96bcafba9db31ffb0bf23d7d3bfa3312fe25ffdf45c2fffb25fca71bf541d4efc9a9ba69c59b4ef43c5c09098f1935d2796716538fa6b04144ddb4629b92ee5ad297b6a29acfa03290013cada759fdfbe3b585ae96dea73c1516800ced66c8edcc6024c8f572783fb0ccbbd4905112b266898a6c8bf2718d19a946ad68b7589eb0d1bbf4284ea6ad78adece7edf8046520eded3fb546aebe0da68820a113c14f4c692a410c69d51d6e9e73bb0096cd3c1fd7a81edfa15c6ab0dcb2ac711eb02aebb96a86a0b19d3f2e572d2cda3eb18caf0798f4fde6a465b14598132aea45ffc697455ab3950ae4e39fb306b9e6844f9c6239f20a5c5864390ae56a15c9e55e676eb77a13d71e2deefd4546e94ee2a286df7aa4d4114512241157a379829bbb9507472bbf914c7b8255472a15dbd6336f015c73817e3a1334d2a7a4b21d71fcd37a0493566c3faec741bce8d7e52e56323ef73ab319e2e62c5f076cc2cda194a1a972ba46cfe086b6d184236ef4750a9584cc788df37eed942edb0bdfb4627e9883c277752a2cb24d50f0955f689b80558b39f562ff2dfc5bb17d1459748264b39edb7d9ff3c22ca2f4d11c0f26b9124fb3f43ebd4b432649745bace7aec9e92cde00686c4d06d8a1533946a3ce02b66c820918998cba8924b0311d34d1c4f1464bc7d7ced4dbdecb6414b9b80c25a902a46431c08c9de18d918f4b2c2e6bcc9011a6d13e60100b458ef6ece4b74e3246cbf7e64f9b4a8ff015eed2564c6ce181a72a8dac337875aa3468ce70bd9dd34b78d9cdcf5d884fe12fdca5becbf7b0cacbae4d858cea619f1cebfd32fa7e7e1dc7a2de7522e4b45bbfda9f8266ce90f3319defbfdd7c2152f3c5dda3b9b67309983d7318679f7148bb9ed7e31a415c86ac5947d6d1a4bd0df3706b4cf532c8cd6eef86794287f5b80cebdbaa1dc3dcbedb68b6b1d1048e42ecf2515f0733abef9a5c37d7425f7ab6b3d7528ab333e0dcdbe2ce14b9c402fc06d164638b7b03c1706533f83a74f5f2de05ba2ed3b6978f81ee664c38496cdd31af6d6042d3d567b05013cc642b231f8b3601d0c8c5da9493590824041cc4d88e9923dad9e90b55736c6afc98269804b7709a9a35864eff7c4aad8f346faa5f0750aa3db64cfc7ac846e59a650041fd36dd13375afae7e95ec89695e7aa8b2897567d26acbbaa3b5a74bbbdf7684c735b6c7941fda1bd0712d558a89e57940a10478c0f81eae748b581c7f9f21e7a0c3280ad3061a3321e4408d0d20266890bc5e4672493c42125321d736eba380b26627d0f4a0e35ce6ec6a02d045eed677a81a7eadea144267438da263aff457b2f43109130a5a9a0a65b5568d3a995fd7eeaf98ef5ea7e4abcbc5d13ef0d1adac174ffa7692823a55ea1129cb67be6f09beaf1c4fac8bea13741ee70738a948e355e461959421bed90686ebc4ca5a205167dc23b16ab226dc21b73b6641c49af7497ff69e6d55a2f12da64d5694092cd9c461410b97b94719401917f6fddee9dc224be5c351171b810ea8e0fb3dd47f78d07d51697138f35aa401e17a8537ddbfaeb13182212167aabc675f8a8a52ddf16ff349d7abeef1ee66d7d0fead41ceeb788c1ad5a580dfd7e485ed032f5b7434c3f924c03e709b15934f532b509446443670c7c5659394c696071bc09b3bda1357a3ea3910aa8fd35724b3394ca450850a13365a2513b0a89aa17b8e53562b13363c49db620bf9d22a61d512f35aaa4fd8fca0bb9f4bb5f9f97e1ada7a3bd968e982fc0ebdf034effc629c5cc17623d5f781f82a7bfd07390ed0b4cccad6e2bac07390eba646653d8814e999a75c50439674217499a4cd101a4575e2339565d6d2251da857235b1455ab5277c021766e6e57b6850dcd6a4f5a52f532b9f2d255d2a41042b21a0e84297c373781e536d87e778dad2a796c70b748620d8cd612b3f4beb81ce34fdfe3d6dab9d6b2b2b1b557f944e37b83baa75aa16ff7cc815ad1c75c6f7cfbe2ffb8b06187d89209dcc5db3f6dc6efdc8f0ddae4bf17dde6f016adf6af74207df4817daf695f458674a3db357b9c6b7e824904911bc81335addc9d65fb0474ffbec7067133259d55d49ce8caaa19f0fe1102cf84920a17908927b8d56a7464ecf7da86688e0ebd0d1912eef377e06e880e2ae810d1c4d1e4b66c1e748185febae34b324948405588539c9cc89f91b3bfb9f5a863c1b12160069142e881b0289f20049eea5c482ee131c7ab427cf6074aa73dd3c5e339d0af39646d1ac0f4dcaef6583e800eb93b53bebeb455ded40033a98b6fb16b9f1d3f74f6516aac3e5735cfc736bdcbe2791f0b0c6c3782a5de879f493357e4b5eb1a52494818148a26b00fc745889d5e45bce824436e09801c592b36d606b8e59cc1ad309339345194d302d32a130ae0387a61154582c61df27e23e2c62ca96c79ce648b591e32260a56928a37d084d55efdce1cce24c5e7999070a6774b89f4b3398622bcc900ccbef5a8be62bd7e24077e62e2ed1d45cce6beae9b3566fb39ed3dbde94475ab970811768ee13e45bb45e448b3b26a0a8ad35415353546bc335afefa728f32529f129fcdbcc086317aa62d888d3a864622ea48905392db22ad39e8a232499334712f75e5acd4d09ec4d112db05c650e09295d76f6b83993475edf7fef9025073a0fe9ad9f9fee9956870b5b1d6effb4bf8e1e357388e840de0f7b97ee5c69e7eee06ef71a8d3fc18d50a093a0d0cba13e3dacfde3fe0eb4fb151c3b6de7c9fccef9bfd58deb295e7f4606603b1ab69bc36e8fb77ac9a3f1cc6d67d3c9591fc72d1103b5d1209e7b99ba0f297a6e81721de628c7cc9e464da25b72b5080afe77d800e8c8b4a6019ef785aa326c6d076c5e04f2984299e96bb25103001a38e58d00f095edd0339d84acdee8bae7888d95566b2f27ae712eeb7e116e3da68747febc7f44e387b53d2d1ff49687e78fe4bc5768fc5f640b7a4cc7dbb5eed7d86d755830faa8fd47b328d671680fb3443569a309449c1a4ee57a76566b999a848d56c33cfca0fed1c1bac1d3ce7deb0db8189b96d77e195c58930b64d0b434f66c1c2dcf6b3e2ad744b92adcbbeac4ca244773d5d4cf093465a5f6a7d2dccc927be8ec47883557f722079c22f1358af898321a7381eef13449a1549a06c36d1c26dbdb72359a51440c982473e4bd1c4e945a2b30349cbdeacbc0b788649bf08be49a5cdf06f2b89e437d1b74b4e76013537a7a1abf8ed711a4132cebcb37ec2ccfc8df9fb2b32441412acf3517fe20ab1cfa1ff8e2fe43361548ebf713a7d60abe71327d1f116fa567fb65c0d09eeee2229c283404a8f4f272792fe1dfda425775a01a3ecdef4249870e53721665d486ad5646565680c2c98caaee75c6abcd09d2ec3ce6fcbc120c0670b65c51515e9ecb289fb5a9b4b8dcc9e151ee54a12c3d9147cff8cece6fd7174a94c7c4a7eb4bbdb1beb5c724dcdf74769084b9be8cac6e5dbb7e3b3bd9c768d4ca634ac15e48b9ed2419b2937bdd5515e49291eff20bab95691cf16334cad5b920d757be6bbc419fee36fad7d0ed3ec4832154479b1efaafdaf5fa005ddacfdd98d6e932d79a7817d9c628ccc7690492953d2d459857992d698ddfbc828fcfd8e2b03cae7ca85521b327c8bd7bdb26f73530a102862ebd9a6e021990b0dffb67cfa8010f3f64a35bd9d9f8b73995787f8277d184f700c5a9b3c634bda2dcfa40d906c45c59a2e4da05c8b402304156eeb163ece76c4c7b36961c50ea16317606d4af4367bd73e088d199319ad3a6e3d892e61130f760e987d3bbc6b209f5611b9d0ba82efc21e7b66fe9fdba3062be44ef7fd467076b1a77ae65dc266046d5d0cf87f8632861c574d4993f21a94f4bc49412e42fa47b7ba20a0621044a6662cb55eae484d328ced75974ef2ca434b43103d8447126893563c824704ccec8740ac3b876447ae603bc36997de9d349a2b9773b5b0200daba83a65fc61f971edcaf1eec48cfd981f4b56fd19407d535b2b581bede6df4737b74bb9ecc7e1be4ce030db646f5d33ae375c02a55c8825d288f6b7ca0ed2d7f7b6c7b6de7b508f37113d67412e6987964577f32ce2e94ac42b24479d6d066dae931e76d2e3d57ab7adaa355be3cdefaacf6fa59996cd67398b4f8b445ac9a0427f6ad7edcc6933ed054a97c9934581e17612e5573972761ae93a030cb4e3683e3d44f8fe37c8eaf0de72abd5b5a989ef429b4f3529ed48fba3e06b7d183ce579fc3894e825c2a9045ef3cd75cbe6e03a4cb2027554bb71e60af3c536fbc99438e60815eb775111c3dc0f3193c093b9727939b4395c332681e744eed69db055f070caebb9099d7e655a8a4a385aeca787077daff93f50c7340f99026e1ebf0efeb0c368aa16fe6c919a9f598de8532d820196c3c863c6bc7f5982409e4f53bed2fcfeaec9fa37b7dbfadaeb4f06569edd754f3024f7993dee9a2d1180be4a285b1b7a831723294856c599953493728bcd701827316e886a3d47aa3cf2c675fd9f5baf13369ed4f124f9f4a22964d0a51baa53168846555331dfada61e35a2352e6cb9ce85125836d95d620829839a7776fc8974739ed457bfa63dd75d09786357ec906d9db385c7e70c7a31701b3df1e7048afffb41ecde09c6cdf9047d96eff7d81ae810b5406fd9954d7efdc0e375afa511d435921663cd21749163a06e335baadb1c6ca23a560512326242405046798e5ef355b6d2c49d24c62961ed44530516b8f155994533b9dc6ec8c22732c8c799c49abc8d155644bb9ee48b5339152a31e3306dc8fee6dfc55e7b6833c7ea4e1cfedff0c4195460fe718cfd5e97c52c287769867f8cd1e4340238bae7ca8d7016b2621b33ea54ff5a99e7236b71d825c865a9919be74fe3c8cf1097e3f6b6378c686f829fc19fa6df1c7245e018ab9ddb7ff09fb5a165080455354e9123f41ce9ab21add729c510d33ad360801462e8d30b5e75b3d16e6b4ee17a67cdfd22267593bb9b28ba63c0ce4b1ece4dcc4a64c3684e50e331c1f30d2569ff2241047a360a25b566e321a83ad2772eaeb32d43bf0a99f63e06a8773e4fda333afe768c1637a357cfb264fa89ffa747c9e2704aed6f2832aaca9a1dd8ff38290c22b671aaf405eea58a6793da33d6d81b7866dca4686245b4413489694d3985e08c1d4a693095e78232c192b3f571a9cafb74e41128bc68626f18ec51217cbb4e650d4ce4bab0449c0315d94868d64985052b4e21dbcc03819ff89cdfa39ff8b4826db27fce1fccc5118edefcf65d9cfe97a231f8e7bbb9c9b9401ab5587b63f4677d16fc450b4ed22cb12f7cb48a8b621e5d4913c263e9db19a282d0da0ae3446647cb9ba9f35ba1a34d26fafb9dbf985b9c70e662289ac2d66df98042c03002430e1a1ee9a44cff405cc323690754623a4d21752e567c913bafbba5e81b681bcdfe29aae1134db3db3c0d3616f589d4cbe7bdd36a326812c6d3c0664f3f7d9e0beca4e937a709f04b94e90409fd8e29e8ee7e3f61bbaf4886905506ac2055e053990fd061556636e6c5a2d3537a1b45cfb98fe9c4b0db23d6a0ecbb77cf0f6f385f3157243eab93ad117468bd32ded382d57c3da7e4877369c6ae701b2b6e4d1084f4c1be4ea4f4bd4b919a3d033aa9a231659fa14d521658c70ae3261ae968e53eec206e716653a3e53aecca9cae979596a5315587939d1e4eadacb38e2887b362a92fdbd4cb850bea534572280faa81f8b5a06b95447164da2a949828e2e706fc1bb7e2a437e0ede43f84b85dc844290ebf879eff3f8fcb8e6b6f2c219eaabe7d9c85f24cb7b20ae1cc79475075dfb22ddcc198d9b35080485999a13a0fbb49a3b054ebc2611030a54f7a0cc81a3fa3a6bfaba0d90476168b8a5846c3385533d739c44f2ebaab9071a8d59fda745a30c162aab4dcdd77d5f9fd2e9346013f20e1bd1f979e2e774a57c3c4270d4e177df2f45f57aef87ec6fc45898349810cb64cb42cbc75928024b5fa8a95160db9e22801c3c99d13875f2f277e412d917716331dce27e8a777386dacd98c40c291a60028846c53558f0a2ee225693390189b77b5fd467015d6e7548cf910bd437ec6feff6357ae28ff3b2ed7de1419a04b29e84ccc1eee33c27679ee8bd6d9d67ce017bfb513987ea367ad0c5ea67ed0d2ff8ab1cce32cff578e4aad5dcd5cbe8b16dea49ff7d88219da3077bc76ebe889ff171c225ea6e2ea5d75d5aa6533fac3f631b383f9f7d53a6779e83e39f387f3a39437d383b1cc643d19fb51778246350bea4f56c0c1c9b5f025b9afb19ba372589b63244a2429aa3a9ca470eca2c0818c331cbd0555d6b8aed40562b23e3746b7a477b705da385b173646a6411538e1caa0e5c69e4532113e4786589b77b0d7adbe0896fdd9b32e2b9cdf368177dcb87e1f97df159f9b0efb7837dbf5f5ef6437b93a69ba246290c603c4a73aa9f10a8329aead78163ee6d479f863680201dd3b62309da226cac8c688173bbd298920fe4780427e6de9c9a1996f1c459e8793435535b047a44f491b6504d24271b53d667b8706a6c4b3928f07b7c949ed35b5e96230719bdc74b9d8ae09e9cf8153eb3d787360fb6e5a9560df6e6073f9a76dfc78fbff9f52a2e802a60cae3be780f4edc3f6b2bf82c4e3ceebfc58d331fa16ae8efe338e2d0b64fc8b547e37b9b1277c8c5bc35e5af35911e85129171810bbd20bf235bba371b7d8465b00ddd25a34f4c6830b75b87f0455028fb3985a758a84aafd14b8b98d78e9d48d8d61d24527b5dd213cc7010407a6adae85c8f7859ce15ee9ef3312ac39ace31dcaf073fb6767d3364d1439ab2f7d0cc6779cf6769e61be31962535ef1cf7ad957e54df9e23a8274a55b153d63f54948eb6ee4185ce870098225d42853c67932b1187d6d31661911925804d096288e345ad5fc5c6103a2d326c36548d41593f576bebc5e5974c61a19cd0753dd45ce9a0210147a06a04e1213bdc3e7ed351bc7b9bfdfbb7cc49eca749fdf4becb9dc705b3d7df6a2acf7269f8b08b8d69d529cb16611ba266dcaa5ee4fb18a1a409b04418d31a9102cb90848b3402a212a44cab2eff6736a4d3bb2f45b0740f1171846ae6ada54c944b9c43a345a5b2cffd3cba49d9723511341a61764e6d5eb3d7ae227f30c9ffb945dfc29cd53c868f48a0fe1dbfbf24519f20437dcbbaa9739061a9f9ef91f0f34e14d1c3b6de74d7ae07d253d78ec7378f0713d8e87623e2b43192e602cdaac818c4c9b907b0bea944794bd558f91499b966687b49e61cea3f9063538bd876a061644c4ae44870bb3c00b9458aca440595aea0becdf8ba4721aec9aee9276005ad8acb94624ac43524a18624a7f8f9dedcf9cb93cf26f1de4d8d7f9f26b76bc34cca505ea74613e098ef4e3ed98aaafb0893cd377a73b3ef3bc1aceb93f78ce422618f08a29a222cc124fa7e21a67409d3760144e973b9d2d6d4b54769a64ee30c47b5fa6119650653bb78c6e8ba3c0d16927a3b7364de440362523dfed50238e7416e4015b669e931480aa16d041a9be90f62643beea9ce5197bdaab672e8b80e1169e6b54019476c7d8f2377df5d4da83fa539c7b565657febc7da050138f19fc2b0fbf7b3efe413bae32c2905ad913c98a32aa01946947055a06362a2c77b98f2072bc4ca574429c40d6258b929890a1f7065dfa6611527ab164b4055a837cc9f90b893301ef6a8daee84ebc0a44d50ca5527726d2ea5edeadf426513c9bffaa75cd7db85fcf5d3509727cd07fd977c43b2e3ca82f111c62913ad9bfd5a3df8e13fb12bb0e232d7c19245ebe272d6f1bd2777567e2cf8fab8b25fba8dde7a7bfd01786830d83957e4212b34eb16474096c225b9d4247f2ed7c5f3a40dfa35c25ce542d0c20ee3155f13e4c50e0e82028d4c428cc1916ab85492b54345db298f256b63c9e1975d58414f271e1d1468ee57b87144fe4b2cfda7d7aff9dea902afbc1a6d3d9ba9ff8f2200650ad5e16e620090e3cdb7ad606d3fbb2403df19884cc5d9d0450da60992cc2d7cf5757c825ccebfe49fb2d6640ed3152832cbaad7f1ecf7e56bfc585ceb6758d2c9a0ef383af88f192afc8000bb0f661451ef920a59fb7f53c81dd7b6c3de997c92905728d2e161041a9ea74ca47e3a1e8cfcac041a6ca33cadb8799e4834ca7e7ec1d1be6e535a2c415840a15c808c1a9ba0b2638d109aaac4205f7d3168fb3bd41558c238c4d4cf3f7304b3636b3673d62aea08d325c98b2e596b20d74ce01496acb63c701bc158ae7f6fc2f92530a9e0e3a1fd0137be587ec06cfe3e59bf6a4677d913e6b3b783a8676ad0379cc22575d78ae4ee6b02291ab0d31c89fb021b8e6de2649ed34e128a0e89fa61d3676468facc6946c676f86b4b4c534ceefe5721e3063e51e866c24f10926aaa337778cb340a94f4b333d3391464ca2d312ed33921fb2601dc962a34db1a933ea4a9bf2952e25a525d31fb621bc1a7bca481582fb0e166f9ce9f4fe697f5e5e3cb5990fbce758ae74abb7237fe40ccd9e2823873605cd0e7741815da7f11a004b2a10c14fd3d6b340364dc3e5138b24be4f8d55cd05ba99a36bb4d06ba700068258f19c84842c21c8aa5024892bd0201b13557480c70057cd6cc6b47ca0ec755b67adfc75ffd3a7f2d9b3f6d477c47e7e0ebebd7fdb6d75b4a7dac6c7cfc45c898d26626db889876cd5d4ddc4d4273aefd5b75bcb468c0e250fc864075dd536819e75b942b2d1ea1e24bf110576112c77160b1887c289bd30f7a69d3568811d07986be4aaa66327f68c02a62602ce94c7d09e485fe6dbf47e7be907fcd99edd3bc9d66748e6b96fe700d28551f3e7fd27f465c0542592a57ab0911ffaafb47a44b5fbf323fbc69c9abac684ac5f800994a49149906d13fede28886434cacace488545958e24c9c404afad29d88462a93a0df8e9b1ca2e10c3469ba085d160d96032d6a300afc9e83a7049ea48400d26261589aa1ab4f40be2a94dbf7ef6fc7eff8ac7b1494af1520e8013bd4850ffcf33fa4f27cb87cce1ca97a1dee0bf7456af08e471daf92377a920fbba2fc87b6558d3c7b3eb93189ea1ed67eb77ed0ff3a1065de235d9edc17fb97841362cbaeb1732df55770ff59cb7721c2d7c8b2e831cbde58bf98c7cf9497a35f4d7e37456f5a937a9fae3311f148dc5356bba660d17fcfd8c1a6b664653fed4dcdbcc924259565b3948ef27c94417751e129ed61640332504109dcc34516cac42a31c919e86aebad1c4126820dcd930decfe9e508d3e53504fc2804a0863210bc7c3cf970ccc7d919efebf0fd125fd74520675577a6dffbbb9d965bb9a7fe28bf8d6c731150f42282fbc2a1f40ce464e3e744340a60dd4bfcc468d4d4964bcea44dd684b4e12dc8bd25295b074af7c0461270c69e479b68ce6a0cc8cba9ed188ce970b60925e200a21874b633296eea34e037ca68d67923dee3197e7b16b3f1466cd797e4167ad4e711ce43de912e3f97fed118461b9ba85167610e761ad0b6335a6c4ca8131f94940375d191f0c81725c628c29509d45cb345462b3c2a64c8ca2a5426604add12d11e4e8d91e310e8cbe208c0bd72efaa05b07901016c44aee9df5b632722641f4880fd221edcf3d2427bece77ba65b1e5242cfa1d484cc83afc58bbcfa490e87a32fc31bf6317d1d30dc5bf2ed33bea59fdd6fe30dea621dfb7e079fa477dbc6348b9e6a0dd18285b44259b29d51a68f6949808e746fe6e389ef24a666c71fa53bcfd836de8ceffb029fcf0106ee90c2bed0494fe79f8c67c81ba9bc3f06d2e6b308243f1d4a1a0119f97316d581a8ab3a6dd2369154dd466ef85a0ce4fbf1b9f261178f78b822a64167bef3afcb895d0ae93e85fcf42d7aa43db5737c16eea757b60d303f19472b33d61f8df53327c0041998614995e034d135499a06709f68229a870dbff058736101605a8e340b45224137669d85b8774424fb13f253a754ce67c6cd9cc1be419319624bc787400c734e42ae3e9b3568674eee1a67628c20516b93fd589e280f96cc20eb0c79b0b4733af2e0f3dcca63cff936b7b4c105e5b0e7ffcf7d9f33e08d35eee3faba34e239a8dfb2e97e59aeb527fd7674e73ceeff5339d61ca24a06cd37fe0297d81a8fbc05d85a34598414521c96df9919b70999e556b7d59f809896c5285444eee880e13c4c2359634b1840da09286e6133686ad4d5c4c9cc1dcad65b603b235d463a6ab411cc9289e780b5f565fac161fe5c12c0de86fbabe7416fc4c49f7ff7e6f919f505fbf4b4cf5e6ee8f450bacb433ce493a43e76ae62fe8cac7563b8c0d518b1c61497c22c51b143fba1642e10534eb1b307731608b630a6bd5cf7cd05f90965550c9a24470bf3e7fd94c0700204b4e00922da083b600be12d1ddaa61c4d70066df213d1d214ca980fe93774f767748c618e47fdfb5db93ceb2fe0cd67fdf674f13c2677c809597fe8dc63ef3bea6f9fe553dbd9ff9c5389a62f126ec6ec97fa54dccda9dbbd0d4ad95fa8169c206f4e55950dc566c6e09939d1af6734662d5bf2a3cc542257674227993a8d5e391354453967784cb58332cd6a9053efa13ef30b62bd71eef1028d52dfe12b6f7c895e37c8800f38ddfbc87f24cf41ef3f69552004e65297ab02e6e1d661f6539ca3b4855528630bdb983780f43380f4dec9925950244b8794aa4155320006a741b50679726f17067d2fea3aa01dce99ea8257788d239a134880e21134c28e595a13b5c24f6cea2fd3a180e5bb2b32fa98db17f5916d00d5ee6ab717cf3ccef9432757c45fc11f2a2f271b041f9f773cfbbc8fe9187d88d638c8b417a6eee488b672a0a0055e18b92ad84e294339993b94b99f35eacae872bbed2b2753198f45b26903c158480acc2a0f4bba6c005df465731d2dc8b54d133692e351209a5950a0ca76c6645eaf698f31b7267c920bee4fe4aedd27113c5b93562678974c37ae02286d90fc661e62e6cbf47886ae3cc86543dee1d372a57f428f07368668aacecc9c9b21e6968ae4b2b6a6bc1315ce2e7255c511b11a40b3091c83d341b946346975f4df061cd556565d9b722202899fdec34a0032c803679cda13959d335c8140b9f1e17e35a3c6f0ded1a71a63b0e0c33954f56de0f2db60b87a298084c26fc37bff348efed3f06e65fdeeaa4e04e9ee3ae0301de4ab67c6d5ed9ffa837676a0661aab139d48c28cd57f6ac0644350fe0e19dd0c0b508722302c887e6ac2988390b37d38621c6b5c9b13bdb25940595304c24ce77db1a4bd855edfdb3c6de7cacaa1806d1440d224090594c26912c9502e5121adbebe7f9ee5d58f7d525ecf757e6eb7fc2cec1ffa1ce8d5c663246a0ee92414a8a19ff7f267b1d2b26a1d2ec4664ee3df2837689be17453967e6318ee81a366ce426f3e8c9b392a11db5d41f98eb3b32f834bee43dc60795c0f368647e3e8f2fc091f8d6397748be56bc4ac690813c12e88a22dc0d25f24acc91af58c32688de8ace698969391ebd051597b7a5743287281832a682773678a183c4555908b23874da0b320331b2c299f2d7573e28dec8552e37c9f3805bf42ce133fe84fd3f08035aa70aa6e43e1e87ff18cbfac5a74be6810d18140e78fcf849ed8f92b0f56640ecd327c3df6870e72b2c7f021a7f0ab7e17458793640e5119c84ee5b9e6368064f1aa6f479164a8a6bb18432493fa213fc39bf7142c0266bcf2dfd461babc565f61fbdc76e752077cec7e53437ee40fc9d03e6655d9a7f02c9280a551400de884b2eb8a0399c3dc3b20d5a96aedbb49ea41c00306098ea37098a0c6ce47dba0ae106e3c0e51aaebd0ba683571adc3c4b473f37ec662f97e5a4ab6ec354844f781305e4572059ee49a7c5b86defa0c217e2ebdc587bece9ed8ad25f8ed1df9feb15c0d67551f3b2f77c39507cd052a4a2392750339d94a93f01a13b50ed3db261031b41b3e352721edb089a72fe2bd06f591c3c47bc0a8a36882473053a75623115098225aa0c6b7931a35eada9739e0173ab4455ab6214a9d8cd0f8c331a7fa36cc9daabb3a5ea0cb37fd1aad2ff26b645a9a4ad35826eb392483cdecec592f237fc4964ba185042c88f7be8be4d09648e89a23c7a1d7063401704cd6831f8c7b66d56dc86a95e7aac55b39e69ff133fd1c6c1ef5d9edf33a60f5660ea51ab1dea7eefcc18e0491354e11c52981c467ce4482a66dda7e7337c236d919ce920d1a6934674de8b8a6a737d8d1dd72ed4b64895dfc13b026f4695e305d53415324eb50dfeb9304463998980d2835b7bcd765d3f49a6487a93d0a9ff874bf898775e4f25450d3752b67070cf588d6ff1d67a361417658beadc2bcd535c655afab1cee5378797cdd99c387ef00f2f6a1bc57cd89ceddbbca3690f825cec94c73710da7bc865c022c07f370a1da96c821208224942976de24fc3de434471eb7b478a7d1ea7c4e01c32ca48d0e2b29ca390e3018c18c6b9cc244d021ae5780e9bd587dd46e9421389ca5bf8ef35fe22f8b649060b9cbaf3bf43bd885de7d262d560694f61e2d093a63ae02026433030b5bc615b4816832ead46393e26338d9e79b79574ed63f8f7fcfe4b9792947f96b3682b1772f257b67126e3528721e2bad2289b05a41bc90d5f63af46a3de3e6805277a694986872b7c5ce7a6bd1fc1e49d2329255c3b333eeffe7edcb9a1be5b5aeff1202d3d5be6c6c0426460e4203e80e105f30084c6262637efd571e92cee08ee33c7ecfc5a96ae7e489640d5b7b587b2de414cf79dd9698783c63708b5db416250568980db1d6058c8e5daa03c409fa14e37c9d2f0647ccec9137f502370756fbd83f3b4832fb57d4d3fc1b711cff73fcd3393dc4a607beb8773537e25f159bfa216842802bc2db2aa463284b7117526473ae76722aef84610f73ed36b8eb94ab23efe879dcf5c5fd10d19f6efff74f39b8ff818ed0bb314febfe5797e494b3bf2e068b54b5e03e08f6710713255d7677498d0cc6e07241f15362b7e5c2311bd2ccb684c315a69e2b2bdc864d36ca5c16c57cb6cb59bb4e26dd73a2c381e86642271dc4005b742a76b4f9b30b9bf62eb1db246fc40297c5adf268ed899f12a4fca5bef9ba77da67dd35ffc0512942b089eb56c5c63b9db64fbc09fbdf7fdf2b75feeffec512bce2dffbf318aaf132a9592927efb0f2fd59fc5873ecffcb26e636abc75a6a603373e8b3a8fb42bce5cc5c7ef78c1e384c2ee9356ee7879ebc5bd8eec3991c49873d8bc9d186bf9dc70193725613e02b5bdedf876ee1111d069ce3596ab7a1b4111615f6986a35d1641bc9055a4cba1dab573a9aaa30a4c5af58d736b29206655e8c9b4027c0ea432aa24cd776dc6628ab4c0f4738a265ac65a0ea89cde678eae9011dffc04760db94b39db8689383fddedd00e3b05f57ab1391d71c63e0b79f4ffdb49fb9c5be8a839db0444c68952634b5be03d68cd71af0f5ee393318c18d05ef7413520dec90a669b25438d6e504015ff7b5ee713e8828a3a0c50ade65b637e1d1aaa76ef0844ab1e48d15f8c03688ab946f8f370b0a825063d5b5b524e1b05a44b36eef9bc6faf8393ddca9eff865fe2dfcb233639fd6bd66bb79843787da776deeedcba9e7f03a6cac6f2b226c7323233493aaa57ec55a5cf78960ad15da1e930a8d52da0d128829e6f12881991102d9e001170b1b701cd18d0fc412352ce27cfc2bd15b3375d53477e836ac3c2f61dec4e72d475346d060454c5d1b23efbfab7a1621d8dba6ad883ced0c47e2ff551db5125cb407fc8eeb6d3287eda4a354b67bd983cff33abd89c375f83784322e44a8af76a9ddff123620a22c9290b5700ee227de30f34ef31a3c15b54f624d9062ee3799211cf99cd99d95559e2d22cfe59185d054789ca932a9cd2701ad05e16d900cca424a3841f9f0e403344f61712b4dd297b7ad4b7466bee14adece4b7b77f1ad38d6e5fe47fcebafe39dfc1871ac535ecfef6672e22df346544cc793848e21e5fd162bcfe56500325d6c33fb6a1bb38e23a5c404eccfa08ab9f63f5b93d481e6c79ae999f95c9bf7e8e704fdcaeaa28b23a5dd0d7e8f29eab35a0ed914b7b1e1dd11a3585dc9dbff3e07fe551f6978c431fd77fb3bd6e691b54b8d3f8733f3777cedc4617dd55b8709297adf686d41e8287121cb78bb8b19bc4fa336f169ef855345188077cce961a8a11972ba3bbf1e6359f54932c8305630960db609f1621cd98368e4132bd53430841e4eb11f10cb62cb6e2334310495b6bb154fd8de37ddfb9db3efeb0757a9815ba1efd7f1726efe1366f6676779231dd5a4f54bbde8ed676dfb0fded3aff68b614dba4c17248e18c874c8c3ca7f5a38a261cb6ec11a31e14e37650ee0b294433288e7546f6dae5a5dd23123956439b19264c02cb30b8ca70262a725bed36e8346960145fb3d53a92ef43c6a2731f0ec4f5a633f8f339f93b77d23a7ba0bbab06732b2d6222a54565ec692df06138641e6f42a77d8ce3fbea96f3e1ff70c5d918342ba9c09bb984bedf776e18ad95c9fe9492dca40ff3d8a076c117bec5de77b7cc9097586b3fb235ffd8f7c0e95f2f1e37b3dc30fdc50e4a013779d8f419111547d88a9c248eb754ec5c487d2a48d3012d706a4643d758a12290b2555a0c74a354213eb90309153dca493f55636458f9898c515b8c70df4c5205742c95f6944476cca129fc18da88b8ed96a1546f8da7846a575d0a57afcfa167d07bf85fe7bfcf869dc23f79659cdf9b87ed32b7d1aefaa3e9d2719657dc24d2f8422a07c5cb086cd72e599dc09763e572509bb326d022d305a1b455e74a799533f928f0430c2ecf17007b0429ab897a5b4127b6448e59bf964bc0923b522f00fa070d687936e9b4068852e05b7b2f9a96e966fb0dfda259c9088fcee8d1ef265ff853c3cfb13f0bc8fd16f810ffe30fefebd56d90e14f18143129627ace3685efee9d29a8de4b5d8015a698cca21b3edad34ac84430949e35501b140e878cf898b152a1f0639453d9bfcee5925660b0e63bfc616625640f558a72c03a15dc4a264b3908322635697a8a26035e3c980430ce4731ca975ca6243d29bf589eed7414b77fb38457549845b59d3b7399d4fb928d1b0e7d8c0071e9b0376ee6bed96551cbdcb850d9f7555e0308f9099726f93becf9b9dcd83c53a5ca7c77ea2b7f3fc845d3ff825356be2e377eaf29aedd2dd975a1f6db67baf8bf88feff437aee1e69039a798fff8fba3337ff75f71d0577ffb398ed09070f93c7bab47f12937f752077b9f9b3bf40871f6766f3ee2ecdff6123deffd56e98cb53cb2d4bcc1bb841fb4a2dfeaf21cfefb3777fcc33b794903580dd770279e5f9b9ffa117fc7dedbee37b9d4171ea61ff06ada4f947730368a9638fd040101732ab49c7acd8260e54f8bfb20427a46a4c3a8d7049145b3706cf88dea02ad3743ad6d30b4869c7b134c4d2e6ddbe036c2984bc8dd624e9df133de759d542acc9d870db1d5ff15afe6410729335417d7e3f58718fd3aed82bfb9e7e7ccb0d4673bffaf77fae166fa3667e6b0b7f567eeab761af77a6e93a4ea2b69b3fba0b47bbf16f7b461666643339dfc063e1421abd424e498533a268c3197d2e25758e251a0d0328982911fb5611c79bf902669e27410abd6f499570aa6760ca8923a68829585a5569801f77bf10937f26f7fe9ddfb7bde8fff87bdbff01e7f7c077ec6613a1c729291b5b72fad74947e8cc5cefd5c3b6a4c5d879bc281365ea78e4cc206178cff3653ae4450233fd00bca389c91babdc3250a78e4f7eca0af2e2da92b9894f08947c55c30486303fb0167bf023a9e21d6ce69f5b01583e709603da3aa3382127b6c5ab4b4b1f40bb8a9ab62e8b3efdac738eaa7b5a3d3fdfe276fd1b973a2a322736827f471f18d3eae8ff6fa877e1a2ae3fd1bc4e5268e4e7edabb799c344aae3a17da686e302f713cd727de34d35bd3af5ac806692f226b16379e8a9928e86e7c9fd9a321e7e8398f044c21aea4a681b4142e27224235dd85cc5229173a06ad6214f4bc54d67c406e465542b89ca795b70aa26c736d3ffc376b62c369dffe734c73d00aa88feb7bfaf78963fa3a0c9da8db5e521f2c38b291864c36089055661c0e961334ac4e405ba6ba72f1f0b0950003eab2473ea5a6efa00962584b9dd1ceb7e98ed1994677e328601ecf78118b5a24e9d4f3492dc99d2eb180961772d5cd3f69805d8ad145b17fdf92c6efb2863d4b4775e252cfc98d3426450d8b6cb7ff0c76929b071db943ec78eee73fa941467f343c2d06da6406b5e12ea97bdb9f7ad3058b47290976b8f2eeb32133338e7ba6fe6c825a468c3de819f43c4ebc6d580a2ea6a2672e4c16448140c13ea9672084ed9da8e01473b4c40d8e52c57e2d9807fdcabb595ffc919be7cb3ef73275c660fff7df7092fc8b1fee6d0fc8c916c66779dc4e58a62f7501450d07e9a8fa55176cf7295f7cf0d3f7773375c685981c6a3cdadeef787d335f6ae99fb0ccf0a5d6aecfcbea3f6a087ed54f7dd67e9ce753f9314ef4ddf827ae87b77ba669ffe84fb8685790b2b749236d62303bae3c634105f10728a8231bbaeb96319d1973add7d114b7a82ab6c8f050cc951e30e80868ed086b9f8403cac41e2fa4e1cd09871db1831ed5c0c49c2d91562c64f3f0442adc0b4801fad4737be17c5f7ed34fdf113ecae589236739eafde5a7f8f7742e18484e6bfffff67ee9ee3ff1e01ef4e8e6fc8091aa8efc865577c04b39e3e7fdde5cce9ddda44fe3e23c4ef670901370c06c09877632f2da397fdb5b74d23dbece178c425dce999e01c1d8482a2fc1868c16b6d045ed15e1545a1ca2955f23ff6e408f880b848d96118a464cf3ee7c1d735fb70d66ac4639f1eab9c1b0efd083de65cac7159ea20d1da896288c17b4e0cc56ded5d881d7effd1733f52d3ce37fcf21bfeecb07fcd6b99f77073dbf2b7103a2443d256a43a3ca4c4acf4a6c4fcdb5079355bee947d24f69370934c4e6bab4896ece4905051ed82a33e43dd23c3fd457db052d4a440b419a95196bd2bbdb75a3d4b5ec40530d76602ba118fc29b2189c8d103cdcdf7fadf163a68f9fe7113af2d284e094f790ad68aa0bb1cf198d981fc53ea2c8f6f1678336e9f2905b3972cc9e70ca0917e69bbbf0d57c4fbd0ed761cc53a7a8e68674eeb4fe69418a19afc73430f09a355e11bab84ea62ce65c3d86bc2d525894c9208798314d72f84c356c121b8cd2aa585150406cb77de81636d2c140cbc2f65d364d23b84e0cf918807894bbc2088f5c4517f7e390bbd24f6fedd7f105f8a0affc539fec1fe3efe3d00f7bf47ecdf7e35f77071a6a20f8b015cafb45236861f8a0135bdcdd0d6c4d75b8f6c3ee710e60c7a778c30ccf4e1baf66158c59897b361581349499b2b64b6c59cc0748982e37928e3b515a5a50b5bf78e3cdb8b2fc9c837b7f6af9f927bd9b1ff3cabdbc59f9e1cd3aef47a9cc012afbcbfb7cc2777dc20ed6c2f98011fcc8adfbaa0781da94ab751cfdf5750f7cbc1779bf8ffb96d5ac8a39baf4b69de931fb0f3634f29470e00977f57e1effd6f4f8aa07d1ded0dd78964d45916aea319f4a9846ac916eeb67ace862cd1c722a86bc814b39153d259519d4d84525c449e525b81443629b6d365813ce663a73514280dd4b578a78b01c527ab1700a43ea9e8e96dd1c4fadaf7dfa7ff916112a44fdde7e7da71704ddeaed3a33fe1bfb39c45ca8f7f75b3b8d7f5d8d5f3a9a1ee8f8179bacf5dc45763278dd02fabaa4db11ab8a1169a487aa16c4cb4e2da8299883ac34f2770b188c906bd198cc00d65acc4af5e8db48f8f6a8cf2a6d94d86b2d9f8a266b2cc7af3c2c96eb5d16497e6d1fdebb58e56bcefb1edd84c76a7fc6f1de26befa0b87b5df9f75125c89a1d03614569bf9209bb036dddcee31015e41ab628a59d6a369a167b698e3c69a840c2ef2128a7437b673c79b49be0698c13e1c0eb1dfaf9cd29de4d9082b045307db7c5a3ca70e2b328887c4d96e53928da8fbb0bb15862270feae43e67a9bdcadba98e3ea42afec9b7a2358a7ba6c2ef6cb7eb4c567ea5c7124f484ff7eab6df599a3fdab77f7580f03e738415ff797b35d568f5f7a6fb76735faebd735e9a40e77e9a12e75fafb67f57bbc3a39d4d181398f64f132977f696ca70ed4f6f7fd5d0e937c9af33ae1722527a0cb4370d8c3373a7eda791d41ab4debdf7ff306676a9e59cd0af1c6677bc11f1cb1331f7962cebc7b67f2b899ce4a19796acedb21d5475de6c0dddf9e8fd9596dc44c67dddeaece5eb516fc336f2e6ed3a6ea52d703b3b79a0c5fe37bceeef5d7f8fc9bf04b7c1af7d58e1fec1a5059e36db2a5b6fd01a6ee2e259e4f189ea0c81bc206aee9603fc53a68b208a245846936582cabfb86b399c15c61b3294a042806462b90f0594fea16a72e4c42277e92369ea30873ea60071bd2ccc89f9dd4e0266cb0c9a90aa9ae9c9fdb6f60c491f7fc8d9ecaede733fc1fd73d9245569b6d5a67ef6dfadf9f77a7fb7b95ff9b0d10522e41d0649b4504b57880db39909413ac32a222c23c2fa0e829597633e6a0fb90aefb848f34c26210535150ea9bbc429e9c5a5558ca6d56b265c8632d85d636748525e19f5d1ec92db3cd261be42a8baecf0d6706eebf8115bf4d1fe57eaf5dfb758db3438dcbbe3a96431a2bf3c61f094d05d8f578ae8227ccbb8153af9491d593488da856c4dcf56644eb43da14cc5f8eed8423be9866a3050561a0bc7031e966f1e00166b44c46d67d366041077c97575e1734c56352211e34857d29e7feedb8a2f1948cd029e67ed3c3f4b56fdfa6cef6d8f77bb18f25fb5cfffa998ff376ccc37ebdd5b939e1ebaeec6b83f7e9a09c3b1d23c6c1d4affa322ef12456424fabee2e8738482ad4dd012fcc1caa090d036c78bf126d6ba494f17432ae12a58824debd80f68e3af6e04fbd0572c67d0250b3e06a87eab62050def98a11d658b7c2f01ffaaa8f9898437f7523fe6abc7cc4849cb16fea591cdf62238e2ee55ace68affc74ffeaa04ba3831f728a0bdecda33bd51caee389a29ebd201809fbb71e6b5e8b2a6a225058be23260151cfd280c69d51b8287ae819541eb58b42bafee0eb1226e1f88934d0449a1785368cf26981431b61ca3cc208a3b9e36fc35ad90bc7fc15d7f6b0e05227ec563c90c7b85438eca439c9764908def23a7d593ffe579ef255eb78f70993748ccd8e189bddd77c3048a59150072ec20397cfabbf78916b54d47d215da465dfe27eb06f11fbace3080fd23df08fbcfaa3a71e91fecad847cb9535c2ae5a05866a49e91921851ad57a0fd5b25c4c671bccdb9ed77e9feaa6876cf06bae6fb71994bb80f703d5850827bf77bc52250b3be5eb63cb6fa42d75ef57c8e4223464e197c859b8de0a2d3b9b2af97421f639b3bee375ea8c8d638e43ed0447da373848c0bcb46f718737a9d36fe4c1f6e0bd6d2a4f35a63ad5fb756a64873ccb3e3e8b0d7ce8ab42e1a8bf92277fcb4ab646366af3a6d5b32800781a6831c3715c89245f768e7455cc4aa867155ea006ee04ef47d21182d22ef2edeede87d98e4dc6ab44a3a3dc156e1cfe06686af90968d7890e5952fdd662aed69c6147da05ff840bb8c8cde781630c351bfbdfd0e2107bff99b322d61f2e63f477b7d0e2109b6c0954ccd1ea68675fc7ef8e77f8baba41d24021aa7e8b74b05944c2cb19ac17ae7a6283a723cd7ef2ab914679ab029d7928ececbc547156c3960cb015fa68e447f231a10f06ae67a654e89e19028bcad452860a643fec683dc6ccf576dc51ba802c492ff88cdfb7b16a987354a44e7fd0957b5703de7d1d77a586d7cd392ea4635fac45dc86a35f6cb25a3b6088e263defbcd676d77d0c6b8aed6d6f9255cf840dea79441c6bc2619c46441a54f34aad186454413b55f167ee23c9819954250738d0d5b63158e19efef72e269c9d41b52db5b3052b8d9b48079dd6f386bef13ee25612935c45919469e43f5f6529eecfb3cd91132d31a3d25d1cb1b78e002fb14779fe3097d9b87401f63f01ab429a79d74d556bce29f8f1cfd17705787f39070fc7a8ebe8e4d3ee6dc7f160bbe1df3e51ea75c55c7fad3098b775d7f145f38d24fc3b5e6d36ab370ba46325b9bebbf7b3c4561488b30e585c055a6658eb9c8f9f85936acb81b826dd6c0127340d1a4e3688066cc564350060019c532aee534d3509d2814242406321c47a811739f5dec6df86c2b1bfff9d0bbe15a274cc8ffa2a7520cf3831e4d7fd0ad39acf5fb795cdf4b4905a606bea31ae049d56d0332dbfb75ab858b2694791d23e26931bd2ec7ff4e0be822eeef06bdec0d7a8b237933fe09ef775ddede925166c6045bb90ba3ccb14d0c589d94bee1db1ea26efb2be766292acf0a5436221c2e91e6b94cf30476565a18a1260bbb12db9d964fad1635d44c6a142f220b63c71ca4818a988ea900b80b08db62de5ed357b3c95cdca6ba59a493afcee6991e8b8b9c0237c05f7e1af7f03e80b43e629be607fee6e0dfb8f9aff472a8dac80afe22ec415b44c85940b546a4a8a986a2b0648354c8971cb6b1b2461cc23b5cf55d508d97cc65d3acb49028e13c61d626b3255a50b3c575db72ea4de35a1431f19c642af6df19a30a2e98c29e7f81bffa73ae412af9ed1eeb5bc5aaefc6dc9ffdf79a9c3fd1aca312c551a061ba023e89fb4453a65f154a56fd3a2bf15a52f331a8a59ef295e613348f19b490de6a08c6a3a0c42176519dd9c51302122fa8e41917228fd468618fc95cdbeaa8ea36f9a4db85ca5b247aef8783bc152e702b39d87ee002fdeaad7cd50afbbaefd2fef03eff4c2bf5a07b76d048ed37f1523bfdddabec922f753892864ad0e0f9c920755ea985b4cd45d628834fad44d2dea4fbbdb7b116734f09d5ce0356015ec9bb040a4de8f8575af780d66cc86db3a38ed230b148407f3f9161a66740d2d06173aa553ba981c9adfca4cf6fe51b5eaa8f78736ed6a9a39ac40dbee640e2e64a1c6afdfee92d39e343d5eabd5ef8a1ae167cc262a6357ae3739fa94d35c7b73539f501a67a0fa4730dbf965ca7faec50a3f9067e0e7ceed5fa0f67ee556b6f6f8bdfcfe3c0737c2dc71615cf61d871ac8db769ddbb219449eee215b5657807e08a96d94834ac0d076b2055ff1442a8dfe99ebfe00227841aa96d2e840b41c8bde7381c47592d4262789bd4b547585b03ccd77a502b240de8cf0db1a14add2a17f95e1f50bdea035eb41131df76c251bb6ff83337d1a339d8881aae0ffcc947ed870ff338e9fa5dd7c700c2032f045e251adbc87ab5237abc49237f083923738da94447f7886053da454860ac519b09bff156b491bb1016fe3e7666158374b0fcc4e90adf2d0c52610d03f58c4861e4d4d7b2813e115a0c44fb7dbbfe166eb66fef27bab467177b84ab035efe06efefe674af3672a29947ceb1ab6c7a887416652e8e25952277659b34fe56b0f849966883965d1c4ea19731315f38f88e684cc500d6cc014f698d8c05851c39b894bbb19db845bbb04195ba30904e31ca5d2bc9b9fa45a2d61443113207c04ccb9e6ed5c31db8a84d6b7cb04b595d806c376eb3bff5fafe5c1c1cb8e857cae12e36da22d98d8f7aee116e53ce76ef721e9f6cf951f3fd8467fc5897d7cf631fbee2983ce9717fe492dcdb16976d53878d44341bfee215ec0f5c00e7fcbd7febbf9fd1cafe32677e81cbf133be6002ca781f93f08ff9a3733973bc9947074dd363bcfe417bff0cd7f181a73dabb72f18832e75e0e81a3feb136ffc57fc3a875af10db09a8657c43aabe5de669e6ce8fb791c39e5aee35c0051527501a95a070daa92766bb1da6c19ef5d0ce48c53f9cbafdb288781ceea62311f70e753b34a742ff16bf33ed39873a723cfa7ac12065ca3a89dd2ba18e6400c94a950365e1c1b7894189873d8b24457a36bf3ee8903bfc15f76132e91557cd4423df4001fcfcdb5386faf92d5ef2d5354273a7b44c07b625aeb66355b25b5f78b50f8889b3f600ec49cba7f808478cb34c591ddce42d8cefd703cc91dcfa10daee7066a03e21106b0f2a7aa8c29ee5883058fda0853b50c94afe517b8abafa8897d8c69df62752ee04d8be2c0f569a8e7780756a93e7efa1e37fb7fc7101cb812381c726e96735e6c52bd3bf0b39ffdf995dc65471d16e5f85004586f9f72776604913229838b9c77f1c26de7085abab4999d01761730ab9706dd22c59cbc84ebb814505615f00d14245336f37917e54e3622aaf010ed07a1bc292f0bc0a76a910065f3ca5bce75702dfef470560fdca397edd00dd75cac639ebdde95e3f8a7fea6ebec0fcc7977c72663ecd3ee9141594ad7da0a4d594217840c96160201b8628f89235156da4662402a3940e95458a289074c15491dc690011316b51b6e6387d970c66c3c45b6799f6ad9863705f335a6a73608aecd8b7ee6e3b89817bd414de270a7869c8365aaf77fcff4df799cecd395da8d765f66fab897e1fa49380086ac9ddc0d424b0dbcc055d7cf0769a7bb2ef15daaa520d8e655771f56e6dad77b110e42c7863424f15649550c77433c221a4b62851f13c6e0827b0dd1e0843b5e30d7a49e297f1b5edd9f7af8de661c79cf97f1d337e1323f9cdf9cc35d7ad02ff83bfe499ff74a7bc1fa40797d42f0a32492de01dc63cdac320aef7d6815140837d3b01b2a36a191785a70c69866ba54557da00917bbad48ec3e4a35cd0815848283e7d4153c36e20da7ac8b07cf202a1b0595bf43367b6611bada5e0877d6258e1aa473f01fba396fbff1bede04637776ece3d9c6bb392ff6f6e6e0e7a4e1dede9cea2cd7d993950f154db5d52022d9673a4c7cdd7418c405aab14fb4c0c80c38bad358236c5fbbd3c66558aa7b49e42f5ee1359b5a03872808ed62e7ebc814dcc419b0fa8c7b3cb4e5f35c1f3b9c885f492d60080a57366d77abf823aee12048acbdecc7d1df3d8bcf2d12fdf77b0ea1afdfe72a5b82d5decea4badcc55ceb3287ed62fdd0ffbd166ff80a2f6a57fcf71ccee73310592aab914a1bdca60e1be67cbc4c8e77f15bf33e695a5c97f36170226b8fe6d05a6343ce92d2d743e6393e113171c602738fc992091ca97b7f780089ae886f2be20f0f83cf4549015e708843343c00d66007abd52ee68540833fe4a5f59493e24e96b842957abe0368b833e4ad723effbcbf6fe2a3af6297638cca8ff1e73c422ae570bf9ee537e2989be03e0fbf7388efd04a8460101c14fbbd8f8da3effdeff969da753a1b077b50c69117247a5f32fe60d06a1cd16a6d0446bc43c00ba483579c172cd3d93a0ec74010ba49aaee5752b3863522c62e447ea57c4c14f62bcf4d4b75c7ab76e5f36c8474b445440c321c3b024092d728a243515eed5f1cd7631b47de20a2d9de07b8accf15de02abb2ff9d3fa71898ed5e6df1e7f974fe6404ae8d85e454ae924628b1fc0d429bcd11f022e660962bc112673bcaeb0ecab0f3530742df5622af31929158520db7995b4c6863dda72566899b8d78a360a0b16231fd334a98a00b584c93a6dda0a6e878146881ae7c5e5fed6b987b7b925ce454be55cfebeb7887739e1fec9eaa7ee467704462dead72c763990e3d19c147d1083d060cc87abbc1f5764053ef0e956c24b4dee7912772884856aa3ea5ab0da6edfc0ef8a3d8f008aa81974258cd75db48c22e1004dbbe0d1a6a78daa19fb2a64f31bde0677cdf7e01c955f575afc8a1f7ff43ffc7899be2cd3bf7612e5bc1cd4a70b33cc377fe6edc8b5c6bbb237fe34db8d68cc377d9eff761fc39f10f789acf7b7dd18ecd12856cda64ba002d44b4454297a5b48b49acb73ce6ebed62d2cd31132baaa916bbad93aac0a4832a04975d367d0074375ed29a4d98c24b0421c5350c49636961a99e245305a98be7b83221d1bb65a8cf369f72ddffbc53efdf9af33ec80bb73058e621a8041785e4fdff8a77e1855bb98b9baa130eabe388ad8f79eef3f37ac1b05ec1734e486469b1219658ffad2f6cd8c704ce111f57591968096773a9afaf7b1738386a91f3bec8ff677df9aa3b6a9d83751cb507acf887795cdb6fdfcfa917a5741c30567849fdbbbfd3cd84d8fd8433fc2c1ab996ca7a22d7c5306d1ab1ddfe7ffb98f8a2eed7c16ff9eff9d7840390d5fbff1545a61ff4bf3ecce37a0ee6442f5a14a15da28f3749ad46d44114e9f6ce67c532a780b1b0db5cf7a6a96751f7add08b6fddad1be000dab416a71ec3c37d7a1dff7487f46bee505cc247c2714d698fa5d6ea61c5e6981611aa65c406b814f59777e8a77cbde7f88c8cac86dbec34bf0b35d536ad8bfd5bfe1d7cd8c77afd0fcfe22b56e0780e5fc73ff5755fe7233fcd0de1c6ec419b03b58e098af246a1c01094d271cc39f34257f444ebb4b48113e1b25fcc2eb6796361deb456a67773c28bc4afd64f989b938421b4885a97ea630fd70c65b098e78ead09a814af14ce3833aef6914ff5d24bfadee8066f455a57a735adbae3d9a0d7e5d8542b102f4048bb29615e8421eb79ddc384643bb11caf5356cc49244066b425a15e2579df52829e532597f954c573d04e28fd6d60473d12ca041d144cf6ef7ce9f5314721a3400b0639c8aa3704b1d6b171addfabb6c7de6cf3f17be7f506315f6415c2c1bb797d8a31de7efe892625f301b21fcc94aa47dff59639f4bc3cf26c42199094858ba9f085d3378c67265648f1b2a824834b54218607afa58d67f983409c091c28b4cd1476e6a0554124f59cd920a5d895d4d4436621dff6bc747a759eed8cfed9c5bcf10d3402d4497b957547bce8c1267ff8d9913fea4a1b31a2cec396d6405bd82644251b48d3ea39631dd3a5e747f897af837946322db5a5e53bc05fd8bde035da84513b27466b2753314b234fa404553e299e50693d870edb0543612d68d72d9c4e48f260e4b520b836fd6b7b870f58a65a3dc79167cea3ef60986fe6330dc79a19dce52178c5319f99cf8fb88a780520554a6583d862575579c4dc84e34110799f69c5483a9e8780e48231981a6d4397e306195ee5bb054b3810a4ee75ae3c38d7d63bc265c29c36ca49b64354d582f7be60a2c45433910e3a093d97bbb7aa29beaec99153f36057cc61f67d5d94fd1d2a63deaf8f38898b35c5dd2df49e3f70cf1ede82f7f3f811febf4a2bd06786a5236e325feb37229273bf1a6d7222e7c4c523e9c027a93088291a18510e23743b07d04e395e86b669ce876013362c94369865cc637ee96d7cc37e62c383c9197c161042411197dafac937e0ee47f747ff469c7113dcffa13fa87dbd27fa21aeb85a2b9a7371c7a6729718160e4a0b640e1e845df818c89dac8b49588b5234ed82d4d0e0142fc248616eb7bf7c5bf184ca1a0dec7e61b309b53b225c61f88de7dc69bd1b182846b648162e2eb3122d7da2fc18b43dbad9dd40ed9cef7de5dfeff92dbecce3efd70c17d2a1dd0baff7b7e2e71bf8f8d90e547184d52137ffaaabf7793ed7eaa09f6a6624b5314564a6497d8cfd6951a4a075f2fa619883951eeb0f260fc790810286d0de041c86a4b448a2753d72835dd8643b5ace067f501a0545270dc6535019c4eed74185964453eb7cea7539fbb32153f62b19acaf354ecfdba1bd0dfb0ebe7a7723acebbb315feec98117f988b7be92f7d9ee32aa8c00d05eb0d9281824155551242e53192bca85237fdd69e04abd9ffdfe0b903abd9170ac251370eaa7b6f6f1c9a5b3792b2df4fd3ad592f76ba9ab6affc69eb835b7a9ae9eff9ed37fcff35affd30fc1066960ce6d3ae2752708932a8b6c40766b039581e90f3261e4e16adb7bdcd7ef6038fe3b1ef7ef782feb73c4519ffefe75fc1b34db4abbd302859d9083fb8ce26762cf76899de941f367977134c7545492ffd6246cc182023ad71e74a2a03ed7e52a71abc1777e0314b13ae662142ec7beb01f8c05edfd6cf0e6a2f19e17534689dd99019113c66fd9a3ca46d2397cf7773d8997edb07ace0c5ca44eafc4049cb0ccfdfa22efd8a107f8363e4ac2cd413a7b3f8555c7fdf3f6f3315f6cc53fff7f72e875bece46473259b80f7dd2f846c8ed6da2b3924ec6d3d0d636be062789063bc9db18011948059f50c380af89751e8e5132045ae62a22798f33c79ce121d089061e435bc6416479a436398270c509224c3761a0fddee525bb950ef567bcfbabdecd27fd97bd2d39faeffbfdd55525c2b77d165f737bfc535fe77f125f9f1bfbe56e9b4ae8504b22a1e651abb2faf7b5be563fe73d2746e1c555a04b7dbccaa6de16011609aa90806c819cc2c5d7bfa9cf99f38dbeb29bf99be6360d5fd7649b863fc1ab6926aad834e462b5880a0ddb784d5db526ca8a13b77dcc0cf514ba08856ad52f6c48320746b98266d0cc34ce3c1a03f1c822f12ba64591536c61e6ef524037bed66d53a75d85903d4a8842522b5bead51697567b2d8ff2e12c34ac8b4fbc681735f86ef3063f4b0e96229abdc44b2f9f3bb4bbdeaf4753384db8781283500b88cd14a2ad7031cd1ce6b30af452a10966e21773b116ba02d22a30d0d47eca1c3359d87021cb3f5b7f8a11adb69a0fe09cda781d0eaac486586453b1e04a268c7aebb892318f8a517a75ed589d702affc3fbad7b8f2fb6fd0deee5caba31de6514bbbe8e96b1d18e729bddd17a7ccf1d749f34b8caa6f06eaef76636851da947dbdc81bf52e50d8b49d749eaad048065569bcbccb036f994c5888b7b3958b3b402cf712decbc11cf9802285d6863dac274287e9237fb6c83bfe6f2dcdeea4dcd1cb8f70fdbb441adf81bfb7f988f76d21db98edbd357cca5103569847ba9ffee13038f16b669874e0ba82b13a6835962ff7e12fa6a2bca6ac0bc5b117b06682da305f31211898833b50e794750d32aeaf83a235e94d9e38a32e549ad500ba6a6c8c611a61eff89dd3871147d2757096e6293ffad43b6bd36ef2eeb7ece06dba09ad9a329de4823060183a1afa1de773c4c6db65c4cba275c221682d54ed42a21d538926eab714a4142ac695ea124b7852db5df60e1428b00a9e50e9e5025eee7200694ab673f928f81011d7e333eaaa278af33e65ff433deea17fd0ffa22dabf58e4edcb9d78f9fca33e0962c836a98b822ad4649158a5e1ef2dafb1158362c19bc04ca1aa424d6c63e0d96cca18810c70560429088c05c18c54e38a855d93c140a74dbb41fa4c63a537637cbb498d3f3a36a0584c2b2d60ad214b55c737ddabbfb8ec77b8bb0b35c26c070e7a82c281bbac8697f8a1cff43afd78efde8dfb72d70e5c2c1c1759e3157978d294b8463f9816cf21454e520b3b6850e8eb789b4118a48e84a2690b6a58d7d6ae8779a48aac1e752ffda2ff23ced5f615f3fd1227bde40d3ecce7143b5d59ab128f5467cbb9decf52de6d721e8cb24605ac5273598da769896d9f771b12417167883ee7ed23e3a2f48dc20c0d1c20070b6214084df1c01bef396390e40a55d98046391def18c33eb37d93403165b5f4d3fa02ffc0b9b3a9ff8fcfa4fef62ca21f9f4149d84240e4080381c48128a8c78b50c53aabba40e88830b780d79dc123f770dcb05a5cf69f6fc59d7fe4a1e61e10b550d92127f37e1ed772e7fb2188f2e903109118f9043e0b52e9c45d8db0d3d5c9a42b286cfbb0ceaef30f4e3a10b15ea894db9d74bde2b81e9735ebd14d7a624ebcd03a5a090e8a7984777174f0050f1c4d5fccaff32747bdd8abf8591c6f19680f40d84830c2e8c2ee4bcc8b95e40f4668af460bbb8825cb862c429e0faa6d5e8d135c7535afd82c36ac28a1059b6bed28afd7ba5faa49d6a0225e8e3bc2d58c46b85d4412d1c97a84a62ca40e1d587d5e2324d199292fc519bb1b61b30f63edcf5fa7f2283e69dd5c17bb2d22f5142e7f6b48a1c57c50736a6b9b4c5765e2b61869639dbbcac550cd31c00576fa39a1721af0bef1159b2fec2ecc097e8c4bab5ab8c88977eb2d73832d67ea993945bf800f3baada26d03303412fc81d59b2ea566ffbe7bb3f2bfd6fd465fa423a6c9013f0eedc5fe4c3f8ef76631d47586546d0fdfdfbfbbdfb3c9f132fc6957a7a52b149b7f39d8e26c0c3c24615a768219d0e492063ca30c2113242c37382baeb90839e281d235617ab8c171ea155cf58b04b6cf07837c036e1d24b1c4978ad01017097292f0e2a7383016b6286851f15b7d2f0dec61c3dc55cbe70c9ffe5b2df5ddccb2376edc0c17f1863bfbe177354b7b16f67c7defbdb6739fce7e438ee955c2736519ee3d740240d5e85cc8b3091f70b27d8f0a9b4f20a8f9033d6282dd66832c6dcf1800fec0d569e1154a214faec89d7633b66ac42b430484907c9604c6cd8ca21d353032dee80287cdb84311d47a8f16ed5f752244dfc771fc9196d9d1a6d52bd6bdf70e69ec1717be7f8dc5fb90ecfeaf17ca975109fe5f095871ad3f829e1f4b5bfe22fee21b8142bac537dbc8d6bf67c99b7f48c86d0cfcede2635ace5013f7ff07ddf7ebeb60fcfee84235d1ffce963adad43f8671b367022a278103ad4ee0ceb0e2f7f8f6ec3a1fe5727f69bfc37ebd4902aab51b1f70b5ef5e72ff325ffe7b7f50c67c6e16e7f9ecf8ff4fd5cbfea1f5109356ee367560987e8d588a9b6ca761d49017c94104e7d1d37a9decd858d5dbf06342550cba7b843c45a305a4c086849d0484c6961e6c4e23ef12cdf6e291e701beb22a1f4e1298796994c8babb57952d7032f7d5d17dec733fc273f7b1fb38676b10ecbe498cb7bfbb9433fc09b84f56f5dd8ab2db25147f516e4b569840a11dfb09860b21393f1cc7744cd9cfe89c3a291a06def74d6fbeca00987a58656773af333a0ee3945062795e9f36a876bb842ce431f540c05c6839631bcc2ba3724f446be4da38ad4e9dbec551b3bf8865f038a44a787bad9e538e826fe4c17f34e1d38a20e7eccdff10ff1cfd53d52d9806b16f8a5e59346ae02da2fe78398e6a5b0c5143b7e6d36794db749b332a4e3fdcaaa602735c8eff4df26aed92274a89655dba79cae77290fb6e1725c270cd57e840a9f423b81459f10fa940261104ddb087a33debf41f0bdeff646bb77f29f7a9fdefcbd8b9ab8fa59beb81fdabc177d9e7d7cf6fa6f12ff238772d1c62dfd41d1a08694ea82a3464db21a6e197930b329ab439d3d61e27573cd34d20a6f626dccb38661acfc7e6e0845b8acf28605b16ede13e26b8488a9348a68e1b4b3b9de8f30b74156791bec30260d0a42bba09fb86afe994378ffdefceb3ea5356cc40923fa3fc2c77431370ba1d3536de378afdecee37afc8b6692b083ac944f299100b9b0419af8c5a88759246671e3ad79ed5ff73670a625ceb8fac65bdcdfa2d6f377bcc37a28e9141b71e4d4e8afd07cefe74c9094affb54b50c933f466c1484d780a79ab9c453cce2707c8faee31aee120ebec173fdd1effcd9d978d1604fb9ea8eb8d6abf9de463e14cf0b176dc3b033245df5641004e9f239ae21164311e4ce83462a731697724e35b548298b425d0598e030d4c6dbd4156d528f9e48dd759c838ed6324065d1c543b64d4a0fc635a3587943d6202366505d5bd73a7e37505dc256f9e148fbc4f1f6235ffac8752e9c432dfcb8c61c2f0f9a0cd3e05abcc18654632aaa7e97016bc26a3643406958594d0644246b06c864ad51bd7de45151500247d2d6fa50034e52ca99708b7550f72311a90571db554e5b9e4fe50eb95e82b5d6e2cbdf7aea74f340571ad5fd0da9c1f687eb7ba8317c8f1f7b66dc6a8d4f7cf27fd739c266e6b0e1d453bdbb52dff22ee4459f56a8c8b4cacc69f0440dd4250604a1ed8d184450b2b6a2ec01040dc3a9f277acf68dcc659832fb69e1aa964e99c509034c2fb6c28d354eb71aab34100fa24d1dd5722603a1ad3669d562e2fe316ea5bff8ee8c1fec43a05dd2c638cfc9f7bfe036daef9d2a0f390ec3daa4a7fced99f9fc88e32829198c0dfc9c680f46cc41cd96e31ed1a249f9b848a7b0f1159ce1aa0db31ade4b078c7cbbdd86117cca9d6292d8d526b55b924ee133892c8ca66cc56ab8939a09993dde308db529372b5e621c0e5618ba05c8e1b5bcda1f787c2f621bfe7bbf60cad573c241219da32ec9bbcfc7da82765d6e50dd855060cc0b336396cf186ee4544d1653147097ea6c40bb7c8a916cc44c2ac4a4c29b54975ba98f5d6c8f190d3b13bb5ee8db45981ac1534ec75361a37b64502d810f4306652da7e28969de2436e0ca87ec56b9c1e58133f1d0936215e99bb53e710c181762a2c3de25d177b0f7b35bf423760937f7f765386299ff8e7fc0da2f47e0cafc1f5a7073c198dad1cab330ed13ca822177584289ac530aee833ad3532517296de7cc414da6b52aa6fd20e19f0da3639b35969b193340f4224e9c221683a8ef0ca885650112b67aa2908d120d47b12e3d6ef7d7d622bbff554f627a7a375eb987afc86fb15ab632f26aa9413d8de436e081296ae0e2123f0a8a793a2d9a73b59cb41e578283e319b9f81de97fff8eafe3edcf8eb9110eeb527d74c27f5e87af41cbf16316e144566d950c7f4cbfb1785a05bb80aa994fd49c12e552d65aa1364e58536d7216f492331fd570c3969d974f65e1f39e738534eeb63ae60f5ba1fe687945359f629be9fd13abc7b344cd74a6f79bfc66751db43ae4851db8fb9bb73d973fc62a6e58f3f6773eebd8fc9bc7e20d0ee4a7bceddb637e993e6735ebf2bffde9fdbccc3efeee871c017d46bb333cba06db1ef81c5cbf8bf5f13a35defcfe195e5fe98cc131e77ce2133ef73b875c8338688abfebe5fba47bc7b6c2819a08c1736ae056d44abde841bf7049bdf14f3eecb3a5d21aabb446edf93dfdbb57dfe073d9cdcbf8367c2efa71dc83ee81c3969267dde9ef7fbe4b17f35340a593ee5194f2396b304ca72c484b88f369a0e7150cb9ddd999ed2d65d3aabc410a197f0ce2428fd4a04a35f5b48096a0534672868adc661d8f629dc1d5366c140c35bb4f5c340d79a0635bad84a6a8849f38c82ef89cdfb85b6f6df61157dfbfc3c9bf7b47ff7cb0f5271bfb974ff43bf9a933988b9fdbc72fb84c877fbc095fe703225c51458740934956ab3ba6839a54b24e9df16c31956bd630dd9f5edc83bbb76bf7e1de7f7e1fcffaeab373bae73ff6414e7992d7b8ea07b9bb01eb5d904f3a9e54404ba9ad13f6b043fad842b698e08af9b842092f3141b0e80595f7dc463a2a0b8d4dbac7b8447ab21b8739877306fe6c29c4f39c492da53d21c45adee9b0620c43597b83cf2c18d333daf6fff4cdcf9fcbb7dae2976c0c0a47c6e77e929f7246bd6880feeefefe5b03f38396fd55e7f1a83bad4310535ccf819508289aacea29516a461bbce58edd27cc6b431d15827b6d08ec3ea8da2a8370cdb4875d6a235d440516f001a0083d535b98e12071de5840b8701968d536638523aa719169459553d3c6e0e3bbfd6fbfefb3ed3fd44f41e65a9bacc1c39ca34dea7cd25effd71e80dbf1767d9ec32187fdf93ded4ee35e6fff197c64756b085878721a6c1736f0120afb003c682960f34c97ccaf581f50f92b1bbc2073ba0e391073ee3da661976026610c328deac2210aef90cb10516d17134be504d788f70d71bda7a0b40a3eb530e1e38fbef8adecff7b0eea57ffe6cfd7efc097b9727393b9977017279dd9ff9e077d4e0d4b3bc4c5f5782b27a7fa2bb9a63fcaab7ca7d0a93e1e515600aaa3671f8895a855b798221192f8e9cb3cf0153888b8de7fc7f83bbc44fbb3dcc5bc6ff3fa25ffff9d7cc30d62ab835e225c2751ab4edc17fbf7f5cc7cfef9ce7e9513d5056b0744fbc107520b743584506e17ccdf61c0cc8583fbc4b0dc84e00953e897afc922e30aa29afd927cb6dddf3dccd02f090b26019ba0cad743da2d29ef84aface77839eef014479c8f1f03e019b121afe62279fffdd92ebdb0ee68f2c976dd60ddf7e31ee3beac0645eaa85f220407dd8bd37857c57f7ee36bc850bf585454222a6a9f8e5739f35a64b3fd196f295f6f6366e912e04ab8d8c94bbc4a1522725055a0b181d8cc15a5205253f70b170df3c136e9a0daa09e814c6b0b62302a1576b1c39290fcd906eadabcda0b3701283203b5e2b0b61735eb6e90cffc34eefeac6fe2ba55b1117471848684cbe79376dd359c821ee540cba72ce1fc6134d7604c5cc168847661141bd9e04db176e5b97ce16938f42f5bfbf95db4b1e8a3a6cc7f5ba3366dd0f63087bdbdfd3c9fce3ff852d79dcd98c82da645954ce128d4942500362960aed07a944fc623a9e124d3bb85cf58856ad670a616bec62aaa328d57202015b319c3ce9d5e1839f17c46fda7a0de3e5143f9dc868bb491bfe67a6b2693712f233c67177492bf389bedf76a9cff5d43f4cdda0e1fd6faa885118e86eb72be58e511f46525a2bcea9f32c2260bdeb50b5b70a6d9a63ff51866b35dc6bb51cab1851cd317cbce48aab11f30d9e46e3b65a05d0446b1c5ae6d9248c0850dba04ca45b6ecbc859b0d4135d2164c8cfc4108a48a5bf58057828b36ddbf39aeb7c91cb6938e526f7aae3eaef7febf51d90e147183b4ac86a59cfcfdddc564b49d7353e5ee451cdfab0df826ceec269aa57ff7f91563f6611e5a7f1d77c8217e5b480a2105ec9e51b04b6d15135dcc42a3b551ed6da94b070995e61b859e5466452b85ef34a1d8d45a937aa6854311d132db063ab473a700a496800e5e8c779d9bd49d4922799f37688158fb246dd589bab8fecd7df9de351c325d359772acc71cd40dd7fb75dcfd9bfb72dfcd9737a13b8d77955d632ad8c446d1e55366c67c3ca3da985243ed02433521c54eacff7ea20d6a6355ed48a56d6382436133c5c3df5aa8cb5e44ad811b3cf723b5f3f75ea95188c4857754ef2daa6bbbccee56048a5fd459ed5277a6c537cbb962256af52c42b0cdeaf156449ef6824d7aa303ff214fca863987cbfd1ac71cbdc9a9daa379f9a74b6b3692e7f4353fe9b37ca143f6fe6e5ca171347ededf793901ebfdfb26f825dfc2fe9c7ff9d9bbf971dcc37d4e97e0594441971e7400d8f3c99e5fc9e951f521f4444e8a610ebc75ac793a86cc08414152dedd631b54f914cfa9c13c59f79b403731a7ab1d71f024a8fc3e8e904076a189ba88a54e07c6e4535af545a241ca2bfc1c37ed4a4e3d2f69b2811008332aaee55d7ad531fdbacef69143fc4731e061ace33b6996472ccc35580dbb631a1ee2e8cfc0809cb10885c440ce829b4e30c40622288e89fab217edfb584eb98b236b7bb415b34be7767f2ed7a90eab7964ed5203ab939ef57770e5b7f08dff35fee11ceff73275c685981cec84b6bf9bc77e95e3f8d7e13da14774d9235034a9839f826a6bc6c61f90d49d353fe4612148f87a4b54abb31a4e52d7ba4b20a277ba50996b0f12282be5634c1beb2ea9858b2a2850240de68cdd14b0201b84a2d032442d567e646be9b2bb554dba9011dec43a7c4eebd3fa1fb0ecc1995ad25b5cfeab4fb2bb84f538a7a7f8f59dba099ef7a0e3b1bf576fb8143ffeec84b9bbcedfcf866ce06e71cf4bfc2b73835e709c70d6fe9275d1e3dad66524703c405d0256f8f67a1bd4580b59db500aacb05e9921f7545c3d3c8575d784a02d17fce12928ff006a7733628f693ac54552657d508345a644925ee0fdfb74ef1aab88f5ee80bb3cf6255ef04596b789ff330796897ec0761e7b4a77dae79f91f850fbbbee6ead87b8c69d5f8f7628c24f7954948942f3bc9a817c5a3c092546a90d2a61a02575675bac77496cc859a6f5dbb8b6f558f31e338a349f76eb5843ab50637a6e175e0cf0c4a782938819a9ae1e7939d373878d1005b7ea1b3a69e7eedff9331ab9c7757eb15d5d1c312d99002dd53b95fead559ed30f7db307879cca6b5df59c06f8db5ac251df75f69efb347cefe7660e7b160e7b8e757516ef75556d62798edffca6b5891366fcfada445cfa26b3bd824154b3529841e31519a4a345f40788aa5389467769385e48ddb4531dddb3c603940ae287635d50d008b705d441cf44d306646b7a60c8111b8ac770325ee7362b50e44d520d2b1649806831639feef1bffd9077b6f47c7cb78d79b7f956cf3cf9ef7146e6c0a703a79771d0ff7ac1c65df74612bc22f66c44dd4acb555b0ac206e4aa6ac18a5fa961f512087d6e2897d405f7a9b75ed8264d29ea7d92e9be56a870983de14872e6c64fa9c35c41b7bdafe1e764ea19a2f6fad4909cc2621ad2dfdbbcc45accd4b5f89f17ae9d632cb03f9f11fec67b75139d90b3639f6ce88117e89413d8a42ed344786d9f96dde1d202548733a2c4824ed62311f9202b15cd1cf89cb8b8e453fbcbbeb873ef8c741ede68e55cac97e8ffd9a733de8d7978d30feb1659c5a117ff4add87232e4d92948ea95fb165e87a1ea9bc7ac15088346463da1ba9bd1a05942d9201e1b494f709efe6c8311d4e21f0b5b126c8ec29546ac11af194d91052ae0d73807d52b13b5c059b1cb67749d39ab9930da1e645c468af3e9709479b9443ed724fe66cefbbfef7d8cfb0da581f9f7043877bffe6b3b6fb010775efdbda66c15912ba6d97959625791fe7cc32482d92a4c1065f8ec340b5ebb81a0de180a638f27856af810f835dc09008899ce49c6e7124d4ff67ef6d9b1bd5957df1af722b6fcf9c35084c56bcaaee8b60033636f2204002ed3ab50b10636c04666cfc00b7ce77ff17f8214e9cc47176d6bef77fefbc98096021093d74b7ba7fdd1d08949a02b74c5716cc140d99a354d42e89c98ba1ed293090b0772b963cd2f9fa5acc4438ebecbee46c2d2945983db4eb3720f2a6f54b6acf1d378de92cf48a0e138dcac64ac7c57865791806822fb81a23c8333012b08d1d746fd66ce87bc52ad0e9ca16686ef6937994c309726066b970e0cc69ee0e580ebd44b085ee18f6198efb784e32a1435c081ccd171860a32b63fa61cc38cdb49af54045094afc938c64be2abf1ccab698af7d7e75bea622cf4e18b5164f788151cb425d131a5ef60c1fe70c2f706fedf87b50a03d5053cf28f63642fc14aff332be45f35e73469e0715c85abba267958cc83c126112e98775b0f773bcc4c589dd7540ccd2cfba9be779e287ef9fa3daf5096aa65b6524e22a38d8daa2ab39fbccaff1d3deafd93292503af6208f32beb7eb7946bde7536ff6ef8053bbed9c853ccd870345429a52b13e84cced2a16c63d07bb5bacaf4000861b4260df7170e670458b33d6776ae3de9ee321e5d32dcb8cc2eef3a19f1679a8cb32c55aedcc53d1968ab54f5cd1c14c857db625e910f81e75a35be330e64ab5c70a5ae53e6fe1bf073b1c0d8cbd8cde03fb7c95cdd8bf7c76bb5f9de80275cbe6d48f48d10be7cad09975b145506a650f1d0a16957da35f5dd3273640f2981832d32fce47afc425f912bfb26d9461810dd2d2cfb970f0cf79f9ac847647bc793da65432fba68c755059b9a6db7552faf683e408db3a12d0fd185099e948b0f3e116f6ad8d8bf188a9d32d135672a80fe520dded261e1ac52eef608f09ae5b0c99a855666aec98ce15a8f33e06500a6b3e72f4f21e7d623d8622e49164eef5d57a4b9f922863d7c6feabf2eb6ea3ac3ba71eacf7362a54f8e2aaf43d238ff6678737fbf7a93cba0edc308c7f449ab6603aabfcb49b980e1bc1aa04b1da752395bb04b3048147692c688b100ceb91a02ec7b5c6271e5c4679c14395156311f9718a69ecd1593cc033e4fa22163b55ec29b50fd03870cb114ae9da24daad3ae4663cf2d6a7e8437e05ffbadd351a181b2a19cd181fd6fdb1fd839fc14d3e6982e4ea7cc8d4dd2aec6393eaf2d87681643a8f5bdb5e7562b5f0dd39ce716d2006180d8025066e21fa8e32233a17485a266390c088c319d5416e4ac38ae8721210743fc11a0889b5c55c491ccf0842d597f19cd7b7dadda241230f603ece0d1e7ad7f287b4768ace17f0c166ed736acb152540ded3df67fd38e815a7b7f938d44c2539ebb804746c5106a6a8d9d0b12a6c97fe44a572a4caf77e464723c10444d3d4a086008b8517eb1dd174dc9def728824b4c080db44433bdcd73448ba239645cb502f12df317ed859bac419152da18b26b7eb1541e83d5e9735bec28f556adb6ad73023607b6b0cbafdb96e27913c5d467de8a0dcdcb9032ed05ef71721508003b665734bb6754e2d494b27d858f9350e708696a6e62f271abf6773facb9de35ea8af6aac19a5ab6e7734b7c409461db7af180e2e06f6acf45c95623335f460f06531185a992214fd97317f5ed18defed83fe79aedaea8a3db199c79cb77928aef3852fc927b2654496f7b9315a3e706aff80e9be317f7a6247c0f845757f19cc7119f64a795cd3812d2416c98c0acd1e3a51dfa05454b73657043ad05c1ba715d15d108ac9c8552d391235d54e0bd31dd0edc42e27ae606c234e45ead1946885ec67f22f3383e244ed6ab4afb4b696d7c631d2d58fe42cfad76d5952dbd67e3f784af2297e4912cd4ea7dba84e2ca2eee8588429d1a722ccd104616d1066488d523e76726d62d5b8137a861c814236c5145835dc20d235c34c9588abfdf089b58492bb33e7ee324ea73b5b957d4cc00091b20af461edd7cdd99d7f958dea70ae724b2a7693131e66f602e7fbda99e9c286f9727efcf5c4fe82dc7792b63f0335b2e5ac238fe7d64db4df72b425cab52125651fab82e44b8b2d236813628e43c027582c7a9418c3d07e004c2af01824bb28356c2b953d4aa080d3e9d67579e1ccca09223030552450072f58dec8984635e995be4b40ceb0b2b0e7d4a3b7fa0de71aa01ee663020a5f32364cd7eae03aa6a8fa1299c6c39c11b70c099f475957f03db8dc8ff52bcff7b6dbdbb065ae0c7c57767c8766a15abad02d12177014a7c526a81f053b2f5ca7aff52d8726484c44e81999a345b5abb39d6597d04ce122d20a14a65a7fa24f3b81830294953db74e7c888d5d20a09eadaa5234470b4a16b55d5fd9179772e4555dc33b345cf822d9fedd3e1ce6a395f7e91e072c8c3dbca61e9cfb9ec269ef90efe236dc971d63be751d8aa0dd4da31c8e62b7bb88381b12177858c729cb0ad7269a3012a8cb247f6bd7480e01eec439e58114553e36860ed6468ebe5bb3dcea60a2ad995e06b41e2e47a2a1c5a92523823a64a02db1e80b37cb9fd907726bcebe42e634e6ed18676d9c98ea56d93276e00c896c678b8bda758d34567733472f3721d96d02bd142341ed50112901c628d460cfcee45ea0d3f54830ac588f043f334533b33a58873d5cab80899a88749a532fe95311ce7db15cf8a010638fc92ee69673252fec4d582eef719f7bec29d6def6d5d887195f07fbeffe8f37f22a9ff9b33fc72fbcf46f6503a3887a079b75ab7b073cccd11e439677aa0fc4fa6be4b6749fb311b4e7059f5ccb37635eda883fb756b84f508bb5d8eb4b71d2e69e79f5b9507f22ee4e0f677c183bccb445ecc673b4713279e90bbbd148dc1157d88a2c570a94611fcebaa929761dbb9fdc5b2092b09758662baf26cb91445d240c77b00f3bcca5bf6ccdaca98e5d2a96e310247e4c801f79bc0c5c9e5ed9971fd63b9fe5ae3ecf7d585ffa2ea32a2072ee8988b772ebc9d759bdc4ed3734d74345d80329f5948a129830dd7d8e057c571e6fe7250d3c637b3dd69dfb153ab2766db639a97aa775d1b6df9cb36ec76740180c5cc9af1e3a5186168190f858827424766b2b4b32574ab776c6974c528676f50046222fc3aa34231d271140fa44ef02e419c328dbd14062aed95b2dc3ac28620fab2c332547a01462ab66a414c93cd9852efd2a7cc60bbbda613dccaecf17157127eac92d6e2c94901ce9eebaf541933ec00fbec2a7417ab70fcd39a191a7783c785c4783465eebb63192c6195df984ed31f8b7e61270864bd751fa90443274b41fa1c65776be1063cf056341a84d81cf23013b8ebe33690e659b68a69d6903a852c5cc87428c1f3b8e4789e31618e3c74db3620300b77e66cc48b67320617298191a167645a4f382e8fcabe6f94b31f86d4ea9d730f837e268a867963e69794d72e90bf3eafe6fceffd2a5adebb3f8c8e798e736aec0f33e9587ef953ee1734dac6cbba1a29cf9c24272445cf942a94c5c407c82732cc19eadd25f786ec9660e65c7c3a92fca88e454180b489ae8f83ed2e10f5be301d1d58d3d4f45a74ec4b857e670301521e6e36090fc6002c241dfaf7d6c820bdbe4fb72c707d6cdd33c31fda1593b8decd0e6b27bd2c70c2f7192fb763346e439d39bb903cd38a5cf7438afbfb3f0bd6718f2977ce9b0b6decd03f35abd97b9ac4fb2cf4b7be8615e9fe5637a93ef1df54f17fe554f7d9abe162fe175ff94d35e7cc597fd2d1f8b533c8fd7df39f2f171dee27f376dcc365b16a28c97f4d99cbc3976ad2c1866d1733a9a37f5829ae95a75461bb637c79f7833efd59bfbffb57e7e3ee7d8beed635ea53dcfe8bde9a373f59c61da250a043c8f756e86ea50c22996518e642b8b64a8bbdb89da552289eea040b1953125d2d06e2c45554c40df19f0b19d31d51d40d94f0dcde154b01ce65b40d3a880fd582dad509407231188041b9da0d735ed8b7cac57f8c47519f1237bec79f9339cde2b31339ed63991eb48c77b5e72358686ba9e5c62213eed5f70d987733fa133bf4867dfee27e8fd2f47470272bb3dd3512b9a766de6f1ade5f1d5b876b7981bc4760d836a14390062ec32640f8a111c243d57340ad69fee626e2451be9010686448ac933cddb919e4c4333c42a0e50b86ee6a9a640fb8e2d75a7e71267885de7fd8e73f3f1b3ba201a64f4ba67797d77d6dac2fc256bcd9fe51963be27d13d6e2ddd02610f1deaf77766b4ea8c765a8b17b7760d454a49311c05aa422c7046ec7c2da98565d1cf0c2871940ae50008a8b5fa680c723894e10869bc8359c483530eac33cf45c21127c3954bb75c0132f48fd9d4910b201de51023253a23c72b4afb28b547e75cebba6efeb7ecfb0d5cc33aee5f3faaabc282fb1d92fe76fef03ff09bf8389aecd094e7caca65b8b9488cda96db9dd5fc881a2236a06d18a25ee7329ac91e9087466a525755dac85990c9dd4d8da929662cf30203705875b5b1b284658753d9cd311f490360653e0a8fe066b1aa67385075fa5c3c98df9b9bc34e95dd39bb46350b1eb39d8beca57e4599b7b3d1b6ef74f94d3243cf2c31bfcb11cc7184655f92b2640226ea93a825abb9e0b701a75a06beda0d09ddfa67f3fd2940fe06c9de86bc6e4f0ce613cf6f2458b3b566ff6910f88b984424103ec77709656b157202450cf11cb82a41620737e0f85878a644939c109f431ea50b5d062b54c22917394c26a24719fccba5e8893da17cb61e0962bd3319268aec89027055151c71405c14d93b579c547fee36bf725c6f9249b8bd77404c7f8b2a1ce9757f3c8da5f9347f6297e2d5e05a43ccdddb3677b8cf487fd354d1b2c098139940a2148139da450a4a266a14cadc3813298b8bb0d25ef62c33e1e4bf8324fc9f998bf9f33a21d735c5ee61ab8cc09f7351885537b7b1aef4110125cb5791a6fc3de7528596c09c108015374449c47ceb4630a70e710ee9a6a129864f525e3cbf4a40a259c1ffcf7fea3b595cdad6b7cf45abcd9ed654ccbcfd21ceb309656d9aed18fc7c3dfe77675949909b8e77aa6e4ce61307154090303c58e36b45555b2325542fd64c17891438e354880199372146b1a418ef18b398a41746310eadad0d5945500d225163a1213a83592187670525a29554c5d2330a7f432ded8753ace74fe81353afcb2357a68ef30aea8d8afd14fe4ef764b9368690762b6449e5ae1b931b345dc190bbb1f4ead910027249c1b630438879a42630f2a54e3699081cac7dcc01e240148c0447d107c222c27bd15c0c4487c97ad4c4f5b84354a2257535c3599b80e1ab8a2712bdeaea21eae03423f944b147e098fdcb777a0b3206a71e9c2a1fe9b6c2a7842e4e1a49f24a648e763112f2dc1df85fdc70dc68f3b9b74ebc0c346907337e8b38595531fa760480823be48072cb73a1387f954c2bf4c8e7f382ae2b6837ba8364a5875019378e268d485199d31154a78c0efafc47f7f850ed0d4bf6ef37f6977fb241f6bda6a6d1319d55b9b677dabcc81e7c62294681aa774e688a904abaee793227105e007b5f1c3d18565acca06c55aeab800587356f8e242f2b39518676985e6c900095a27206c1ea6488fd462e8a7b2ec64308fdd420df0e372a2cb3f229e021f1483e84afc8a4b5a00139ab91fcdf70a2e758d9f5ab37b3f8af37cafd2f37eb4f91a6ff57ff78cad09e0c6ecb3b12fa23274cb199268eebb72c7c57014cdd90c01eae06c05dc9a6b91a3e92349d9fadcd8c0fa7149084ed02059b21aabb49f4c5cb5b3448225fa59b12644a8708e2de6423ff414403c5a5a2079df3670491b0efe237bbb89f9a118d85fb08e452da3f641afd66f69f08b7edc1affbba515968fb18372887d579e30b79402c12882acdbd04ec5aefd0d75051167bc6239b7b0b80ba06028ae970aa8572e2c892ea03a1443950f46a26c513d99a18c1a3e7f5c52800656062b3a803f7c8c6b53f59724357eb85f647f3dca12c3bcb3bdf0437e65ce288120ca8e7eec60eb7b467d55969e5de45efc6cfea839f38c631ecf739fc337fa2554b7c5ed68e71241bcd84c1cb6f6d3ee047ad6c6e9756bbb4f4be2189a4f6016703a6092d1f7012ca06bd57e8e6ca73606649e6ce95c1b9b184f2058c8761f8fa0c31601a7d8e4da7d3c18ee62f5618932d00bd4ae8848796f09a0bcd92fee757fef97f4491acfcdafc839708c2d7e18e7f6ba8455a7be3566bcab77396ace9cfd6468d7a887d5878def7097ce69806a2852f2b0b11c16e01cd2884305a68b4e98a772980d6b6bae91285796cced2ce339ff811c2cd1d405519f0ea1ba9b071a0f2211e701d6723f2dd4898302742566e0c7312fbb8ad960ee13b838da6ae047b08ec71c67041534f3afe3b4bf22fee0c90f1fa401a1d9b35c6bfb7e1cf238df167b0a81e9d6f6a61b4b28e6f680f726ba29c4a4dcda2a332c8f9ab1db951cb13b63aab099e8d6126bdad22256c7b4bb33448adc55938a664602fb1a89745c4773f68bf4bac244c38b1118d6084f65ea6a0e24061f890522177684cfea0b8ee3719ab7fa5f8a357f5edf559b817f892df8ea7d387b430ebb261f90613dc1a8e763e450ee8bb16b54bea7e0499f6f21a1634a4acdcc848d93b335d2bb7307d08a614d776b75c3320ca988ee1956e661da85668d204ca1146b512748a79b709068be832b2bebaa1463893978686be823f1869fd96d3eb4b73c288492710d37bfbdcc63f82fcd411949681365eeb3b9383c6bcec9b7cbc63a0c58caa0e3a532cbba2972a913896e6dea3b2f20f2329895232a747b8c2bebc980d9b687b62e361cdfe30bbf5a099104d5a8366be8e165a89719e31ab233668e011343373171b6100881a2999b92eb42e45cd95fafc8c66fe6317edf5fc15a4fbe62dc3dabf4c5ee2610393fc61638c61d79ad5fcd791af63a9ddb70533875d36927748d31c26c82534e1cb7e4412aaf995b74421def88eb6e0887a90facce589079e8a49b90804d244d7766aecc996e75cc81593952ba35d57242f2a20a4506093741483460d7c34d4c806912430c0737c7406b63c7fa645b522f292eec96afc66ffe02bcb7c8f330d35663823bc15e1ff4a21f87b8cdb7e55723d85d081397f6279abb73a44422e9ae6313c3c5034365e96e4d670f2256511e6bc5dcae1329d6869d383777a6946ce33eebf869249aba9c5ad96ee1e4861e3886e6785877b32e477a77e4d44c627ae23803553053fceb662cf14bbff02bf902bf227ee4f336dbf5bd09333e1f1363138a427968e7361d9c660c835e57990cd016d7ac62ce540e07c62a00ae6079f09e0cac1dd50dc9150b8245069064940d0d87124a18a025528d95ed6896edee60001225560b9749da824a50a3180de36c51c3d4029608861468a573c54ff6e3729726842228fc0ad4a18e79f40cd77199cbfdadf802eff291231ec5834548f8caf78e74e18a8db9f7153e2a87d80915a803028a50d7da7db2cf2df06abfca7dfca9db7c59c692ba9968aa60655b81a4a5e2eac5af89c67894f29ecd99e2a8e5d2c78a4d73430c74aa4ff4d5c69a0febc041eb3837566eb6a8c622db9844904d95afa1280fc635f49106678ef8b01d490a80dc102d80e0041b0307dfac77398e831410743d2efdec6b62b53e8d312be8002d9e8ffbe1d967fce188fc2372a7604210b724557681310c07c9ce743569d2c7a330b70456d3314b77e30833129095180aaa4cb27245d4ddc476bbab8844029a1b72c4ad9d836982f542893c4a9888328a1712ab5962497484fa0c50b1fc2a7b7e1155206364b762224f993e2df73e82601b8a7cfdd2cfeb0d8c7e9b476f789e83ff8a4ee16d3cd7357cbefa45b1758eebef3976b7edd79e06bff3bbb0fb44ec9d19f478e567dbdae28911a449c21c6e45d94ac28e62bb9ccf31e6a93347120290f89eb6b1b8e64047e95b825bdb82d130cf2dd6b8ed7045b7c0a3e463ba7152e04ffa6c6803b4a02ab071ca2d5364852feec65f162746c7594064be8fdfa9f028478773d209937881ddbfc4d51eca3ad3b5d9036bea2557f3937e0437f86f8809f61ef69087d95e36ba52e653794c1dcdb06295621f37744da31140dc49cb04a55dc90443c1cf1323e6ec47981968d2372597d05e4c769b895e18f100cdfd74b5b1ec6eed605f72edf28785fd0de36c33aa596dcef1d611dc9da996d4158bc4151eb6f0cb78f897c67e96c673f75fc8137759efd57c7107bcf5179de15f60d81fca0bccb7b3c78bbc92abf8fa193235566391ad69064750e8f2288363cbe110671aa780d5569ae801f7858963d4b10b00d5e1dac585c87a5d95d5098f7365ee0809253c49c6c24286e94387e5d325ad5107ce31b5c5a4e3484cc5642a9aa2e6c0bf0deb89ebb187360d8d69e422a673f13946fa756c31cdf1fa104fb8f49b35d7bb8e610e74ed3996f4e55adcf7b9cd691449bc91cb5767d8e8ed9bf536344fd45687b8b64f34ef25bf7a9ad7fa6883f8002efd750cebbe4f9d57e37b5e8b77fe2e8e5c3ecba1d2bcf34aae94d3fe798757127c3e276f8edd7bb43e925012e5d61bbe5ccf658c4b1a7139ce1fd9ff5f96cb4d7c6abb9135cff0de87f824aff0846bb2a6a32e5d526abe94148ebeeb4140b5d8a542ec1af9c441dcec273f2c0f8a91c374ec1ab9e5296e64772533e7a525ec645b2872a429754c8c1e7265c25455222a4488308d0c92b1ab77d7a82a4bc6b91debd38da3f2973a8b2bf2c40778c407f6d82d18feeb796dde92115ef58df857f3ad1cfbf03cf7c669df0a87766fa7f741ba4b998a7f5873756766f4879b6339523539ec3d0053a38dfcd7b30922aedb7530c603d74deeed39ea581cce02cfea985e61fb9e710f05e6067aa9215ec82636e614f30a033e7775d8435c414c48648b983b2adc9ccbef9372ff991fc7558cde179e03dfa637d7e4ba437f6f8d01db9e05fc582bd623a06d596ef46c47d31d11e63043463448b0ab33cf020a7078223aae25999996b899865dcfdf51d712a8dd45b193146331d1b1ee6e2d8e4bd4f7b751af8b2c87ce82be96b00c0057439993153bcc997d0567f2bfe92c10ade16fdfbddfbe7bbf7df77efbeefdf6ddfbedbb7798efdfbe7bff7ff4dd3b9c014137a5046ea87ed54ebcfb2afbfc9ebeb09f54c76d3cbb838df8a23f9f8ab74092a5cba71dec685e90163aed276624a091997334969887a5240925458b04ad871dcda7590927aaba0ce68fcb491f8f2c976da381b58319ac4ccc16b4a6639b1833a87797d8a130225bd14abbbf46120651af2bd922feaa786d2f30a67b5f03f8915c410dcdf71e4b9fc87570c506fa4a6e94cfcbe3a7364ff3b71d136d1d89471bd80df9983d4da35833980713561b45284237200635dda28835cd67aebc997c513ee63087c50b3d4efd511bc85bf18dfe0d7182df6cff6413f31e8fd8ca79288286df0ba718b637e4bc70550a09d74020702924db0e1ac0092209656277660f781ee96c73a3ed10443aae7cc278985fcb5f6b36f4b8fe027bd1799bfbb3a1a7f028d3f2665cc6cebe9d1b735e98ae874cc7851be4f231d4b1cae6f40792d0d211bb8ee35935ea959bc85164534475ac0240da783cda047b14e07ec2516a004707993b570a82f9bdad9a3bea248b6850f4212fea583780dba7aa4db495e3d2afa22dcd7ad886a2dc8c45490928d8009df0766fc4f33ae075f02fff14c7a9b5b35ee61ad0f18c91e8291fc16b659ec7223beeb7177a3fba8932a1a4ba26f84f790aea4b59d768e3e90587b85ccfce26177502cef4644307efea526721e1e5d939e1254ea48d277894d9f7b9bf2e7e7f2376d961dcaa0e38f7c37b31a7db666cda1c71e4751feeeb71d1dea23de61a5eeacb3feb2799d0430eb8638cdd830fcfe573a7fde6cf9ca3353f4b3613752504299fd9aad60973dc091cb6817de347c48b1ccdba0156e579048a5f30936d5be23824e5c251e96ea2c2a1eda1ed58a432cc1244721c84f87113cea14ce69c581ccfa23eba8f67dd92f4934588b975a16b7985a67de61ced8bdd8ada00309dafc6841fe3e0ed5e5dfb47da9325bce18d87b5f61fafc4383f3b4bc124ca8d247e8adff78acdff30df0363e38bb88eaabd2d37207039265ab58fbdf538fbf99aefdce95b2f7d6e867907bc73ae7f45c63bf5f1cdb3eb5bf1e07e7ec686f0be9fd0ebb251dbb757f4039fe33fcffd835a8c77ebd7326384662d2e78dfdeedf60497a526c78195166a00921571d8c04f8b0ecda136e975d72c2d97d8c5d874a37aa29bbb48e413c8350b66aaec6a96ec1030b4e6c920cc95da07b074dcc20905bfe3a85d23caad0e23d686014508c5428e6a3480b3f223f684f7ce84afaf870f9c095fd7c1fc1bce1dafe289aed2aef518c04598533570a86eebc60c67540c3c6333026c13645c8f737f19d509745530b432788f336c518eb7482d4c26764ddc5716acafada0c6252b85b3c049b676aa89d4c51ad5e5a53de0568c913516c1bd9b51e9efd201be58ab877de8ee79fbfbfbf07d19da6b75d03cbad0ffbe8adffb0adc10d8c7aec375ab0378767f88af7b132e48d859a93663b9f183e47060399062157a1131caa0af0a4e5fa1c853b7c8658605a69b3035d6342b339c166b0860156b1a31ddb48e5440030eef51cde571cd02ec1864429017797c17d486e548ac13eac3ed8420f0557e6421c142a077d3e7bac78bdc4ecfe4e427796dba36ab2be7234fd9869221445573fed86d2ef6f84b7a5b5dc89d9f3c8be26da4772b36304b5fecae42697894f75ff44790f632e26d39d822152a8c1bab890705e676872cc3e348ec48b62ecf6d6e886cee6e4d4f337c02c731d7564ef5b07406ace3d7e9d21ca8151376329b2395e65498f41f374853d666aeec1cc1a8ed0ca901e9e64465f6c42e7fb0fceb6c3f6d9e754257fe4936b73e100f0225917e2d5e8ab5361df3050ee3533459f03da58db7c1746d4bed663faa7523b3de82bb327b5d6ace158b01c3c0a4443e407d574c05cbd59ca82a7f58ae1c909ced5cb54c024f19580296a2bebaa59a06034f218cc380018c2d31dd9a38dd3862b9b25d26db6aa9072a9f0759771e54a56a8b728fa63b05e55f1da759033ed93ec93aaf9c4f8e763cda7b4fd633d2504205159b7d71949d1e2ff3dab7f9e1bad598e0e418c3b52d57bd620b7c1daff3861c67e4a1de9d1de443a9910fe14bfed9ea99cfbfe12286e81b32b07551ee497f7f5e9f7b2d7ef57feccfbb17e5dec2eb34e5a557f3091fd6fb935cafbe55ae8d71f2e4c3fb8afcff1e26c73eeff7c5980bc1c0d830c2164f71b6cd6bf1a204ea19e5d883457c3536d2f08b62b521de9ced2391dfeff3999cdf1f7263de469713984310ba6815e77c88d3c2f3e7d32521dd8c38c8c5b5ba33d3488cfa866e0145b35cba1cd5ae4c054eed815f1335b1035d90c30122aec397a19e0a812a7b146b3d06e0963ac9dc4d3b15f4a65b37ed8230053f6e8dfdf02c6eccfb58f986bffecb7cf0a9bd767c1751d605549c9687fa3fae8b75518ad5c506e66ac7e1c98a4a70e68ba586e7ea12e9dd247050866ff389120202f8d13679455f2a5eee8fcff196f336f73c8697f4980bb312c44fc410901c02858833d54c9380a43b6093dd3cd0774be41829e5c928e8b3919996aaed709589dba599693357e3b9a9839a016d48d3ae1263cd33c562446b6d4b1c4c688e0457e01392e3b10f928d35873a92f81667e5ea567f28a6f3756c8355945fdbd7d117e516464598a7653830c0618c8fed976dcce7b97f5bce8554a64ead8c59c6d6d033fc98b3add3576413188ed9e7b5e3ae4428e2818fb55f1367ba85a458d9351fc05c717c82b228e3ae2f15f78e9ae8445737b10e3da803c3cd6819aa43d91e7034ae4a870adb2d9e6b20bc12afef15f96833f65ecb09f0111cd4bf2eebb6b88c37f4706ffeb68f5d7663dc22be33e7d8b7724b8c530b84b96205facec43c19a0b4538f4526bbf3e12672bbaa2f941327e7ae432c81654669d67c8889f6237035083505468ec21d4cfb638096f160b124599146a2092089e4d8e3f723c077665fb9353689109ef83fa87c22e7d7625cc02fc2a21dc6b9c5844699b6a6fbf816aff44700b763cd0411e24729f01622e9631979c39d2fb13995288a7563667b9184c9aaa64257860419748002383054966133224945d5c21a09bb622c241d9823d9ae950922c3a599b27e4c646e096014b86c17a59a6a013809eaa4feaaf365e0996598e3d23fea08792b375db3ab09a184e75779e4653ee14fce5d17f8e2743f5f6dbb427d5b9cca960f78563eed602f0558dd090e803653f96e24085bb3ead6b6802aa242d31e2412d2e18e616899992998c28e9b7d733369f30017c84af93dd30b3b9e533d100a1ecfb93a169315f5b84234d443c24e62a0c0ace6d7f8c0c775005977cb9ec9cbeab5f3a0dce610cb707d15ebd9eb74be647fb598259035bcbaa56be7f7cee37a7273ce5394fa7961c4b9260639ca035700511eed821a57c84d042bd526b6085246d00249bc8788f6cb993fee688ae540d7149b2475289493d8a132ac4ac399a7b54de816e548220e2f22924a81602de3011b079a563b69716baeaa16634575ad8a324d6efd2ace710057f785fb35634ed0c19e001a5a76d4fdb57be5edfeedf70fbc0d4f7b4f076e87a860825cc423b51cbbb3d2276ed7b730b598c640e028abd851264cef2eb007e7ac2a7148b461e06a1eee278b88fbbb281f6ec6c254c4b3d5160de8c814bac874b8337122d9719495efee32d24faad099565f49e39e8fd5737fe7f7701aacb5f1d116e7f121ccc0bfae5f01618638dddb429a793cbf2f0fb6a59be4b330377c9233890c0c750cac8dcd131e13368a08ea3b359d10bed8397d5fb40746c7b1bb0114811139c6c6d5b5752874b668aead9dc1b40e076ce478ae68796c441c5f0e7454c4baa6bb6e178480d70e29346877fbe695f870b7e85afc1ce707be545dc4d1ba15cb7cb2797fc406ebaf275f84613cb4dbcc654a9b3dd8e23b9afa6fc72efaa92921b26b6486c4ce64cb4f356b546b5a2821ca722d88c4614d095c418f153035b2c0a13d9b23ec0bf286498fa22fd13ad2a36dc093fb901bae2da05fa1ddd5a0a0a554a03d9c61c5d52874323846121c3aee077c133e855d04f5b3f89f9fb74f8030e33b46f6b2f307ceaad5179d552fda6df91e918bc8c38733467b66fd4cdc3be0641a0f3c437307744b3873a854481150064c73ab9853070f8cf5b84e4ce8a91b9be00ec9c0d0d4f11072a8c01af643575320760524b11f2e471dd7d582a86e641fcd77547947ddddc6d5948953e39c64d4fb2a3f665f32e468d09eb79230439b708f7d28c22c3acf4376457ec15baa6b02b5c1bad58d66fc2a4fdde3abfff5982ccc5352df437c4ce4e65c9c05646f077ef5b9d3faebdd8647c27c45fb34303543b6001f58733a0f04fe8b6674e000f82374133f986bb943b00645cd76a485e0b8d192a8601912deb1f85408385e53c9181055a6f19c49ae5af6420f6d501fc130351233d5d6cc61b62b940bd6eb7e151e69164a093fc3b3bf8a3f0a746d151c6d55d5abfaee7928ca594058cdf46e758afbf6aadfe2de772d265a756c771fa3e2a2ce22f4944d945b65a86bf7b1fd7ed9a802f3c07e37e64253a6087328f864b7a2c42aa9b8dbf899b60a0ff3e9ed75ef173afffd794a295fc46978c557922751d639d53b3ce57b7c89d76de3e4257bdb2778ae0fe21df0ba5efa98aff9b4df2efa791943ef8403bb281beb281f132389449c06275cd9a55dea467cd4d35ab98a297825d7fae7e9f6a1dd87722cc2854f76cbb773ae5f3df70ba80f7b90b30cf6b5b103b88d3254c719502317f491a402ccfd0d738162cd8792291486a3831fa31afeb2c86e31d1a642e422810e506e81614df344f0d39de6788513f787954bd0224cd1dcce2930737747f9df871dd863821b5acd574fbe66d66bb8c0439d10448366cfa1bac5b5eadd33fd81fa4c4e7bc9c3afc5a0639e518c49710da32bec6390feeb7c3ccad232c8db5c82c7eb12f6f67bf7a6dcd673457639ba2704614b80eb09e92cd1dc5a22712ac42e57990a902f6aa34804d44a518d353898e8d1c611f12f5b303654dd2133e5439a766a3f15a480e3dae5c99aeadd2deeb31f364e3caaf19d5f6b599001f24a2c89f763d20ef03a6ef132ee736ce8fbbcb80a7bc7b8af60e55ff8007d60af7e4a477dd1ee617eb6c7f8b40dadefbcbd77dfccf1a0473c198f052df3e75645077010eb2040739807736d6539546652f435318007c6fe4cd203ed3a7c3ac75cd5af1df087883775f862230bfd7bf26abc82e76bc7fdb23f079fdc0fe370d4d2e5eacec979160da23a4cc19a7854746b6d6c0b458e5d962055e8dca6d7c72020d73049d34b3efdb9f5d8b4b51f0bc2d3b1b3aff736fd3cfd1162a31a09b4c40236509d80402b44989a95cf518e30f52321599afd64891c56bafaaeb23243a3763937a5a11ce9c59c626a51096f6d42273649e670c03bd0c14338e73f88aa4d228e1357c26042b011a67b0ce01be37696ebe54a2ca8973ce0f3e3771e5b7a3f8e87989307fcde8df68e6e1ae2a463394985061041c0b70ea7331bc05120c8f7781055b65d3a10b3da4f811aa650b031735ca26d2241567cc0049463630cf8d8c4e857ccb10133791688ac885c2c07fd24c7a29cd30c8a1355ab69ffe67cf652405adc5c19ea7c7d750f7f95be5ce469ab7725bb22dceb905ef4e353faf34924820dd1b5550418412a18304fe99039b69bf5ea3b3c0bb5e257907193a509b130a38e500a815bc2c900ff625ae145733e77339af964b564186ab03f5d3ae2b0e38846126ac996499c63c265a45aa2ebd2fcabcea42f63cfbd1943ed467dd241667ac2b35c9563ddaf94639ff9443567d4e7fd39d8b13e11ffc2e7a948b305806917bb8eb2c08e360e523a419a06ec94f238d7c6746028b14b539b60d17251117986670f9813ea4669a532b4078fc027ab8aceadadab0b1d9b233d76852af4b44e20446298b1a5ad3eec4ce26f42fd03feb1efc69ec1652816c52df16726973e759fa76de2f3f6db1805046c822c3dd91c276ff9d65da571c00938bff7019b3882baa51e53ec81726faaa013695c6739cb61ce7fc58e364135ec301d6f226f21c23e2296f8b071b99287f9703716d880f5cac2af61617374ef3a89c61ce85255d8410d264c94092660809c0bffa5d7f6de7bb8f1ebb10effbde7bd2bfd69ce81bc1e130a427d778893095aacf9d85336c1c1efec73e743701f135042bb042309f62300bdd8b5e4c895134a0a620a486759d2b745b8b24554c49c2736c7c056d58e090c33c88652c82140a29c52150e91e46f037db5b4412a592950c201f4a8bb1230c1394c31813c411f391fbee7ebff1aadbcea83f1aa2ee85f8edd7a988bf33891c76782f006f6ec2a6d8b39be876ea18e2494471e02482f60306006ad31409c125344428417728cb551a81584e6aa603b8fbbb1b002aeaefd82180f833923b167204728c438d32417d0952d293ffc54dbfa19554d15a730e723bf5aede8df17cbed82e60d791ba3ec4d3fa50fc5207d556777b636ce7d965fcbd7f0f27cffd61a7bcbf7f9557ae07f253d78164ff5dc0f77df9f373166d7cfff1e166d802aac53e4703eb109147c3edcd9559722806cd389004c99ec03a5a6359b4d8891e2395799a781688e7236a7892d6943a26b0b3867c144e5a55b330f790be0623a7724b4a23caa225e688c30015e609abf6a6dedfdc19fc75671ff553b8d1465da36ba1a035afd221f1256f99eb28d5bdceaf1faf6332bd3209a90e21e0ac62ee049c7c94a8a72aa989a36612e18b3c1e38d67d6b60d3e26b40875b7f43db409099f5fd175d55f645b969a754b6d900564c7c7e418077c3f46aff5ebc0fb6ef4b9d6445b873299e351c8611639b008019483dce805c2548e7124840e5362b2ea8c6b0e63bbaba23edf8469c999fd20439d4a510a36be884ba73690e516ba4576eb304593112854b72a8320d56ce8e1c4b4bb169e75dfc7a1dd10a739f470d5fc0b74ad0e8e34b1b52dbd8a657f86b178167fe5122b5e50514ec21ee0b1ce85673ed52f658a16bf8353df332adf4bdbb84ecffc38dbf7d4e771bd2ef75b87ea51e9675a4d092a3e603ffb12ace30b5b4173f67cd18f83ffd68d79c05c415e20b750292902827d29e8bb5b2beb2e9cfea38cbca18c33cda0845666ba8316f16b47c065a4c26590760bb3469c781c1157f33146bf10d6049216ae2d42dd54dd0abba51bf4ca4d24203312d92420827c057b72a1b38e078887d9bfcb3f6eef97dff0ae43bb87d81d37e610554b8a1dadb07032221ace2d9cac2718db41c6c148005e30e098a849cd32ba85229833cccb09410e76cbb1d9ebf6831c55d863bae525eaa43fdc842ef4fc1c9991c07ea19427b4af48b60737b48fee238e147473fc7a9e84faaef8a0dfe117e8a84eed35eb56f6c96e15b4f835eb762cae0325aab2826a851c39d8b2e68f1da82526c226c003e5870b0cc594d82fa26a2b1b33180c706966a5ed4bfe06f635279c1b3cc4ea960ef8dcc591c070e13b3afec58452a435d52289cea8be234eafd4898be7accf3ea69b6afe0e84d14f6bf13fefbedd15c132cecbbbbffed7dd8f747af7d7ddddb73b18647173f5dffffded6e3a2b9375f847b4c8be878bd522ffcf62b998c751f9fde73a8ffefa5ec659c183325e7dcf172cfe1e6fe2bc5c7d2f82280da6f11ff3d5226f6a9ee53f17cd5f1697c18caf9acb7cdfc6b392dfee56b33abefb4b7e90bedd650b16dffdd51185f6f29fe5ac2d2f0a22f84f41fe4fa1e300e12ff0f05747f8e3cf8e243fdc0b02f84fa1f39720dc7dbb9badfec966cbbbbf7e067c157fbb5b556d93fd7873f7d77de7cffbeeb7bb61beb8fb4b029dfbce9f22f87607f92c4feffe02dfeeccb65949020f0fdfeedc19bbfb0b0882f0ed4e7fbaf4fef9cf2260c2dd5fc2b73bc49a4a856f77f653cf159eeebfa32374ef9bdb4594aeeefe7af876f758ceb2a627761cddfd05ee45e1a1033a9d876f7770d53c7978e88a0f0048e27f7fbb335f1605d29fdd6630f6454fdffcdfdfee7a1f2feafdf39feb7cbd8ad9dd5fff10be09df84fffaef66929378d90e50336677df9345167fe7411ec561c0f9f7d532fafeee2af81ece9ab91b66c56259fe08cae4d92adaffd85f44fba74eb09cc6e5fe1a2d16872b3328a3e4eeaf7ccdf9b73bbb0c787c9abcf60ec541bb949ab2fa429bf178752cbd6ff674db8f8bd3b513afca17a59b472fde30176cddb4f7bfee0e7d7ff763dbcecef2bbbfcae53afef6d9216b3fc35cb04f0df774f147b6606d15385eae66edc0803f40a7ddb045fb11c7dd7cad178749fac83efeef6f772c2883bbbfeef61293b1f609d87bd165586ca3f390240933b4a2ded10af54a36f2274b42439d6a5f328a68804e528893352752f9575429fd50ef02aaeeeb1eaa1775af02027998c37d1f9a93779b455038d3443412b2b289442e8492f13c53f21e21ddb649457e9671c60051b6f7ea6c4f3a470e9fc37994f12d1b3c4329cef6a88c96abae4311f1e1a0d5b2b72830d66bbee3313366cab3df8e528eefb5dfbd0ef233d452b6dbf8e2010d92c9dbb8a7643ed1ea7123c17b0608735484c49d8e67dd22cc108fdb364e1ce959549fb0194b0236e1ecb13c8b96dcbcdbf6c713c1860ef08a7ae686665a12558d14072a46e4d60b6b2c1a4538ebce433d6dfaf8b2cdd113a76eb83855dfc912307badfee39a80cf3c15f7e3183e215caa1719ac679184db6c07d43b45f0145e48d1b3bd67f253e4cd365be0f97cbeabdd37e6eddad3f76b2f7a42339da2bafdb48a6e6ffa3fff2e0e5ac6abf27dced9963872cc3da7d9b34c1174feec348c05bcc239c17f823f9d866d3efc25fff9c783dc911efeec761b96fa9c73eea9dbbb8cb3dbe99c18a778649ce0fee1cf3f3fc1388facf2e39c53ba97c4ee91c7dd0341ea4840902f392710bae29f92f4e789c91ebff99273be57f46fe19c2fb9e607a9757357ce16d7f8ea67ba7360c4ffb8fbe3eebf4e9c78bf189e33e25573f73f585cc4398bf3a8faeb7f9c553d5d84eb9f3f03bef89ec4cbf89c67ffe32ee2b3382fff982eeebedd458bfce76cbabf3e7ed4feae48a731db5f9e364873fb5f670cff1fcdfb65bc6bb641bc5c2e96aba69aacb93deb4b162cd3b0dd5f4d9dcb777f6cfe9fe5d3ef599c35e516453afd63967faf828cffb1119bedb168fffb3e5baccb19bffb76b758dded59eef79f331eb7bcf7dbdd6ab16cb766b99ce5d355d3e7bd54f28fbb70fdb3ad22acca78d50e40562ce3d5eafbcfe60bcf1f4ceb59b11fa13298e5f1f23b9fb5fbfde993a36555948bd3c5f7605fe3fe269a1549fbb1877b76fe235b054f3771f4fc9689b20cba170fbecff2325ee601ff1eb36db064ab97c5389f15e52c7a7a9264c1d9dde9f56590b3c3e0bdfc69b50e4b1e3ffd9031f9e9a679efec2eea9cdd9c7fc02a09c0b33b51be7f762f03f1ecfe4593253f1ba79d2c749fdf7d2fd2d9ae596e79b460b37c7a76f93d58e5e0fc3e0c56f17de7d993591e2cabf327497c5edbf7c329e8745fb4ebf0edb57db1cf3ebbeeafbefe34495950ac3eb2893eb4d1e22c8cd92d5bf26ab955c9da3df9cae64d825572f8f33d5a4652bba18f9fd5ecc8804fcf1f45c5fafcf667561e36f6e9511e97e53288e2f3678b553b5fe78f8a05e7e7f72f5f59c63f791c957c563e7bbc9ae5531effe4b369f2acd555b58a1a7a1eefe228ce37affdb4cedb657a7ade080b7cf1ecebd6f92af8192771c0dac571a46c3f572f28dcfeb56c4fd99a3fdfc3d9f4e9b25c1daf0f1b346bc48dfd9fefd99a97b3226807ad7df06bbd2863562c67791984edbecbe372fffff7a42c8bb3cbf6bfe3e89e1e1ebb7f78d690c262b968c96073bf5e9e88f262d50ed0813cbf42a50fa3de5e4de35d71baf8beaaf23268c66fb9cecbfde71caebe472d4b3ade9d06332817594bfb2e7e390cdcc5f346b43ae714d1a29dc923cf6864af9621377f9eaa3fcc6fc315f7fd5ae7b3a811bc4e57dfd7e54f70fffcfea1bd6da6fbeedbdd26ced962f97dbae0413efd63b19c7edf7d3f328d24889240143e56aa58f00a48827ca574fba7d95d1f2d7724a4ef155e2f37f19101bd532e49d9cff74b5cf29e770a5ff9e26601b27cd5fccbe2d52a98be55ddb3253e5db75be86ab962b9d855570a8adf93e6c8fe4ea919cb83377e5e55ab03c97bedd766a77d5fc5d17a197f0f676cb65cbf395a6dd17219e4ab9f8b65f65ea1e31a6d2afc48b9bca9efbf5e2876fe71121dffd990b91742e3e9d97fbd50fefce375d9ed69cb372f367cecbf7eab88de5111b5c7d0936a68af51fbbb0ec4ed6e9d2e83f698305fbd7f3e7e51f6785206820cde572e7ff488fc11e57257fef3eb94cbfbaeff1ddae5ff93cfc8bfb5cbff37938e975bfa49c96c48b8a6b6d242757cc9ca27db621e8a72cd7aca9f4315ae4209a7c8a33cccade94ffbb13b1c1ccdfaeec210f7bfd3f677541b55fa672f839b3087c270f0a444fd612b2728cca8c75e53b4e6236735f2c5ee3a92ace9de551dd7acf7a2bd67e149a362b25d9cde6943f1552fca579df5f33eb58ae197fd69c32cb6e5a6a76f77221dcf877d61afc81e9c4cf8f7c31e9b531bec43e09da02351abec6c431f388ba921423ef65ac577de2a6e759e4e668fb92fba6540acfdb301dc30cf983f953fdcdbd1e8a7b31a9dfaaca384e96ad3e756c91b665ad9bed38632c495516d47c39e32671e144211f028ddb765f6d5caacadbc970ba3de3ea4ecc2108e266a4d0848773d99290b9fc869a8e37aa8ab539669ab8058d3fd7c5af9b8a708c3bef01f7b85ad7252288f740ac2cc5c0d07904739e5d1ecb1fbe3a484568471aeac7cd259403b3d3e6bc79b7a50189dde494f26e471ae6cdafe550ff9e809e6b48e44bca6bd24f53d94bc782e8c34b8a5c45c07c45a0d7bd1d6748635ec45c593c958aea9672d5c49e17e25d7a1842b5f749bb29be3fa79a3ec3ea553af99af6e39ce70c727601beaeeda17771b461067195eb381b9be52cfc928d3d465da9dad519d7d73863bfb308ad3caec3f9ed7c1e3416b40581842b306509b9600b7615ea2d5b0d7dda7b8785ed79af6a60bea19d5b81d6b08c281553ccddd092e288c9b359b75ab918eab68b69d1a82bc19eafb67ed1e3883c7b09ebc09aae454dfe41cc233b0d654c73c529bbdaaad46cdbe93f08af5e459282279dc53f6f3e65cb4ffb2fc82122d6dc68a54edde6ac7df00c26ad8632012713569d64bd6ba82a7aff4b1d9ef49d83bf5731de838a1cd378155bbe722b10ba20c1eeb3c4bc5d6ce5141738ea3762f5dd61d66d6e2c537d4d43344ea0ddbf51089eeb3df7f1ed6fc4f7b3b8d2b65158ad1fd50a74938807c38108ac9b6e836e5ff66a34623cb975785b763a193d42676baff46a9eda1f385525bdbf5df52db6fa9edff22a9edb83fdf13d7be58043a955b4dad3dbbd35a76d753ba8d38748a22644ff317ecf0990817574a3f1465817a89301c081f110137a1ce676371cff2e281d5d6d79b3d6c862a5e4712aea8ad0881ae35dfb0a0b67246c6957d061f1d0bd433a7beb8e33e9157b1ad48818ed7c381924412e4b4a724c3014d429da7c383cd793c2d5afbf6a8c7709871e14691e849d4e9edc9fe692eda2c3dcd5c1c58832e2721711bf1510808e3d141647c57749b1dd1a6cd185cf4651a10791e0e1af1db9cb662d0a01539a74dff4fe2a5ad24acf96e1d1461c64b4684f5793f9fcd61236eeb32672f3021a3d3373cefdf114b7126f66e425be6b1ae9591bee3e3ecf9f160bc17434fef1dd97253671bf1f8ecb776fcf608ba56cc6fc6e9209a97a1089796d86dc4afce599fe1f3e7c9336cc17e2d3d4ec7d5c3d426b2188a257f651d4981871687e7a24f7605ed2987b1d94e999814be389d4662b26164970e75b8093d858703c4870356303dd930af991fa30aa5e1b3718e325c33b26bd6ce74b8179f1721e9ce03e1b4de5707517f2f660dac7528ae16c7f7f622c6abe2d32be2d6d789597f8778752e56b5e25273ecd2b53aba9843e5b0a7ced6687f3f8ffb714515235008a5e1e2f93a4e4ff823a6274554c9cfd64233072febdc8bb4681178e63ad4bb797bf4ab9422cce86632dbafbd506cd6f46e43abedf480ffb96fd7400e37cdf1e0f0ec84fc3cebfb9e866acd5c284d793e3accf5893e0c0cce06b80a67ca9a7ad10bda9b3c89a5fbf79e90b1fb3ddf1e4b435158532f49424f59515b7e81ad915b3a37ce9ffab03f3a3ebeb91787bdc723fabaf83bb138ad45ea5d39f560b3ba118423ff27101d20fd05c4bfc09f7f74ef853f25203d3c5cc057af8170e4aefc70ff845e95fe378070baf29350d9bd07cd8774a5d7e0ab2f8b1ebef935f8eadb457f83707e83707e83707e83707e83707e83707e83707e83707e83707e83707e83707e8370fe9fd5c9b6e4faef44dfb42bff8f703de32c5eaefe68f8f8fb27e217654f67e32b1e9d5f66be69cfc4e2d7996f3a7f9343e76fe3cd6fe3cdbf9950bcdcc74fc61baae3ccf7f08af517d3c8c3496ccb45587567a10437e1ac7b308ac81baae35f519b6284afa88eabbf4be9f61da98f7d53fd2363ef139ba762473a239ee9e0fe1d9446fa3a4a23deac7dfb4d6b7ed39aff5369cdd3d67c2233c34a99b451f5b2a21eaa898bb5c7297aca543bea71c6431d6e42e24e99fe308d49174407bbc3995ff8b95d6c1b65dd5f944061682b6ea0bb533feb16a18eab48df254c77a7679970a7fb6867cadc279da99fb9539a75419859d38074a644549e7c9b45858d7a9d4d40e4947ad375909bc578d6d4cfebbd8d0cb630b5e18015a1be6d6d6891de5dd39e2284ad6da6f906bea69532c41ab2862ad3704f499ab65cb5ebe033d8595475a6b8b5052927fbe4b3369a36076d441c8192ce3492f8da17932a14e50df3e02ab6dbf605e619eb36f389ae4ea34c935a7bf200f3f14c31e84c91430957cffbaef028a39b2803f550d7d6b1ad24cfeb36a7d44bb82f61610f156bea70a7bea8ad870398d00caf9a77a86e4d999ef0a17e7cff711a88586662b73a8c87103c9f8755d31e6dc7008128eb4c7d5b99ba03a319b39a92c7756fba980f2bc50c459884bd665cf09c798735926a19d39b6fc11d4a20607a3bced336e382ced791849250df4d9ff7d700e1ace9c78bf9d3f7bef6e1209dfa797af6bdcd382aeb4817a6518e4fe5fc5eb3465b1bec930ffb610d502fd986126c6db75186f950c76b3ad8478f8caa4e6b731bcd94e9587c6ce6fbd9ef439d6ea257e668dc465a5b4cfd5e774189b662fa74b3cf14c9d7d483b5dfdbaf794ae434d2bb45985bcd9aaef66be0a9dc504fb84f7642d053e6818ee7c1f6b2de50e72225328f24381d6aed37f2304387c8804a164ac3669e56814779d8acf74a39be3bf5c584fbe2ea38365bdf33929060817ac3693430362ce3292556bba7f76be57c0ecec741139a396459777e888d300d3cb35d1f27dbabfe380d4563bfe75b1b274ada4cd15934b535e4ba677baba9ab198f9068c7f11cf9ba320d7273744e1782663dea3bee9ee0bdc9fc881119d9ca33fcc4d106eb9f6cc1f22a14a33d0456efe6e3ac69f36171f67b1b950d9f20b9e97b654beaa145285ac5a47adc8c0f7be7f2bb00677ab2a1bdc74528b6789201c2d6b499a3037d3965d1a7c42ade69aff9de2ab6d33f5b2c87ceb3e1a069c3905b6c4aa635fde1516e4e7dcfe0c3815285122da88ed3666c9b758604ec1e703d3c92acd1b0d7420b1b5a9485d5d3388e33634307e9f1bbdae73ee1ebe8f08d4fd06aa5c50d1cf64432d4941f2e38835eb7b0e5dd8656726b031fe9279cc293fdbf3a7e8fb60a7b071adcee81fdb744628b1b3ac754eceded8f45b7972953ff7131daefd117fb4632f7f44437f850d7e6be88eb483c8cc5806f98379cfab9b16112e44ddf594f09db8869fdc5662cee6948a0776bd65f74ccfe743b168ff5772b4ab434d8ef3f36eaa57bac8c56b66b67327bd8847a77ee93dd2294a030994fb793fee3a6f9de70801663715734fd6ff6ba674f1b5e459f685f8bcb9afa12ae42fdb1dd837e3ba668dad0e123de6838409b5770274f34a0bf18b563f3842b18b575f61e4bd2532c074077d803e9b0c7fe1c66090ff5dd661fc18d6da26c970e73211f6aad5dbfb47b6c8fc122b27080a3df0f756d1be9bbc2170f7b552cea50ec1cde51de1b87764ff7a6857b58476774afe533e734ebe97b06e69479900fb572c3b2666cba09ed81368b7b435b9a3e78767216519149ac3a45ba9b87a2b089746d1e885a4eedee9b758cec3ddf67226fd662453db80d4539dde372a653ff200741e7b11e6a2d04bdf045778a899cb04c2bc2362b309e9ecab7b47057b463870dce0686ecf794038666380d887f949bcee7b1912fd2762f67a008339cb6f3ddaee3ae483d63158a5a43a357437d1fb96fa8373242bb1e4a4ac026cad366bc122a1e705cc775f3ffb1f76ecda932eddae80f9ab5aa689031878743a551226d687a037d06b46f101a429428f0eb578926318989713cbecfaa6fd577306b3ef165d8d89bbbefcd755f97dd6c63e3cf83b0d9260cf297bb9beeedd4fe1e3daccb47bf69d4c67aafdaff0e2b16faa3f8c09b33ea312181fff07cc47c9cf0e91ccfc67eefc2fa857d2d3dfece4fffee0cd7cefe7c8cf67776d8fb7a7f1e44d12bdef47e607f3f1db188c256ade8713c8e39b3617bb8f707cfe387ea21b4dfb037e3c2dcc5fe61eca3fdf8ef84c5ab522e9b1f74be1d9f7a454f0fc0ef4b846a3f43a4fc2c28be257aba7ff5eb2029bf06fa4bf8aa0ff4fffdadf5d891ff831029ff3726feff674cfc7a30df42e279fbf8345efd797aa337731ff6e1696f167570ead6ee5dbcbbbddbee1d5db3d9b47e8532ffc71fbdba5a7bb7eccdc51b6dc3e2606a0f9fc12aee89d4bf722d7b18df7e9cedb83875d38fef47a53ae71ebf84a06fb0c1831b7984281e5cc0f2f0d90b94f6a563ecb33b6af6d472876e34edd075b6fafd74f7f0b80fa1666f30e8bdfbb20f3987751fb21dafd2de05fed33ffb27b1611b72ed61f90a67c5c3d99bcbb8bf724ee66db88a0a96c9f19b7bda7fefe11a3cb8916faeee2b14f86ef5fb7c38b177f57e325776ef1aff3a79afe7b018e6cb1722df1788f6a7fffd304f2f10c8c5eef1ee6d3fc1e797f938be4fbf974edff31536bc7799f6eed0feea3bfe9b5377fb6e357a094b1e44e96c63ffb077ceeeb1fe6aee43b8f57e2f1fc2bdbd6b376c93a953850156fdfb9dcce3cb7c25abc1ff87fbfbf8cefef9d0ef24d47b096d1efc93793d8cf3275fea27e1c8def5872f1d9ae6f0ed37e387231cba12ab3fe7c2bf877ba20d6763d9bbd54efb061b7edd3b2fe7911d3a14dfbee3a5cb6ba4faceae7d48373e0dc35e43c7e13dd11e1c4d42364ecec17d5fda0da622f8e6fb3fffbbff9d4d91160618245a2f34f76b36f180ebef1e1203a772ca3ac2f761132c7b683e60cf6120d288376958f4a9af7dd8e70a2ed3783cf20587dddecd72dad1f0003fef896b4ff6f93e64555be98ff27db820c7a367c1597e4c696dc5eadd3ee843c6a4002fee629114c3ba3fdffd393edd63c7545281d44b2a29e6d09cd9e831d687fb904a8bdbd1631808f512fa9d9cad7e1f474738bf780935edbd5b798086cbc0d97f7eb477a72913a79baf46f63e947f834ceffaef3b40c6df8767878e4cdcb78430e6b8b32902fb331d06eeaffdfcf47364239014bb87397b3884ebf6e750f45eef6dcc50daaa14c16c3fdec7b37814f195c3a33d3a9ced171ad0d5b9df32fbfa9cd18f7391feefcbf7fec73feef7b73df5e0db6c13dbbf1f9c69dd8ff71f1f3e2c76d570fc50d5b18e410f73ef53708e96b47f86afe390cd7fc7153f52a3fe3f7b57f4e73cc7278fbf38e7437df8bf17bdf31bd11d9bc35fe07f6f581c3fbefb17ee39f83df8bf94c7ffd743ff3fc943ff7c4cbf633d4e3539fd53bfb92f47f6d98f9a7ee3534d3f6713eb68dd671cd8bbe79a37c6e2536d96139dbbef196bff880276d256c5d21f16b1e11861e0e4e2a236a6751bde7c6d54847dc64798735d6c9352a6498195e8b5b54eff3eeaaf5ca7fdc063edf71a2969b936f49759ba92babce359ba8bf47a10959611b7bf8dc5c4c928814f0be2011fcad2b5872b9e83d2e730e72ce9a8cd0c775ca7f1aa5ebb0cba48531ecf53e4ea788598b4513ef450f9a02d3940de95da0f9e2dd2c4c09528f36d3275b6cb695e871ce7973437ce682dfd95e6c6d7e3ffaee7c6a88d8dd49c73988be9ac3e8e79954e849ce686d44d26c6c3a960a8f1019eb879b55d96688382741a16e6807113e2dcdd117dd0ce8dca93abdf8328484da9ab1de580f35202668805d6cd71ac2bcdcf1c230a528395702b4a199292a50bfb51e7246c63f8bd4ec487f93a74febe679c3efc5ffed5be3c323afb5f68bfdbfd5cf5ccdc271aeadfeb24e7a32ee266deaf9fe13ccac0dd469fdee90c233ab98986f59f4457cf62da9fdd369ab2aed7b46bb5fd3bd47b1b84aed6af500bcc3cd325238b14d0a1b659726eba048e9468eb7b61544da2e7a6a49a1633b48a01054b22760be8023cad108302265a1525053422bf1ec71a5e3026c62171acc8aa1aca14c3a540d81625237f74376fbed7f0f9ac6ff32731aa3a0c9c6c59c0f55c3fd86369ab5af41af517356dffb90e8b36ea9605489302fd0af966db9fd531e82bc3fdd97bff4eb5ebefef82eb345ab8a5c6ae4a57cb3ca5241395a0ea49e40ab14c3dc65064428d989b89ce2d452a940a2847910f65e85bc341c4a1cf9582d8aaa1d4f1c625339397aa44e4cf5a1443c132e7c9d3a5969490784434a4640baadde8ecedcf59c1da7980b7bd3e7c61eec3f4e379eaef9de6c279ea3b81937698c57ab34d56e0f5eefd4627abe9756d3f69a25f7f9efaeef1c0dd86fa70131bb3ba4f57f9fb353d68ddcf791fae1cd7d4ba6a4d9372b626009a1eaf06cb821a589741a250ea97d214564aa4a51efda9d5c653215ccdb9f73a0745999cc765e52090ce5dc80c97e17ba26367c11b2bd6e113e60e615a53712eb771870b97cd80cb594bb978a417ece9a7b92fe02a2c9de39df7ade6f8feb7ffe3fb2be4cefedfe9070ddbe37f1ff4a0afd3d7e6e6b320f9d6e70acff5f497cf5381ca518e6d73e595f817d2f01385789ea87ce7c23fdb65293caa6b20b18676a4eff4e5944d935c3e737bb06525a624370b52e291508fe6bc83beb4d96364a05f8ca82604b88ac8e85a9b958625d2920266720c36b12ecb3ec5f8fd9e3ee8c5fff33d7d76ece39cef9f4fc35e1f7a588afd5dd26ac771aff1d5b4d62b2a9fc16ac0e0488f6c762f73b9f24ab4c10a0902d83a59d52452238de8664be09fced5c335cb5540a6955a2ab8e3056a5891185161756482734fa5f5b2ac4a09bc7548feb40b5ef9cb09f33c3deffc9255d7fa6a21aff40bf3adcf33ab9d67e10df67575dcd3953e27e1b34b66cfe8c7da83bdeffbe4ea82135beaccfe0ddc4ca671a9c49256f71860e117cef4ce10cfb18242e674171356c7bcce5c86e777ba39f082d12ed2904ba8725d1b46c8c6ab188a09298653aaa78fb15faf9739d5b86266a4395bc213ed569adb7d3c3206b9e06c37e707d68753ed3af7a36e65b1f761bd3a2ad1365e814ef6956f5abfe8d1ee7db85345904ffa7a458f18a8131d3d0a0ed27980db30e8ed953afebbdd3cf33e8f5bb236f2f76bf6aa16d2ceb3d99b9ee98ba6e5bb3dd4eb6ca7b1adcaf85ff2f1df8fb9bf870e1a9d3d1b883ef82bbf9e97a3490cc53c61e9c205ced42bc03ce24e2e94fc95502490dd3c473903b166fe628451d71e425c8e0a311efe4201bcf3a1489392ad9342e578829f246deedd5c84842b833138483215240c6a2153e902a63e0f3eea95fea56f517ed4037eaf5d7bb2761fc6fa52a1e6e5defba07bfae17fff6c2bb4838efe670dd67fb0c647fdf6b7357ed11047875cc2f51ae204a689cd3ca152e432764f0d68b8f66fd3e7caf6f85067e5a34908232ec5e55d8769926343e4404960e9c978d8c61400c1678684328a94d524e58346eca1e952d87a852c63034e135b3409c70e9a3adbb8c0e53fd4103fa69b93faa855fc93b5e86eb9161f75b05f75824f3f236eaf68f517bae07ac8452633318f94887c80ca65f6478f356deb4fc4145b4eeb05f8d7622af208c2343ae829eaa474661e11a6aba5139cc189cf4d77e9d7984cad8180f88e42ab0957f51c43d6604b64d2ae73aa120dd9b4913fd0053fabdffda556ead1cebfd7b93ffaf7c9c1bfff345e6f8fbed55affd6c69fec8d17fde6e3f3e0b8f6efc73bd123fe6a8f9d7ecf459d73ffe63ae7bb39efcff876ee7fd0a526f4d95dfdd5deb224733a97cb79983b4da281b9cfaa4d528842ea0d105d8a7cbbcee272f494748c531bb82e1b8da2715d7bc4dd3132b2983dd4448e23d7f65ac658c7a7232f66a39a5070875462a00ea1905a9dbfaa3761a1824f3ed88df6d67b7bf8a6e675516fdcfb26aefcd6c67fcc13b8b7c98fbeb7e3fbb53eacf151bbfda8b1fce3fc8ceb6b06a52094867230f0bad8922b8fd64148f2d6cd9d34e9dc9617c9957e713fd79d9cf668b8cb7aabab0fe7fb9fcc8b81cdd866ddc1577ef71ef5c11fbb2ebe5e30318d4a07255ad2c882794b1b11a9339c6883d6b56a31d75d6d990f76d14415c4ae1a8f3b46a84645c853e41ade9ae4bb35216ae675e940b074eae6f920810f8014c33466784a4ab68d296338cf0d512016e537cb577e99f338e84a9ff39b5ff211681bf7f6ca3bcd597e9f6329e0f3928354dae8f1b2fef84df22afbf8a50e039c4547ffe665fce35d7a65bc0fd062425bb71c753447cd52856b94378fb10e4214c83299cc0067a20a8bea7101e5939b210731c78bc0689740c4a95e99bee6b51e716a2faf6aa6c9f44eab17480f5b3c112e291ecca8a8c79ece4c62d7dab2a83efa357fab33bedfffbdefbe2c689dd8f0930ffbe1aeda45fbf5e5500bf587d3f5d52eac6f1beaa9793967f6f1aefdbbb54d0af4d8ebedeb8771fb1cce75766d1dead59864b02034cd054917287066225083281865fede0fa2d67576eda8a12e0ab5e93b87feadb9289d7479d0d9d7c44107fde367f5b1fef053dbd6cc03a60bce84e48ece2cb423d4d50843484e675ba421260a53902bf35187aeadbaea554cbf8b63c7bdcae63f8f630364c6055a4781779893d7f1b5437cfee3daa0552f27d4e045d82d2623134dd236d61d93dbb5bbcc7114e9d8a51d5a5f99f7d4621d54610bbad8662ab934279feb477f3927781b7395cd03b4e9f325fb7bf0e367579ea5837dac1744afac84c247648c062e4c0392e76b04e16a590c2bba1a3e33bb9e794c2e24f75a198867bf84004faced72c252a431cc7370c726a35168548ddf8d709c85460cf22d8318bbb459315aa791aa76c904398b005f9d0f9501de863a7c8e8b836ff1cdd9d4e6597893b3793ae661ae99d6771b16e6365e69c771aecad3ed9896422faf1e17dc5953ce2c0ed5934b4dd7cd9d31e72c64367423ddf1a320ef887a34646efa2e771a64886069a5de02ced61145359eaab16760104d1c8fd0aa627a338d6db5e6b6d5249391cb18132ec0f9a778ee2ff374a19ea6b1bd39de2967fcddfe99a69a07b887e8b92f6ab8e33ee6fa784f65b13d7c7e51deddfb88f36cf6f999836ff3daa576c1bf69630375730e5b6184a7f5a34fefd977fbf9a0679c7d8b23e999ef4cd3a40507dbd382c7581fae5f557ecfd7841fc5745647b6eaa43d2c9302d6735e75a7ef8d3ee523d33c5981c7a86751966dc8b53ab1591beaec59da07df36d69da7ef739a87fa6162c336d1597b32e6aeff5d1fe3c22235f76344fc9d0fd87d9ca798c3e790cb7dcc9d1e722b2735ee4fcfaae788832a39adddadce3ca70feab860da9c377b1ba70e67b69fcf8f35a2de9fe9a1acd3bc0e4ba51d7ce1fd77d3e75ea9f9c3772753672b0c472586fbedef4a0ad6dbc2a414693c3e1dffd37ab622c055cc0ffec097f3df3380b3975cd471ecf01316e083bddb096ee6829b59c4cffa7e5964c34df4f92cfe2cfefc7bbb771cb7af613e86bc597f1d775eb2779a8627688c942cd004ce09503e2e70b72c80955030c18605980ab792829197cd0c57ab1c6283fbbb0e3d79bc795cc0072da15813535c7a60d68932d5c2bc8124a8c872326b29c78f718e33bf14c02d692394303ed5256e9b6338897bf76bec9d2ad57ff84e0492e9689b94b8eb632e7bf8b2878c9fe4a0bead2b9c40a10f9d912cdfdbbda480e627db7dd61799ddc017f9ee1d7adf5e0fb9da84dcd9bcb0758b3138f8b6817bf469afc4384019bada305c58c36799e506b1c07aae0b8d956a1c7167870d2910b706540760092b6f59b0fbe514d692b28651744f888ab05f039f43cb6562e1670cc7a560ae625806488f69bd92546bb09a0d289353a16e857138cccb9c8b2a9e6295acdedf2117d65a8ff8ef0b7996e45679165d166a7bf075fa716bd45e9f57095775191b0ffac2c60d9e88cc056e27c7f58ae7ce9c64a2e5dce14cc746620d1ab744334a1b9bd92a0d354cddd2c912228b98fc319891ac7d5a6b730dea1eaf4d4f53cae521f002c773b933991b62144f1f4c74332cca5b1c7cb8afcfddb55885252b8fcf68e79fe97176cddbf78467ea89108880a939075568385b69c32e6a4fefa2d93fa84fbdbde3c55cf5b8afb3de2657ad1fc6ddef9f239b7c7dfcfeeb6b511c6f71207359681ab590f23b3c77818349e6445ee78c3963e330480d6241df33601453f024ad70b0bf77fcccf1c36c3448a0d8c49af0e31cdde3a96ca27264c439dc86fcb796d86c43b274e302e74e4cc34e00e7634c72c15ffec17e3afcc6fae033cefa73e4aeaeaa3dd4677cf133e77ff619a7f6f7f77f7db0dfa09b93c3f7fe456da1c37aed2dc7358f72a0c5d4d2097b68913e1c214b8c71ce5c9ca388679820983682ca7b6e211d65a9c6c6f55398213d6a87fe92c339037f7614e2f992492da60d2164b4bad361ce1886b2703a978d60481fda9fd4ad7e9efb77d2d886cfa1bebfd37e94f7bc553e6815f2a66f2712637092fffcfc3ed7e7cc40152aecc71c764926d771c1eca813a5dfe167029cca0d52cd2ddceb726605ec0409b59778e3fbf9f9185ffde5fc0448a1ccdbdb9ceddc7ff7f7dea700d7de551ead7721531bdf1e0ce404135638f7be85cc3b7d06eeb47a2e0ce1a3a96813cd1bc8c2d193c2a928ad7649270b5fc334d2ab359e3a262aaaca9d3acc2faa896bd7bfc2dc54d46a8c6599360b5b9989fd5b7303a8d885bbeacc5eace202b64b1fa8e514abf8d0267869bedbcf35eebf9bef889b6952e6b508524dec7d603e7c3ed887f3ef75b419576288a188b2f471c1ac35a5d84654fc8a2cd0cd75d7bceb048b4bbcc2138622e014b49469d8a556acb17ac1aa82512742068e106122d424f7820a0a82577c8a724a5318b575b7602e9006baf781c879e918eef4eafcd32a36527509c373a841dd20cf570c07820ffafd7d1857d3e67d2c7b55ae497919066ca27c6c54a55b0cf3c4623eca9c95574a42a682092a277740ae68513d2d03654796ec7cddcc1653b99bebdaee4e4f71a201261553aef6d0b26c64a14018ae6d8e85f5bb892c7417836a8b38988b8039f47b8cddcf734d1f71535fd73bb2900315db284d747a9a1bf88829f879fe8a3bdba5cdbab7787f7626de3f8f2b42e3b339044d044e3d0f50b52ce85b5ee273dcb8eab1c43e28fa16e4d7fccdc319df5156a217ef049b889bea1d5eee24aefc8fff7e2dbeee0b7a37ef6f75f48b7e07bd65dee17dadfbadc67b7c1f0d7cd11374391e51b92e8a4780f221a364f4c8089c47b9586008819f0bb52ce15c4c9dd1928adce74cf728ae92c009fca924b1edd45e6e227ffa07847cd38accdb515b1bf80adb4baab57100079196e87121d7bef5bb7179b88ded8ff8b5af6dcc67ffbecf65f679979ff8efe7cfc5dffaefc77ccf7eee0fe7e56bbce0459b8e2d579be94c0f3597d6f79c39b698a25f31c50da1689a10c6d96a08088563374b3a3f576e4c7faf5dbd1ac5f6c3804f7083a73897b69cd00c15cb295e118ba1a542033773b0b0d3676ca33b59d2561258b052fe044bf637fefb715f226dc91b7582ff3c73d68fdf69b09eca404eddfad817f08677f24f73821f7dd1737b81d5b15ebd9e8b9fec89c5f8967be2fdf87d6cf71ecb551fc7bb7e8f504022a57e85402e8866ed442047fe74f4cbb5c02081ca96a52c51a99e96042e708706d266db2478d4d104734fffbda56a54c6e5ac996b722ac7751576a8f215fe45490a254154585a83204aa56e72c6c1141331fa8778c32a69412179b339e20deb035b28383220feebb9da0befb3f7d3bec7d1fd7d6e17fc5a725023bf0677069a2400054bea99093553c12bee6ad896453af175b4f1755c2d954a7dc5806f590317386e54cc8c582180753317169a6123dc45f666ed83dcf072308aa7281074a331ce4a94338e548a7f92db7d17e3f91ff2fe1f70993fcc8fdc1acb77e237fcae3f7ff6a5af77f19e5b2af60bd1caba337099041860bb42d1543aa263002bc15d1d6b097b34970cdec5b0e2a2b4349ffc69e6da06501b3e21c6665126f9327030d12a7d59408302b1f18dd17d98c35d5808cbb5588e4a7517b69b46f01fdc73feb97dfea5eff7a5cd9ba9c1e01bace7e573f9a50f79b237823ff5c1e738daf8d587fcecd1265cdc63a7df73d11e84b7b407efb1a12f58e4d7f7d1f4bff5a1bc80e93ec02db305264a2d7c8eb450cd1abf1d0a0cb0ef9204a05c9a211875a293ab05777296294b061024192e652652df80336ec34794c96861a99a7632c0c123a04c64c4c01ba192365115945c6aa8fc6fedad8fb8ce63cc30be782fdf7dfcfc343e4c0a98893e161ea5f1abfdb8d85bdadc22277266ec3e763cf3f94b1fe295f83935916c34c39628933c0d91f6d0ca9c39f38e0d92e9e30e1915f1add9ce857827b96c221b0809454de86f1d116b105304680eb604283bb631f48add4e74d60019ac888d2a0f695a32adce38152b94c106ebeae33dfdb7f8b933f9b46febf759ac9b59187875cce1eeb5f7fa223ed269438e3eefb9b3befa0d6a6fa59386fa1107fbf2df877bfc4caef6bb759d0d24d7d66402fd65ae754cc364598ac79888d20f1e9b251734cc1d0d2945631b415f837aa283c6035584cb4443e5a3ee6662c38a4733caa089d928703b3443f4611d5b0e4e6085e804ae17f66e8dba741692d1add6b58878b399074e1a1752bdd555fbfec7efce691672f428f8b167ec954df8425e67f5c9d7ffbb75d36116d9ec58337da536db9fd52fde6b6fafad6bf33ef75186328f4acf33e03d570f062d1f7504d9f39238534e61448aa6a20c35a270149d3aa5c7ac466af528e2a988296271e9a45e89efa4556718ccb4e5f4d1905ab826f6f0ce6beb2ed14424cb107885b4175495b7ea050cf5661b17fdefef99f2df723a7daefb637d632574a6ede3b2a46069fc72679fc771f47674ce511aeaa99a0748c51c3e4b5b6527f1dc397bb01681d2dff22be76a7dcd56eaac0d75d8091fec9fefbec7ea983db5586cab5fc207202976df6109566f73c13611afd5bbdae4eaef733d9fe6ee27b99ecf789ebfbdb34a11787dcfa6e0b0ee63ca77efa381bff581e3dcb1efb4b0497218b11c81b9f1c7488aea97d0ac35e7332db685e05367174f648a94a8fdd2618be97e1fe78da7d53a1d0fb104a305cfd367a23746a8f09a1391cb12db7e50d9842193b27445ec21a56ce427d6c77cfe8dfc947204e2e0cffb7ce5557983f3fbf2623e6975cbdcc1e777d8af756c0f0d113859182035e7b5eaf120abbfcc2104b8212a6d69970c620ddc639274240703bfc390d00627006e2590c5c2aee6b13e9c2d78622ce12895caa1a8fba3d34cac2200ef508e85abb042008248875162b0cdd2b63a772a31d29db53b1dd508a6956f83ab7308dfe23b74580bdef47371a1a603e6fb7df0cffdc5d39cf9f1ee79fdbb46fe17f5fa6fce1c99cc0614e0b14b925d5cca807661c778a5c516bbc704e5b18db1178c525fa551a40d1d37600817e297c8504b4be6092e67214d55622825fc5a2ca1b5669d2052391665a1ce0227273af623366b1041865f7cdf1ffcd93f3b9b4ffd418feeadf073def535b1001acb89d57a411a0ae26014a4184dd0286c7f6f7d2274c461c86cb5e38143304339d1e5af241fac172c7d121adb2d79b5f30da6534da624c30d267927324929c31b1138989294dc690cbb1633b13de464026fe59b5d912f755eb1bd490b8e78dfe3f3ed87febdb36727dd46bacac38b3c3eee33fae83ffc657e3cd6eb4ad8b03de6c85fc6afdd76a05d8b67f359350b29565ec19c3b0345be7242a437d310a49d9856a55455e31ba19e686c9204688503e7ce23b8f6a12c12e8b478928e1744aea92616c84678998967ac39d3286076c4ad86d0da47b6a7871ddc2e2ca4df1027f5ae1f6c567ec5d57012178d9dff3913fff4be7ca21f54025e9f3b8f072f637bb89a07a33429d84b4ee77fbef0f7aaa405afb5eb93bea9e3779f7dbefffee3efd13e73a97cf2dd7661804f7eff395cb0a3428ef32870766fcf79ef6b74676294c8073d05ed8ff85e6e61af8ee31df6745e1fa88b8fbc2e57c51e1a90d6c6c0016e79365adc694317e7408ba6b821faa326f2bcf50bb65a4cd209b2d088ab117033e662289800e99d6b599d5fba1ab5c034099c67d7aa98cb921de10fcd1c3c0e24a87e71361a248cb5dc66e3b0184e2ed49ccfd88cf735deefe7777693fb36b6f3baafe9073d66e5f4efbddf7335be724970166b205bf2a6a41aca59a19ea342595ec9fc051c4dbcce5911bb3231c006e6c00b33b5f0e16c4b395c302220a3c3300458cc0d5767453525d4d3313509e65051a6661ec8775833a7b4634f2207069d5e7ddf6e221f683df6975ce6b6db9fe11bd8e6d3315fe7f9c80fd3cdc9619ceb7029128bceb94b0ab67399bbbd035687395211ab34ca9145a11c4416d4bd325963e6142eb174b70cb544576bbf74f458af906f89864fbd01a58a47b63560bc992d02a7646434164c7acb00470b7f48974a353164c68deee0c35dfaca4b7886c7aeefc5382864cd39ec12fd0d6bf1e55dfd896be315cb70213f8636b16e5ef26f5ff09137386fc3e723075b3feed738c62fb17253b7536e9cc1b5c8d3ed9d862309e09853b8c0c57012d114bbe4e15abb7326b7719173f5163ecb610ef6b1a631dac62552073bffe97daec5e4377332ca972cbda71a1c305b447343b4b1851c0430200a3a888820e96eb29feb88f7fd962fca48dd6befd84f30f4fb3894e3837ad7f4079c051f3949fe76de0d968b40a8b8c4ddcb9c9fbc477dc8395d67fb91b27651292d62302bcc1d634105713b28a82d4bdad6ab90ce8cb9d6e868822b94a73b643828e44af718b4051cb584556b61832cb2860b693873c2614d2caf41053031672ba4a50b593eac498e1b012940e0663ee3935c1d7db6d5a071579ffbb264c0aae339ff9f458f1bbfb4ae07cec55e76a060edc5dee43ec770031ec24fe39ef23dbef22b1c731ad7ad2f550ef4c0a88b3259497f380833b6f581ca124dcca831dae1dc7c4ef4c72d22ce3d53d8f7f599b6547f40ac9ba104c2768d8ac71cd0583333a28ba9d7d6139ae39dc8375b46e800d90289ce1df03c9d84946dfc9badef3bbecb7e2eff73b8772e700f7cfc77176b66da0dcee6e998075fe18447e3c829a95d574bc1f74b7fd379010b5cdd6aa566ae789e3a9282288138137a3595b46173838dc97808c202453853f7dc76acb84b0b91e1fbc554f164c2c6221b29a1dc81a46ccbf96f90106c2f2732e744dd0b00a7dc96a3045c88d7cfc415e7fa692f72a4b637b88f3f8c7bb0858733f48a95ea39bff7e35d55eb6822ea3c45c6684568733fd7521765a979a7378f686aede6daef86b0ca8e32c7e71311ceb5ba26dceaee74798727e8d71d90864f60b4ccf16c19203da1e99476a8a613512f0bd30bf57ac76d60b8dc74161cdd45a5f22fd43abeb051ce0ff0f137e1777ef1fbdef6f40117af5dcbf917fa354b187e44765df222d952bd99ca42acf67395d8d297448e3c06ef630e1a9aa77771993e5255399e56db8c79a6cb9d9615e982941e58580831404d3a45e3b00c3b6ae109576c162a31901457fec4a9e5a73cfad776283646bd4c48c877dfc520db983bbd8ae197758eb3bd910fb7b81feab050cf82bfaf719cfdfcd0c731b8cad650814986112d04f00b361399ccbcc219135ad9dc4ee754c3cd5de7acbd9e77afa969eee8a1216c4cd8d8cbe08ce7752821b23d86acc8c69b65a67e11a08ca5fd30882d9cc7a5a8091daa79bb01a18eb7987fe2e9fb5b3f2e17bc4997fcc39a8c9dfff9991f37ac630e9fc5657e16fd66b1bb0eeab057f89e1dcfd4ebdf35fa8bd89d11c9c5d4b9c3857927f4dfdad2ae5a7f3aa2cb92ee968133a39674628ebb987a2662d54600b58fcb9f3c3e68fdbcfe85edd46270345df07acc6c56c474b82213c798eb662958f51cf1667da70df982a2a9ab7b06a3d7f69ba06d1c8cb6719f63032ae64afb191f8e7b23fb05f6febd8a4baf161c54b2ef973dfa5767deab3f3fed95b975e6e4ae811452707c67a07b97612361d553a2239c94ac4d2ce6f95cdcbbe3a1c9b949223ed0a93f6cf104d5c4609a3f152cc9d128b22a1066a85d901120c56c4d3546bc92411742116b33d3852a1705d412e07c7f7eceded5ef7128dfccfdee46bccfefc63cdaabe75087da9c8334e97977aee179b66a37af3749667573209f44e101a29b08dbf049f2a461d4c96986baabf766212a61f46aab3fa897dd6c5e8a88cb4edac3f695dbfde43d7a0ec6f1b59c6410f9c6a815fa06709e8e49a9666ec61ea32c35b0e1b5779a075c850c97629fe6ea57421d834cffb49c5b664c45cd493aa753a1cba9a8e3c21a5023e5345377843d6a9151213c0907249bb5b268525a8ed6827ec23effb50d8f0daf4ea6ce3619bf622ece60649db2c79f7101e23128ded7813ee5f6eb90d76ace71957cdfef03e2423592bff13d7fcfcbd1ef49d5f7dddbb47ee14afa16cf51a6b96841df57286cd57ee8f3fe366f1febc375743186f9f38c6e935fd8f6b5a897fdd8fff7911beb2a2e761049c3b1234dde2d21f35d8d39314835d2d626cba9bea06c85b47a1305e92ae46cc47431a674664a253a520cb6715b0bd985a6d09c800264f9dd438b788a4981177786b417d30a123bec842516f178b85eda35bb9a8b5d1f6e235da9a88097eea1dbe510fbb5644fe1ebbdfffa777dac4f5d57230f9275c87126caca5bdac813345fbb506ea472da64f5bb8b2dc949375ae14902a89186287b685c8e06547f6898ee0c961339e0b933f53ba858892d91892e22692b3a6713d9268b4ac489056cc2c58ae60ac8abfb4cd13629682d035cc56350fd6b3c22fadea602206db5997375cc937df8ece0235f93bfd5440699cf651305c24e085449800794828dc73163141b21bfb2d7d970b689e1d661e0943fd0bbb80ddfdbbb31fb737eca71752d2fe041a389422efce14a68e62c86a39c4e20c70493a8fb339044ed3cfa68c41d1ccc0dcc698043d4498a826a1341f5280379cf0ccc23301ae300cfc454d888a3064d52be2cd80477ac72836a816c8cc32edd49ad11c9271cf7c57dd82e839116b7a0eda54575ed9dadff37eaa149a976d2fe5d27c53ed618d68758453d8b03a6e3cbf7ebeb0cd772ef056193d88d8327c85c04b36d0c478fb250776e205b3e1db92250cca772c43387f8962998c5d2c4d68c79978e16dc74a93ddcdbe29d0b9cf95c631e2ee133e2355c16a6c97429786e76b4c482531584259b2eacfadabc512ef8b17e7e51e3e59fef7961b354da3df7f171dc635ee80abe478fc32604708c74bc8e15b371ce3262cb9a136661dd9986465a5eb727cff2a9fc8057feaff65f2eb8030e7bedc8a7f2257ffc77398261b880694327c9d6e596191a70bd84ca704b152686db201eb62837e74c737618a6584cfe6c25dd6c7d306a04848f4bdbf142929bc84e9f97459561e2f084c11d9ea28dc82840ddac0bb5da637438a53a409ca05be5084ef8522efa5cb9e07d5cb89fe7eeb4c67579ad6e12af7e39fe9103a78f67fb1adbbbda95761cffe77b5a68351516781296bac741a8fbb99a60a8aaa4f40cbf908ddb0ed16df2f8a03af089be9fcb133ea40bebf15ec7e5a2bdfee7f9e577631ee75d2563b0df63693c3ee258aecb2b93640af3788267777a6da2097316d43197b4d2f8142ba26ba6a7432751a33ace9517d3e16352d473ac9982e9cc121ad2fd2c7d224a710fe0274f4f07acc3764225e085e9fa16b4c22e853e70109f846b4f97fa059ff8e77a3a815b9fe834bdd5ff49f28c3ee1995837e752c931a8a4cdda7d7c94acbee543ac7a3ecc428298bfd4525ff1f9dac77a5e14b8b5b0a1267cf022bffe2d9e7ffffcfbbeacfe39f0f93974e4487ee50fddcd33faf15d5fc6aca3e0a738881e8b7cfaec271e89d7678b1f61260edc05d33fcffb7859dac39e076f5e884dc8e5092fe8475bd4734c54621fb3ea691a17a68adff52d7d8a9f8dc8565934063d5f8818ef6d8eaaa30057b2a0efb5f43ed65c0ff2fe873e759b1d25c34fc7fac4c9f932d67b4e3fff4beeb24fbef4cbf9ec79638a4bdab37f9ed1c7be83bfe42613c19f171e9bfcd44e1cdfa376c703fd5a7f9a58c3d9d252f7211b0961a51b5f399a0760812dc579890bd90e81c8b5c19de1f0280bb505731c7f5a65b13fd4b1213155a92d27e29e4ea18395ec62e284988296e40a4a287d94e18e13e8625a5b6e2946e4eab86effbb47b5089c525ca87fbc685addc08753890d545248f53acf2f7f935e13e2ba3e352aee5cc04a9fe0d2e7bb35b5d22826b48b74b3930cd98945d771ce0809660621585f3098096d66d02eec7cfd718b946c085736a5d5cecb1db1cca027c71b1d154e94c03f1d25d25d72ba23fa6f93b0d1fc62bde3ecbd2754b202fbb8208b75f3796f23fea5faead9b18ff35e886056ef6399501f3ec705cbfeaeceaaed7c8672520c41a2a53a575e8bb9b26358299ec399a7984e8db4f60d64b01c4191a58fac9373a6cb29b2ad0161024aff77c78a992e9914b151ada3526d96140d0419dd79b9aa683e6b22156a88b9860b25bf16d7b9ffad1137d53c18b5b131524989cf70239ec5137437b12dfbf8d0dfdbdde14e048e16f1437fe617ef75ecc375afb235ae061aa1d43cca9c0d99563961a858c0cae139ddb2551dc9205f7b85b450113628c36a616d5ad9c95ce8e6ced760ebe55825b91489a56928578273f41417754e2d13456ab45e504b67b9182fc69b8e6af586df4a5fb918aea27eefbdeb8f3bf893e4e25dd1cf9ff89738f6dfc63bc45fe258afbd5e834109b7707ec90207c2722aa2311c4f4736cd658426ac13e56877a506c3f9dae9bf33279b3050fbbb7e6f7f54c8b5637cfef17daed56db76ad7a8dac806e932f0d66e07a167c0561868876c95257975bfb4d32bb519f0568e0fe7f047fd54378801dfea21fd9e791dbfaf0b5d5d9b846831b5ba658e1522e963c25813954e4ae9b05eaac786586ab66028a0b4a2b1c5e69ef6a045da631b03a81358ad11705694a5bab43072550a13820aa9d77c41d144966286ac66e45a90dfe9c31297684cc827ded3bf8ddbf7b1c1362c1e7fae85be5f2b5b95f17e1e2fede5cf75a3bfdccb432de2f2b9afdbf5f6f9e46ff2e72a9cf061bdd8146b32100aa532605dc8c49dd76e06a290fc4e33b9cc9d30d2108d99d09181d6a830b7518e235e0a40005b60c04c77bf6e90ed7c082d94332b52ee2e2a4763a9a391678819b2d95694c25ce64e46737c2b8c781d71b37aaf15e4fe402b0883c46ed4d266ad7ba946d0af99f7cfd76cca76b1cd0622981deed4d3bf0f6bf663ac9eeb6b86d0d2dcb76a83747f06327fd886997812059ac45d9a210bba44cbaff33d3e691b5ee0eafea849f05fe2e5427d0df53a1fc333e4984007facc32c854089ccf76cc50be2ce56342d80205d08b6c57a71678c213b1e25c96b8681cc494896db9b9eb46fa726a0196a72b428776429b12e969c18caa9624a5883d36940f8bc806d4e7a97309f7f579ffb16731065bb17abd8b2efa78e8636ee2efe6fbe3b8fb3bb08f1b633d7c87e7da8f77950df16b203b58c5b99a3135c2b10eb9a4e92f5aaa504c664dc411bad3d1b39ce0c932f740a29235c9dd46ead53d638812c35d339b1a381fea48838f24933aedd460ae0f9d254f5d3a611ecde0ecce183d520a6792b05bd9fc6d5c9ce6072ff6b6a9a40527fae2976b0aa81de83758bb6ece61cfcd14bec446eff364f5cb5857c6a5ed62a256441b744c1326e339c08118099a6b0b0829030f3b2f502ad264492c6be08febecae9345588849a4550655d227b4c91716c282e3050ed49de443c1795a4b8b359ce46d624b4d10687b3c1dc7767a2bdbbf5f877dbc783e4ff4514b603f4ec99e4303f71c423d8671fcad6ecb6318bccb0d7ec2fa4736ece6013263ee6ce3f779c44f6347fbb5d2e1263ef4727dab2f733687788657e32de7a79e1363f42e3789ce68cbfc1773842f7d55ef7384256e230e8ef9b1afe7e6b5f658eee34bbc3d70c89ada7e5d1303a76f3a8fd60f788cbec807ff1b75bfc0ad7b0e10ae341138a9b487edcb39fdf4f9019f7fa55fcd8aa40033c9248e2d13b1a9db214e9b65307a96855a8b4e3c79c66347b5cd4066a91307a2c653f4e876a2f08060348328e1431bdbca8cb33fdba8a3add7a58b84feee7880ee17d650b936fc2538eb48c91a6aa05bd9d8cf36f378ee507b26e77eedb90a9c52eef75989dfc5e59f75aa5477c0019ee6dc3f9dfb7d0cd089e083b6e8b933fa1ebf7518f3537d4275475dc6d3ef0317f77080b7f360b43f3f95b4957e31b6e8f16bffbc2f68bf577bdcc0fe3c73a54581502f7bf8d3e7e46067af8c0d27446f36025477d2862cee541d31350eb5661241cc429a2ea2bcb25d3012490779c4b185346844943db9bc164bab5694e14c5acd4804d588680f80e7b5ef4f46a59bab92da03dd37e418598a2e6ce527d39b6106f7fb220b7973d4033abd3bbc737b280f7bdcde4bdee8db7a44bfe7961cac627df7bebe74619f843adc091f94b10e2fe56adb1be9daaa44476962d35ae8c3f4d037f6fe3d8ebdaa57f6293f6c25558f619e346e8ebaa8cc5b3f6701d23c33b1d2fd5e4e5901c95c1bee4886cc50374d99b30db3b141087b46b9144825ba208e436d568b524c79c1180960b4a0d6d6d564e3b30a09ad7ef68a7424dbe1b5fcf93facf5b837ea79650369effdf57e7e8fffad1df09eababeac0455442e075d40c35cff00c15a092b544a573d71263c9c59a17681b51395d4c46069b324ff22a4424df85da0cb029dec4d96c8789c3bc0c93399023aa4413c1b410aadab879b310c05d0b00736a2927e2daf6dafe2251c03469f73608b4929b5a74d481fe1e2f7e137dcc22e4b09befff0e1c10f71a787d2fddb9cfffaab6964cb0b598225f76d2f302e729b6bc9d9bbb26cbd21a4d1cdbcb871dea5423a690d3f1702c80647c22763457c22d477748891c959026ecd15c046c4c03f814666cc6f3aaf02882a1eed812ca67163c9a34a7ad7701ab76452fe42bdfd0013bfc111774ec893fe90f9e7dab2785b63107695cbc69879de1247c8fd5faba865f8401d2222ecc371cf499fa7331dc9fcd4dacc3fc50bbc0eae8ff7feb5727afbe71f8bcf02fe5ff449a185e7dc0c960350f581bf9e0b407e4273df237c0525f7c8fc3be0ef6fe3f56476e619014791deac33ab187cfa2e7d2b6aeef0360722eb43a101d532c4875aaaaa904c90097a2080b38431a0ca9fed086da6eedea8f40e460ba540c79461a78f9632760d8854406cb2c35dd22dc4a66ed04e93517eb58c796ab0f0922f88941cbf4a1a03e55d7d6365f7ff7a17e0ec1b1efee7b3b7e93badaebba9ce079f636fddce75af717fda3856b40bce043bc24eac9cde1a357d0ad3f51dcebf2466a4ded6bcec403742b347c1fe7f5c2636a8a78da49edb7e1e5cd3ccafe98beed021faac5325319d6f2f59d916e120b4f7c2ead902b8d95eeced520a5d98376755db3809d1c83a7441f3ecf03a41df5148f31a3ac44995f588b335a23ff602da2126de315e88ebc2aaf7efcde9ef4beeee5f73de2e7afbb0b623bcde786b4efb466bd20e98c1743ea1978c34a27f5a7b888262ce45c3df9bc4a6398665127bb90314d72f84c356c120b0ce23c7da42085d8aa1a7f9a5a48071dcd52cb9db2491cc04d64c8270f8483e55418fed59c371fe6e78af54137e969ff72fc13db5575b13e78bf66e430fe75bd4b02a00e87ae2dfca5828d477188f2c6f6571b104394c6136b1dad8638660f5a0c648b6db3154a8c380cb584793a9d4a73c94114f3741afabf1b0a64191bec3ee6e14e5acedd5255ad0f2b8f4c554dba3f3b324d6f852d4da3327cd3e725e7eee50f789943dee6232ee6e03315387b8b5fbfd509eaf6b1686cc3371ba45e39c6becb971ed62d7094b07f902ffddc33f57771ece10cb782e334344eeebed7f738fad2d7f112a773e06efde91f3de443272a1f0ccc011006fe45a6308c395a2486b213a36ac2d2d31366990beae4b80b1bcaab31cf433dd1d34514b83b4f291f29dcf17c88dd001b9cbb3b9c0f5a6ee34769c895ccc2b5af79bb0bdae75fd9da2ee442bd62fe75552c2fe50ffa5c4872ab793f33fedb9d97e8b038634ff7e35fd7871ce01ae5285f2a6f8dcab4c3f6a68d494a50c9dc0514b3a5651a3e117792cfd682a8056738f338e8dc2ca58b09de31db6a119577948566948d269c8c166ee0a0859dced1f4411786b3c39933a63c5cbb2534587e6d9da7d750fd81fd749fdd1e53768378e6e817bfde63f67eee7bbfe26a6ec739188979fbdb105af58c8dd4a574e887cc99791a0b5ce20d6439b27d4decbc5c61523e369cffdee269baf2a76c8d28c309ddb47bdf72592ae896ac5c588260dee4183e0ce2a2516130a2899e6e5c5b33167034706f15bbe4a3b77930f67e7f6ace39ccc574f6bd76da492d25b687a5d0f776ef3457f8290ef9608b676774ea0f7ac4b353ddec4fcf7c77ef1e7286e80ce6f76d7d814a4ae70df77ce41dfa2a669a07324d0af344e7fdcfd93a448f1b1a837ae903e32d7fe99d9d3b5134a99c22edbd2eb4f519a76cab329a7a751ce4efb9eb5fefa84fefbd8bb8f9327f6738115e392a8f9cf4efb9d40f9ca66730cdefee3deb73aeb8442a34582bfc173f7094266f7d045ff4ea221507429df0bf7667ee5c2de2a639e74d2bfdd7e73ef2465ca7957c3aee450ef4e4d96d3fe1d1ffd6de748203fdc82bf1f2dff5e177d3eb79b0d9682ba8bce3fc61e05b1bcd53f87eae5b26b3439de749270bb69d6b96c195e878e0108f88bb856d9a0b6eae5c6dd6b0d2d945065bdc198f26d12890ba8028f8a3fb13ec867a2a7889f6bf030bddb9c3935ce3b9f86fe9256f9292d607ad04fa661ffe993ecbdbf9e5ac4d8ae1a53ee2dd8db0619fc67d7fb7bcd81e6d775d3f50ef4fddc5c47109c36314389d5fc20dedac75a8833209205a049826dd88254553723633d854586c822201d28ed11c447cd690a2c2f11446be1daea585e728c09cdad8c6863413f2a7951adcfa253639553ed5957d6ddff6c9ef34c2c079fe410fe7eeb31ffd0fe7fdcd5ebffab11f3eafdd83edbc2e37d94148b9045e996c1701d4c20eeee640524eb04a880a08731c8fa275b4aa67cc46f73edd34111f68848520a422a5d435798e1c3919e57e267749c6563e0fb5188e76fe548c24fcd32e03b9639659269d7c4c82bf89470f1af41730e8b7a9dfeed77a6abdce71d26341adabe37ca4b16c59ba03a1290f4f1dbef74f31af3b4e9d4c06a386046a40b534e4536746b4c6a765cadcd5d08a38e28b49325850e07bcaf117e37a16760e6046c56430ba4f3a2c6887ef96b9537b65fa14e5887b656acdf51bf94da5a364804efc0eeb07583a51c5f6eed0677c910f34b955aef374cc7ebd4eb574e624b93e8719c0fbb853f69d8e11e360e2e64d1666781c2aa1c7797db784d88b7254df01c74f6caa090d036c38bf226d67c494f1783ccc23a58824cebd80564b6dab7327ce02d9c32602a85c70d5a2a24a099477ae628495a35bd5d6fb3eee83be6cdfcffd16f31f6b8ddf62d33ff9781778456f9387ab7acc5990d75287c758e5dd7bd4479cc975f12075ac05c14858bff550732a9453138174e4da62ec11f52c0d68dc19e914050f0d83caa1569acaa9dbb9ba84913f5c93129a487302df82c1729262df4298328730c2e8d276777ea1ac856dfe0a0bab5b70a91376abde829fd410bec6401c63ee4f7dabaf7acaed273f351507dedc52040fedcf7c5a70e40e7a1f637cbfb74e62828b187feb063553b10903dcc969ef8f16b10db5bd9d7fa9695c5737d5b4a51a0df0543d7a86aa48e6183e851ad51a0715325b4c665bccab86176e13eba6832cf06baeef760994adc79b8eea42f8e3df2dcf55c6fc5ab9fa70e496d292baf3cb6772e11b327533642fa6ce235ad51655727d7dae67d8ce394b0fd8e7effb0fddf626b58c6db2022ae4e8f170665fc7af0ffbe13a9c6e544221f2668774b05d04c25932582ca66acd3a47479ab576f3814679a53c9d39c8afad65a6c2a48015e96025f4c1c00de453441f0c5ccc4ca9d03d330416b9a9c50ca5c87a686931c46ceab4dc56ba802c8a2ff81f3f3fafaa9b7394c676d3c79ca771a4db7e9f0b8d0da79fbf9ff495a37f8ed5781def65bd04875974ec274757f0a079ed46f3181b4701eb628a71dc850394b14d54e011b39d0e77ecca1e17b14d0aadefad0e2fe726c14db04dc5b08dfd1e9793beccc7ebdf871ac295fc675aebd241c7b4618d2963b4906b94cf4cac35f798605f32798f8bb05d58cd6334510d064a91a2992604730c53165b95e996f8d12dd1c6cb4db6b0e46e61b15fb13d143c1f56a1aaee90e101c19193e48244ea6658a63431d473a8d7d52b2e697c364fb2bf8356875eb253acfaeb5da47fcaef70550bffd0579dbce5ce9adebe7fef476e930254e2151f7ba166beba05c6e6dd98873bc370eae8259774c0b75dd94b130e84d6d4779dd7f8feef41a44b4089b78d3b68b9c0717ce8d4115436eef02ece4d33d64d5d726b8d26a336e108c6ccd3ee4068b8814a7986c668428da5edac84863a4f174f148c2a94313007892ef34dc32ee1e0cfd8a0a435f77660f3aa29f36ff4df95ee739f979b8e5eb8713ebcc7f57d77584122ad8a10269e7c633472b3d1362e1e0689e6605a00868acde04a9bd49d62592e62e9fe79dff3896e505f1f791dff88a1ebaec3f243203b95220b0e122677215153c6c593db253b2f07deb2acccb8408597c331eb5214f299e1e532f094b2a20c3b892e9b3b1d59be8107ae9deb92a8a7103c980984565c2223d1614a002e990d462818c1a8bca207a318ee7a5e86e2e09b7eb53725378ffc0dbdddc97fd47f7e837bf2e3b8fdfdf0a95fe0d8777e1d37a1e9f3a1ee0515e213cf4cb470c0f90e2c6c413c20ef508074aa3520e46a45a769486965131b8c89ee504951eb5aa070695d517bb8c39a669242d951a18497a31e37e7e6e211154e2b98a57bd4e4ccca7757e7b8bed3d1fcccaf709b5ccbbb31f77bbfc7ecbfdc317f15ff610da47282a19fd1066570ed0779ebdb4c2776d322bb01a4a8c6c2107594798dabd529a59611959ec6b2748ca06325bad8f9f6c660c03231108d50ca5c060f0302dc2d9984baaf0f077786734773731d5bcd1c19b7cabb7ca79379eeae949b58bfa41797ecedc70dfa8efab1f6f6faa05d460edf7b9d5d6a8c30488d257b34dcbc592343443e3535929bed3290a10b2b40a68ac8a993e3e9feee6505cfeb11272cc25af5c84a5c8a69f51c4f992f02342005f0a2004317a21169eb7b37131d037826684d7ce218843a37d368fe74577eadbb5dc585d8445c3ebec77a7fc686c745aaf6fbf78523ec8c0ff51c9d6ad31d795e3ff7330c9fc3537de1333d3f87f706d5b1ff621b4f99768dee8cd09b6db802bb30707e8065a49f7b89fe7ecfd5890ddb1e93d86bebbe7b8ffaa099771d6f392e4ce70e88293146cfb125670c540369a71e06b335e5a98fbab4905ccddd295a10bb9ed1205c87f9ce140a5688c80dc9cd3c09981316663a07b215cab94f8ae12621e9d4ef188c3a318e283012badbca62e8f39be587f6f1e6cb997fadc15ee883da3fefa4f118e4517051bba1bd11cf746f2342beab85adda834ff3fe3d8efc9257f606b059c25823ec748df9508f32e75eac8675d2214730778b395b87da6f80a64af3a1e3b20c7b98e56d52a4be349c19b71a1c158c63ca88bb8fc5746bb79cca059ee229e703b0984ad3eb7087fc1af953744fbadbf58cc4457e7a3e2ff4fdc8ed257cd4c2ef31e837b87f87c77335d4e624eff9a9ae8b736686607227610a305003a9aba7a41b29b6aa7557ffaddf8174e652d5b07c331056758f39cb281734e6f5736824a6c7424dd8c8986bf87169e703c2f12661232d9aa68304566614546859aa72011d1a53d6e1b6be55befc4fa2ab6731eded521b4d5937d75ff95c76079ccc27dbfe2731aa3a0c9c6c59c0f55cdfdbb03fb5b4552d82d9b7bc6c5fe8e5bfaf097fcce77ec9b9f88a693887efc86530da88205549e6bee13a3ee232bfd29c3fdfd7b9890da992e2a0ab1ce9cc7c8de9cff7315dd038fbf47caf671f17487dea8b3d332f073e5b968a13dcaee0b0fec0edf8217fcdda78dcdf1b9df0c1260c1eaef1b37aed5751b2cd9c8b4b36b4c757a17f5ef7fdc039dfdbd077ef71e41fbb0eefcae4930f460b3f0f8d05c79a9f431e178ac5969c322d15d8786c2325076c2278640db6c8d61a52e075a81edb381f769886eb50cb1bcc7199f01d58e6c88fa6ee96950873e6e8894a33394dd7128a902bb68e820b7dde9f63bf63bff5c55e891be4b1d3f430affbff7fcc3b5c8bb92fb04eba116744dc0bfe68d0a20efc5cb682a74f6159218f577632a15b96d75e32611a9b8e029f859a9fa7339e6f9ab9e60cc25cf8d20eb789ae46ae4201b3e96ec1518a6dc0255462a924f4b933a61dfe75a136f0736ecd0b3df0dff9827d5f2e87dd929bd99ca7db58af7fa00975133eebfddea8c3009971e1d6913ddc4646af0f75eef3bfe214e734dc31f5fff2f66eed89f2defbf80bfa9e9020738d87a312102596900de40c88ff2204a44a1579f5ffcb4d3bd3cd8cb51f7fcfc1733dd5b14d0c2b2b6baddcebbe476e52b583ac50a365a40963969580c7c1b2dc1acc950661a4e7ac193117998afe829cc91fbee856b8e430a4accfc0688dd963970035907dbe107609a88b2b56e264e1f278c1ac8d602409aae9eeda5dc4475f74b45550a50eba863ff9a4ffeafb6b2eab2e97af7be53cfec9ffdcca11ceb895180d9b03bb0b61c338c446e68eea90a15a6afce0bb64ce6b9e70d1aca5010e3e559b8c139032b0c525aa548151c8f156726666bce1cb6a18135bb280e58cd8be41cbe18e1c86c912b19e44724bf995fbf5cffd4f9b99ba8d8f31fd97b403fef73b8977bdeeaf36fd7b1e17ff745bcd29a00eee531381d9a12d53c63d514e37b8263b655b4e68da3b6c90dd0cacf78a921d9f8c7e84c67046ab7d9f223dc7b57495a9805fe54fa1eb6f70913f10deacb8d3349c312baed443c0bc38d6bf76c49407d68fe6b7f67c9ebfb7ceb36af01ff5fe9cecd78a23eff918f7fe31feb77a797884c6ac460d761a8041b0e12e726945ba80fddc3307515eaa9ed86ac6994754b5b524e7112d5528289a9052d94badd714a91da56ac618d7a9b0b64acb42ad86920850f8b55af03e1f07fdd420c2e2d9955ad327fea2cc56607d5c8bf4143f18c7b5f8cabdca3dd6fab3b14fb62ddd699b38ba57ce29ce694f3db6e77b96dbfc8978dc0b4e766181b532511ff3759f969271c786d2ee1ec844f559f4b8214295411f6c28c4b3051b026c3609713ae6bb386660340ddd691f9b5aa71af5cc455dace594c0c12e35a4c475f3244b3e17b682cb0adc2bff38e9f2e022b83c8fbff3c0640edaa46fe26dffcaf94c0e73911ffdcc4e9a5e9e86602f23af90a79eea4effe6b6bbb2dfee82d1fa680399c30f31e4cfcad15b19f96d0abda7f35efcd2bcbfa745cb3c186b32604ee72a237ff27be9b132eeb0cefd1468146b0e31d768c97ef68b09df24dcdf87dcef1713bf9315a6dcb6628ea6e662c285b2a5230a2f4f5069fa3dfee13badb5b01b889d008662b061a6bf5177d3a2fddbfefd233ffa67ee72ce512f18e43683bc8d4feb89bf90c7dc4503e2f499637e17c35ccf23ac53818ecfbeb8c4de7f9ddf29beb8951b47e03cd3a34dea609e4c5448810ac35e4d543135991e19d2c96582782f4597cf4dae71387c0acde6490a2594ceed8c1987907568c1ed4350aae7056b92b07aec64ff68c6e62f806b0ce686ac19c73f62a0e8c2b9c28df3497c715a8f4b1f41b63ac60057b907c171cfffcf31c6f1332f3970347df5c51fe763ece705bb35173230cc9f54c5ab79cfa7846d4da6159388ffe09aafd349fe2331389819dd36666c1f72fd43da00a8caa3c4d1fba5ed85993d7cc688af559f274bc62744d8037f92375c070361e3a765f5132e1d20d5844c12d62537c71aae3efa93e62affee473e826faef7cb78273bb78e7e2f11c1b7e28c18e03c81f920d6bc8f990699682a55cb82471ca6e3a1934e7cc32fd71047794ded4e665a0f18c0874584da70354461b9ddb03e2f32edc394e92d13c12ea6aa998191c676b0a742d1ac2609b3bb1f326cf3e06e775a1c242278adb5e0cfea3927adf497dacc5bbe87eff7c2bc8cfba12fe313fd94f77ac5df7fe6e7eff2b39d9ba7f1db4bdfd1ed3d302c7f620609552f6b51321096a096101ba1ed15899679d2ff1acc8c16f12aa7a1d0f6b294cf7ca2e942202d21d82f269ccea1174ae609ee4c0dc68913736f91b964b6102d10022d12c75ad1923f24d09bc7abe1fb5af7dff7d49bb3e62f31c80b0fadf0ac13df428540eafe571c182f3cbc60b50c412985cc95e84e75eebfcceb522bf8724cd1cd39c6994b0a55796edac7832042b9cfb62085e48027a491ac3593fea673a149a3d12eab833675d08f2ff4e9dec7470970d631175dbe3cf7d7bf9b8771b859b34aab96821117b67e4a7b7b93eac6a7b627b963550a769039ed3ff57d3ec630ba559177fc6f1d47573193fb8f7d7cdf8a5b9a34e287e37fc71c3139f9f0b7f3b89daf176c12a70499e96d52387c4aa23c884160c674da09c7b328e77c067fde76a609abbaf4527e656fdd0107a09f65d53512e697fdf43afe650fc5b7eca1952f1a2c1d4928426658cb19612d0a51062550912fbcea9f7be8dbdcae9f69d4a8431c8df6e7f94dafdca9eae7e47896475fc187bdbfafffa62dbe62054e76f83afee51ef546ce8bed4e952a179360274497fb40fd583230519a100a7229999eaa1a3d842679ce9857aaa861a13bfa9121942c4bd427468b13b43e848716a5a5d730c3b096a5a2a9a11dc9c05ed8ed20a6a414822721479d8cd4ad31f2e5bef48a3dbfef5ffda63d27e1654d4f7d5efe0d78e853dc1b0a5d82c4e55e6860ccb4b2798492d4e60deebd6a0ebb56d82d5635ef9715c6414540ea68e243eb99436fb0e08f3b517a84f6ca4e448309d774c1f83ab4bd955fa33c061ea71199601343ea2aed3b5d716b7f40128d7279ccadabe66bf7ff77b0d7cc39f5d93f5f728c3f5f5ff2f7dbe25fd633239ce83614eb7d567903566a2b2b09261107844f07b8eccad4515cf6da6190270b870026a63000dcf52b1d66a5dde31248aed19899a303b7e39da8f84899d26294b7c45680d6d263b6b10f4abdf56faeb3e98b96296fcf38ceafd48dff773ef9f7bca7279ffcfebd73dfcb6d3e22ca8364320ad32818d092411ce1c5b2961617209246d92977dda7aced704fb6c4b0f729db0f28d2490c87deb26c1f962559e3326f33ad5b1f06ddc2d942dfb1a632f2260bdbb642680c12a0c162a27e488d9db4ec6ed5f26cb20338c699cd17b9d5ee50cf3c3e63af91503f9ff92eff7c7d2b6ef992330be0729e4fe6661e260e9f847dd0fb91ded24ad3c4506e667bfb85e34d09b3c6b1c117dc696d3e91fbcc55c1b2e462695baed01e94a66ca9c1ab58ab0da9f211368203313820d46b538e585664830cee0f37e7cc475baaf4731c79d63c3a61b6ffa33afd796dd30a1d96e1313724eb57db7e3b9f6fe5d3a2048869adb35eee89abcb65c4dd44905e52f59019f940399e8781129273949a4dcd56c31a9b5ee9bb394f0490b4eaa0d01e9a1bdb03152ae14e132d6976c04c575274bee4b220ccb03004ad429e2bae70707dbd1ef8ba26671ed2934fb1fa77bd7bffea3d3aed9b140eb752a0e737bcb4ffc53dd7e9f90d77a9c3f374f5aaa5783e233e9dd7b7eebd58c61bc06b95cf4dbccf1c7c48109f045c6f88e16db099ed97515e318e9e97ae7d5838f229317e02df24cfe1f1fce0792b5df5c32f1b8ac3d64d6a1c312ac3a0d688f5688e27a3e7306c2de2e8020bdf9a4334ba950bef230ffc7f711ff3b65fed753ffd9e477be68fbe913fc0d5824cf42866ca5fbaa4c6353ec485b790bdb452ad669968a79cea1561c67e3151a310e28def660316293b8e3c264babc86c2d53c006cb493e5585e7c5d018282a37a46cb04f733b16d920757547600b939befcc4fdfbbf9cf629f03282e31e569dc6f6969735d853a30b3aadd3336ddab685466904ca9ada2ac96eba06caa18ca1fb4b47205b44d4b6d319ecf96c5c8e39576659101dae728d0a3398304aade3b9055eb1303f762421c51e4466c4efbb8b02deae024a377d3e22992103469257737faa48f3cd9ff8166ff27baae2fbee8dd7c2e7ee836ce65ce6067f3093b6057ed18fd3588c5302175b3f60fc3045778bde0e58e7015139693b98172560ef60cb6f38c12c32f1bd3d7d383dffb9642384e2305783594d8e8fcd4f6267139f452f7f190463a981b7bb0acb6fbef9cef271dd113aefa2b35a7fb9c01bfc77cd9277ca09c33defb32ce0dfa74c85306e6bee0e1c2f64deec8692c72202314c77d5e2f572d0e6f8f2d2b25baad82ba3cc618179edc7d7a8af5bec2a17787dadc719d6abe4d5dd54897ace702efa4c3dacc1936171edf2bf3bce845df50bb4b7b854390a3056a3682814846a8c3ece706f7b1b1a0be2934bbb197ee4fccfa154e89fbd47e5fc67b599f4bbf4af01dbcb9ebbb64ae6c8f9152b7d444765a7663bfca5d5c7a7bbf4645687047ba7c875d9228aa311f0fa7b8b4885a0debc4c92dbf1fed30e54056a85adaeb1d75c814f7daa7ae7f08a13ca4c523e076375f32db0c34bf1737e8f17b1fe3c3d377ffed87ed6b1c9dc7df6bd21a1bb1e8b65204ed698f56689bbad7ea31276e813bf4e21e9f9f7ece4c728c53b41c834b2f41b75dbe9ea97ffbf70bf7d46d3eda14453ef045d36343e7bed3ea18fcda05468ee73d1e05553b4a23fe24262a62ae24492f81a2d849dd7247c5d6c0eec86226dfb268f41cda9981cb214ecadc1536da87cc7ae60521092a7b06d43361f8c1afd7e08a8ffe3a86f3f26ce68234d92b26e01f3a25971ea0f4acc7fd27fef95abdf3b75eca55bf779ff3211568ff129f9e7efe4ebf080f76ac0fac0ce287853bda72a147d4b00fc4f65850667d58e6fbb440561265fb04787b5c913ae1ebbd2aa63b5c1333a15c276cbacfcadc086d395df0c6cb6ab9e5d087b39e3ccca0612cab0cccc07ae0f738178eba15eb7cdc6fcf99734df7ed13aec56fef2d6b9fbeeea3e3cf86717bddc2b070c927a190eb45941bc4265be6ea2dd5a338719ba7ccd49bd0c538d4eb6e61239a39285a6a6405f5d410dc6331904f3c923f6296e74b464684fb8714b09d6fb4fbd469d621e24f0ae19056da56b0dc9362d47c27ae496bdec615bfc68f67de31ee7f5602ac2e3c887fbebee817dec81f36419344c88deca55e2062a508efa54b58e6709f97a0531a8f09973fb84b8cd0958895818927f62673ac6461a3852a7eedfd09c1acdc1b3e407366936dd8eb829872914de442689570e66de352c522ca0769f59dbcca02a9f074f63b97ff4a2dee0e1ce19f8efd61dd5ff5cbbe55036d7689ab746a0f472a9a6e70c463e56c07b4c72e437627192a1425899860aecc9c24886f65291dcaac3d17c1c0872a96b059257673aa850685f439b3c41c6a4d8d8e2846ccb0fcd94ba466a989b964e03bfee3ab58be3bf98fe12a798dd98f3fdf1a639ecedc32ab914d7a5cc415feb17473146a6f47415e50d818d2fdd585abe17619fdea52663dfb6e9e2f2b2bccfac74d1af171e228129bde735ce37d6a3e0231e11535b37de85838adbc8ab80d4c4b8e49443a62f319113f07b7df997c765efe177a3fba7fa96b26c2ea13415eeb34efe6d39e39d26fe472ee3d4ec0884a088c2c523b5fb4c672922f889d3f293e3285566de8e40f33a89e7c27b67c836f12bb1b63eed5bcd7a1a838e440cbd4d61bd6cb1f928f0aacd9819ba30789900c23359554cba0273637f8987fc7a75c7460bfc4f9701fbf7de1cdbbd8f58b0eed77b4f984f61654e185dd326e68dbafba1c475c0aa7dbc41adb8ce91adb314c7bd40be1ed44d9ceb94df6694908659dc1d97e80eb669038ca9651d033ead1acd2b988b0454c94e0123cfb1a3fc5da9b4bd64da58bee55b7f9d8f7f047bfde3fb13ec7df83fc0bba6377e92d7ed1e57bf1f5c79fbf850996ac41cb7268f05aebb424bdcf095e6a4c7cd872dfd86e081db99cfb5606adddcc88f7d4f0d882aa41065511d6d859082ba6cc3312105873d80235e133128d3086431f83c79defa2012b6c33ec711b9bca0bd8adbcf1475b7cd15df84a3d8cdd25f67ed5e17cf13b2fafcf6728b86d3f78405029a8f69e128470c2e22ee3ca4e4dbe4d41b365c20b139b0401e42b65e634a9739cd4792d05907c1240c140e99756e88f87d31994e3c4e615078f46100ecd0527e370d5eed271bb4b4c340b0d8970fd81cbf92b67e81f9a7bff45dfa1feddebf3ea735e5e7fab0ff14141fd943828645075aacadb793f4aa48d0a615b899ae8ad10644eea51c14ac230e73e3ffa2434daf1496661c41714123e836acf27325c563fcdb820c22f739e8e87bb6c22dd8c9783052523512bb81032bf72dff1e51cf69f1a9fd772d2885899c3cbb94087ac42d697ce8bff9dabe9682f275e33390679567bf96b5de2dd7c2ee7c78ddc4d1e159c8fa9b1dd8576d3c4daee7d57450950bbd409807273a90cc00542859a6819da8884f574203536956e768950dbd84463df1d95d8948816d37e06489f50ed71c69f96352929c03fd209e92892920072af7e965c55a879b9473a69f78aa03d6b9eeafe9fbdd9d55b4deb3f7814cd4f7853de7027bedc2f7cd45b3df5795df675f776fceb35b0f3f375be6a5777cb1fdf8cfbe27fcf6b492eb6763b3f1a66f973c8b09354d20e6a1cfa90ec338482d45148d64dceccd1eef67349e958b46d7ce22bfa2ffa88de8cf972f69b52a0cdb7eb43cca2819e1a89f10852209f7cce4d55c716ee4707c5f92600b1497bd42e2b2548f9d3383e3b557805455e1953cd52aaa759b9377dd4042a0a8cac1c4e2528f7a4b40e3c625650e295b0ed43060999998ffb18e6dfc1b89cbee37f1c5fbd8ef96a8390e78989f5eb9dc26df7f1fb84129838de9a97b94bdd7c97206e62305a131303c9034369cf25d5304ed02f73063c9716a3a7d0d070116e070c291900c4b2888c8863d5599d3fa4d4abf144ae53e3713f83d940f12609ea0667b514c420ed77f2bda5408774f5524fbe160bfcfac8b3f46dbb3ef79fbed6732f6bfe6e3e176edd1bfb53ab864a31dda576de267068c9497e58f29108590ba9819fb11d74091ce28c971b55232ba91a2e2bbf5fba7aaed02f4322fdb0b40d03bb38c92aab631cff6090f4be995bd4f438b73b16f4dae72516d2e89ee5377073bf75b1affa917be03d5fc63bfb10f872564f6f8f6da37c9a54b99d15b8a0a537f76def87447cc6c02816956530ce0773084cca7dc0eacc08a8da327b6df9287703f613861c0773c803625b20ed473071d183d06cc35900c26ab893ae9a040ced8446a56f481db0f6d6fad059b3467840569fe8c2fc3fd25cbbe817ad9490d5a516fa6e1eb76aaed92d371f075870b89cd85d5a310b97dd8f854d36b27adcc47c9464aca96fb3bb8b7e20c46b29403e8fc8218e4eebf105cde1e01e7ef64557b2481cdec62130b20a9d6c5e9ee2c9bfcf6f4e7f3de39b750df2555ce22916642238037c92fbb1c1d789cbd7d8c8678b493e152e8f7c13f521c5d2779b0751cab9d40d0a1dbce7504f79389c2ddd66838ba915d45e1f1ffd0a034d889091506d52fe6bb3980480e991f681bc559b7523230dafac7d7fa79acf69ac939f85dc52ab8bdeea8d77204bd1cee67d009931d82d581bd070d82702af97da36a929e32553b660adcb1d64a7768b898147a9931d38db0e42e059d86956be130c324316b37ec4d4642485b058e2da0331f14251a989ec3383e9d140422caef0797e3de77abb3fdfecfd7fd579520719f2a49df8a7dfb8ca03788733b2cb95c37b3506af7ffff8ec3e99cf850ff0b6335241ce66e6749f00b2611a95012432302c233180c9414eb80d5066aa7956ca71020d23862da1061089937789ad714811e7136f4dc57ae30bdd4843af25c0494a79cd1d70603a1fd36ae872a1728eca6e69dfa937bc1ee5316c7309d94533ee554ffbaa26c35ff5d7fecdf96adce37ef7f3b18f3eefd2572480f507475a7b19f7368ec7922c58191f52ae9f94937b4c2b848d9f03391ec6d8403f88fb68a42621a1b337e600c571cd7a160e1d56ab31a9701dafda243548ce450042572d30c580f1dc0f8436712f779931d8f0caded392e7146430d3f7eaf7474fea0f5df40ffce6272eb9e12e815affe6aafba47ff5b7e664ab203aa4d51f1a869febeb1da440e51f1ac77f70bcfb275ec00fbc14c7fc40e05d0adb4686af7de5bfb50aafd670ba5d6a8e565258c517f8c7dfcff99bb637dc658ea7d3eaac85f0e6f58dfc237e084a69643d9ba022ace4944d46b38c1d73445cc751b0c9ecc699f78f77f1d927ac7715dcc0fbd9ed14e48718a25e86e078de7d8da3eb7f8f6b3ee10a3ceded0ff3f996c63ccb0ed459433f2231712c414af990d05c888af43380774c3406637e2f1db54b8cb6247676483969fd880cb06300dfb678687b0f42e3b1028884aeb67c14777e69ef434d5cece842ea8684e376c05cbd5ea02b1ca01fe398779a7fff3a1f3fe17dfcdef9785021286281d7e7d8f1cfd706fcc6fdec2ced651916bf8c00029ad4fc475aab19037e9f21ae3904e5dc78dccb4ab2d46963e1285354e5464676c7196e338ecc003e6e24eb7ac1863230955cd0b24ba8e7c4e2d14826684c18982c27a4e34eeec6356eee15db2c05daa68efe534bf47a5c23d04686a04ca26b1845ff4ef10cc813c84edcb8271ff47bfcd63fdc1ebfc81e3b92ff3af876b750301f5167bac325fe814b52623b3ea495fa21e9e869592823ae9b03997866c0e34dda6b47326b2a2939d0716b85bdd7cac9683687b26130ee32687701236be1a20687ed8ed7ea8186434deec60df14e2775f55fea9fc69ff1647fd7e77dae7fbafa4bbde69a8f13d37ec1c938e6844a1dc325f30e7134e28b89de6321e752b4c8af8c1dadd53371860505f2a03872586fef54c5b184e487e2a3222d87d8ef09c6253697281b24e5e32e757314537e08aaa12d393715e5d3107dc0feffbd66f6e6bcf9eb7e7a8e85d25fee17bb8b0f04795aa15afed12bf66e1eb7f69d7673aaf1cce002c3b6c52633329199a46e78a0115765becaaa2e896fe378686544d629bcda37de7dd487fe965dbe8e775e0f6e24ceb03c7309da37e064ed966bdc263d7a169a237fa28a25c249cae58e569e8d11cfe7c64fe3b6fa0b685271bdefe943dcf93ddb388e75dc9b6d22c049cfe7669eebe871cfabc1203347decc54202cd003d6be29a1b58a39aa17683448266441cb7c858d9686cc6a0957f3848f1046de9c9aa3adaaf453ba6a17090432152094e0175c38a0c0fde8c92ff94a72e2b01a1f3253e54c5cc1827f625ba7ef26c8eaba6d05efb9adbf174b9f359eca730fc7698d5be94c5b3f1c18f8d67ea770b8a08054d4f57a667b42b2475344c4618eeab9565046dc9ff584265523970e227e941b94a23965f2091b79b974ba71eae67ac92c7f59e556a8e5009b5323d38d1b962899f7729b18ed2489088d0fc3451a8dbeb7bee73bdeafe90215d9bdd6f8a2a3f57b9d4f7782917fe995999ab7c5d08d97b8e83980a80fa9b6c8b8a519049b2ce2d3a0ce19333810152162c2c78aa367d67b22eed55e714458b81d2c850e304312473c4adc51a90a22e984084a79812bbd4d84961c8cea70357c0e35f2b3c9155cf4d7ef98dfd8f8c93f4c826bbd659f7391ff07bdaec7679708bf3df1b73bc3e70cbefaa077f3f9568feb1366bc508eb509272a4f851473d306a1a3da14a2ad2fb20363b9136aef10b3a191468ffbb01e7999680789edadc370b80d35defac2c219b20d2c7211479e494bce281c4644e836ad4882119afbc89b2e5d3eb8b5c7f5bd7ec9bfebba77e14969136135a940460c1f2f6bfdfafa82970c6e8aad97ac99728d50e2ea8ed91de78e32166c3af0c128565446bee90db00da02a73c80087dc19eea439325343d914703233b59de9e93e44de4e8d5b8b1ab80c8c9fa6a2642d2678cfa13470d54641e9159978dcf32b18b11bfac44f5cf173c10799839e7faff50bb75a7625273a3dbb26fb0a9e7b758f7b39d0a4956e8fff768e555ec7bff424b31beb7f869596161791170625421435844ff040f28660285bca8663d9cb676e586d58b62c86aa0f2b9e53171b6c3ce4d42022b3559f15fc2141f93a41798dab78934564b6707923566dc0a37c43902aa4a1637aa5bfff93f8e7bfe262692fe7467f6b1fb21f0221a1065925cd2092ad32472339d155ca94839d461324b70b27bbcd2754c3520a70fe8e577b89fe777e94dfe31dd7c0da4987b7291c5c7281db7c0175492145b0496c5d7107e4ac9f0e44d5409f791853764881dd4bc733998b3c3c6e7f847444a9a3ba99a9f66195d365846a11f15286c35c54f6ce8765ef7339615c61a9f319af73a8e8238c8557c4c2e8d5dd7483f0fa54a375d08bc6733f3fe65dabf73563a2e39ad77f7e067ff8cce7dc7aeff055ef7ee7bcb7e38814afda59874f35b1f6672d0ff69c55bc5d866ffdd5bbcfbee4d9979a287bc6878f7d6f99c9f799333c28d76f6338dca6e61f9f7f5fcb39698b0cc15947f9d21bf7d9678475fcde7d2ca47ed3e3fe7ead6abebff4963fa7266964a57fd73a3ed6a56eab75fcf1acdec6489fdeeb1fe645fc31bfff969f3e8f7bd20c72f84a89acbdfcfd6fd439804ec7ed932cd4735613944e789016882c27015c962814766b67b6b75275a39735d6d8fc65521779b402656ae8cd028d249b70bae4385fdabc15510c395aefc35aa3d0b0bbc4c593500490d87a2d0dcd14fac043f699cffa8c07f4ef7beb1263bed3b85dbdfdcc1ff59237b1e925c63be969c86d2cb22ff2957e82a1fc5f7407ce63bf6a0e9cb51efe8ad1f877cd242225d3ac0f0c9564959e71082a5aaa2a7586d3c5446d79cda13fb9add6f45e5be893baefdf7888dedf9ddde70c0d3fd302be1aaff704b6c172dc8aa40446ca6c48f9e301c3e108db724c4aee931227a22014a3bc934c3d081b435ce4061fb74f7181617218864b81e61cfcda3344e64bae8c947594d2d16a0651c93941aaf27a9f8f50cc1e0f1f30707f8d4b3eb7cbcf7de755fb0427eee83bd9e7277338d55855343af196660750a4b0db652be332ee4df67ae696138d486a550a5b1b78f26b40996e82084dc484ec386b7b09d881446844cca6f7f5687fc2007024e3aa6967a041dce005ef0995a55c70776a280616a202b9ef700b3b31481de567553bf61d14fb08e1f443fdfcd7bf73e257bbfdebbdc7e53bbed58679d18bfc333f7e13efbff74d9fe501d570ff456ea83bd4e9ac5de69efa7a9e5373f4d2b3d9dd82138bab609fb892a6664e84cb690c073daff22a11c6c007dac3abed3feb9437dcd3afe2da3bfbacab7ca1475b0679eae81f2ff5e9afe4c37788fd8febdac6a26b9615bbf40f9ee3e0f7f39953ff768e222ab5a87d405dbfe7269924119e72f397c57acfe55139902eda64b66ab0ed0966ae7b025197300665d480b8f8057cea2166368640dce46c0a835e7a21f44802ca0373acd51c021b232553d84c58ad0a65dccc11f8e6fbabc8db5e5977e3a3effadfd7fd38ee29a7ad868754a06d12357a1ef1433a368cbff8ac7fe1ce0e591f98cba8e14b87e8a5137714e616ab4a831c6d1c6a92f4a39cb9d2e40e29952d7f60277f66009b0b412624c23e61aa3a465321fb39c84c7fe7534d17428fe382f761851e142790dbca96bcf1fcc9687c73dde7a5e75aa03e83babe96eb9d3507ef506ffb30eed1d65ff89b409e99b8917070d194be815f886992466480792393c9e32ee0b9af342799e979aa50bd5f6297de66972ffdeaa71edfccf912dfd5e02e35fbd735d2cf99397ae999ff643e46372f1e6fc50d3c518718840dc73eb50fb21c862ad2fb20d2db79cff65c7b22649e2791241460ce9922a1dbccb09b8f19f41a3579ec96dacbb37a6d1240d689c11d51971dabb0169117098183d8f01c869019ba7a14f7a8be55e3fc8fefff5fddc1fd5edbc87fbbd6d149a3aebbb5871b8b6e1a98eb8def7220cb182ab03603e039dc68163eccf70bbbe9e2aadb4b536a7f22396618338aabf9e1274c187962eef4c06cbe5b301005b0419989ed0cda1bce1b442724480cb9cf56ed988ae11e5768bebc1bb68d6859e9e7e3999355c3bd8c3c2311fc8fdeacf7fd79d77ac3d8bf6b98afcfbad5cbaf684ade45b3fad5df9c314e47bfff761e97677e1b9e91d67c4438e614709c559d27ec6115daed0f3291ab0c8d806f12a92678a0aa662191e7b1b075240ff6a96dadb0bd1d7030357d1be7c4cdd78a59b5e2fe41d8d986c066b364c0a466d3d382278949bc54c835bd8251fd18e3bc7c6febc5cf5ee7b4b90b96e6c3b87feeb1e738c27d22d4f3f7b484f820b41b9d51b909caf609d3bccd98b238b22d624b98e96632873cc4e5d05cbacd8e522d593574831a1d04d2bbb442ce92a9869400c4bd16a2f662599c382f0f92719346239095592f9d60131896c57b7eaf7bb2520ad9a4c798cff57699c30fcad1fa8f9efeee1d77e2a9af5209ab508e3e61c31361956ff6e52dfd951ff5e9dfec89379fa5ffe61648e1a04d2b6ecc45773ccff4d5baf1c7eff6cd73f2fdb8a758e2792e2cadc6607bb4452906dff2df4b8aa64c6b6be1fa3b567545504b9b476a2e106e136368534106d86ea9621aa6ce70926a24c3c2f3a5ed8d831ee519288dd0255582725352cc396c9fa9833601270971acd5b2ca0dbfd44faac7d867bc233773700c9f63f8056cc65d703ba7b14e7b36adf0199b71db1d45445c9c67131c7123e719f01e3223b6d2524e7091011fe4f982b1bb600b95e9e5993bb22edfffdf766b4a9d55dd2e16c1690faa634ce5e8ebf71ea7bbae3bc4c27f1dff64c7c767b94d212ae7d1e8909a44bf68015fc6bf4d9b8ae90769daa670d4563aed984e74914df85362d8bb54c84510f126e9470b514b11336f9bd9cd9a8160232bbecf283605436d0a5098d9cd932c3318f0122853b1d4503bce473dae78c05c55c9eab1cb28799e1977c3da03e50c8b5858cf2feb1f15c119b7feaee6ff274efcb7ff9a5ec31e7ca26b7e3506f9dff79479d2d37b8e21df9ef1fc3fdb8fef5d3060b7c5f73dee71bcb48709769bbd9a202d512345ddc0c4454e4c25501a157e244d2eec7dd88fc6d2259ea814a10ccd92427b71c557e1b89d2550cd45e55bc9b81dfb131e8446ee5340b6d8414fa447e3945907ae9bedad7dbc99838a049e7080a7feba2b313ebc53bebf8f05de9cb086e2d4b777f467efdf6bf16a006ec5f6263d5e49c738a4c51428a7b5960e7e6246fb2328f860e1b415aff32d15a4cea01764c5c84d40532823efa93b5ac5541641d57481197421ec8a00e67312c94168eb82dbd38e688955a476896812bf9003193d027ab73b47b57bc1602fc201fcbcdfe4c577815c45643d8fc82e81fcf9b2bf3ed1af3eef87d76770aaa15ceed3c20fbdab9fdc11c6671ef53f6a75ef62adbd3cdded59c54b5ef22eaefae3ef5dad83c34f7586be5b0787bc3dfefd633ef1fa333d6398bf7117b1f27bcd820a3106a5c0b51e6715da73fa6865135e85906f08f5dab96199694976b1311459cd09d17e3737a5a64295cb9a0731b41e28f50d4ae5449979b4709ae91c7603226c9095de8e389c2b9381d0ced9cd7711c13feaa9f5284fe0cf2f69c9dda19f651f8b76775af7930eaff112b7de96b33bb91f1479b0a4e487a8b0c6916f2c456009b7d9652e32791def964c2d12147741b51f504ddac0b43bdcc77de8f0b9bf6a910292a955bb954c693ab17be2586bbf56555ca39d02321036f6683ffa815d928b5b39f2eb0be75ce4b7b1f08ef609d457ceab7b707b989f8e7df6a147bf20f4b90670fcbb11d1b7f60df921707c97d398e50b5e5ac1accf75d6f3c382937d2cacb57270ecd37ff6697d76ce18c99f9a9557ef47e2ff39a67b3be6f14c3faf5be6a04306d9adfa6b679c14c02d05c181086f9a957a1154b1c5c0d40c0c82a8abb661918f08b3363e40cfd8183689b135d252ca20623d3589f657ed4c304ba8aadd078c9394fa3b6e770bc21a878c870351364fcb5a0f648fe781560fcbfa66bb6c6238fc8d1df93766e8708fdc2f737491c2336ef1bcefff784da7cfa7716ec28edb7b1afeb4246fa6cb0a1c7c1b8114e51673d542eae649b92a99036f2caa6e450b3cf70d8c322d0f49cff67ce28d18d01e363c4bd2115215df105df621ffd5d13a38103b07beebe919880fa2ccbdcc061bc5d5add8e67d22acddf558c9be4b6e9d39fa393d9cecb749ab9feda9cff5d33bf57ff2cab5cb3a37e3daf3989b132eba916260430a12702051a6b94bb8c7b1bbeeb191e7cbaa5bcbaa9b932adb2f1c7cc80c0bf9508e02432d70a5020533b074c99c1a5b03033ec0022729cd6560729f17c4e446732f6ef62a3ef5ac7b5a3aa8506ff0501fe297cb67712e2bf6cac3970869bde1befa503395db3822bd72a76ff8d43ee293ceeb9f99a49c475867953edf09465efffbfef83ddfc2f1f7104804decc853cdd23aa310069c5fb18a2fd8b1d9cf14df687782c8556139f757eda3775a0d5bff3a8a37dce236cc831e865e435e7bb357eb8aab376b84fdff0d96641af9ca0cd203f24977bbcecac6ff78ff91967acdd6d7916caf8a391b9ca66ae67f80600d44023ce3ccce988253ddfb0d550c606c658c805b3f90f69e007bf6e6698e595988c605ce9e982e5abb052dbb4d69a4578b1a072beacac5c5289b91118d81c2541c173a5c9cdba6099ebe9cce1cf720c4e31d47f8465dd67d539469f8b936efc69eddfbdf78d3e2f49191d41acf32e29bd67dfce1773c047d221e3b4cf6b5178b31bfbbc8e7332945bb671ad8d8ff9d1479e8cbbf43999a3838c88b10cc16a199173bfc887f70c303ff51ddf648f0ea9b3fd316748236f9c31395f38209ff7ea814e704fdcf58e1fbfa74b6659f1cbc0e321e1ac31c2c9c80c7bbd8d0bfd445ddb5276638551ce95494858e6661c4d0f418d8c84d946c270c44cb55bb0c64fccc6f9863dee62c8fbec009e65941b67ff840ed2bcb6f677e2a733478714629d997e9b567ca01c5d24079067953add01fd637edfe2aef5e1107036dc33911bd2f45614da1d36d6e6cce4030ac83ee44472885c36c97681c877acf03741b8ddf98259196c0fcb8a6f092c7712e53f08d796aabc81121e22858cd2c2b3321717dc6e9bd0681c520dba58dc1cb71d52a88e7bfc6b38f7ff9d97739f55c3fad46b73b1fb97f12fb8f7db7838a90a12961bd4e9b69875655ab61e8db2ce9f8cbc599f0f429d8758a8c8d7c8e4406ff84436612d73dff1e224224908ed9db0c18141af4c45d6678517a7156aa4bbb658c45b391909e6209ce9664b0a2d1611be15dbf2112b7df55ee4f17f3f075d6c6415d7f3dad3e99943eddd3cce75c5c56d9816131b2451664ed2289fa735eb633e0578e2f119781c905aef69ddac64b9de043d8f19231bdfe451a2d5202de20e5394870cb8cac923c1bd98bb88f98c81d468a03cb4dba442b95f0e6749d80a59cb0905f6cd7cf099cbdbabfa2777e24f3b8f75b2619046bf2e7d4bb7d50da9ab9265d8ee7d809dac47c13222e51c3632360343992388277a9a703dc94460b1aa2b306f8474b67bbeda0e44d4405c352166de36e931631508e804556a125bdccd03dfd658946a36032a209a1d8252aed5bd3801aa534cb193abf71c349fd4c64ff78356217ff709f4d7b8ca33973f2fcf3a5a5fd131bdc7b900d2fa983f9e79fcff18ff569db3b36e29f27a5635a55cb54f5880edcc2c77b854f3108d92b8f69c799fef7dadeb988e66cc2565c68927a8174bca7789dd0464a2fb989159587681aa7f5933c3a2413d3af05a6a559158d47a9556eb436cc6036af0d2bf1507508f40e6d8ffd5997b1cebe4835434cabfc5012b7214968ffbaccf036177720e71299c47886bb2201cb96945ecacd4735aa345d0f3411a7956061acb8725087abc2362e8a7956d0a861e62116cb0c93abf609b65f9d885b61573015c22da43e24cfbb8f74456e97ffbf9afe7913a8338cf1cd64a38cc5ff3c88f1c1a1ff7c0d578347e5e8477d06831d139f689fc638e6fddda6f1550b421359a4ad14eb86d98b1b9de2b417629d73c057ac1613396c29ba6e14fa0cc86cf41de65a51706a51549810d5e3eee19d30d5db50b2270e2dbc49094af55dd4c15f40e8b711b33016ac547ebb0909144b7da3a0232e27a2e40139bde4e39a84faef3f41fe685ffbf9f1111d74ab03615bac8aaa1114778735eeb4fde3ff35addc8436e81985934a6b24aed9661d6e40c68b22c9b5dd2ff32c2ba617482260195398139c491575194f5cc515d10b6d82ff13a430d494b3459388f8384928454ed98f5798cb9d725061987b66d6605594bb1eec3fecabef818ff1ccf90638c5d9db0b651d02a615df6c4d946ff8df3bd0bd7d53fe770791e4d0cb7ad3c637f8d79c49f65848bf8c41f7fd1debaadef3b5c72bd6754121c0ecbacc6b3251bae33ada68281883bbc5455c342818c99219932e37dd8132b057cb0aca54eccec10736f4a399a51a77b567530e0023d2ba74d643fddcca087966560114106c2451b0e63e3568c65567d016bb71a0cfe77ffe215a735aefc0b6ee1f1461c0e5e11a8ba10ae7bc6bc7269772beab4bb5474bbc4696166d80309c928e19ca4088fc3ca1a278e7c9e195eb0743223ae7ce857c1803b78cc7b1b28882071642da37c22212e62d8ae63d0c065a42cc67540ef1623112da35f670dd5df38adfd39afffd0aff99c9cbff7ff9de3a30f35c64b8ffc6fceac4fb8f64eb53be57a4d3606172e5fbc4b05d0697de6b299d683c317b8f5ffc231f86fceadfbd4468e6391b3eef5495385e7271dbc4fdf37fa6fd448c6bcd2d325557e08395b1664472b6b131bdd6c063bc18c3d54f5a821158ff16a58fa7048c349fe230099c9a33cf04f98ab7c33332523c6b4c3133c504c3e85c8efa5c39984ed3c0579bc1420ce22dd264c9777e38315d65a46c733e08d8664ffb197f65c7f8e20d1279dd968fa676cfe0133a322d2a46350ca68749002e7ea5573f20bfa1ef5e9b99449e45dab2df61ff92fbfe5cb4fb6291d7d38e75ebfc79f53ff264cdab97e301a48fa6bef4732092a6b46d876a3585b24457eead708581b2c4bcd665051e5e65156603f30a67be2aa42a029a0ba99f986ce83436b11684d03a07f04ab21c570087d68f484f19528cbc3b2e20ba51f3789fda1b7f5bb71e53e39eded1367c66f7b585d7f5e12f24136b6f6c7b82335899539ecf9d44b7ab50667df874bdffce71c8e79c259e7cbfdf57cc6c40d4fbc3af34a6e63a1ce7c949fe229fef59ca71b4647132c320b53f49022bd0deb355c460ccc0da3f70d5d6406a7d4e97c59632b14c80f2be4625b8efc7a6a2cf9af018da4a0ace19cffda1d2d3601781f57de4a541dc5425969e5216e744de6e84638fa5ecff90b1861fffd19a0b303c8e3fae827ffb8bb0a07dd49df52587ae9065f3803fe8efbf977cc36bdd33eff7cfc732cf16a5b6d1c712319032385ad4e5786f18d7b9c6006bb68a947870caa8aae5a4ea291cd7acc17362221cc765c348998c896713c5382274981517868212d394d4d3466e668cc59d04b080076b1b310dd43069b98c3c6f1292a196b7926782b0b0c65647757ea5a5f3e13ce31dcc5571f63b5ab7bff1d26eb5ffd5e678eeeff3d07fae359bdf4d87d788fb2db71ff34cf63a0638188e7db68c3a218b2123d2425eb5539cc439e2709082c057f1ad41e3a71e9cd05478808eb99326b9cd96d27113f8454526c5bccb7db20143f771c481816dc20e130c6ac73e680102ee2bd1457741dbebea70ff1e1cf18eef1df75808a9fd620ab657eed99f9f77b667f8c793e674ffb27f2e049e3e436fef66ece8c43e8fa9ba4d6ad027a4eece1c80708602eddc584db3e550f37deddbdfa942ff48799775a93f3ef5ce2d1f3b977c2f39cfdea6dfa93c5ac573321b45820d9f8b5fec19872b831dc24bcb1315f5bcb423df8ba59a754c75420b674c88c44f93c8e7023999c64abd61268bde310c419c49bd0d1f374621fe268ba5f5219273cb79713dc62e44dd3e26efa9367ac5734ca5f34385eb001f8dfd880df3c6aa26b922ff42ddc45a7f5f89cccd12eadb14e1dbd797d766fdebb60056fe0d94c802e64af7e28a79912dd4c54a57266cbdc87dd9ef4da4f212fee93437ece0ffe470fcfb53507a9b8aaadbdbfd3bdffeb78171fdf2b0174b632f6b7eac82c1cfee423ad19531497432d4d7bb098e049c640c327a3a928d0e63edcc6649d5543202f31f4ff778c1d0e03e3da397ab50f787c278c5b75d6f63afd9ffeba1dd3c68c7d5c60c901ea3198f6a2283b0c54c8a2b20bed7c840d2fc74630485c99c85e7242794b5dbd09eb9cf0921d929aed439eaf08ecf2108d82d469e50ca8053695c3c6adc9198853e639011de5bc9050b02bf9cda7364a9a2fd8e8bdb029afe3bdac6b72b6d1efe863cf29cae562c2a3c4e09dafe3435cb67a391efad4f8d9f14ac7bc1a1c42434949492022dd078248e9346d56211972def3aa8d15cd1fb083da59ffb8c19caf6281dc7482bac4f969c4111a057c34a5da3608c0ab9bf116150719d4d517ee9defc2e3f67bbcb39f55c7b3aa2e2f98d7dbee1538d5cfe1e47110535cc587a14e0cecf862bf9f031ef84cef32a841281a8b3b8f66627b50208943a46b5ee18a98d2584c4a53380a2485c7a9d1d992952028b3434ab39d8a9415b34ef089ace29a4c1420d6ed9857af92ce7f96331fc73ae7c61529be9503f3f890384328ddc689cb6183fb6cc7217a8a39c6c2d91ea8d1b533335f8482136903acd8d44c047ec2d0dbe0ba69fc321e10438d968eae6368d9a41ecd42c75b2c99554853cf88a383599f3f53d39358e08498dead770527aeb6afeaa0e13bf5e0651055327ca383f66e1e0638e594b7d5ff0fd904d3b4ff65861097a900f3b8545042b4582244c37a6ac6a5120cc80de6be4522bb23ab769f395e98f6d97e06b48e191924660688130ca81e2d6686b271e53da55ab7be9680b97c221cb0575cc394e1f856fe8fcbf73ed75a26d73415eec4ff6e5e30b215af65f478e99379338f5b7181676e28077166c89e0bb4a0359f2bd88e13d1ec8ebe33605b38871c632d9bac9616436a2b0a350e38b2b01d6c121bc36442c6b8ea3c72689f9943d67129ab5078c10c2a460cafc82ad2538878d68f9c1968c614dc4b1bea124b8cbdff7bd1fbf9672e0879a122efb557edd25370f5d9dda507d8c43a36f9e1a567ef2507b8f43a7d36afe3b3346e7e969427f3be34d3ca7ba00537e6c67e97198f30e5e5810854c8aa11c4548700629a506efbd03358f9f340c07a90397117f688d342250bf608c2829989d3084e3db2acf3831fe50f3343b641953fa8926f9625c6e9cd98b9bfe8577cf44fe67dfcd3673d65671ecddbfa1b70ae04b2e56a18888a08697a3eb72d1922cfc8509efb4287096b8b58f055c25ae2336f26dd1149919afa553751151f3041624c799fea91b3645b9345cd5e09d2c525f67c17c5a4920f7184a7d2d50b72add6fd89ff7fd1e4908eaee4751dccbbf011bdaea9208dace237da20e7795c74076ff3ffae988cbce57838092b3c5db2e920ee899598a32931f448959d454df59042cfa0e1cf811cb78c897624278fdd1c7a28a95410ba5e1557b6e173b997113e60d8c473331870f1b861054662a275c07d10576c936824afc4865faf295ed6e39267bef447fece33c3b7639cf0e50e7f8ea1befaf7ae71a0be68e2dd8503d57cd9a7c758f4e567e3f27d6ee71f8c0bdfe2b69773842b5e482ba8bd3c436cb0887e0159b63a31d8210d870b052d3b85f881d71e604c523f1c42c9402ddd0630073f53c3e8b16dc0c05403dee74fe178b85dda3cc791374e0da279a40066f9947fe0aafefb1e7a735e7c5e0b78b5e9cc24bbacba7666dc4937f975dd41af9ce1e15c7f79ff9eb1ffcb33f9d7fe6231682031005e520d534810d1b897d4dfa7483569d53ecd8ca6a6860799331828e079ca1d11a671be147931eb499f19a4f77b1f28d16e132821e368268dfd8e9bb20ded4e240591b1191fb25e9100207c73eef557ddbdab67f51d301758ab31285238dc24825dcee3d733e4b3795dceeadbb0195290309ce46d50b6881b9608b9c421e44fb4b24058e75b192149c261c22029f8e471472bde2ec2619b8a61bf9cd887ccc1869c3ceeb3de7b58d25ffbd0b09265ededa40112d6f3368ef8dc5f0dad94edbbb8965b752b474a8d1be9b03686799e5696fe42fd7c7f97ba0dd4a50c419138e839adf8f9cee3fd7be7fed8dbea39541de844cb148da6b257a3b4c23aa6882ea80c62fab8635cadb0ed19c2deef386a20ebe57881724746c40d2a0e121bf5b2023c3347735c925d62785a14b13133daa7052713aa3d7bdefbfb0cc91f3ef32063d6fd70905fbb93fc1b275193d6782fdf708b65d7ea9f274ea958ec5b19e5cdd59add09bf7d07cc1fd4755aa1ed5cf041129d78fbdecde3c2d97cb8c9df09ced6c682c9c902b18e9ab929ca6e100a8f71d7b355d93dcbd54fc86d522f5153847d6e2ed174b0acfdce37f3fd72a206719941dfb1caa0ead6b4f69c847a8846dc61d550136738a3bd32959353eada865ff2a79bf16470f89c08bf8dabe12ebd5e6fba8b46eddb314f67cb2ead743117de2e85467b19e7364c3ef2a6c978385ab864cf7b7550f4d14a5d6f9b00660411fe21dca03be907c04670a80031bd367573844d922b205b627bdb90a220641d4e403e5ada0d53265a4b1323c9c97459ad7b5c062080602a016ae9159f76034f8e91c293664d9f3a5c67bff7d8a73daba9838ce39abee5f99afe3bffbc608be6116e52a1b771f4e2a3ae70c88def81533efa0efd2c0fa04f046852079df6c9c9b77e3eaff6dcdf7a5bdd716edabb05b28da0da1ba26c47cc699e1648e9acd4e350ab11b5db4dcc47a1ac3d9838d25938db5d504cfb8492e765ed6d59b53ecca1daf9c2b07c5b3f6368b9f31ec704e115853ff7337304b0f66000085e70cfbdc6e5f2c999f6b20e662288f1857efbfbe449af6bac1ae99eb5fb3ebc77e65dbf11db6f3d64ec112c04d181695b0c78d3d4cd3b9f217331e1b3b40e0cd5cbb92abb79c69548c416a6866d89aadd0abb5b846cb8cd446690c2b3321d7494cb9c3bcd288ba450905492af4dd5ab3c30e58c4c1490f06ef7f84d76009512dd56415d2ae7b13de1ed42b04fa17e7e8ff5ff0b4e334f6bdcbce3d2f9e79976fcbdb4cade62a3eae373b886d1b4cff8b0bbedc3b7f8add3bcce3ef81fff6e74dfa8a5e2a4540e11bc4ba2dcc41355060c383422358fbcdddc28f733532d32de8c315373612bc317d2c98aa9a12866cb92c40118016cacada0e6fbcc6d7692e2c3dce8ba04609bdac40eeb06f9948704289b1848dc0b9f231d5e25c2d267feb691ce6a72d10979c5637ec06fca0bbf8a72bd3c3683df9fa5c778e7dc97fa49cffe355ec86fda14b8e859ff17fc32ffb01bc19fe5f88a6d9d3ef32d8d369fe9d180689e7397ec33ae7beef045089143cdac6705592d6dfd831bc3e758db03bf5744969e953a3f0749a907cac1abf0301ccd4d8c79a1c8cc188ef86a0839fcb9c1a67fc0d1e881507b1f024d930a51daff82f7aad5dcdbbef0f7eda4570e3a7c5183e07e67517de245dc9d741643eb681b6d66923cabcf71f7f5f97ecb5ee2256a9e6700ed55ed8d438a1c0a718d2be2656ece99a3a2a3bfa13a879405a65fa19c5588b3ff9fbd2fdd6d1549037d95abfccd990e8b71c291ee0f6303061b1cb6026a341a014500532c3178c157f3ee57e0254ee26ca7d33dd3336e297d0c2ed7f255d5b72f8ebb8196464083d543332ea7542c02d15a6b18d4fac85d074356d74c987823214619495a829e9959b9011819ffa9f8e873e7053d401174b1951fe9cccfc43efcaef371e2037f721e4ee7d3eeff97754f8547ca6e2b8701aa9ce899d633c72a6fcc65c632581a90a8e7daec5a77544ec3d6c616e1c234636e4215ebc936228d541807638e504c380fe682e3890165103871e7faca232dca74844a4de57b2fa949e40c5688a8f177c510bcb075ee7d5eac57f9f6dee039d7535b5806d4a7f8fdefd01d9e8e79dcbf03cfd4e58afe5a0eda8d6e03dd70c0d67582c6b3d9391071629bc2c473ba3a24337ffb6e7eb14fc3d9b599ad77b069bec81df4a17ce50c6a2f575b3a3ef729b28636437c983f27f946bc7a76fc23ed5d1f6c7c2ec5d62dcd45e32fe7c6d84c01279aa0d4915dcb8822ab19af6fcd1414b683566e1a3390e672ff6bfea05be47038c884bc9defc7b128d177e4b27836e64e1e026be8c831a4c072a7e789beaae7199b8240983c39f209201b5b1deb63973209447804bbb2089250086de1d3fc3a34d534a06315014cea63189b185008683d68c121b23635c4d2da031886693c526cabe78db9beb6855e40c70902034ae771ecf3a4f85db8a53d0f81c82e3b58d8a0f61c9d78167bf4323e6cf79b954761ec65c79a87cdd95c56af6a1e9e6b037aa8cb75f47eae2e9f96eba9adc7a88b7fdfc7cd9ca949b88b05c5fb38b87763ee9ed58b7f3b17fba196fa0e1ee7f21707475aec2ed533b15a410662b8cb515ceff27908f513dc94e7f4f88b763acf51e32097e357be626ff3fc2ff7f357ef51195042136442a7cb799ac79e37fb726d3b8b3433ddd433b445761c9b96bc32d3d256319c5a229a5ba4ded33fae2f78b2ae57b5ed3e111f7916efecf6e8651eb85ff7b57b7516f63e8dafdf9bdd193f537ffc437c24b859bc9af115e1a5383178a1e7e7a0e79968a58ee4fb0097b99eb01ee0997940968f6ac618068d816fd785c9c3cd8c5725c3d1d7530a326a16eb760e3c1f0c56fe5c65ec39b6350c9260a4f7c384aded515cf8006b9fc9417bd63efca69ee6886b1a689024127175a82b23e56fd44238f011598cdbf3b58fb7baded1b997f15667eecf2e8ef70cfed9eff7bb79b0f67ec867ef57c78b753e546e0e3278b0d3e73df22cce798f0fdfcdf1a56ef0e9ecbe1117faf02a2ef439ffff82a77973ce1ffa029cad7ff1fbfcce0ee39ff89d1d78e15a7dab46c43b3ce5cec71aa50a069e9696bc47c6956da2b19b963d98abc26cc82e515a2f8005806205db99a86c020acf542c686ac63396a031a64d4ada3c1efb39b77549b536add2f409b767f2ac1ce45a0fd9da0a911ce15325136cf5b19ad42f735c7e157f7d2c97bd85f35fd3a45fe79d5ecde144bf43b229ecf2ef80a6b3939ed5297f88bb9653522dfc1cf29e09454394139041ca73e4d584442b2fc36298bb8b601bab164f4a5aa6f641063488c15ae74b0551ac02465c814642a50a98d65235f1cc786da402052d204091591863ac8540d7a614d9b73248bfd2eb7c13ee7a536e334ee5b6b3f7f07df9dce97400f8e3faf1da37c5e3a8e42e86156cd14e9f77f2bccfb3f1e9389c2e27d9464b8504e5f2bd9dab63cd5421e05527b0e5da1bf18439e2a0eef06bdd42b246462b3f959730ab3390964b95549b50106cc54ab7014f420fab7d7d8b99e91679c094ed99ad3b818337de56d64c1af57c515acf6c9dfcc0cff6d3fcb26f03c213d9f4837a3fafe49a1dffdbc92f1feded8bdaab1ff82b7e570ed6cfd782a57f21567713f02a87b05ccd1c9540162ba10c4c03aa471b223337b04ca1b9b5561c41766d751a62a1329bbb8539463d779b2e9431df2062c3a0b9cec31c12b3d160a50bdc52c9b98d49c85b23d379cf66739b47c6cca8ef51fe7dbab7e7f5a377354c3a1affaede458f830f73a059dfa47fefc66af78a701d0e7731b95fcdd3e5203b20d84ac9d5c220b9b997e913282a3dd7a8354409f3f69e42bef48cb945bbc406d8e2a607b6ba6599b2a16642e90931ad6fb95a11e5a96feab566eab497ebba89f5b89589038c67ba2d11708e332f8da7007c679c3d584f6db041b6509de66d7e5deb6e5f1fcfd64ef364bc926da1c8129e8d5ad8e2a7dc2f2f6b157679a057414262d73ed6acd9f9c3bdce174dfa994ab4fb3eb55bdaa9bd9bd703529b957ba863dff9cabeac2d2f17eea9eef74c2e9137728e10afda39cac1a7ffb43ff2551e401b2f3d9b2c83533d7272a6ddebfa974f72f34bbfc433f5228f32f82b589fab7fb7bf8b67f2163ec5fc3ef7573ad76e17ebb86f377cdbe6fbb6edf6088fd7395ac4b8f169907b4f36e5ed4771e348048d6f905bcf293f8a916ebe296703011db99e3a6a19663b3c72f25ceff2fe7f2d16c035610b57de1f978c21c009a0a4de84c42b88530208c14631e5b19a0f1a3d5535dd1244afa9c8998d64db8a29858c252b8beb99bd2100e6198fda94aa18cf0005742d4766205a3d979467ca1cf41441be4736a37e94fbe90c7e3e891ffd207ea6f90ebfcee3781d7cbdf61cd9a8d8cbf7bd2fe8c27928e893e9b695d119d717d1d6cdd4850edccd84d057ae9d1210bf5b8fedcc79c335740ef6d90f788dd73e11bfc46b3c1fb3e527bbd8cec33dabd55f88254204394763d9d147b264e3524116ae5c2aae3cc26aa0085d238b68632e4f753e65f431aa265b39763107e196ab031ae98608ef3507eb60ab3e1a59b009849404192490a0ca262e4983525d9f90b67a8a9840800bffcbb93bf5d2cfd3da1fcbe407f79adec7e5ffee7bedd90c33b5370d32f630de8f3fed7c127ad4d7788472665b776b8386b93f078d3d2e9d805faf435335aced80090872aace11d62941f7e6694f1981479faf187d0bd71625a430974b20aafd30dd483a8ee3291dcfc156af0d2067bebd19ceac98b18cbb8545214511dc0db2d9f7fd7d5ef3ce84df90bf9003ed0c1ff06b777c3575deca83f6d6776fea4adfe3a5e5c094489b9709352f79d566d6961857a6005d9d8033a561f31048cd9416ee75519d9a29c3009e4cd5314c7c53610c01c4268539d3d435d3e1d7d0226dad612d8f8efb13b27c846375ae9a209f399809931a06e660fdd5184524de1df88a3ac88425fc30d6eddb78e10ece9002bda923c77e86ba38b733f3a97735cdbe58676a0e3495c27d154764688146b155daa510653971e2a6985649b05028741f9a20356c9db0e77aa38f2136c7421164fac41ad68a67b05238824468556b3305c9642b8f351a2fa1a5aa4686c78123733aaf9a6656f582ef8a57ccf0766a33a46fcb475e47fd845d13892ce97e4823956faaaba8af90bdab09b41fb7dec58a7d8d0e0042eecd04c0a8405710cf9a56aecb8151abca48590544cd07381e997cdc43843e0f1c605a2379ae8e54059a83ed748bb7d0911f2d4b96c35c7fb4f282d2b37a029d82d1876ce18b80d1406c692952108d3ce004cc4774e0f37bc4ac82b1f64c57fb814fe18e0fb5e127f44083e5ec7bee17d3e544ce0e7aa0d36762dde937bee49343105094fb86536e50561290c2aaeac8b4625764900209f13267a6750dc720f578c4682988bdb4b7566c2884761c6b162e028a9d9a794a8566b030ac1ea310380b78482032653c472855aae627744c1b54ac070433f9aa7f7ce7a364eb7b1b01d9d298137dde87f782fc1e9883d475e4c675d2bac565a7faf077e6b7bf3fd6d7f2b6663a391362d54c010f1d6e6a90d2c216f0bdcd0bb635d61d64a76b7f9caecd5c5f7902d8ba74b00036191b22e600a9f5bcb16c2b8edc4c1b5652b1bb50789d32e6eabd65f28cb54de99945ac7d5150208e7a4146f4946fab7f8fb753e719ac9ecbf9efea6b3a1b6bb6d3d77ec667e3f7c79ba0ae1626dce52c68f7f1f4f9576a6ad84c630b258dc8b8d187ac35254a173a38377221d5883bcac4a5a7586b4a4de326e489953d47b5e1f08d4f72b19fb1338577377ebae929d48636529254538136704acdec38f59c38d6b1708f6c160604f9a89bd64adb7e9027e24b3a1c9984cd51467e194fffe26c70d8cf74ec676af956fede83cfc147b62a25e951d379fa3db62a6a376ebb97500409b2837adfffd76d53b63c520950b53c836b954b4b94396b586d749b256c076eec5c4d140accfd11a03d130e6196525a5a5ac056673e8dd66aa65201cde58a58ba61c61880af792f2356ba8938282251c3106b80b34d8b991b04da1a3cf9722fcfe1c673f6efb7efe36e8df54e4f7ecc03f41c0627768ea77bf9062f623365e0803deffcb1ac7ac67fff57efe98b715bba07969e23907b19a393597f25ff05b29818dab8d101470542e95814ea235ad5745a074a5eda16a9377e72d73347603325300e85b236461c3646d0d4cc60ab5124a79900a83ca24d52b64241e0ec5c69791fcee637b3c0068adf3649ef48489619a0be2b66496d4287ebe42dd766529f228ef5f39ee960dfe75fc840d463245ab59fb5b22a2c3fa6a9da37d50d016b280a0434c8a54feb25ccf0de8e79ee3d417c3d8f00c184463d8563653d21362b930fa8d0eaf594914c031caf0c1bf66c0bd0de48157da1a4c394a4035ef58291db585bb9540c76126660e3ceb1006df0884c756611f1dc25d0d875d44ca73653d56029dd8a13cdc6990d64febb7cd3dd8ced41fb44bf7ad6ff2b8e7db1dab751ceead15d8a5dc20ce74f71eb6ddb3372dec1c6e2e038c87a4ffaea337a5dcf263b5bd4d4dec4619ebedfd6516a974a4ff5df67db7836b345a250f92248a736aa7c4a8e7d71c33cd3e9bff209ebe4a9b5bfd72fabe7f5c665d0908cebc8cb63bfc3a39ef95caef8ca753a9b6efd5c1ff466fdedae2ecbb3fbf6729ec79c2764ead9307be687f7aa6d9cc2864c5c47c550c4cd9bb14d5ff44f7b3a2b1ffa596ddff0e9f925bcbd1f773535d8b9270a95d7ece3777f218784ca6b5b6d0e1d38d73606c1422b85694097b53e16548d401b15407b4a0355b3a446ddaa13c3dad466536dbd54a8bc51ecaa638147a24e404235140af690282bba45f62d3a6a142ca49ec8f02e5152c89449c586367a85a73fe0af3ebed7fb35763ed92dae667c116c9ff6f88c5fe6aecff3f6e8a36dea844f7b49c33fac330e1acf68f7eb039df3f07b628e91239753bbec6ae61c3f9b5ae7cff9d5587e83044c682a5bcb1418779bf60281dfe8bc509b639db647fc7a66b934e07106a88da3009cfadbd8f14742e9998209adb8843628143e9620e6b039923313c453352fd6c136c62e516f67366c341a28460e979097bfab36ee1ad90cb38b753cf2da9b0f75408e5c1d7346b578f74faad3f67adc8e3e37feb1463759b94ef4d5fa6d9ba9051b9baf569a0d137524a701817a3e284585428f8abde1d41cd3e83d1ff62fc0fb45edd4e7b4e87d7994f0ec750d45d0f6316fe9c2c7f992072feca6bf6433d8fb59ea3818cbd8a55a5ea883fbabf97c350f86629086650ab3d0866bb45597a6cd40944353b1eaa99121a053026f7eb14e3c7240093f388fb38ed6fefedc20bbb13a58909eadd5fb7ebfc4ef4f0806065b598716e984463d0604bcd76d82094566a9a6f1481f0fd6fe08e95aaad1bebdee85e906f856b19899aaae5a8ca8f0ccca2540e3e76801c4da05299c7920da4e29b8d6b6308658e9e9629c4c29d4574989865fce91b65bdbe7f2d39da919f86bbcf8e9982dbd26918dd3e3dddff9117e2d67a6c5a63e887b9a1937fa58d55512af4d0c138354271ec1f4c138680ca3365580b66e4af27eaa120640a6650bab8060389744849e03794ae2a902f4c7100359cd98c4a350195880f146710e282687994acd78610b475faeaf457b229e7b4332f1e918c321b90e325c7b8e5ea20f733c7d57dc2e2a3c5b2da6b6bc0a5bded7e11acf264b24e27daef4f7beff95f84b82d6b0468031922d4ae77542ce5d1bd480b4d6e69cbb072612a12508c61cdffb5b595300275919b1d253d5f109502a182a805018770e7b288f39cd544753825183719c2b44ec820c95ca58557d0b2526068999818fec569ff7016b65890ce7de932fdf79fff34e2e90573eb5c1aeddab0ffe2d1fffe6609b21576e563ef39b39ebdfe3282fe5ed5d2ef7737d3b2ae3b7737a9657e4fd7c21888a4b978a767e8022d8c7a7ff3931c2e7c73e3d8feaca1737d8a5f576ec7d8ee2afd9f1c036ee41a0034409953f8f4b85a8562e996efc14b961a62f012e2bcfd6872e25e4a1c5888897537d0416a1c824aaa0533a511b2a01338bc0a64291301823c7da0a3ab0541289701ace63d93663c3cb20a1cd070bc5fa4e3b1e1907cf7254bcca29d0ca9d5be868a7fcc66b99db516a4481d8a33ed51f0d6d6111508078216fbea7df39e0b8ce4e0587e4f938a5b3b530be815eefcfd1ce3ea2d57b9b404b5fde9817b1f73dfb5a2e7130822b8f9653c5d105352d533b151885ba6b4016ab3e89356fa42c8c39144c502aa123f7342c6ced0c568629e81a59ca214f3606c08a47b15b388a2d44b90bdb860b1f43d9104968012e3772ad51b6f17a26eacbefc269ae0363cfdeecfd11767693a9bd8be73af16d7e9957eda39c60af7c0261d6d5fe9a7bcfce98f5d53c182ff05a1cb7673cb4c9c4a736cf6b2b9cd3d5bc58dfb3bedff7c7a63d7ba793f145bcfcd036d47c4f1d1744e1143a2a31b537a5bff3c97b318f7d6ed3aff98dcc028a5cd9a2500524b2759e1c2387ebd9736028a378e19a38f385f2d1cbb082d2d8d600822651139e55abb331784442e904733cb73298b976b5404015d451b43029a9675272ec0bf11ad118031b333aaf519605f36fcb6dfa225fd1b7e9a65ec67b7f184b637d67fce42e1efee0afd210abe7f321c85fd557b938a56056906aca02cbe40a600a532f85335d1048238538cc85291ccb5c68c1d4b001a5597a1938b2638c91e98b72ada58c6a8c07a46b570d9c6b6b4b247a06d6c5d0221adf117a1e11507e8616067fb7516c77e58b5fce79fa3206b8f6a9f2088bcfd8ee666775aebf6abb7b3e7e67c3b3c99597a547bfa1fd78bf1067469a1ec67d97443393e0d7d0419c31e6fa0a4ff602018b2847b99ae3c7d01466fa56ed2111ac02a7a0d4916e6bd4ddcac25ceee7d2664aa0311ad6a5bb554b03eb7dcb8c0564aa16e4898d2aa831a218bbab876dc2cfd8f2de8b33fb383fd687f7e4ac4de0d7e38cdf9dcf5d3da55abe0892beb8d9e756237735e11d6ed5e2c3a9a9bc9173e2439cd90f6db2568d9a9cd0ea28205527b43426e8ec76a5ad10ba88b27864506a65507a19621c1b189006cff7145256bc4ca27dac923ac5a49057259d76d79e582d0c32a5b594e4fcb1ea40ab22800d723505b68a63fd33b168cf74acc6fa435cf961cce6f05c7cfcefcef7b7df8bd3fc4f87776fd6fbfb10b78518f455abe427b49e078e4eea62a97a6324c32d20750c6d85d28900144c0884892f9436cc79c230079b29519196283caa0048de1cd9a123eb2651526126d016092b83e6eedd5458bb19e4151ea46a8e276e536d5eeb50cee0b65fd2c5bfc67912eef5de8b6bfe54debab3f9134ece8633a8777466afc77f59d37e8f133e3c63a7fd7c880fdcefc407cff3c91cf2191ee74350bf4a3735075006a9374084ba89f1ccb055c2c5d2c66858a893baa19801a9a68871496e0bb72899d9720ae698478e4006733d4773181bb420d9a250a873e4cd785c5b5be4e84e415a00ce4d5aaf200e9a009702b211a1beaa5df35d676b6fe77916db63bdd03b3fe779f774f95d5e38c88475f061ded0efaa01871ad7e1d6bb9a4487cf5faff98604559fd9655f25e48d87e39e99d550cf21a708c20c59e4148d07bdafe948bb31f0d486a52f5ab5ebe82bdfc6f38f73d7bc8c49fba5b34fb7e7161a64e6d91b3cb50fb96377303a37af3dedfb9a2f99255086a832f61c4c7cac6681a9963ea9325e2e0f3d2262421010be89b8d0ae7ad32d564383e5f5115ef9698d9171c7a822a483945cb914a8cdadac6b56296af666e9a7fa6c4296bcd5d49e970a86ea805831580d24ec77c50396be039af6cf1385adf7646fdfbca89375c0a73b1d80f8522e3c838373b5841413fb431287223e89e97d6977e9623ddef4d93cb5c17f9087ad07c5a07633610b6dbdfc300ef8353ffc4bb26728eaf9d496e38002a9b7cbbff6621efb78ef2fd6eab508a6d0ad928776e9d9c0a5bd91b5d632b63047034677240664820c6dd828e946d56c776b12a00e7875e1a56ca96c756c3b58b72dc105407fd48140d8696919942a2abcd500abb6bc61bd0a085d092834f36c82f96acc4238d63f9133f3bbe2e963a2b30b36c46a3fee3ee7f1d7ec49265f43600aa506e2892d805c03f1720680e165989c10a4e38d31b0f9788b32b85629728e00ae67b66e02ab9e2a4376e4e57a031c246a4ecccf46d2cab754c7cd752520d0a39ee2188e38da70d4151ce9fd00eb9cfee59cc738f6c54df9c93c05df604b3a8ed79e5bc6b53755dbeeab39e776767e95863c2aa150328109346d3ee8a942ace84021c198bbb748995368f468f3426500a47a63502b596db8b4bb524782e9cf65ec037e0dc7786e818040a0744d113c22a2a6e0160a010d13286e6c73588bb605e668843e67436aff1d139307adf8bf573fae4a6f11e6f5d5cfff77759f46573fafae7e5ca95e16b69ffef5af1f575152c74bffb7a0c86efca22af2bf958b621e06f5cdc3320f7eded4615662af0eab9bbc40e14d5cd7e54de905a91785bfcdab226ffb4df287a2fd1785b597e0aafd98ef4678d6f2c755956cc3ab9f4caff7e32a2b5078f5b34711ddc77fd649d79e2228f26f04f337a26792c44ff2ee678ff8edb64733777d8220ff46f47e12c4d58faba4fa274a16573f1f3c5c853faeaaa61b7214aeae7ef67bb77df6c7959417573f699261fbe42dfbe34ac5499e5efd247f5c29ddb0344ddeddfdb8b21274f5932408e2c795f8f4d1f9e73f4b0f11573f891f573a6a3b257e5c194f33e770ba5b478f60fbed6311a4d5d5cfbb1f57833ac9da99186170f593ec53c45d8fecf5ee7e5ca955fbe6ee8ea5ee4892a6fef5e34a79d994a46fd91618bba6c735ffebc7d5f0f34d9d7ffe73992fab105dfdfc3bf183f841fce35fed16c7e1a203500bb3ab9bb8c8c21bece541e87b18df548be0e6dd3370e327edde4959592cea7baf8e9f9da1dd97a322d8bd35bd4514d6bbcf7a51ec3f295e1dc4573ff325c63fae8cdac3e171f3ba273df4baa3d4b6150b21c1617568bd1bf6f8380acbe36733acea17addb572f7ea11468d98ef7ffaef6737f77b1dd6493fcea67bd58863f7e1564dd329402fd12b8a3e2b7ac405d17205c54490718f237b2d75dd7b25bc4e12e7f348bfd267d7c8bfff5e30a79b577f5f36ac72dc94bd726f113561dd49e282ca1b8c1c1013bbeae8c7ba2d96eb1be3a0f32bc3e5a06873227894f990ea4f1ce5a278df7559b337d2b8df595c4c7161006d1ceca05b6687c88a4906bd7c63b6a90e12514416f9a9507cb6712506ae339dc8b8c9a32019dbd7535635650b4a25d461a96f4334c74bf1fba99243efbee80f1e3dddc99c7e0892b4f7c919dbbf6ba5bb39f733d4984b1eb282d85a9831c2cbbc86563b09c52afe6f8329261e9533af65b580c89cecb3410c11c0ddbdfb6f3010fbecda6c8dee0a06133d716b69d479a23937eae97be6daddc0c2fa7945a79463bc7176346c513f792d53874d02ac876990c6df2f05e209118ef3df60e561cb9f26c15fb872ae0a9b0766db58006d13cdf5fc8bf136991c04c8883a6e51ac906d94c578df71069a63ef3183e81c389e5f0c4529decb36f3eede541b3ff44a913240aeb83d7da3e72b3d3583c68253b8cfeef1f4309ebb0aadfa7805d8b03e5db518c1de9a3c8de6daf2510e4efa0803b2cf53e016c29dd9e0052070248f6ef6e6f7f81001e48dee72920dda729f640abfa2441f7689260fe5a14f025f5fb24d66d9feaa4f8883efeca74f604f5ef57bf5dfde348517787e13941addaa7ff83c232cc519807cdcfff73d27554f8cb87070f173771b8084f69efdfaf029c8479fd5b545cfdb80a8afc2189769f0f8bda3d956914a2ddc7e3f5681fff7142b8ffdefebe0e37ed3508178b6251b5dd64ede3c95c326f91fadded6afb5cbcfb65fbff248f6eb2306bdb15651afd96e4378d97e1df56547b3d8aee7f3749b1ac137cf5e3aaa8ae76a4f3e621c16147437f5c55c5a2bb9af522c9a3aa9df38ebbf8fb95bf7ce8baf09b3aac3a0064e522acaa9b877685a72fa26d52ee20547b491e2e6e70d2ddf7a725078ba6ac8be3871b6fd7e3ee2148cab85becfe199d7e892aefe9210c9e3f228a6148f6d58b9b24afc345eee19b10adbd05aa5e36c33829eb24787a1367dec9d3f1e70b2f477be0bdfcaa5afa350e9fbec810f3f4d0feeee429e89d3c9c2ea08a3df2d913c5f49f3d332475f2fc62c81a9fc069c310ecf3a79b324d36ed71cb8302257974f2f1c6ab72f2f4d9f7aab0df7bf626c9bd4573fa260e4f7bbbd94b33c7e7b23b876f9fed57f7ec57cffd873f7fdaa4cc2babcf5ca24f5db430f343f4952bf961bbaa46dd9d3c737963af8af7ffdc048b80ee2ef46159ed8df47074fa2a2897a78f0f59bdbfd8c7577958d70b2f084fdf1555b75fa7afca02e3d3e7973f59840f380c6a9cd4cf5e57491ee1f0012751fc6cd4aaa982169f879b3008f3d5b9af9679774c8fef5b660117cf56b7cc2bef218c430f7587e380d91eaa17186ef7b36c87d9da7f6efc247afa585787cffb0b9ab5ecc6ee9f9b6c89eba4f43aa0752f1e97451da27291e4b5e777f72e0febddff3bbee7e463f7bf03748f2f0fd3dfbf6b5161b9283a34d83e2f1747a45c541d80f6e8f90c96de43bdfb14859bf2f8e1a66af2da6be1b758e6f56e39fb4f374147920e4f47607a759175b8efd5377bc0bd7adfb256a7942228ba9d3cd08c96f7ea0872fbcf53f7fbfd6da9e26e5ecb3c095ac6ebf8e966593f90fde7cf77dd63bbdd573fae56618e8ac54d54602f8f7e2b16d1cde6e64034622f883d8af85cabb2c00d4913cc07adbb7fdadbf5d9760744fa5ee3e562151e08d03bede2143dbcdfe235ed79a7f1072b6e0f20caabf62f0babca8bdeeaeed9118f96dd15fab05db92836cd070da99bb815bedf6995a0dc7be3ebaaa9f628efdcb7ed4dbba9c260b9086ffc04258be59bd0ea9ad60b2faf1e8a45f65ea3c3196d3bfc4cbbbcedef1f2f14347f3fb28eff6cd1dc0ba6f1f8ee1f2f94387f3fcfbb3d5df9f6872d1dfbc745d5f3a6aaa713428f2a9e9d5eec8f1186bb9b1a2dbc4e449857efcbc62fda1ea464b247f5ff3c05314550dfa720de4dfda221be6888ff5bd0c6cb0bfda4289669b08506d7b9dab8b496cfd6c5c4a5d865406bd1892294ed14bc9d39de2a64ea9cb2342867eb72ee53cc160db9ce75a553f48d88e818ea6044f9a912506ed2db6174fc4de71afeb2fd34e9e513b33ace69a7dc7d319f5d6ae4aedd70972ebd9089833955e814d5b3842bba141622d84aa2b03c28a875025872b38eda3eeff78acfa735c5dd9ca6436e0b1d99828e14dd9bbda32b021a326b5f1496939154cef6ef8e0aef617cf84df964866472e86885dcdcddf899504393243c1be120094edbe070dca5d42d94f9603d7972db594227ee4a6c4f8668e4530cd195f2015d6aae7c3a1cac7665a1ee9ef5e5675a3111411324eb766edb89f1b4ce8309160d191ce4f22a48621ce452250dd1cc6fb8fdbbe0b8b69d295d5b4211e080dfa5629eb4fbd030894fe9cc74c8dd4ae376df65669670b792c8c4be6df5a5213aac337a30d6d16eed4524d37a0929d0c80dc7b67b77e296464c33b084c3e8c5d82a0e7288838499fb22bb85c6e9f7873e38b69b87b859c16d11c14ca802ca8a1e8cf47698136dfbc9ee0c45b9b17763709d2ec4a82f8971ec677a051d2572ed5e6408ba650d39cd24d53ff38cac7dbadde3602537e91126d35cedf6326cb8cea8334b063912710e1d2997c6c47fcff9397b66d257e375f37a7e660eb05cbad4661550d6b3ef0f7db4e72f6cb8caa782be24c2d81fabb885df6c5db21fe08f063aeadaa798346838da73f4426ae192b18d24aa9de1c9b3ddc8cf4089c418070937d68116f9b414593c6b8261504963ede96c8c8f06a002e660e936eb28a0408332d04823e2fa68fc1a6bcb40dcc47e126d8eebd9e1be6e9e87df9cee7330067fb5f3d3a577d71d8174ed75d1b69b66f20a8ed34a1a57916f836d40097987334879851c1d4b0207c0a8584922b36a69874fb7f822a80e7bd2aecfcc5842e2619772adbdbf01adc7680cb61ac5a66d5fea6840ecf6fec5f9b49974327c7ee60e709e666ae5d32a7ef6fda18f31b19bafc8e6b384cb5c7bd3d2d6ee5c75e7ef8f3460b5725bfd21b37e6874e0d259e203269dfc1b796bb61cfadd4fe6f6b73ba647dfddb26ccbbdff0a934e7f1f93decdfc8fe0d14982a56e69faf6d8f4b0e6d73cfa7b4d2f3cfa8547ff1a8f7eb89b9f63ce7744e30523dcf4961d539da92b3f570969dc11b3e8dee08ebee49321eaea87bc64be3d27269023e396013f12c87115793693f9db22eac6a5d80a1a4cfb5df46070ec2933056ca644a3223a7a98345cec279c04045d937824bc2680af08db6ada70b29fc3954759514b444f3d4da6436e1fcfcb6d3d91257d518b76352d4185442b421426daf76878603c7a2d33782290a8a43fee60d1316c9371154d93de1266b887c6a0812d63baaff9d3128f8360d011da3ced60718e717d42fe67181b1a5468d8311c2dc3d7846611bd4180abf7189f5386674748ca4e809a0c11f0334cbc25dc9c673cfeb3e17e9cb3d83100bf17ee1d63f96bc2c8a910f2823924c1d273b4fe73af275422318aa023372dd3b78bd9e14a98704b68b73002cdee1e70ab20392f543c090bfc6e6de2e11e1fd63460777ba3144ff03b9e91574c14b237c44e285309d7d1c980e818d5be34d248c5786288cc670c16589ec68c4b226ce7ab401bc5fe9033a02d6cdbbd7d0f4edfc8e4944d1d7fe89fba6bf3bbfd737a9d82adff55ff1ce6962528fa89b5e9fd95fc73f66bfe8cfef1a9e9c53fe7e29f73f1cfb9f8e75cfc732efe3917ff9c8b7fcec53fe7e29f73f1cfb9f8e7fc2f2af1f6c2e71fe497b3ebfd265c8579fd816a7fdfe617a460923249fa678ffec9b0bf917d9aa2ee288af9b214cc520c4dfd5ba3547a64af471fe45586e8510c7947b3e7a4e0b6297d14988f6b3e2705bfddf422055fa4e08b147c91822f52f0450abe48c11729f822055fa4e08b147c9182ff77a5e0839cfa6708c337bff9cb04a37051fdd6d2f3f765e3176d8f3232fde744a8ec64e36f4c61d44efc129f72f17dfb2f41182feff293071c1441e63aa042a3220a1c10870653fa0d9bf8b4baf2937d3e1d87639018771505908d2b2882e69b5d6d9fcfb6fdf6b7b2791fe51c1a1d714d7bffbf826cdef246f914b2a1896f4436edccff1c6cf39fe38d72c136ffbdd8e670354fd04c2eaf7c835bbb8e5c79b650439b212411d781c83668c8eda21d9c98980e398c32b0448362324c0f9fcb14da6ee4db42e927f1fcd076963cfd6e6216fb480c29392466d673b0dc17378a9008ea40dcc448dc272c15f4021adcb12f69ccc54126d4d0d17190ecdebb365e060d4778a215e9d9260ea8ea24b2883b14988a5c9b4925515886fb480e8ddaac90ad0bdddc875c036d157b0ec470b88f6a1977631f23f8a68744d2c9b198d45c1a738d6733c4447413f3e8bcc9ddba14bb4422e8a121f3f4fb8cc42d7a86632299680738281110632c8d658cc6a0f1138e72ed0d090dae808e8ca5312a7d711db99915b90eb7f645dcce2f3eac178a02e11a5c8cc67ae3d9327984db50897cca8d5c831bf9224b421e50dd5e1ec6c940daa5a7dbadf1a4180d57ee1c6041b34f6eda40472783ac1785cd203946a0ec5293493e8dd2d0e013694c7cbfb3e3e1982ec2c765b208b3f6e1b77af3418ab257ad0f8487bafb33e90ef97d74a79df885ec5cc8ce7f0bd97975439fe84f200a8d2fe2d8b75b9c4c3ee1a55c61efcd415718f30f6569ebb0aafff929bef659cb238ea1ff54e6f61b733d7433bf60990b96f96fc132cfeee71386f16cb22bef2e89e5d6a77a93e3f3182c3d47efc289865179ccc1e0906ce93bdc2ac8f507a789925db89954762163a2b00d1ace6a7fd371b14ddc25e2dd858231dd7b8d12b6d048fbc3967b14750c13ae1bc3a176e12b01052a98a4fd3db7d585e9b4e3eec661ba24c19371cd1ee28f77ed9938a0551ce4ba103820f687f12e6e3cd363240abe949138a0d5185256e218ebe894536b394fcf76db7575e1570e7917dd9b442461f6a1e3dc31fb20cd5bee943b5dcb6e1ec3f40fc0bc9d71eb5d54bb377ffd7bfc79facc6d9fea53ff31fe3c7d86a618aacf10177f9e8b3fcfc59fe7e2cf73f1e7b9f8f35cfc792efe3c177f9e8b3fcfc59fe7e2cf73f1e7f97e9d4287b0ff586f9eeef4ff1b7c797e5503d9cac5f477669bfdf37c792e0ac88b02f20f46167f154f9e6eaebfe4c74331e49f8968be31635e37f30ba6b9609aff0e4cf3eb5e3cc3a88886596793d8e9f7bb345b3a0ec75a5fe28f9fcbd989e78b34f8ab7bed7cdaa3a59246d25a197c6bd9d9d38dfb8bf9b5ecf070efe2d77241c31734fc89dbfc9fe0d5724caafa7b7c5a983fc9a765876098ef64f42e3e2d170cf35f83613ef268f9cff060e9aa034cbbc4b73afe054f96eef77623d7d051b7ae8db08489ea8507cb7bbfefc69d0e078d321ab46b2c61c23d3814d362df07a719b0f7c6207148b69b8f43de251d777b02bb6946c69edd2b26dab762e4c7a5b748971fe4ae3934fab2b3cbcbf4f44c977ffdee557afa4f9458a64e78bcffe014aeaf73ceefd7fc99f4f44f4d2fce2e1767978bb3cbc5d9e5e2ec727176b938bb5c9c5d2ece2e1767978bb3cbc5d9e57f51d970903eff2047977df77f421257f22773f793217e6359f28eead10cf5d5a00ff2ae4fb0ffe652260c491fb5862c4b750be99f0dfa78d174bfe6b3411f6f36bdc8c11739f822075fe4e08b1c7c91832f72f0450ebec8c11739f822075fe4e0ff6139f80fcee2fa7c94ef08fd207bd49f54c4bc138fbfd115b09bf9af7beab044e7a9737b29627ef1d4f9cf401abf37fe43205d475e2047a9bd1cd6535b263d7b9342479ab4cfb384db205b60a6195e4d29791550ec724ac1d87594baed33c86a3268c8479411b59b83d217751c44e5d275f41265565f1ab7fda74bcfbe5bb919bbf5a9de0a66421c3464db6fe3d1603bb59918899882c61f1683f21264515227515e2cc20fb0df53bb03e6a3890f9ca0bf17f37da38f6237f33fc73fe682f92e98efcfc07c4fd7f309eb490d27b8d4a60cc62a1e26cc3ac8d84768abc43061764e88341723319a4c7315a3b15efa19da4ed765e2d9bdd5302ae6128f974804952fe2c930614a28827898144bcfe19aee5f9bac76cf68bb6bcf60c4cbd8b599ed306392a9adaefc0c9690064d8b057daab70c45b2eada0ab00c6810fb43ce4463907af65da4516c0ab5628972b573281c264ce6da2ae1d332138802e10d8a89d470f716194da6a96e3a64f71d3ef4e76bc5e33457e960b0fbd75f77edd7aea3cfbdf65dc6369e1d4c2609d340bb980c1325326d8182766f8244a1811420a6eb72ed534437cf69aec7f0d9b38c7d11c4010586aead2e90339804225b4ff3b8f6870c051d79ebd9ec3220e4d8a56a3218940db437d875543ccdb9c6a7391ce47a091de58fc4e8d9ea8392f55d8bdfededf81636ff9495a77f44e6f45fc9dbf13f079b5fac3c172bcfc5ca73b1f25cac3c172bcfc5ca73b1f25cac3c172bcfc5ca73b1f2fcc5d416ad24fa27997ab2557eb35e7865b993bbde168f0f8dfebd12f2edbf33f9f54542be48c81709f922215f24e48b847c91902f12f24542be48c81709f922215f24e47f87847c145bff7c49f946f156616eef1e46c53ac7454bd37e9b7b2bef7d29fabd1f1e256bb6f7413edbef7521bafbc6c4d9ddd4df90a9c9fec57df2e244f497c635ef5efc2717a369534ca461116914bb0e1db984544c74195c47411d8c651c505dc6d82ee3ac4fb7dfe3a56baf23d7e9ea363752f72790488c5741ae2c87c9e0b1fd93f84de9526019502095c6600945d0ecb3cc728128ccdbfe4c11cfa1cd6ca1b18e40069a80c22b3f1934d3f9209a746d07c9531ba99cad8b6892708c4f5b916f0b8c24322b34e4c880b22224c665d07099676fb024829e4b81351a72a5df65ce25d75d26c94ced6a4323316adbe3a7395addbc2501af90c1d5ae93463e2577d97625918fdc163606b782c90e0e4f73e2623428a249d4ce6bb0cb982bc6041a0ffad386a5111d2c5d878b5d2ac6d38c6d60c3569ead623f5771d0b08a61a9828955616a4a4be5d80f07fc6c83035ad967f6c50db4b5c8cdd3432debb96bcb1534b8ca7582c8a7a5c8b55103ed7d6d6a112fa5316a3c472ffd2ca8a4b1ba82b94ebb8e8cbb358a7a19d087bad7aff64639cc4f12f1f6555b915d4aa2b094863267359c6c3552a4a5826900a5dac10fc9808fef01d022400886950a33c063c16ab87b2be14626c1f006d06593604c896745891766b6c14d0d8be1a7430e7b8e5e40478aa013af830c6c83865b050957fa0e57793648a73bf898d0b65eee5f0433f6b0866d2082b967c3d26db8cab5991cd9420e0d2ef76988838c69e1120522687c1b6fbb33972b5dc6e41d7c36a56f6362e7eec66cdf82cf6e2e779393ca9831caf8a59f01629a14b7c3ec9839fad17560dc391d9f7dcf947ec3cc3d51687f5b054def71b62ef7b907b5c8cb04ca35181289b89ae2672e68b7c3a85c235bae3c5b895c6a13b76766e70ec7384126acdb35ea224bfbd966e5da5d16e9dbe13eb37330964b9409440b2f240a44db07cc7677dbeaf69cc92501191ae0341dc80f20058645e07b3319b0d2505a4fe7d6524da4db7d4df7d52439d4666fefbe8e612690fe588b009095ddb9d45788622a9f12d23d2c6bd781d84f48fa30d76956c641c26541c6d6d32157c2845bfacd20874f6b0041b6cebbb3396e61014b28eecec56eec62b5cfa7b80e324cb98e8ea5b1daeda5dbe10666efae28776740e781a801a00081e54d12cd4c9ee574810556ba8eee8d41e28d7522182bed5d6ea0c3ada61919a30c2ca799b0766db58006b30ab260e5ef5c109b298557535a8f3d4a683c837dbdbe463ac0a8fd5bbc01df8534940e7dd68896e360cce12021126958458094394be0040bb3b60e64d3b0d859fb5e4a9847d79192d9fab00f778f9327b84456bbc7438ef0f7d9c35ff7dfb997aea123139e0db692084b5fb42a698c0acf560b492477b46197ed3cf6ec5ee41a5cead368e98b6c0c05d0f81ddc777d840647f8eba7f191d3e1946540ebd8b5b5aece7e7787c5a7b3e2530cfed5bd342dc1d62de6e1043e9a95b22d6c2dc302a643721ce0a3e85e3bf47ffc4ba61949f909fbb44fd47e9f1dd4b438173ad23218cbabf63b24621c34d2f11e4d9be2717f075adca4b95d3675544047c61f9c73dab3379524b6edd476bc0e7f7fe3fa271a901f2c5eb08ce1803dccf1e94f5afa0e5c4ee9e31acf9cb9f7cf949909353ca18b47188dd3085171e952511450f10ad99b74b74eb06d691912efa20e17e7720945ebd53978baef5a841cb99244d8d2816e8ca7b9f58ef866bafe0a4ee30c936ce1a343876038d302a7303bdefde338b83dd7d209de04494b834ff682f2299c4ae22effe9711c516820adfa8e9146e1fae4cc092ad3de01df6056c8d1da7355fab95ef949944c0d8e3fdea78ee6b463c804b4b564625627b88313777c8e1c0714e03d47c62eadaf823c8dee0d6e099d20d2335c41238e830c6ded2d875efcde0c1d958036b1f469404c73ae9d33e18bbd424a8808386a77a6dc4c68799cf4a4ffbe3494a249c325aea3625d6c79939d7bf7344318f14212506c851c1deff04d54b6e39e9ebd69731719f6e1ee7f74cf381c8a788bc64a258de50e6f78cea1ba815a405b5d4822ce24119fe02566dbf16c34d82291ad5f8efd7c5fbb6a0fb16f03a21dfbb4ed0e7efbbb8b0ff393b5237eb33afcf812deafe132e4540d40c1c4ac63a58266f1c070c8e3199475a0eeef687a7b3afef11c8ddb790e5889d7053d158029e80f3acf3a66bab9d72cfda1a5afb3d3f325e26cb2872b38aef5c83730bb793207b8169397e7f3e47c1936b3468edee218ecdac49e663cf116d6f1bee3b3ed5bd8207b53cd5ef74fb467f5f5b8bbbf5f19e7b807165e066340b4f083b6507f0c8be7703f99a3f69c1ebed94fcb8b1de7603d3bbf51f97aed1facb1fbdd8e4ffa70ee2fd7faec8e9ffc1dced0fb6b58420a104fb04e0b4b90efdbf30a04fc60a682aa83d3330c0c73b8eef0f3b9711f0c6ede856d0c078561b14228aa3818ef2a9fc0b367ee70eef11689a09e662c89862d4f829748dc2c2743a996786058296b4862c70b76384a6e3a7cf4c93bd6f156b9949cd9f331b1a7159b2a34b8b7cec4bbe7f6d3f7efc5be49439e954486f4c575298ddfd8c35fbf1f4b97daac02ca2ade3c1fbbb59de11176ef25518d91a816d230964d622f5b8badaccee1c99bb03ac5f768e9d3329686bde5137ff3e2bcbce2cb9ecfe7d9f79fa6a178099b9d3c314b061dff7c38af6770fd0a397a0bb71d6d1d11919f015ae23b3c5f74b4d0d2cb20037324b24d6830397474cecdd5953f0604045d28563131d61ff062cfcf9e67bb8564b3241a7324da8db5bb872dff6033c46e6e5139cd40cf7354a2c5296761de9ebba1f06c0d1d4d16b838c8c072df77313198daa3f432c8dfc2fd1fdcc3c13b67ffc04f1bed9ae556e69f071988d16e1ff6736bf9bb27fa280d836e5f5a3ea4bd137bfad4c256731d19fbf96e2d9361dac145b3e5ad4f6d4824828ed79e0cd368d20c12b991cee0da6f3b4384bf2d22a995cdc4d77b75664ecfe732d69bb338e54426dee105d8f814d9f2a0457b4ea7c3e767f2dcfd7d1b5fca7c2b4f9dc5754f6b6ff90062321abc982f11b99440b4fcfb44d08b2063e9bdcee9fc7d7f1f964290cb2dff9e3e87e9d9fdc2075ed4a2f5d8a56a2bc884797bfecfb43df2b0d0894b348c362f78dcfdde73ec7b3a0f94b1251c9eccaddb5720b638a3e5ad26824ab430850d4706d9e6206f557bbc1041b1e533f1721f1e59b6325f0bafa0e19ed1bcf0058f260de3a7f953808036434d86b20a52c6714860ea409e69162948491a492611f939a8fce1209313ee9ddf719c45aa8e49cafcf3df9de5f18eb2632b9b071913fb76c7cf7e765e67ceb35ab88eec3b5d1535758b28b6812ddff1743eda7b8dfddc2da494b44d8c5a9c685a24bab7522d99180ce1135d1f5c90cb71787edf39e4e8458b1b3dbba54b6cd385bf3ee99c8a1ddeee74d22dfe28dbb3ecd352f136ade206e6933cfa060fd5d270bd9583301cb672fe7e7d2fc6f16c7629897bbc4babb44fcba9d6e9cac1128978be3f27efcc65f7176480408ebc944406a3e6fdf126ad5cedc84bd726f174780afb3779dbd7b47e4cbcc401a777a9938b11059280c204345a5eb29bd711571de4951777d080b69076b8c392192482d141cf298de5c4dd3e6bdbb859c7478f9e74a1cc123ae8f83c1923ece66a89446bd9f2533e6eef26887d6327679ef4d5e14b734f538e7c96085741739cfbd9361351c701ddf2967bd83eef37f3e91d9fac5171ec670cf6875139cdf5c6b5992dcc40a3775504e3762d95341a5412bf59f959b0342dc17548c8990210cef5799e47eb60f2fabb313119e6c4e48f0d413e1a92326f15e67fdb3ffd36f73ef0be7eddfc602d66885b92f833cdc5ecf7998bf7737fcb5e4cf42e06e38bc1f8af6d307e7d719fccc4165f8d384e1bb4d86730180c246df0f23fb9fd9f69014b3348d94cddd560cd69c63a90765f4bc7869fe8cb7ad997690933c38282456a4bd3f2c09ce027ebf940d31f428e1ef28e318980ee3f6e17492145955dc7a231d1d82a35c57b81626b1b4ca205babbbf59d3abbb8886aea63f60d18b47b7dbc9c61ae05cd72bcf530461ec220dc791dff0c622a4478d392ff842bece478da04f6e9dcce7575932a7b57a9b18b734dfdbf8ab643a65639e72aec599b89416c320d72477a18eee4ac7b7d36653c9f570f128d66aa366338d0fd7fc2d152898ef1524634c6e426a5ca32518cb32bece83197933a274b5839bd11f23c58b5a502c06daa7e076ff126e7b95feefd90bf8569f9e7db744a2b0701db99cae95b6aff170f79be1f1d702371dac356bd051b4f61bfef5c1590f06039e1400cfd786c58847f30b8557d3fc1d73daef1853d57e714c9a5bf9c67353d984a8ea4975ab6c6f159218dd03e55a9d4cef8ad5f48153aa8056c8a696b77caf6a96fa643a5cc8265f2bd3889f30896797a15fe238c0426ca442ce73eddcb975acd4fc4098b55b3f4a078341bb770a2f0c062df56fa71fbf5a507b40065c678efc1d7b3d6dffe7d3723ea50e26cebbd16e4ed1ae457468fa893971fc714e473788039c7fc7de89edbcc5ce9d22debb921ccfe49379e893f3d6cecc7ba4bc3def13739996b12b346e5950616dda42d9b2a39db9c691963b73fc0c800a533c11582bd71685c709e4067eea0ed5642d4b63e40ca481bb74d72e1f49713d8f08d11d0da9d29fdafab27496e982dfca0cc7384b9066c0a65ce3fe36e666cdb677934e99c99db7009501e1d65c98c5635e0284ae6f17d7fd0551b2373737aeb5e6f3bb421cf8eb5b0e4fa9b8af0777ce12f836be4dca7b7f441a85e3538933e58b7eb476f565365287f5daa6858708b2c9f6d1b82d6da222845ba75ca661206837c3c0d5cb64aef08e79b76eae95b01e4437a3f89a781c445173abf45cb9bcae707e1fac1ef3dc28d771ba18376186ed7a4d306cb1b9b64c2de0127abbeac91345d302cab67a427933f5798d96a8edc8e1e760ea7ad83185c9fdd0990f4936dcae661365b8352d9d8ba969b88134918d249f9d2cca75a44c1ed4bbcd507fbcf60499634d3f80e152ad1f27e488730377b428b274bdaac95ccf5613edd6ac7c63b89dc8b4b679bca3343766c5453141319b71d698179566902fc8dcf0eee25b7aa5ea7409d4f85eaae7c355e911487a9c2f677cdd505b0f2cc5bab236c570c41153875b36e9b5e02aaeb492a68ed2543369e264d7ae5b44548fcd88a58f27823c47abf28e349715a9f201e472596b44519054a99ff341611b520e15fe36ae25c9b16b9daaa878bbf246890e373125672b2a9edcf88ffadabe9e3cdaa46240ac0bc365282d947b61295a9355b2f18663675cf7d609274f094397e74a7a3d9c2e4b209369796783c7bb7c8a0677d552809bb4d155b17ae435e3211b26c5b2a74b69c1c364dae483bb15ce828c99c0e152c0d663b4b8a64c7d922be53ca91e9d4a007c32c1ac3d9d555609d61e222cbbc96f5d510c340272de350527ec354e8a4c51b275c4481b086acbca2642cf6ac6ebfbde2d50eeac756c321ecf88f47c9a6b4c941976c1ac597322f519215844a5ee0ca785775da351d12b2af3a1ac979139b29712bf24287a92ba527f52a7b332a6f9f1a28f7b63fbc692cd39a7233e09c0b6d0c6dcd2baf6fc212aef56a9ee64241c4be200859ac5c4a9ea2f80a00f5432d60235a8968cc950cd767b530a54383595c6a2b25ed2f7936bcd9d7ab793453c91b2914bc2828ccbc16d1f3162eaacc78e156c6d767d33d11f5c654482db9ab238125dc735969cd583edd97c8f183fde2f48cd4337f935aae3ed809aa5023d2db62c8fa731d0812ff2dcad2c8e782481f9c40bc5c9127b38587ad3c4f7f04d1c308495dc6c79b58f97b34772a6aed3d5f5385d4fe9b4487be07ad4bb06f71ce7adc51ed3bf4d247aa3182240d68432367d66061cecac8dfba61af11bc7b4052bf4175b4291f2ed4499932b6025426627b25dcc35691cabc2b85c6acc465ed083c78db70973b7e797b6b6e2c9116c8096eafdedcd921d22fc285f2fae07f2439afbd914ae12af5667dc2d49110ad3e7cc2d4fde4e8d559d0d33a7099935c9684b1e3e528bfc5a07343fa3892af1318a1b8cd9c1f8fa41d5e72cb3bd4e0a82788c31397045100b7d5326eba1aad07deef1b67267d75e4e70b5b92c655d98ab7ddad368e266fe0027e2d8e3511af520c515c24395e5d75c44aeee6e0b9c3f0403fa9e1c73048c6856d59a556f81f59bcd6338bf2917336e45ea64ffb1f7b029a491740d947bac7afa4aeff76ed6e1b8b266a638c9dc3b6bab69ed019d91f88119dec2db82100b4210397c63abc47cae527737689ecb051f94aa3cd2a26512df8dcb4d22df86ce72414b96b7ea01a1afaf8a759ccd7a917e2f159b3b1c2e6bc5cb0865c91b2b32c13d5d04ab71ae2c432d984eb8692929c5fa7116cccb615af5e67ddce3cc194f4e205f6af9a2712b1b3b1b027b0f616f95d5557a2381dbd9435f5fa5ea23218f2ab7025423cd2b2f1c2fbcdbcdea9643425188288df249331e6779bc42d75a362a4822b826eb7b7c73933dac98dbc835fdc63014cebb892b01dcb095c32cb9bb08287c93a6c45ceb698c71b3d145675c6cc07a5422a72cf1c698d7fe6abdb096f73db372fa0ff5cd00b434786e50f75b518bacc1401c4c3e4783a54fd160fd9017947f52a543474a15639f218f01a66fdd999ace5de3da0d73e9c1f28a558f4b17429d0defc5051b13135fd84c34418b41722d0e6d94e5f7ce38f45706c53ff4ad07613293efef060f10362c90d48184374d70ab6eb7dbed3d147d8ae9b3abfb3567dda926272a3383c0d4c3884e6ee59bf5f5fd6664dcb3fa9dc28dbc45af66efa38deae8f4c4ba1767c47d36891a7d741b2937bd69cfda3cdecd4c8b95f85b83b1601143a7e4b070976d2b5f304050dcd26934b8bd9ff4b8609992f300a6731bf0488966e263dcd4d2d28a23a2988dbc7523471150544d2ac9e281bdf7c60f7753525344cd7bace891eff546e1a627a4b79088571266ef1530c9a96c72b7cee67d79549a55be8cf9a231b987c9c8bfae97e51d213d8ec6ca7df5408ee64bc55a536813d2747e532f6caa064cbd5864bdb95fcd6ee7c3b4776d684dfff661563c2afdf1b217dfac2c5e5842808dfecc96ddc9489ff5a4f50c8e431c8e5c62be486f8c72054056e76e7fb5ec25e366b4f46f80bb88c7311347d0501e57766f912d54c3c07032bbb51d51d7abb1522869f320dd927e75ab6e6ceab1a0ae65e00e436dc6de47554acd87dead8c1ea3c4c8aa09412a88a36c91a89c9c11c77051a9847d97b3c56865f55646b0529131c4c4f4f12148d6f1bab67ad325472cf35bcbd355c25b45b4383199113d577a54af74ed7b4661e25550b694d4d479d1e66d6fc13ddc4e1f7b738dbd4bfde5284b66bc9087cdcded18a53465672b4aca1462950d37bda077331e5b94b632190eeb942663716a49254cfac9c3ba6f96bea2fbf3fe7daa767cf2c8a9b4be64b4d785d194977c32778e4fb6d69fe193591eda3046f68678ee2aaaefcd00e43337086b2cafc2317ead82cfd4ca75d4ed02eac8dfc89c20f90f835b7d5ab35132c1c98dbd5ae169f2b8704a1c9983444db4dcdb248f721f59968e93ed561ec12248ee95c794aeeb313fbe1ede2b556f305958e9ad65d194996e83bbfe1dc3a44c75b3da92b7c1c380bb9d27aec2f720b0162e47dadebd1aad7bb7bde1b498b07e1dc4a0bad3ae2be13aada9ffcfd85923e1ae265b764032c464fe6266f6c4ccacd177dcd355d1d5af9e718620632b62af6f65a6533a098f9cf0944b7b9916921b1a219653c6065b35b4580739d9716c2cabf3f6ac355aa4fc13eaf3aa1b99ba81f7f6e708375d6901a6845ddf3641fbdcc999ce8c15f70bed5da8e86f23230d1e80879f70717def54267c822fbab7f0ce06151b134d9b548d587f3fb6a98825ab1cd29ec4ecb697531caf00f2bc085f18183c575ea4e097481476830bcfe15ac3b941f5203fb755aa651e94b9a1903ccd65f948166152e047ad98657066e2c2dcbcdc59847809118fa2873c3172cc03fd0b62dc53477e5eb6ec4b50c9de5bc8537b0a2c1eee255e93ae87434ac5305d6c9c491618831e2c49dd78e804444720080b719c3e357bfa4805641461188cde7684102f26e7b7830660e2d724259321aa4eb4bc862ec3e2ab6f4782dfe5484d15172bfbdc0d72880467acba8b0ad6938ac1df13c625e71bfb21bbaf0e33b67d21579f58346a1f362359eb40628c4f2f88d2a5208c1dee5c53469cf8c1438575e74746261607a88ee65b69e665be910dd9a0a700e673eee573e84446ac0a54f18a543c3eed872ea4de3727c0c5d56e2b454b265e6e8f1aa003cff1a72fbfcf51b175ff4f9c6ee6bffa32ffbff5e5fbbffbf2bf99c17fe8a4d0bf9fa69cff4feffb776686a09662e60ac48a28b56a32b18e3527ae71ecb997d94ab4b7647578e5f86194cdd400c4bf51ba327c6751470ff45234169ad671db5a3771e6da75310c82923ac395f64dd2f72497420763d0344e92243ad338de87591cb0f5e45c95085628098234692d204e0202ffcb4a5910db991f9b0735c4c51cf5fe51bfe5f4866d211467f3fa27ce2657324265f469cc4cdeb5c8f7a779e9a8e68996fe941b9adffeb39cad302237192a1b0a7e639e8ff7f9943a6b644777528456e45107906565d10c3ac7dc2c740d70e296598a592a7e8e17a6bb8b7417f7db0b983bbf1c71a24c02c012817d2553efc09425ca9f329716ef090d4b33bc35669a86025bf06d8172f2141ad6185b5c8c307edd09042213b4db39b1598369583188ab37ece82e2ea8d92014895a68775e6df69421f66637b41f95b6ce8cb30c0fff3c4c6c8ddad1872f1e14e583db0e498a94ac3649e9cae18ac44d7322888fdd6974eacd75f2d0757297d7bf12782138c90b89d4f26ad2e7257fa07e4c5648720ed3a57660bb1ff3d56d229a10acbcec3de61fd132a9b68895b5c07fcf247388dc889c0d69bfe6acbea9fba7fc8c06a7fb339e4829d5b9e31363477c73229e9f69583b848422e78a5aedfbc97b8aeaf145e130e7b2abfc09d41db45c0e32e45831e3c35b18e7e673294075b40c5eb1bd737dcc9cf22a9ead329de9070ec79d4c48edb29b7052983ba886705574211ce592f18466e57640874e1d6481851d002642713658f88894d7c7d093fc188a70aaae89646bc94195a9379b8af05ad95cdcae5ac98fa89d41e6ee3a0635947f3024f547ca3f6220de37c19c578f0968ce22f2f419c93dc58a5b1a346bb07883c1354f6248e0d3e71b2c1c249687206950e38f2e5628eba85c732636953c5021c6096f7f62786e21082e2a0397db1c80f4116976270125e4b0e86f588fb9c56d4bd8ecca2a348dc4dd7026eeb42908ea9168627f69477a6714c1de1dcf0d00e3fe3270e27487701b4fcfc0dcc65ababd77fa21f6d7ec84f634b27b2320b8b7c29449627c1319250edc752bb8fcc753fadb6d0e10e6468bdfe52d11c65b600f9c4c043ac8627bd6f7c225f915281020cd25d4638cb593eb18a66180a57b84782c08bf026d2252cd6e8c0ed3a6338599e8b5c4e9c5f0c067a63f068e7e73a6fdb8de261047a42ffb6bf97b38894887b3ed7da9820e17cc53abac17b088aac9bf0823fc341ad4b4bff75e8cea64187836ff94314a84a137f375f03e22afcdeb66af8541d4c3845148248e8b2d1ad5e836aa9768ec578ed8b8145e7ab3d793f9e9368aa7c45946b97c8e1f5f0216f9d8ab2efb02e579ed4443db3a3435ad949d5bb0a1e1b9f94328decbed0c364fd2e1dd703781efc4cfb25c8c523e4583a2071452032ebb0303e6cf877a668ba2a0e23cb1d0e65e5485c46c31d1ce0392bc53c341a2369d9614e80261dc1584607b13d15c82075b0f5b8e0cd00906c9efced02b61f52790a7f07a937dd2e7192650afaf71de1cd15b1a5e584931b5f23c5a7f5d3eefe889f749187f1c53cca5042c7476a8e90cfe981bcd3bc8d067db9f093879422d9737c46f6844221c9a50c4a097a4ceb57bbc3d94d16b392bc62e2fd5ee672ec3a961d65d17bb9369c2d23c5f655d3e55bdf18796a418260bef5e73232cb34c04c88dfcee5a4fa4faad501a004de27135edbe1f4a33173314bfc88bbdb1dc158592b0d073e850b2d89c0e2eef6735d13ef0bac5691a7b5a891b282adaa0eea47d6ae389c90e5bf87dbcf3be991c7d62acaeae81398e74f6e841d2aeb1d4212d1db263879996d1ed695884de2164dd5a2eda805fb681fd16c067cab5ee7475e2a247b49a5497fdad2af82432d7a1f420b0ceefb4bccf0277c7441b6be12c83d86a65edc7ed53dbde29a088665b4238d07f7e1b065a408b7783592a4c773e1751397aeaf52feb8184ead2398499156635bcaaaf0aaa98e33792ce304b17365df8b84aa31587688ad4cb80137842fb167b3273e230ee96a02a634b14cb810e255aec7cdecfef0385efae213147d8b9b9800eb9def5bc30c6817f74a598c5ea2fd7a7dd29788f1c7d942d20f6334cdbcd71024af1a8407685aebc985d19e3bec15dec51446b806e2ca2c0a02c94fbe1f6d7f38bb92a1729b1a282dca8f09600f4f936c01f0c2aafb6d3aaf399fec50c9db2ec04ad2b2d5c4097602927fd032922dc1137058feb57815c559937b97c88a6add085d30a3d799bc6eeca8b43dc5657824fe06c218d641147eb687c70b317f5c3060359e812901a3dcfa1038e7c17de48ec64e43c925a3e853cb53678f029a4a7ab1db51d791f4a2eda727c8ea303fc823c07d9744b9d50caf2dcc7b437bac74d7ec24dc681ec2381d9bb58c23b370fdafc71b0f355e4317a670a76523426f251a39b1de4301cb7a755873e5b3a7892434d5a85afae9bd6c72b6d07578a5720021acc75f473ade83bbea15886f35d125f85d6b96df0be1c31ffbd91c75e525f6d977e71f324d62497570fbee5e51177c337451cc7846551fd85d22edf323d3656eb5878225e31d87f70b252d8eb305b92214e97835494abdae792feb879ab75f9ca39a26a1e17f09e90bcda53313e8ad2c98d30c5725d7d2ebfa210ec95738f1eb0be1682a0271f21772288966337d31dcee38c51cfcbf1a5be104bdc91449533fd14452ee94d3aa0bb37f811f8e770134b9ab3468b9254e534930d41d2b3b9f8a0be638604a2a192f2e36b6a85ea5512b630fa42d0328ec55268a00abc358172673fe44cc7fce485a81504803630dcf5e85d9386779220d9a57fbba2a2c1273695cf1c5470b2b8870e6dcc32732facf227a0d815157337f87e9094dc939e0f3f88ba4835db28ff05eb18dfa1c17b4b505d9ac9373c1f6cad757c65237e8a6105a7ab9473bfff0c30584de51a7e6ae53dc991487e2a26af592e0f53f8bff4b1b32d9717224c713f9efdd4cdf90094f636683c9e1cbcf5479d1c81140f3148bec4f3bd1c66b6399f4899f4707b16e338e92171b027ce74787efbb85029a0ee3818d724d856d367d03d163be20e8ace0306f5cbfc1acc4ca6619ff1c18afe4cb3c4e63e130159b622964c9d73313a09a9b2c173351cf784de79896cce2e5ea3227c63360f36bee4973ea52dc13d0f1ed4d30e1432c94ce5d01c5d101d2042bf64750a7a2e2fe1876f11b0e496e051dd5baa58214c48871a4069a72a45d417a2c8dfcf1b1422bffda65ad9593a69348299effd72b6419301d14a5bf3e61092d484bb9af7ccacfc42e08edc0de20c10ca446543ae4246a08b68c47b868eb9a1340292c68fc311c9671556dac991e39bd9b00f0862fe4e91e839a0c751a68b07037e1cd8aa80b8dc4408ad47aa8bf30614a44d9e28fdd0fcb2394aefa617ee413801e1da09bae604c4c107527c5d21cd787f161898a7fa9702ad51540e2fa390e3c4f28dc8c7b7c7e07dc6364d1311844bb87bcd2d48b2d4d3300eb8c30f68f8c9cdf959c2c85fe38c1aa50caf199213c9adcea3d0d585550b1d71204fdb250e36bf5c88c12d88e35cdbb32ee7f8b2c1ae67d4a303170c651ca5bc8ef2579df29700d5ae81da4c0227858608aaa5c12eff71d733c0faf436f095ecae61aee0e06db9fb7d10a46528259cc6001a7e7538c6aa5111f95a117b8cfdd07ba05587f4087ba5fe89e93856779d11a1828d002697725d17efa8f54279b14ee8dd211b9110abe032238326c61886e65958f023aaafe4b5ce822883075a75657fea68cf9f6aaefded95826540e272c501bf468619084280bc67d9ba5f55bf5e8ad68497504e19384d74c73869388e3e64c1fc729e3750465c5c749fb22805360d2556c147b01910dd2f89cb9456bce0b4573836a918037691f8a187dd9d0190dd0b9a802f53bd39a9bf7ed1e7209f9be0ab31d3434aa40593f22e4e65a698ada176958bb49224557c20262b6301433336961f0b85abedf298389d814243f58d5221f01424f184f81c01c0d7e1c41747f3a3858777f42a5d63b265602e7f9d9176bd7974fa350ea648b1cd984315013b7ea78ce5032268b96c3fb4be6c5e23c012d7cb541160b5e3bc406bcc01710489dac949aacc925c96e4c1aad919e6c084184bfcfa45a5d96db602ad22ed49b6ec502a1a9ebc11cd1423579a8706e276c0477fdef45cd61e0d099289b191853a7d267948718ec0161f31667e042390133f99ab6638eb052984ecbcb8ab940db9b0d7c3d5fc95fec63df85cc686912b10de442572f0cf8511e9ee89e0b0d074a838d704c3d8300229b2f22ffaae74a8a42a72fe768fa32b91dfbeb1a4e48aa27c2758d9b5847825b55441c2e6295d9b0cd8054e48a028bbb8681b8c9b542bb0804de844eb04ddbf2eb741f4524aadbcd16bbedc9011dd23c6fbc29dd49e8d01a6ddfd2109e69cd9832139ea94c6dad7ac54efe0871da3162b0a0ec9f41d1f9fda9e0834256c357390467533f9a2989f68b62ddc6278356f290efc9787c019b16be5bffbf713e3f8afb83ddbff25b7ff4fd6f82f560f85e66d938ccdb02248887ebf30d8ef97475a979997ab3a2eebf200324f873a15c9106d887353b59cbb21e6284a6780e0488d2060e0e76dc6b389b476d3ccf9f37b875c741e7f1a37de6912657df9c02856ded37a19d21a9a35121717e42360362b7e98676cf80873ec09c02aeb5475522834f0b5dacd8d9d7b22e707654618e2bccd9057d2d494554241b0f8342d7284c7b84b3f9a41d6d45d723165c1718463e08dc23d8a157e49f18be9f329ed7217fe305dd979e847fdc390b0fbbfdc87ff95e9aabfbf62ba4a3619501c3efb7fb80845280db5640630f8c1cb128cc7b3947a265f9cf6cbf05e0a6a1171edaee21bd1b7fb3068c3c7586a9d4e4d5c0f4993dacb6174cf5a845cd6e4653717c59cbbcc9fed79bb263bb130b36960a586390848e71c69b2955a865ea746a125d2447d637112bcd03a0d92e80503248a7e6802d06093fe8448d36d79a8fb7ffe1c9bd2c2fbaf3cdfa12533b3f372e3519ff4c320f4807ccf65e7ea387fa2155bf10177c4a6868fd0e02b426aa420f5b59a0e5b668ce04c162db292219dd05748cf088dd02b5a98e88a6edc11f642f0dc0eed7d72d9d6c4c1e75f8cb39d956a9ac5aec5aebd1ba6b6f921f273cfdfca0531a3d934d0a6aadd61aac6ba057d6b12781ec3c9fb61097fcfe4be6c2abb843900c3b0fca6d6904296e34b6a315bd724b1b35d6c693e80be6229673e9b30a7a68bfee94e6e97939b4450c00b6e46a9821b8086312a75331abed31e4bb1e6cd6992a421d7063c7d46dd54e75ef26db5bf14fd7a50739eadab23a7c33dc341dd289fb9c772d0ea55af07d84d283d5680fe85ccac3221dab7fc748e49a24c58b320c3a78af77692a9f3f3ceb1bc7baedaa5bcadbab1209f58e17e24406e4481c0074193ee49465c039d37c233875f9150c7a66eb17b3cdf3e032b67fbc2a08502b754216eaaa65cc43be704cc1c71b47f0eea594ecda70cefaf90136a8a5f541d72c3b9bbc039b4b645666e0532e2b5124020507162c0763acf5ee40b3d7937c62fb216cb3906773f1209add0e5f18498bd1ab492ead4e40d7474b001b4ba7c800f71435ccbcf0a80c19aca5c88cdd75cf167de8d7a0abc7a59f054afa94d5cf66c78025add98aa086ff3710e9401d4d559334f73db2e0ea3829359c6ccf7a9481165f81ac63fc8d2dd3b6361a11a2459d7da9347e0f2d6cff6d450410d3fb1aa014e1b2b19efee4f4bb480c26b381bcd72472d89cf3155ae9b814c976066db961e0382c34d9179ae8647f1dc4306a462ad2023d08704e611a66ce96897d8488c3c6b02a6fcaa3c3d482898a3e2e25500da2740e61c4537e3f1f8d6fa78b588ec2b1f9b349ea26d1fd97bf6ce4dde7bf23ea5d1c92232c66cd351b7b95060fa7d4573dea3c44ccce7ac94ccd424555ee4667515d66b3616028b08214dfddeaa4a620bf7e8242fcaad2edf990d0a8240a9f2e270120322f228d7137b95a4b47b7e14e4a787b4a0af2a719b9c41147faf4a666d67d1038fa37c9bbae3318b05b9ee2cb39b719aee7a98093d39d3f312a883d6606926f544b98444487d79b66f26d24aa12d94283f15ec60cefc028a969d9dca7e7e299ba58c4ddcda128709923e5a33290df4e52d05dcced81764d18dac99e8feb425458dea959b9d014cfb5ebafee08665bc8afdb539d8d995ace4187821fc47f5e0d04b53bfa286c3ac5d189442f7d00d3fa6a06866ddb362f385f1cd28f65de2bd88844e5909f57c40d21d9a5872c6310d316583817acec7f0c447af1ce24ebf1b4442edc3f66b3753742da300d6196f0ab172582f1c4776fb13c7fa007f08c94318366436ccd0d1884337b591c4f6f2ae11acfbea4030f5945050120f2f10014105fe9888803f338d070e3835551bd663785566cf8cb521f5198fa2e602ffc9f397b4cac80c9833714773d3896f30a38afc029a1a2266abbf96f95d2c2ed0ee08772df72dc8ddd0707f618c82af903d88a0e0a086f8bc2f8fa1c0b1083133b30b8afc66f1f232994e7e7af7add12735239f1d8941bd94b3b99e3130ca433c84b16f0bd03f2645bc070a7901d2e91ebe605269ecdbe422c7362169aa0ede74798fb0634ad0dabb621c3298fcd4b52fe6e2341d48551a1973a0d779a67bc304c704dba99ac1de992f0042a828bed026ca4b3695920af1676ecf2bc0f5caf8c2f4e027f7b13a76d8b8781acdc2d1d6352a913c997facf2b7b7377e1da16126c7be12f59b735aecf9ebcb76fdaf6adc8a5b086ee8291d05b25da7a81f99536b3de0d72f73b7de8592b60ce46e9479a369b3b9deabfd0d3926fd057005930fc0cde98b2137d8f713dc245a04e5a6e021cd9cb681a7074a75f697ade6cb73a3541e625011f7c8635ae12a6804c51abe1a64d41af7e08de5fefcb4f342df54a4255d7a55781b8fa02fbf33c706698e8e2d508d9172616a05c1de163237b4bc91fa0022e45973d14a0c8a4f5889041eef6f900e9e3916db110835537e3873dcc531c056e1fb733572abbf98cd5d2490d816a51af2f7edadd7301a4818fa5054d536ad74438de0a03bd9976ab9a207452a3740b773a5033617193e604cb3544c2e253d4800477916652cfb99d072498479c807091ac4d8633a7e6f602e7e7f49a1fbdd932e7af80afd7216a750a96201952635adef1112d69738a484b5be7c553c0b06ef341031b2dc904c66778a20746f7095f6b8f895a53329f87dbb6541eb7e5bb6c6cbfeda63fe24e100ff6e710462699e11f5c7089e9aa1cb0fa72dc94dfd69e63ea1df1ab5b8693791f5550e3c372a7d1f3f8a498056770d6468dd68fb46b45041dabac2bd9bdd96fb0aadf3c9b534269d2548557e11c8a533135f27aec06e42f47d5d157f1456cbc175d682ebcdf2d00f3ba4cd617f9211dba08a9fbb94399c02224f5af1dce48ea7fb5aebf0a56bf652a1b479c06deba180bcf6db473c3a17238d18891ef9cdab13a36ea2222e0e15319fbada90556dd2a964a0828e73114c0df3ed407d2581369767481b9f25cc5a2dc521f9a56108c6cf9cfd01efc1bf2b91bbdf52376abc5d499096631a92ab32bdaf41018532d378d08226fbade3f77d34af3032b320beb0ab109f8a4e9ca73ffebc2937932e18701f32be81e83403dabd63851667fb79ae67d39c81870986207dc88b4e48bf14c85e961ed97524794914496fef947ce30cd234cd8fcb4371f2dd85139dbfa10712a8150b5c692073799aa36dc518d088b0af692fbed0b7890fe2f7c86a566d5ed1af56b4765d9d1d7c06c91e7a6e8b4f0edeaa6946b85eb432b9da5762527ff4bde8a782a8b41cf03408d7d9fae8797cdd4d211745ae6a8b86bc8a24aba2acb763ad170c216e58c5bc0eb354a8c16d8e0c1798cc4ab166cddb41bc8cd096cceaa84c239a0e1c3fc93d070bd36f973d6d1014da5027ffcbee2d29b31a52f08fdd7d9942d8e682d9e214c1b3331c511d5173294556218f0058b37a1074691d56efd736ce177a3fba6f2e6ecd2fb2a70dc475cf44e19849a11361e7df2ba7f3f10e395c7943482db4727341e565cf29a75be65dde017dd31c87ec1bdb0bbe5d442497fac87af88f2e316a6168dbd8bf662bbee5318143821f40f2b421ba3024e062bbf80ac72d48126144d898aa616299853b3f0aeda9b722f66a970473c41cd00840d8f7c0ab97a389efe502c7f0c62c61139065c0fd22361f9e538db4a58bd1932ce6fd7a43530405b961f85ce33ae86c90f137779945edef5b74f0e3ca7ee137af2ad4825cdbc772c9c78f223254298cf9780e443fc6a7cf9d4673e0aac34d95a3bbc477491048692774981f42184edc7331d6b3734c117eeefca2dcff2d4cd544f5a7fa1435d5fe3d52aba15a83f044845ba8e055bcd99b8c549423d3adf650647ec41edf0b42e2e9d74edb85c11f779dd240d6d265dd072e825edafd16ef25ea56fe55401c7f7b80d7dae1eaa57a06c24f8181aafb5d78f54a79690dc8fcebf7c8e7c455f680f93c6b5e3bf1b5fc819b482b71513b51b7ea8b2e63411dc75ec885221cf8479abe47b80395c1a5661c99133904c58d23e2a7ed5eca512209cad0d929194236c1042555325fd78f824af020e348c8502dffba7428b4d2877171e7c399f4921080f07a9f531983b3ee64c5bcbc0dc2581c675be5040d643cb7ad03f6fc40759f8ba682c22f1d5593c1852446acf5cef9ca37daea98aa07be0009e8630ddb6d4d5a4ea1372a08c88e60d7f3bce5e4f030ef949b3be473b8f0a3f207dd1d21364f772bca69658871b884bde07dafacea6160ea489f918f0ee23f51a0e688e10bb3a280c12412c899d393182fcaf77d8d7b26026b76dcaa3457c0be6ec4c415c331d477e6792b29bc0ea8f2a6dbe56c968af0c75c1504e1b958d1df40c39c6ac205c9c32d6d0156018c48739c7a7f277e8283a71be3a70b2b98b46a30bc4a4ab32cb77e8236dc8208ec18b8e212db1c8ff9658d36c854cdc5f983a47a5fa9e4c9a4608766946814cf7782fd6290429e95d90d6c70de11c8db6e90fbbba2ad6c03ab6c3dd15a0686ab64cbeee498ae9b88128cbcb949dc4373d2ccb69a7af26480ce881c088ea69b60257f9675a7d502e348cff32ff1a97884aa1a91c347efdd22da56407644cdc56691e2378a573507f8a3c9833aabaa392a854aaaa482b05f95d38106ba204f5642c17415255ec0795abb2a011c9c628435b2202f5542a97044cbbbd5985c0ef096fd068d370e82347b5c1efdbea0116c9b6bc318d83918ff805aeba5d1a7c5e9d75f1fa51c8a0bc2c11322e78d3797b1beeb4eabe4118b120d884a04736ef5408f0649a0231f694990c6e459c458b53acc0e30608fc7bac3bce4c7750723b2a59d0221ede6b9995b35c240b19524bc31f04e6344830c16e76bc2865695a623899400af84ba97f3d97652e23f835863d9971ea604aff8b6f412869624026d5d5b0793782ec199adc7807f81ba8204ae00ec021c65693393461c34f95c4ca52558ea3d1b88c04ae8e3c9b89d3afb5521ee2fe972a9b92a9bec987b3c8bc1b2e3eb9baa273dac0cfe8197862b39ad07b8a8a8075e244ac660bbc99392379d7a233a91fe22dc4e7a19140e0666d85d2dd98d62a9c2fc896df2bbc3ef4e989ef50a70a80965f8e1810836c4741401c6eca0265f15f89272dfe23ba92700a8471b195cf3586783dc8f72158c621c781cbb31d40098a4d465ad2168c557b8d519333ef558b49473052ee58c23e99e66ca4e94b380ac447541d3d2447f26274d5c772840b920e09757cb4f9ba2ce60aaebadd733d00a3451c3ec4d77bb0f825774adacee453c52d6e4cdcad60d324d28beaaa38257292f65fee1c13e27d725d5ba504c811f647cb88d6a02d34f009c987a485aaea50a6a36a2e435e0363cb4dda594bac2cb99129c762eaa8b560afb76df257404b6ba26d5b0e4ad1b54357ba9052ca9fe829c8c5c06a7bf6e16629d4a4b57350c0a2c3bc48f38a39398ca93bb8f2b410602c39b3841b2b0f2a34d7456de7533cbdeee24f52fa97d0316d8aaf2caa0e67b9f0a5215c7b335c3907e18eab571aef97c8693bffeba15257b4a372c733c2434563f49400bb26b7c65da687ec560669d8e8300608bc0d43ade4fe64a80fc4a6c605ab202963a0feb37d02ce5bdbafed6ba9d7ba9aac7fb3725c34c649cc364d7ea3d90e0524ebe6b3ea1e2d22d6adec670e7cbabee271232809b09704bbb8f503aec54938cc955564efa477c10070c4fa2aeb5134e9e27eced7c02ae4335b012708e10b0dda08a4f82f2b4a0ba43b945c2adf5eea39441751c33e8d2bdc2c418222f18e4d34643453b5ec239f38c510f0ebd0a4d5a8b012a0830f754f2b3a1b2fa22d258c7b55eb65a604360684bd156adb352924b8102a3e424724911983337153b00bb58fe881047aa400d72ee8fe8ab15b238a1717e998fae8cbadc359a7d66bae08d4ca28c0c78f17967bbc01ed528a444a00091b6ed2a4c2d36b565acc5027e5226b11a50bfedfbc4515a30682776b70cc8e1b58f77b040b8c65963a48711b728e60f9735c326bcab9cbb7fbf96a1fe8acb2a7f359346eb19524cffc164051f812d08fec5569467295ca9b729d84b27db8f08adb41b3d2c65c7ac1b8f4c7c7f4a296a677a45fea1c2141917545a613a65f39d0352bf0a9b31d4249ba694767f20338afea6c3fa262d05ab0bc4d8f2e74c633deb9cdd11c140dd06c4c55584fbb217f6a5cbd5091b4ad158f6cca2729c29557a7bd472591ec54e0a22c9cedc906530b9175b1e231cc15d272f56673d7d4fab6e59c6f9c6aaa3f55ef4a4a325fc4aaa76f221f4949478858a49270a36f409944b4e80c2d33ceaebfa61d3bddddeadc4a5fb0e38d0d84be8b6919124db0c1a19fa5304fab32a2bde4d13f7e865c080faacc96f8f94ee1d134bb19070f5cb758b67f45987c8b86a1704421febd54a4a8005f393f15ce29612387790a1fa18b930be157a68b785d293c0fab9718d9eb02e6acb559208053c257e158c706db363f6b3c5714f29723e1bdc07cc535e71c424489d658b144fecf904dc352efea7825ec9d4b36a2fdafae0589a9caf9298a5ec22728cba6db04dddb2defce420592430b02608ac73b5aad8f4ab52b4d10c994dbf1a5c21d68bed90c108ebdfb52a644d0c3974358c7bf30831ccbdf49942d8b46dd11446d9c24930950d6583d6354c5b18cf989c983ab239fe1ebfc155f5f81ea47b39837cf274d259f0a46d0de6926cd9e4a608a3fa9a09abffd4aecd971662b57234a039be9049ab58143efa90693eedb443a1fd91c07f6542b62715b0a89ffdfb657fe99f6b7fe79f1bff63c5a21187c3f99f6e6cc51c91580120a2093d9e69bd39f79fd846c62e06d93b76aec18f52c65e3c957e0722452e3c7cfd4ec0fe3918e682dd26bb06bf300c2fbd5e079f4b169654e734304216892ebfca4a196299df1c81276ec21a737dc01b1225000034858234895e1460581658dfb509b7ddbd6b0c33ebf9f7cecae1c90d93eaeb9bc356d4a901a32b9ffd206f11da3bd0b833396b83ad69ddba4f70c8e8705e72565e9ae92368b1186400cfcdb959fd5ca19875e3a6f3ad0651ae787735df34933b3ec1424324f1259a9a762de533d545372247512ebf2d4376a4268951719b5dff0a369f878743cba95fbd1f95af2e8a9a8a497d63cd220c972c1737a86208b62b57af5b897bde25d1f4b97047d06155746b2889d39250eb92c32f3af0c4c8c05004ae532aaf2d452dc69c805da3c13827cf03c26e95718ad7e9ac2d2bc9ad08d9f0cec5a22e1076aa8503207e9021494ed7e5dca0e3dfaa296bd144c898aa57828e33201c3e6740b6976839c8cfd7ea97c75bc71bd1f422f30e49174816e3d0875615abdbee896814a6d1d95a60ba05beff862c329a5cd034408706ad7dafb89db6545ff1e44a3386109689d132ffbb9ff0a6ee83039f395fc5675451daf3f9ef57ab67ff29b715ea83c620d02096b874ec7ea6e7669d6e74981edb4bf41fa16742c1fb376f500d07c061fe9b104a61f995c35688bb2f91d480fd8cce20fb5900305c2ffa03d8e1b1232893d28e9dd9266ddbab5b3b73498b77013c4e9760517fbc52cb5bb57dec22d4df2da4099f17c2d57108a2bd0d4730d8ce41beee0a46360d720f1382c3aeb432977f3e8815bca3858230b6f775fcba005f8f3be2c8e8f40d56d10e654a1cd8f5f2e444f674e6bddbeec28954c4d0aa073c57b21fe5e293e00c6e47365528d0666416c415f3bfb2c04731ce02c1cb7a741519f99c0a6538c33a69d365780e9d3666868e16e213ab8cdcf79404ad5a557118735686ce0c62a5f558a20b9d290ae5111c91f604aebe90841dec3c7ec8290e91ed1ab7145eeca0b3a32f42dec179825916bc4809ec6ff5a6a577733c66b6a7e70653592eb559c55f8697a9aceb8a24e58d5bbf014f7475b9bb32dc7b2abb4718b642975950b72a44aee034359b368e03159a102ab75beb4fc8a31911df7d28cf5bc738608aeafd5578debca5a9b81688824a6913e8ec3fdf6034a74089fdd16fb29e770827021da3e77aaeee213fb0a41d128a5927065b0c9a1aa96c87b7c733dd3bca866f3e644f81d6c8338a2941b13703120f94156b3cce4b92e5f16285e95c4c0175ecefd283f3c221a4b879f237bde77df81fa32ac5a975af85874f9866c86a3882aa6c3ed665c103deb27050671f229f278589618d6d841bd72db73d8ee5a251ca035512d3711f93f19a2398a1692b9f23b2b774a7266f70c9d132662ed6cbe188c28ae1020bc5c0736f0bc4820901662446bcdf16cbf29526473492443233cee638fd12c44b0f9f0cdd4d754dc748ed382d1e799099278c14f15cef7902e71d5b4bb5f6f3fb7380fe122b72064c225d03bded20a8a3d7bbfa30ecc4bfb9228e5f2ac434c2e8bc0b1decfa88d60aaef3a558b199a0fe247165e3c411da62f6a818d15d0c6558d11825124a4d5eb75747283620908e68734c0b0f4211457eb3b0c695e46c2006fd36984663130bcf7bb2dcc42600174ffbf477f8c3ae1a40772ef6b4c23d50f3824439093dd008e6c4f27083eca43c47b1ea0268150a04d011f5fb010fe3caa689f9a9b557cd0ef6d0c77e54c4375fb4d8cc6f932e9f9419619b844ead4ec68cdfd71cc8468be98b221039b4f6ab3f3c2e47a53101cc08c6ac13a2465deef6f9a13d936d91106023668231c6c286df592dfcfaa583b3e290b80a8b8982a981754cd7e21ef9f9c3535dddbe9c4a3b514c2f74f43e84592cadebb40cad1b441f316196f9bae96456894846b0772bd9b46123818a6b2e5dbb4a02f8f6cb8b28c7f52c42382c3273d5cade0e53365cb8f02195d7443c7e86a343d34d2a532504e6a92524bb39185597004e0950b8710f93428fb12f17664d646dcaeeb9ffea071fcc0c8b5c43240a726aed6d6846f8ab1d2dcd3bc0015b85fde831fb727489d50a1b4b13056c1d1a81fefbd55e76423a5f8d5762611aa8af42442ae828c3e29d828f88e4725f20df2054f600aca9507abae3a7e0fdd039604190a459247b11b2f549b8561a77049e7a0c403ca5504270e634bc54ee1636b98ab4fa079817bf35d67b11f76de51c4f24cf7b0e496ba420f6f61138f0fb09a38c45540ed483983b7ad40857d12843a305121dfb6b9855ac277f9cf7d0d3943fa702e8b7ad1b4358896d6b4e3f839396cacbb4d25e851b01562047cbc2f36b6c648a3e1140bfd2fab2afbcf07133cd806bc48df8f7c4a3d0aeb5abcd735705f780b6d85193659778f6cc90dd87f069d7f8b9d31269a3e1bbd6e6cea1ede253fa4823839b452809619e85c70de213b16c24e825a7b5420f4f9199476f15a22c8036e8ced6003f1e27c9219e661fb61c5a698ea96fb650077fcf7584179417cf7e1bcc4be0f51994fa7d96a8620f81b76ae837206eca7a98c7fe6e06bd0fe7ae4c29c125d4012979742f6c4f1be28fb414dc8108b98857cc579f89104369d80b87f576730b556e92d702f2cb123de57044ead5096db4ca66daab56977521578a8f75268999ecf6f181dd6af54328d5b51622f9196384ccd1602d5390129037414d15c65b6e4dfef86ecd7ae1011d63f353b59297c6a8917d93beb41030487f281e472b10fd859bce9b7159c6ba479761915b5084f2ea8b26c7afd829aeebb436de83ddbf803655d5bdf0a01e7fca29d51a5a1ae1a5345edbd218a6cb4ac16657dfcda52223833bf7a73a9f50a6ca807956e1fb0addfa0adc6dc9834d293ed285631865683b1789e1dc03a63c83c8c8834da8b89b2ce1502f0b961cbe26858a5d8c55022b69f15331553645d7766993b6e2214f070e605f0078b900e4a2fbad6a1937c6489cae7a7c111caf05c07128ed722c79b1c1600cae6d2b2df58731e1218ce51bea3fc2219883da8032acbf325ed2b36b753c63e69c14396d2501c38aa65c6aae2444c6a1f0ee6c511d8ad7bbd1bef7a968505f019985879e65ff5aae2aba474f162b09e120c21794eb28c639a52b2bfd21c7dbb2d0b12c6b3805035ba730b13df04ed1c0f896b6b027c033dbd419923580f19daa6e8fbbf85af0008ddbfeb21b0ea610ecd076873a4ef9fd282044023b2faa8a4f2f2345929f5a940c7aac7ecc6f4095fd2615e76a835a5ff68aedcf51f0a82fdaa8acb96be99c2c24b8aaf58a0f7e0db1a24500a1a3512363caf7a87ece12948d020fcd12d83b95cb2ac9391d69056340002c89f6791350046813231f8102c4cf1c98a0e7626ffe9a945d95a84e456bbfb74cb5e66208461fbd3f53e184a074f686627e805b43a5091a932cb5fe2466b5084cb3ead32a87cef998bb04d7d1d680f8307807593941c76e97905fd51d4cb0cdcf8ead83b7c7ed17bc8190d91b4b08c26156deb701946513f6591fb1a6c985164c103eb4fc3ed95b96a02ec07e6045496452d211047684a2e1c5bb12576da0aaa41d662146099a5bb1bbfe2a6a9ea16bb1448eb6b0d2594132aba3f619658a328d1eec3433deb0112caad47b6805d8fa648663dfea6d758e37d08212dfeb17d4ccf3c4f7e045e04c6453c3bbddc3e40b922c28c595ec514fbaf338c24b1ba60b17750d5c56618109da35e8443898f97da4e095c9b4a6a84cb2155ae89030375434e622e48076e5717367b2fa814d1b9ae1149a5a63713da218c9ab07e171c432fa2c7b266eaa5f7c7dea2cc870291b7e6dea4e232f527da74d4e334d816ab299be43558647d7308687c039d72879ed0b623a0c73df6ffdd9bbd2cad11ee694c96346674ce3d22fc8f34fc892c50359ea2e74259879ef910b45eb7b11c9e483a6cd30dd5c65369a11208424132b91b5d4997faef9b0c33e305b4e8a323fdb69e14b5911daafec2ac23d7550c021a4984fb8937ee7648f4c6c4619ed3a5eeb05be7a66eb39011bf2077895332e37ff5ec557b46c88aaf6eacb5de3cf841c655a0fa82e782b7fe657f988f9ae00d27e3f4e13ff6e7e15f8abf95598690ab16172d418b250d99348ee3d91eee2f0e1ffaca41e87b6f8bf6b4dffcdb50c7f802d1ee66d2bd38f1366a250cbe0df4733acd8478519192ac737bc0c2bf39ba6d6d5d4f97194c871ec057e9221f864e3d1c680f9b3303e77f0014be35994aef3d3c7a4ff128054a685a441bba8397c2f255ddd3cab6875472daef995b0de1d299b3a9cd65c300a680906ec4fe745786244c76190143e5f35d259bbfb0c1687541bf1577bbd9bb79a1d55c86c256a5e970254026b2236663892e9bc576bee0261969a839a624c420f21402b869b5140ff21341cadee56f2076979c94cc74c0c87b3f7c6451ab800e355eed3aeb1ecfe1a2ad81845a5fd4c2bd419b0b47a3c01a3fbb978b3a4830b443c95f1171d643f5dcebcf1909d90e9012da90cfe3e773c23e153e7289cd4a716c435585b6b746b960cf34604657f6244aa0fb9d71aaf13f2c5fda8faa21a2ff501efe745f94d658d89e25debee51b77b22f0186d05cc7caf74bc5836bb7dcbbfd15cc98a094e3da8265a404db6f936de2779fa35c1f137200b54770a6ef9d6251476819236f64148083c9c6afabe6fd164fb665bb09e3205df6222bea498f85e91722073af4df02932a64121c05b2f109d648c1dbf8b6e3169b177b513a9115e01af6536957bc08c64780a0fda879672fa87c37ff678e519452be7cdff7e92cdfd9d8b7cff958bfce754092f7c39121cf1f8fc3f1f19874320a23cfa11e8143a438d895976e9d298ddcc77918fc64d21e6672a1ac9b82f9ad075c467fb1287a52f95419444cc562ce383f559a1915e7f10285179ca22670621a11c8874c886276fa21c0e478c16d4916881e2dff6e014922100008297d523b56261c1cd186c8fc7454b2c42e6e9f582e7b092403a3a79703d0ba84f982980b31360cd2d68e0a84dfe1684438b10565c2086753ccf47123813f816b27204c6547256daf4ecc7881aaa726d389f963771e7270f1abe5a9fc53cb3a4c5a3da2799f7f3722ff2a6427a1d0f9183dab7b248ac63a3c21ea3f1ecdbf082a060d6dfccc2610161b19817934322c2e6a701a2c470a7b0505226d81bee58b29c661e187c49268d8731ebbb4bbdfc4943f6f052fc6172d310ab253cd1544c871a8f3d0bebc302389b6e9c2905d05aaf35ab5e9b9b4c574d8379a8fd0d2a91046d37fb1aef9d4f8d2ce4c935bd3ee2f379c649af66dbcb91d019a8c04824a7ab1e6d4c96db89b465180f1428c61ad448bcdcd752be11d2588fec6c62dc4f930064c5c56ccd268590fb0064676235e5ac63a7c4d79f2b58185c9a97fd380132a8c307e8b0793efb56db5c3a75c1cdd6821c956220e469812ce84f72834730d055beb578b7b7dfc6aa71664a4dbd9ce0c3f38c5b67eb73ebdae23ad1f5a4faff61edbd95a057931cd107a241ad4c6aad353dcaa2d6fae96f9cd33da2e74ec4febdb14e39e5d60724b28084261fb887c6a4a9a41a0dd53b6313715bc72df86b38b4f5c607c687adb75b6261542c3664600b73daf5ac1a8e501622ae36e70c6a9e29e73b6d9551c904368a907f370232a833c23544d64f6471da301ee9a2318d64d0f11601f08d95a99133304ef5464973431b73cc3de0e4e213350d2116c8f4f72b1c3671d59cb8d450ed7d184f620b46269cea00dd5af93a0eca3c4d8b851617a987db35f02f595044139f20c2fe137b7101c17af95d8d7126028215416c7e882c8d8183226d61e383d92ea1532bec12a02fbe0ccf12461c126e353bfa0b51b2799f08cedeffe45903f5ebd8dc79a0b4b49788906cb414a2cc8cc239c12c4240a1c8b7b22c8e43aea4910418d5cdbd29e0bafd5539ccef6784a89dd26ae58679183c5a74edff56972944c6fa21b7559d9939b55bdee86ded9fa7395b75eafb535988c18945e9606b15f0f58870aa00759d7b5a556d54a66e50df41a98ebcbfefebf5bd00a7973b0a733867aff50fb3773168b168c73b4db0bf2d46bfc0bfb90267fc4f5625a64122b00fd66cc309d795e3277ba25a48822be21e9da3d0863d6ca595a1d0df07aaaa031202171d0ad7adf1ec99ba5e107e1e5384be20b282fdab7a71950b2716ddbbd8950dcf0d0f428d1fa7257792aef2ec369fedbc9a3080e2c0d57bc8e6a2949036904a1b7b8ca4b690621c5c7be6421f1d7b507b8705f5a225a160bd661d809be00a1213129c2504ef71920e4049c65a3f13fbe1b54a38230adb4f5dbf0c5dc01bff3b0b3802555c9ab166505bf035429b4a6d517788a71ee04142dd9033c728447de25e875ba435eb94626dc206ec1519367b6c88069407af56d9370f1c39a7be8e6c19848275cbaeb5fef160df72b454e9d141a6cce4966058719562ac1aa8623df5cb42614eeb7bf995b5adc4535ad4a12c8eb4c62a27fe2088969fd4fef24cc557cac1a65a5bb68efb0c4fe2de581f7cee3996a515543fca83f50fad9cc58cfa809ca963c63c71869e46f3f81f52ef336405acb273168cc4b6dd1966e3cfe628b7550e3918184dbf181321ffb7dd769e77f5ed82b613de3290dcb25193175622ddc5ad14309a4323829f6fd7af4d391b61beb24277f210ce8fd35c08f5ce163a8470a14851d2ec1e4bca9884b457454f83e31f924ed56edb58d542665a5946fec678d18f6f991f1cd5e01bdebf1822c5166876ecee88b04125af94920f7d8c519d6ae9503e63dd5c6ac172069952b2a7766cf952e71574dcb9518bece2bbefd2e42da90cccfdc33d16b2ceaaf53a81358bccf0adba3c2611f8d24e5df53ca2e27783f1fdf7203c81e338cf797e4279b758897b118231db1a21234c4902f52d614235c45520945b7a682bad489a8db61f38e32c410c608a76b7a46f3d9eaeaa4febb9a6e237490f7035882a20e2c02df3b3cd88cc834f96a5f8d5f5a4054cfb10a2629706dbe2f79c65cdca129647e9c8b5e26826ae517cec1abf4f77e8a09ff07045f9ab50bfddc70a652579173fbf3843439b2b9003ab8f54d6556ac5c0fcf498b18e83f1c2aa38a5d832995fb0a4fdbb5ec61738e7118e2fa25e9ccd0ee26902ea44958dc89737521e59a0836d66a0e4c08eef6ba018988268fbaca75b47df0c98e117fc9d34d6cf57d4f3a469be1a74d5f25d420746971f6b81bc1c02bac9421796a448bcabb5294807f40bb1b33fcf40fc680f094ffd7a0a70ab73d3bf6ec306cb964a9fb28b623fba1ea857e87ad10fd1ca808a447c865ce2d33fa84fad5f42de64f37d3f1384c5d73672e3c18636e9cdd01a17d702d91c54b007943fb28228565b821f9505abad3d11460363537aa8fe60d6b0f12f376b0f4c4b80f0032fcac29196fef88d00dad0c8b376714593050103082a9190c0cb23df8bfe4a66b2246343855e2dd44c4dd40f416778c3b28f2729d8b3262e063ffaa24a1064fa05e5eadf4473804bffad7f1af4dea68f921986aff8df1fe91fe4cff4cf3feb2bc2ff5e97652a4984f7f97fbbe33385611a3d662cc984cd3239776ad2ec047130378c12b812cc4a5398ac81d962591be8bb81a53f43edec2ee574e7ab888d0cc38b36749dea5e7ade2065f11ffbaa003bbbce4a551921d92adc926aebc0d1ab22c101b449792329d652d0cb946edf9222b2cdf946b2a59ed72a13a015ed234f09837ea82c5e46c52b3479cc54a5e546cc5b3b92ba9059ff847287521a83ef77633c2c9752cb9d50d69a25dfb820f617ae56374f6cfcc4a4382dee0d65a5e9b5fec84eb0eef7199fd00a0da9c99b0c6cbab6e5f128bebb9e6b818bf34eeb6333b2062d83c4500a894073d572e24c5f10f3345cbe7f5070f0a99e5437a31d1ba1dc0985d6c5026ff8c3290e718981b45d7b0c2d7a382fdb66060b29770c86a6361dc59ffd99c00a6ef547439b99cd76f28dcf0807fc061ae8158c89eeb11961aeb731d2939c5b253d24d5927a780406caba5fb7eb5ff1e6fc907630ae28002c6b18b6920ae8f614ccfade46e3a80761b7d3f8f4246d06c7f603978ef9b36bdf0295dabcc37bea977dba12ac3a6b45482bc881a7c36ce9853760f8882c9e0491c32fd597ea4bc7253aaf40e19ebb2e0634cfd3c3f6d6c38c031a1949c38dcbbdaca6c9ed10a2081ba910a2ee4498f5a3d63b4fd118c2dc970de8b03112dc39a3b6b18eea3bcd286d79f5718afa23d86aa6819beb0916cdc5a8c959867f5749677661e597d05517edb4336a1d0732c2ee10f1a5ac3324102d6d47b040046bb83dd3578a1f02e0d61ef355fce7ac541cd25de84a828669e9635161ca9ba3f9e7aa402387c2520f936c3ab73fe9c76b78091d3ad3c0b5ae285dc2ea76aec0e6696cc89e91cc6f32f2ee58e9c9b66b3457928db260f2d64a23762779f51ec1f32bcb2459d282e2b32eda5f536a94586457b4149e66fc49139fd0c7f71ce47b5b40dff9c5a8bff110a645f81bc845638582ac9f654ed0f56433d1949fe19c21f441fd7188bd66c6d2479c72aeac2d6bdda266ddc7f8d51a2c20458abbee92731be1f48283552be30088fbdee8f35b3ccfb68ac0e46a40a9085d55b2a4b22a762d5a19bf4b6b78eef1886ee30ece5097619d806b17cee5da8998a173de997af5e6175bdf8c56327dcc0926944b8aedbe169443620ab32ecc7bf08be194af6df1a2fda39fd1a196f41d795b6d7ed78f3d5946094ddcb5959fc8f2f8da85fe3df8a8a19539ddccc1a2539ccefb91ef43971e50a4214ed14a10682812e6200cd1264203c786fe33b4144914748e5e3866df4df6ed085e883d03d2ca3d6d50b5606d374b878776314d65e4b0da4a84730001df6e1c80b83b01e414e1c9786496b78ab787e5405dfd5834f1b2a1accaa97ce70673468cfe3ee09aa36165e3b3bbdd3793090bc9d0de64a11eb3754d82dba982f83c938bad01581daa1b1af47f29e5d311d2185697dd8db56522b9aec3c466d58ce2170f948ca6f440ce4e20db127669854ff9783b07e6a17eb2de1c170106a248f3e300f9759f933e0a9198540c74e58c4183fe2a918bcd9d225d80dfe99dbfd23b17cb59cf7bdd583f8b4d9827818280b7d1170a8c622ce8da996f356a0a7355c5e7d474c565a92c9e673a8b3e4f7dac75ed297cf99ae5884259361dac3f8e9338b9271e08ef24a9bc3bda478a272ba992255b5927a687017a1d3635255e738d550edd524af28a31a1a2bd698a4417fdd532e0d2d99ef0b5d0d4caea028d02e22606e780e22019d2823c0e3605d8ce62e560a0a2e3d5fc8b6a65bc4605b8daafdf101b1a27809381e8a181a7fc9b0fab5bfde9d54f60183ee6fe7ffd01ff2b1f7e7fc687ffe9d5e173041fb3a8848b7fd6e5fca76f27f5ebe03942d1a84011523c688e04565b95a35457a4f0243dd0a0689e4dcf5b0ee7515586da66832d939bceee919eca5bf441d5a52177cf2c1e847850338a8f464b47d70bdb769a0a256a801ec8efcc6b10c4710e61c4cfed24c9d622b44cb1e1014ac29c179b364db2fc4634c3cf0c3d015d9cc60fcac814b5e3ddb813e5f72e21f81ad9039fc716139877d1af14255a98a36d47413cbcc2ee2643d8ca7a08122a2101bee38a1fa305cbbc6807df24e14445be7e0fd809ae36497e6211d197a4050512866adf2e3a2a961a895a6f1519ae57f88baeca742409575f70597866bb26db8efdfdec4bf0147f15f4f9f679ee537896ed03f8fc2437bdd9371ffae48d8fb6015ac2e14c7ed80f31ddaec615ac2aba08ab28c501e878067aa90172723e4721237f397faaeb70626db04906fd8b456ab69811edaf9f83dec14d20cd89bc40397c746888472d7c705ea2e1e75b52056c70463d55f986378b8342a19652e1c6f9a1bdd6d743e20428d515bd31826115c07663aaa0a84a493f6de9b8c3645f6ed192ee340087d64072c87c725ab76b805c2c0ac42cf0bb4a603f3202cc93c56596a7e35e10834cdab574420fee0ebf56d4be7594d7a324973922405c29cad87bf5b270c893be91868530052054cc676738aeb3c017d0fb1d25b787bf994192227650591967005105084432704f7a1d352edbf702eae0a5c5f477ca2094e3bd374f92a5fce30a7b35ac143b3e839046b0cdcd75519a80543a0fcface0d0b398826f9e06f2d9fc68b0c1a64990f9ee76976fe5dd43de90be2603c1b0b28182db28669bdec387c9c63fb5936c2ef0d57611e0a6ebd2d69149f68267eabb692968092f00bd79ea5f81ea52c7c071a3ef69423f5b1c3c7a30480177d31ce0b9be33f629decdabc416388f9ca02e27aa2f0bc0136280814eceddd29715c72bc03437e00d68f2617e84c6284996dd8e09ee79ad1cce1e96ba69a047903d0dee358052371afa98fd29b8f0cf70bacc53fcca079c2b475f2a753fa2b744812ec40e94dc81a39c72e894ee441dbd892366b22b9c5ea9819047148f20419cb19314ee92569c34e71406e81501ec15e1687a3e5ab5e466466761daa30d7eaa0f708a400d8a1a50b693710ab2894c9a2ef8262b102f88f3c85f5414b19c53b353dfb2f128e19fe6d46cdbfb7c140a1ebb90b72789b0e60c3eaf0c8dd76bbf32e5123358a3946485dfc89863f45b5fc97117af57e722e503835ad4356a4d26fd59ced978bdc0e478fcdbbc5e3182bb65c060876d05e24766e1af4b5d4bf016ffc6d2f3278049fae3198699ff104bcf7f134bc54a0abb3276afffda3f873117ef3efc0434832a7d8b08be3972512809eabebdf3c2b9c342638c49a5912e992da7855d16dd76efc76ba638cf214cd92221de70e239d4a64726ae044cba3f28ffa97130e6e474807e0e543492f45de130586da3598993055d7e1f897ea09983f1b4f3b79c5326d688dca88d663a39d4b0105e4f1b195243b1a44bd0a5e2683017058ed3291842909f1d0aa368e1f245dfd8aa9b9ae53ef39a139dfbc7ac45e84506afcc82342db9e02ab30154c92c840d0d5679756174c93db70c1ce38304a567d1d3dc9223a33e725b15ef8107e7b060cea1ce50c9e363d5f6cc12929fab1a86bb464ad954c6eb4ab7e6cf0b7ff10f3eb788db46dea46ab25f4b5f8164b6beeae765ab195770ba15b7b98b901d40fcf04538a35a7dab86ad77912e13a676a8a2307cb724206d0c0ca1158d831d4c31d5d054b96b6225350dabf5d74761f03e8f7a43af7225ecea6ee6eb4ac89c59955eee51f0e896fe14c370c8c2520960f60950d2dfb3c7a0d59a6240a08b6be629c8babea9d122929a5c49264eb499c1296b0c49de9260077707a19196dcfd143aed133b696c975a662b494e0e40ce10cf481e8dc32871b6ce3ede2b698ed697c7abf7ed1d746604fd966040ad63866441f47d1cf62423dc1cbd7f204ddccbcca58c5f2be9a0ff8bc99a436311542248793df8674a7e43edfe0c6ef0fcc344066e962dde5729499393aab82dc328ee485e54c3102edc084e7c6ba8134f52f2cfea98de02e03abbc104fd500969766e2a2af2e0dbeaa8f6ab810c2cc5a3b96329475a58475350a3193e11784bc41d49502b35ac773bca397b648052b19e35afef48d6b3e1ccdbfc0da6914979bf959d5da877be2eb7a7168b1948fae568187f0634bf275014249d9cfdbe769f2debf45854527207dd67cc5ee996e92215768d70dd586953dc70833c35ea882669c0a845db3e54be4e03f7338bda7cc94af8c8b19de1c7d15ae35f30c9e346e15905bf2f7d20592f15ce8baf9a0301a8005532607bba25bc73754383b7647c1eff2051432c18da755d491f8f8af1993437359a8669e363b156c4a817339771a228301073121000ba4b6482746cf46f2118450d96f010ab52e5b12f5f6b48b4855dc3b34520ea63cb2741ca5ec1968114d0b7d1ceddf0fd58794e1cb7c6d9d14772834f3ec7b70ffb10ff3e0feb5a812795b2da9fd66c8d4547e66aaae585dfcf623850574b3ba291f8b5bfb7f6c0ca3d35e637a53f800774fed348623b34475662641044e2a9e8b1e6e63d062da6fb4680830ba4f1b82accf9eac5bf2037c8e81b929e65912a0405f52ea36158f141b57fe3452e4d6c70d30f6c822ae048a09d0105670f555716b69b0f9596a750beab986044c76b5f3b2ac88964b4b7d80f057b00af88e22699c6761e82b8a77201cab2754b6e1ad334110a193e4fd50ebf2f3637e7253beb47daf4c35287bb8a2e0abf1af3f329a206de5653e34d27166c881ad4b847d343c95614e640eb0aa117a913bedfe7a0c090118ed6026ff664cd8d0765fd534bc25c2049ad6fbb906c12aec8637901c25c2250e4c50e643b78409cceb700ed741e05092e8c2859d07072570c99c78d9f215a9414425d92133a1c7fe24a14a70eb686ed2a050f7c0c3718982bd1af6ccfc6df893c160a3a0441d94e087b832d24bb6b00572cea1588b6c2d299c4911ea9be98109243d14528eaa20c91f73b137db5e23b7fb83bcac9f1a99e0cbc333255c6a54b8a76de2c9623dfefb9942bbca828714c8444d35ad3e322be28f988768e43b82dc7942197655295f637c1f530c739d6046f680ce003b3e0eb913a7b17cae3d467840a2d96eb6149fcc62d8cd142c02da253f320ab216549712cb76b83c24c1006b5ea97999af98a38f490da3463e0ba17b7b1588cc97e90674e1605e9071d5ac3a40dec6d7d3bbbaccb194c8ed2f98d5f757553fbad99410a4b9eccf11ef7af2177ab025dfd1cd00d79c9a6c6caf1c265224c694068f5462958c885ef0ec7b990b3a729c4446bf8d0ebe1c74538ddb3275b05805f9891c28ba923fb79adc43b5ae25766af706c89679d558f56282586a40022814dc9153c6321eab974abe6b75300ef8cf049d2e3fcda1a6077bbd553fe24f269559259e98e2abbb6b2e68c5e62a78051acab4f227a13b65a58491ef5d9fae0d3a2bfe03196874385ba3ceed5223af7562d9d72150bba9c663c09b0bd6a0921e8563171444ceca75b0fe5e8a45904d93e02779837aa8b920375060d4c5f2a57ad94a703abd0e0099babca7d89cdf1d5adbd2073c3f2ed61aca2c2f487c98d07846e14846448e5332872cc2bf513774e8dbf191843e96283fac94decdd61dcc6f3afbc298eb0dc55a74ebcc3a733a5042bd015bd881dbf7749687e8a092a0afd15e455a6f4cf529e98d27921532adff6096e7943497cc3ac1d6e356b5f4fc3e43c39d7e3f62d48b09845c76a0a74bb9a6d3bba0827ae936f3ee704e2bb2167ef01a07553b57ff76432caa9aa55111a832ac6876d8593d36961767312a38f083b614d6f3a97a3f0cc4d1125a05d41177ef567cf4195c69b82c1af257b196fdc4bdd24d997714b050a19157dbb66f047fc9c1a638d6b5a3311cb286219918a6989aed0a822829fafed30eae6207c9eba5d2193e8e2d68247bdbe5241d083023b564d1c1948bfede47040874e6f03dc1aa9227abf02685a7315711e1e52a78515e5f82d0f95f0b1f5ccdfe73e4e736f742e68ac33598848b465b778ae89f171f1e424d92beb35faf8c9f3a67e59fd9fe9bd18f01be20b9267f8dd63bb984db18a6a0c0d6cb9a75503ee253dfb05595cb79564a2b3661daacfd928fc9e19ada6cab45abdfaa102cf7a4ac4083920d8d0400935e5d52ad3b7006f03ce01dd02f8db1c5780302256fd88b1d1bb5d12fd3113f70a1790131a0865db65ff816d5e73904564482b59b0ecd189caabd6a1ff1e08854ce68129b2a6b71e6329525c2f110e99da344bfd176cb9589cdad38eeefe4cb69794f713c612864ec11c4e405c909e5bd508af3d32bde2e1de9f588172bc7cf3548ef2c22d36ac19aa045f7a4345691e3657eaf3030ef7ce8101944180ffdb63d2610f61e0bdf36318eef6fface30efa238f49823c7fda91f8bf66a9ec3fcb5275b9d45f4ea47ea5ac3609eaf239021f4984f7be349c69605ef9940ec5e4fe778f4b484058e6b83f5ac1aed9dba05088d06d09cbe42ec30c79b70036db6c14d94d69e5e5bac94d346bc6595291802e28aaeeda37d79ea73939bb3653efa340cf14b06cc9ba966d0b2830e30628d04631363252899321237b2272b58dd5bc09313e73f93e543b1789831b76d45b3320ca7eb8d955c516acf8a721fc268dea962cb02e3d32c20933af9932a8769b1a61219d00a2820898523b9f2e1722ed981d6100c9700ebbc1f86debbffc3e04b8c0cd9cc4cc5dc34892908e60f45271a3a25d93aa3fc9a0235e24b5823e030a499dc2214da937880a3809e8f7b92fd54e700cce3942d923350d50730ab2af519c6050d306df39567aaa50107d0eaf5a047b284ac1ae193c1a9c1c8dd5c00b9d4a17d2c70412365686d2bc6293e921b7fe818cd5a00242a71e7b8ccae60ab55c003820cb8d929b924b4976658f26da9adc8ba2378efbfb462e24d60bd0a3d85f42402fc1ea61bcb77e8589013aa5c41e96dbdfb6e3e9092848663b95868082cc1b3eae6c3acb586ef2d816393ee90ec29af210cf19736d14867018a54b7b8cf373e6d114af7c0c6fe82a832169d0cd27e7215d160cc953fb07d9f089d7157def8a94ced27af9b212d31c90941a15c6ae29ad30d898f4dd22481a9d878c9e06aabf33772dd7c094f5e6c36dbb67d8e32d12f3d3c3bad8ca72771022a52220232f97d085f96a8a3743d1df4842eeb4023e5e56291054fe263132cc0233a5043d7de964c49be6d94ffb38973f12b66e88e3443b27ef5c2e923adbd58a4992c7b1d17931fa841e138d3c389a4bb07014f0b60f5cbad57761d91c6f9ec0575d03703aed92f5bef48ea1fd34793ebe2deb13cfe81e9fa4495d5390d068c1c9f7f0a319afe6040b9ccfb119c9f434afd0ecb08287df9651d2d1a22464ef9ab76d0c1d2d32194a309bbd7c78db7a3ad4da143b50751e9b37b33ac1c12b6808ea61207ad800c0f082951936fe9a4050576e516072cad0054d955c55316ac29a42133b6907478119121a5ee6ef9dab91f738fc444fe521f534660a4794c34754d3273fcaac9da59d6e41b3d425d68a8b4cb0f72bdafcfa07e6dda92822a0a3308cf8d7c71ff8ea843fbbf1f937e641625ba0ee9b442614c8ea5548e15b4ac35040e6954770938fae9145f8e020f4598e7f7df75fffa76e61ba45cf218a3221e7e6afcfcdddf92573db84cb9a2f4c4428b0232a7206cbdc0373cc912de5c005a78fc6217a5371ce83f242a364a803236f5ff992a2007f4101bddf239b6a26a3cb6332a6108e531f3975c3f45ddf0313c0c5889fdcbd7a264989a1e180e787531a0ca658057518906794abeb3a848a168d0b81c6c91ec552a42bd6280b089c624f1b9409ba2febf9351dc1f7c83afc5a162b8885e7433f45da1a967d738cf4db8d0c9c1d650911599ee284f94e68a4f91d45bd8a412c56870baa8413454acac0a27ebabd07d8351c4c2c52aa7bb34dbb0470417a76c68a951c809de3fcf4840317d070205109b88153e6df1ac5327439545ba7842b95a14b271af14bf91837e08894a0758f7ec9d9e6d186f742223d844cf3f69d425e9eee4e33e96dd58c1c5fb6dc2c37f3ec7fa7c1ca97ab73b5ed9c6863bbcfc7bec700f5b4657853aaba8d7fc775a5c2cef9051077589e52dcad5d8a318ff193b28e0db727c9c221a97c65ef5269eb493a6b424b11c433942209fe49644ee1f48f2afe2c814608089fcd6b961055277db34a79b3b6aabd99826c386042dace672acbd12de7a25b6de5cbfbd50883cb7a3d5767530fb95e0ccbabbcc8e0b7a2271dfa02a47731c4a73cdb02720970cb5fd371bca6786d544a6a6ab5d21b1345f2c8672f9d2289cd794fbb719c22ad32fadbca744b0ff0ea9ad9bbfd81f7740d26be7e45d1a046242b6b6a798d637b2a81ca9f4059f24555fd171a67da7dca9a246e73b921c8c916ee62a6648eaaa1ab69ec99831257e2649687529e0a252b9d16b457b0091d2e0eadf4836a68b7ee6c087aa02cd784f09f24da39b7ed8b870cdf906ae632d06517fe909182d83a3ee058f49cfa6e15b9e43341b79c7e0314958b4a03857554f493fc4c4fd2606d2e615c38b9e1a2bd46070bd1da1336520adee54ae711b9581426cfb6cc1c4dc7e0319e156ef50ee6a4fc451a51e34a79d57c1b254601bfad1c82181d1feddfb4912840514498e4085c5f999f2f92e28bd0fb147764856a7c614a973884f5f51c9e698b368a3a5c827cc601e779292b37a4113700bd8cde495ab390644be2a71cd6b4e44193d84bfb834314a52a09cdf9e5d3620030a43c67c6bab20fd22bda51f534c2e45f8520551222659f6f475516a5cdfefaa19f459233db1703620a34774572782abd64ed64280508361a1b239dd3341c4c5678cf6301a88881b0f294cc312af8db1afa3417945af05e99da2d3b9c3ecbc9144e7cb044bd0338d581e6de8b3b3cfa0a3fc9026dd5f8e5630fbaf8917cf37b48a7e074017d1aadbe0a36f3b4adb2632e2f7a7be872d8fc7a12109f4a79923227f53a2872f305909934856e676a8a728354b3c9e140764f715ba446d5099bad88e4d323724248e7c4c43958f028270778f6043f347a21a483af264f9db0b6c465828877abe860f7073259ec5cbc50e93810c0e00152f8bd4fcd6bcdec74b537f5d3e83712eb83a48c2aef72fdbb0f8780f6c20c8e6601817a897b4d86ce773f056efe79c0d3c245a4158af4a8bec9ce6d945402625b89fa38429665259d3a8e290e879394ec2ad48ad0fb28ce979a0ded88e637b0de7cabab67f7610b7552f51dd97cdf247bd881d98f6bab30fcdb12b2763bea1121271352a00fe421ed12ed174552bc83c4ae8131381d071dcb35cadb7f735bb3e22f2b6d3f87610cccf8b3de49eadfe0b6ffc161b13a95113ce4932b56923914f2bf6422ca5e10edbb638207a44544f65a85592461460b56797517331a2370fc9e8a78c1c207533347024f4f860422f551ecfac780832e94ac02793c983bd755132400d2314d81f14131b1a53bae42feb4c5ab7ccf5efde557425cefd3fde76992ee95137cd294f29b257d2f0cf15cd442f2390ffd5e42171a4c13d091031aab0c8e73ba37a30e70f9fe69e8c925cfa64f9da7666d65850051b71a4ef19ba90412206244da38f02e8612e384bc37b9a497187eff5370ca1dd8c7596ac27957fc5b6ab1e6f5c6086419c86b9c9f8574e7db313ef26ef84e0e6e361b7d57be759e0999a1cc15680772ad8073e6d38f6c71d3c850183ada5083f3044ca2dbd35a6c29886120c72d8b6d7975d88b66342cd3b00a88d25d77fa0152bd1c81052dd6d58596f421332dfbed617b74aac6a448102ac6e7cd575457eb0fc09be3d8a602f8e8864536f72d5252769a88920d357864e0eb145dcc3e980cedbff59b7d1ce6e2068cc330e9adfc917e33ff1dfd86d0471e89672a3c4b3e867c8ee048fa3f7ac58301fefbb774a528c3eae06d81184faf5c28b0e6d018de4f6d53dd54e43bde537818bf32d873e800a71f0fb2b214ec8fa7f9ee9e54e315d5e824db3905ca38fdc398d26f91db539d0e0999a8d0a99470dc17e61d911a3d968b6107c2c8c2751ea3f6b05bc076637116afd935569bbba11332a3919d86121430f518b2000145e4b6ca07ef2b5a9adfc3960f7895d8a3cda84e12a3e650e268e4efcf3ba963c5875de89d45b6807b0cceef7674155654995df783cd5639f4df20fe1d0332c1b0018c7daebf18613af8378983991924928f573d2d0a6d749384191a9d02910a4b2d5ac7647fe170586cfd4d5db8f6be3be5f3a0ff9935d1441eef74a60a03ed62a0f1afadf3af9b330533a218cda52565733fcc5e82cc5f20f67e8eb21932a4115b201282201edd1a8a3c5c66ed3c39412e1d3da4887b86f8c9cf7ad6455ad8b2a93ef63ab09ab0e35bfa268219feceb2d0960a043e23308cbeff59968577feaf71c947d97ff1664c6198878f198b3666896f2578051b9c61bb4582cb2bbb47863db7cd6ae0dd6c22389960bd519ff852eebd85ab03d09535249ec6e8339ff77c12f052d6b5d6646038d112008105debf2a0267431d7deaf07d0759a30758a1df8463005dd7b779b3073d67ac901c296cdcfb2f5f03247dd9d15ed210c39a0ebf64c75bb3371d75f7b30a53532158ffceb284c8043a9801ca9fd1ee023fda794d0512e818634534cd2bd77f0da4e668398fc728dc9727bbf61cf1cc379c42247bfd1de93b39ad0fa3e7ad9545b1b41d2a6fe28f6178c55182623af524b912f7b84359e3a8064f47576754713aa699384826f13a8d209d82f89be3d65d37a17dd2658ccbfe1d78e4c5d20e4a9c685982359f58d32fbcf5d6f107faf472bd351af236210b0be2e9d3a8fb4117577839e97bc3427cb97a2210af29e1e5cf2dc19a73e76057e637c2b6c404ca27da483cae60a33399f00cfb6dd99e51bc8b8ac68db1ccc96840aa1e8bec52ad6775e2e0efe8500f8fec427f0d93c2dc2c563f2e5dddad92e01aca286d2732e38c8f7ad8dadb3e782d890ae14d68d88ade6fe6366382df59b79ad21ee79488906d9091e54daec0bbb7c7f3230f052cb3ac227a1dd72071a1f6b051ea3b6488b3427ff7da6f733b634f279ae408a5cd375fa6b6622b1b6a6741c545333991189c03f31d43aa16c6f37745946ca2beb7c0b4ad96dfce96e5bcb518b3ee319ad2a527cd584ef7369d2ab4fb73b7ed3b9172ad2138f6d6725d65fce009d60acf8aa8f15bf80e7d9bea690d5d46e48ba124e2d1ed918c3d39693c6116dec625c4b4aa0be541769f5fd3b6e28433a75e6eb11deabe8bc774bfe2017b43cfba4e4a9d59bc4a10905d64e69c1eb6c755ea49a4de41988c1b1c366935f8af8be19072fdca330d81be79089189662676213dbbc451965f140d032ac0f64a9bab43cc737ccf45d79367e7068c5dfcf57aa96d74b144729a5f4bd6fef85b7db8944cd0119d0adce8f78ce0e5e23f6b23399901f00c2fee31313a8e0af693cec01462a584b6a6acc5fdf0320973dcc1356a584c64f122cd94b4c3b6f5cbf8217ef06e8347531f761178db1ed7505f0e99aa99336b9ddf8797bcdc8a40b823ab61bb79ab34b00c9218fe05706a7b7d9ebca63aa9e9bdd8ebc8932ca55c248a252735a178cbe81eb694734b24f42b506d92418910261b30828aee420c85de934e07a5dee00b0ef4cc4b480b4cae8a3141e9df6e4df169161c9ee1802a33250852b46b345127b3f423d8f5c2fdaee0fdc91f84754d2b158adc85e9d733f7830d1af9d09ffcabf3b8b30e4bef8bc4548f95f332728db9e9f06b51c7b8f41c521b7c841dc0328827bd759049c4e4323aca3a796cbc953decb36125bc1b4770a85539ca5aca69f1bb81e04eb4a99f2b71a135ffe62e3072ec6027c9e72da3a01c0c7ddc4e9c0cc0ed221588676fc04f0f60de1aa0c838d3202ecb65cc3c931c9b413f2b349ee0c67408ce332944bf31d8d64a0db0f6799c9d8ae50704bd416ea8382d45e71f495c6518d8e42ec060553dd3bf4b3e7e2c300d15e775f4e2bbe755b8468ce62e0db41b8d21383eedb746f4d51c716cbdd789059088dd03e535cf158a70b18b376b017c186b25b3b38c408a75343aee3b93d85e26727ebd05ccd0f23f4c95bf08ae167437cb7019a78a3c02af2e37d87261ef65e33a23e536979d94f071a4b92a7a22f615877962c9c49740c94948f154b3854199fbb4afc759a13646518740aa4cab82d19dd9fc107f79182fed153cf765be007658f63c3d6c69668c7b44c234b2c39d9cb2d07836bad291685ef1b1aae0b206ffc9a14848b2baf0d7d8a562fafffbbdd5bf726820896f8184af2a88632985af3b0e6f81ba7e19a9ffb963ff0f7efdc234f71fd3156c62d4bd7b7fe108af743ad45be4c64444f338145da1316c8c9adf975c2cb73ad52f5607190a485695557d09186baeeb643b63f6204a5cc197e9194f81dc20e5fb2b90dc4277e0426fc648fa94fda9ec8daaceb9ef6a62809181f0ee51177b8864df42f4790635a6a5b6f60efb936e0e9466221581d5bffc439d49e7eb49f5cba81d15512934cc872c3d2ae897b4dba850ce62e10aaa87f9630b479c62d8263188fa71bb8d1f4e044f20a79308f09d2860fa00285a959080fbb661756b1d7add5910491bbc8dd3d4ea872999b31ad4a1736ee4cb658828c3973719de3cfca25642460d74ef8e5ec20f88bd21c7c8c4528c14c5d4ddcfcf8a12ce8eac2f1aee2b505f4ebaca0238da00689624aba1c52ab3b25da2ef9c1e0225d95a98b2e4ddb22218589690ebe985cc0195c480338c9bfa867bb684d3020bfa717e79dc44d142c548f82bb753927ee75e74afc1f17ef9b40f6b8c2ed1ec9f03b5efb52da77c48ef326879d731b0d118cc760a6d4a3f970783658a1ce7fb42c64690a6eefc7efb7a9fad4bbb7d438aa1b619f44ba5170c4d1f09fb90259734cfe6287052f4ee46bb06fcc6c778c24f499215e8989f433df029afeb895ac84a9a2095a6812b8b757d316c506bc548fff54801b8e8e5ed7a89eb3d2327075516cbd29e7e495d56a87ca17fe388a13554cf694cc598609220450cb03e9952d820a83b6b59c9a7c58dbf37ce359b46dbe7f00a5d665a489eafea617483afe2b0f85e696ac79a16b12c9e54dcefe736b4044efc5a9d4c4f6d5b6c883de6353b5db43e107427467651d3db228121f5b2b8016e52fec5acadc2527ec781c354fa975abebaabd32c1f786489b0f42ca38cefdf35660581a386a69210525f7414bd24cf59bb8d94fc2e40796efeb39861d5c303784097f72bcbe960839e0910e1d65ba41e0011af869e9120c4ac62f5be5f77ccf2418ab438541116d7c5e5c663bed4f5c555f42e6f9babfc3ecf4c9785d528a8f56d132f5f4de41f0413a892b72505c5adf9d96edd9029c6b785e8e69c875aada61521cb1ffbb92a80db29c83048f7d7ac1292e2ab1a9c1049205c2e57643cb6a5d21aac7e865edeafb89611a14f7636b53c10a3d0da2cf1e7b86fa44f364db7fec7fdd10c7c91fd606e86519dfd8ff4a5f367f747ff377de924b1faa5b1d23b510aa5b16aff636f817fff81674b1a1efe63b2825183c58b1c31b38ba2e3d4822b2edaf32a40af526abf18daa2307f4d4151b9c2939e925f1d30604000bde00c50e1d8b752bcdf41944bf9e34edf8b518bb4beeb41d229456880b73f9a62f089b9b8c4ba31fd177ab42b66c19199b9d00d79bcb5d3529e43b664c3a9fb7f01a83efc34b26f512585549ca069c22797934cbb71ee05afa05ae6a78c436857aae6680d6a0948a2aba44abda8a21789e454d26f43d0c3185540cb96fb104e4df787316b3929741b75b917d337b85abaa9a612eccd270489eb4d317be913f6abf16c0b6865d116c1545738bca688309a4fca2fdf9b53706121ce0f48fd7697f1e3af1aac5726ee90bb0f36c0123b11c2345c951526b61159dba737efdf838519642088dff0b82c07e25e062cf41372d82e38746909b5c5bca1551b980e05fc2456331d956000232b6e85a254e65fb20e50f0986e9e00fa9b8171c3daa7472dee8b91c401eddbe4678444946627196deb9ec218b58b771aa3ba8d86ab4f14b6d853bb6a73be1f9db6c8dd1a14c01122653f7e2e6e5b299c864f3372a7751ca7971310edf545de5925e4623eb402417fe26de83b593f02d4589a1eb4a7cd638a7a8191f7615e9fd374bb22eca594404508cd09f67e02c0ca3f0f62ebb0fcb65f26f9f7a256728b3eafc5204366d2a33e5125e81f54c932cd05d2c8e24790606f86362a4c9a982c302729c753d39e783550def6ec57389c6e522e5c7e9a474c844086728f37c538efe7774c9f72cf782290824ff52843b94fa27c8c663774d4e06d01142676bf68f6476664cfa90e630cbfbf0210dd8eb2932f81cd9ae261d49243d1b60375d4dd2dc3b22e57d39e1f57cf3d9bfc51e143de5454c7ebe03bc0aa6ec69d52999dc4c1ef398befb42c83b66f441f75bd44b16b81c73da562935e20f2a753ef3fb28cd273e42a6e700cc3b3ecfd277e63f6ef6ab8ffa3df1831f7cca3ffd51710b24d319943d1ba5c1aa55731865216ab5f299a70d2ffc71ce4fc73f7649be109fb0252382002bf85fcc3d552e59620c87567ee1bced2f4871b929fbb7501932f098aa409d9657e9ba3bc14b7a05b1329e8e46836cad19b861b0d3f2d4877df56aa5fdf8fa2811fbc4df7d64d0368465e344c960b4853e05933b28e857d6414260a6b738627e1b6dd6b9bf258d8e5f2363e737ef3dab14a7784869d551e997eb452ecaff77101ea867d572cfc4e340443b533536e0b98ee137ce8c8eb1621a8e7180792d1ea71d4efae04b7a59471acf7d9acab8af723a338df6b38fd754106d75d08f4c870f8d9069a3fcdf1462c03148763fa32aeba4830ca46f61682d3612fcb45377ae24a8e2df89d26580c517dd388646a519b092df7759548e9933cfe259222c9c7ba61d15d103da79465035c3f204357c14ce5f6068d86485d3345b4a0566884987aeb1bbaa032af3302b60a26c50af3a95ff942bf83b97f82a482d7291c312cd639f72b61b5827c4e10ded512deacb54afd51424d900feb7575089838db702332dec384e04be094b6daece29b5b3e6ec75aebc45882ed0e0373b0266e040a836e5287ce994fea9eec8e25d5faa4c34d977313cd8517990524bc4def699adb12f1a940c0825c408e07bea6baf0b3aadb003fb6b2b1e3017a7e2d6d2715fa6ba4b2015df989b029b32bd4948f1849cbe1118919f3f1aeda480adf686de68aaa0629c1f3a3823e851f26d58dcde6a57cecebaae5d5d2b3331ebb401af0a2e9e964a2b9db7b6a7a4b35b8cb4158b9836da2231eb08cf378d038c4593a1ad388f94b33492b3ef51ca08e564aac77d9a2fb70209f036e5d2586adc75782bce1f81e3e9eac86344f2cad23903ccabb50f7cf407042f47bc30236e5ab14c9814a14c1982696fb2e660679736bb625d5829519bfbe36bbc45674bf63e52ddceea77121aaa4d31e3ea7f4334abcb15e96f910bf28dc781557f83cb9109781402b7719c67d7176aea25d01557c68888c98f6a93988def5cd52b67bffd8113fe3a543a6e405c85c15dbc8b2280b365ead2ce87a9e3bf52868bc015be82da96152e8a9eec3a89bbfeb17d3e947ca85e2831df44ba5aa6d3dcf991b981cf99c33e85416828cc71fc5d2aac4452197c6c0f4a2cb4f0891e737a754ba7054114124cd54d86d3f13c8bf6e5b25a32b49a10f382b29cad7eefe7fbcbdc70ef4da1ddcf9405c30a72573269b39ec9873ce7cfac127e94a80610fae3d1a6fd9e81dcf61fdaafea12a2e65e84cca34b57d424fa84b8717bda38187eff521ade1c1bbe43efc09795b7ff103c43727679241e867dedec476f34f29883a28f3f66bc4016d11ef357fa5fb7919ffa3d620a93fca88784334f96107aa7cf919ae73f36461e3a6fbdb811b1157a1bf1322aa4f470a35e50e9263d64ba0855db430c495f66292aa8a8c029f7b58badf5e4f5d771a56ce1c16e959a611e0767c8d6c1a9c366219f605a35c4514a536fd701e60b2f45fb515bbf8db2ad436fe1101fc2d4615ffcf7ddeff30aad9e448a06693396493b914d28024c13fe6749dc99fff446c938f2294a1ffce130e1f3e7e0224f8e098a28516ec4b9632ed90d87eb4f26240ebe3528f6a0fa52a372d00cc49c6689308f59c04023e3fd01345e8a10c9e2427f2cd91026666b6e9eefdb79ff98da3df5459990156134ab323f3b36e6c6f6693e13f08c067e3c362140bb8ee9a81acdb0bbebcd5a2b49ed63cf96d715bdf3a6d4244c7edf365c7d7447b56be3eb8fc463753f7368a9ce23697e7855f3309008ea3064cf3583e61078b73bcbeb32aa9e23274a507d69c2f10f0ea6a146d902e5403ddb8e53018320c37761ae59d2973e509996c37e013c3d42dea175bff0e7a5bc3c747f2d15a8ce6466434bb7a484a1e36132593f437b41d7a17493e34e0777cd0f935b6a25455d54c440eec1559cd8801ee1b18315cea531293ebf6415bde8ed844477d40273ff8382bd178e413f8116a890ba5d5d93bbd45b37f1b2a7136a9c538f909b01410986631ac4dd02ffc59075da380d05ba7087d90adbf51329b5b0e71e4d2192d9a98fc935a6a98cb000aae209592080e55eebc4a989c864276ed142f44f36c10378082b9c467c06de357ab1e6682c9c05edf3b856d6ad87aba420d8a7eb880f22b1391d9cf2afb496f84b51eb966acc50043dfbf3b264040e2b6c6ebea741e8bed8abeeafbfa099480a67e08da322b7473241cd5391f00a7c5fca4eea77a8166d07761617e230e50fbad77ee7f99c19c9766a5233299b2abb63df545c4413be9c1e1f7ef97d079b6e092f1c31d391a9069d570357ca7682b567244d6849949542ada7b5b55dd78626b9d6319fe671edcd5cbef90b53f124aa384bfe719edff85f3789c195a9c7fe5307f3df751a72924ff2f5d7584d6808aa21f8224d2db5f643288d14131abafb6e47e8756b79272dbb727a44c538f92cb19483b9cd0ad5970700491cf9d0a99e9dc72e6aedc7e7b375b92597b4a1ee705604da721ffc0bd028c10b475045db7f52b64eb163e9ab06497a6a3ea020b74b892f2aad0ed626e76a3b2913366e9180e288269359d07e0c7232d7f367db56f01146e55d726b68322b7c94bcdb81fd04d27484a960df2c5c86886dee9eaa794547337a5e448d40bc72c87d6700b23245c68d2d982cc59a2a2ac09e0770d96a8c9d4076529027c3d9be2101cdd3eaa5723b94019f6b450826d2b518790ee1370d668e40ac24bebd2599812e8d905dd295c1a31ec5f2272a3e2928dd20485c59aedf16878e1b774150126ce48ef3e6f0f73fc9d103aa933bc047c4b5026693eeb8865b1a284878e7af7e5e0d97a892a6d3a940c47bedaf049e64650c31a4460b197c3198ba36782ffbe23ed8ee16a7087d228fac72689056455706c3e4f5ab6129c2c274ea163cbc31139f99667b210b75f03afbe2b061db325becbed7a1eb6c823b0e209fbfd5e3736d662019a30095144270a2f67eb2b2b12defd01a751c25e257f3b8cdced1ce29fd01275cc3cb65a88841b9ad809043d511c067bbc4dd147f9a7a08bf7963bfd29c29dbb90579452846f6aeada61cac6f21915d6237e0517aaa2de6fe8b853d46b2a34a5786ec335423e1f76cf020e37176ad0e010bf000ec928c861ffb0b9dacd05e93dfd25462b883c0c0f379a31d2cc1ac3ee65ba4b55bc5eb63f29e47d48dbfdf5a693b6c4194188a28bd1cead5c117643aa0f612cf6cfbd1d71e7426e880a05e77f4bb2801949ca81b86770600ca917f895abef3275a4b38dafdd32c21b2474ab9bf850c05a539c3a8b10e2cc8929d9eb401f87474231b9b6c821c9a405e1b7283469bc85b01d77ffe4c823cfc4129947968e4580334aa307942fd83ae78ac56937cb719c0d89e60bdbeab33303dcefeea121483df597dcaa102fc270785ab8cf32765b14a84e6d06de87a460213e546c962b193739bb854818cebb57f77234f41a314741c5345e376781b60bad622acd7ee3fc01d90f468b38c7c69e9370feba3542febc1f06bb8ea1733fe6e51c8845a6644599ad9bdefea523c7514e36f8b1b73a714bc92afdc6d9cb6515f9a8cab9e2e321e734ee07c51fceec6c380bc8d708993dca2ba42b868dbb81e4df8bc4dab109e70c1721d8cd260e35d962f09cf316c03b41a19374a0eef1896d2650d35765c63b45b3f5fd70888a6998295e069d306a701ad4c974424050b77a02faf931a1849d2b820f2d6c9bbeb51c239713726df3ef81b5ba7d4e6a8449206e99eae01b8c67ad29b46d5265a01d35c8a7f05e4a4d4dbc25e60ee0599613d4136962c9c6abfcdd50ae5bcec7a2a8d2e740645a426207673b845cc1f57a9c8c43ec25edf75a6aa9e802be7050ce5b4ed4ac436390bd5949db2cc8b727d527c5738edf70041dcb0584978c03911981aaa236d971ba849c301d295f6b04178e87a5125cc22c0bf1feae010689dd9e73fdfd63d48b2f45b4bed4b7e2fdc2648fc7317987f02f52640e226ea22bcd0cb2a1761c74c94fd5eb911c3a2ab923f08eeee0c2097c31202402588a0ca1e9f38da55f305c93a552784acffffae712d4d90159bae30e2c38e5ed7cf045102741d3f36bdf8d27071276d19fe243abe05b6f0f5a2fa9542015022f4c18ad3329d539330a00604d72bac1393fcf040a9b9e9c037aa24c845c6bae6f53cbb8cc651cb795b6521fe787ca594fdd0ef8559b76834b9e82ac216a9a7675465ac7873626bf195500c281dddc1ad4f5fbfab927a57fd07a71146d8f1d1c16f66923c1a0668071a9f09071bca96bbf72c73c49639007e844ffc96dec9b0f33eea39fc56171fd2c9b6418c39ec70f6cb8ab8d98b1989ea724fc8edca61e67a3a27e7c15c1f7040aaec768e551b811094e4794a15406583923dfa7377891ca460041a996aea094979b43c3cb7cb6bdc49a8d8ad20067112feea6227029da411edd4c8dd8f07bf80a04182b2c2c5d4bea68c953f33e55c3ca87887f04f98b27f52a83ae31b32c0098111e082eade5d4c4353cfe184085354b99d38a928279e85256bce61ea1f060b071fffa8534c77ae73da2b607b4eacec9d9a196905c0dae3ba8f379de4433968e8585010787ddab5e1e6c902bd219907fc5d54fb488da9d615ee47c20a71581cb63b5f215c97ebfb7b1f9daa6a6b84c6ee92780a40f4e2c001244de8fca25e47d0f528d20efd99a3a1bb171a1b66fa906bc6503c0ea9581258aba22d3e84789d1990d25dfc0a24679ea27c6bec9bd41bc6cf876a6821c730bc58c0e64d51b3eb8fecef936ba7fecc7e95080b5f470f54e7d719def6c33ecee9a3cd1e6339a577ac83d27765268efc6e8190e1ac4ef4358033fa3750533f2add03232f26195b91460c01a5b2484aac76770592e4a6d7667b2381b78e81ff4733560e17f8b86ded3b56728d65c94a293702986b4ff831e4cf745f5e3ac9ef276c5de22ce5e95bd5fec788322405bd94ad36e13d1613e4683b95cb5dcbfcb09082fc106d0ef7780ef75d10c0bba26100f37cf393e945e0d2252fc8fd09f8e01b84a36cba7adea1958e2e80edbebe6fee1db0b09a97989c5de0ce339f6dff2edddfaffbb6fef85c397237fd88ebe0b69b8b25e7c13d884e2c819fe5d4b9f0499f798ac68542084a7a13eec27b7d6735b6f3147eaad698ba2900bb186b3757aead9217cda78a04932a5ecf86bdb0dc502f9751c57fe6e066c9b4e2a90015e6b1d82550887f01e35018aa6bfb40229b0f2b39bbdcb6461ebd2929673f7b34b8f0f5dad2e6e9c0eadc0674e8a02d93c527a78a397405e3df7a580c4ed1ea177942c862a831c44c573ff8acc9ac9dbfaf1f84a29fb94993aa9504b4e72b0e8c46ce11d96da856c32130e32e49cd88daa5f8adbb15f1f257c7136abd26aa7dc5282233c4f589fa2352864ffa0fae691f1381e02d2e82489e47c93ce4c8d30881035f8caa85058113da19b23b07404cf0c7f73676307833a48b4a1fdf51fe0ea28589ff4f39eda938d98d4ee4ac495980575cb8ad5922445c70ee63dfe0645e17a907fe3fc8377fa5534c7352e27be252193c39f86bd17b78778aa72c13319fca37e352c131c5e7c72b953594ba812914a8639341dfedba6e9d50421231dbd4283a83b25bfed88e916d36eb708c266029fae54a07bd91077e2c8209e0c2cebb4cbbbf408d36eeeb6f350092482259ab088790c468866086b927483c8ee6fd4de510ca71423ef1dacc9ddd8717899cbe45ab1a4214c87f4af20d5add97b5b995e4ce52614698c9c59d513dcda479756b9834d61c09173651e26ac3d207a64ea1f449a65f309c22f4784bbf50542c2d0dcf01da6e14f33a96cbc0384d86a681ea22297f153c08ca694875e383755d36be62877a7de672e69320be87ad24a037186acd9c8ed0cf9fcc9342b61d723c042d7c3b9be674b648387b0b9d523da46f547944bf39d2637c055a83f7772d6486926d5fbfcac8d3c3b48e75a160902fd57f01de929e8abe66ed28796306386e176623f76afe7e78a65642668cfb7e7b41547221f76c89c0c77921657ce54da34319fc9fd2342b964b09fbfc7e03ffbfd56763d81f40f62ba76fef7ee85fff37ad1ffdc0bffe24d3b2a9afcdfcf55af90442871ffd5ff470641e4539eedd83444c7e1b0f8216bd897ad3d9c8b840d200c8efdccb75a232eccbbec010c882e5c291a2608072e1ec84404a618e3dcc76e8531e03bb593ae07ea4aa10455e8890596650e00f9195504599dd1767321e5729260589242ec5286b29ff73470d5b23b06f3afd3ff79a99ec43988052687420b5a04b13257f474fcb0c4a4db60e0d542d0075d4c4534c5d06e69b136c6b8dfe40742868b4555be85f66093922cfc7c84fce5b8a856999817dc768c4892a1bd21e5fc3d5be1d8ae0fcbabd6e33f9c927ed6a8c410cb4a9191d742fdfeea26b3575773343a71e430b793b8dd560d1e2ff7eb0d9838fbf4edd8bcea0f478b864da7bfb876bb537c20c3a52d4cf63dd3c35f52a95d749e0cfbeb282ca0ab9d33a5addc9c43f2860135972886b52b6dbbfe8c13b6bd51f3571b6a1104e11ed5db26ec599e039f739f4fb5a1403b61ee7a3e1eafef6cb78793dfe7097af670be4a2f45bdfe49c18d0b5a72a2decfe31af987beb41aac1806897dbd66cbc6655544b8270b78252ae5aad1c83037d06559f6ea19163adceec04b9aa153af3a31d80749d194a0962b406b6df6c454fde23f4220086f8b14a4fc866b85f53c9126d80263dac2c2e2bc1c3885c241f391274d277b3a6b4e5f0f2aa6b912d1431778063882a4f7473b1a3f775bd2a628ea983fbf085a4772b6d4f8216cc373e3d4f4751f703fc94204c1151358647e7d10d61c1b462e47e5b60ffc796fac04c36e6a23c49f5f8237b5fd96957bd2dc4bf89fc00a80ddf146b67004740dae294c56fe109e75f52bd2cee7287664771f3b14a91e1defb3312167aa629d76f62add7087017c1ffeac44b303b529b5d22a0517f465dbc73dbcf05ad4e2caeb42515ed43e70575239121400928fa35a6bf67b17425566fc71c13b95dd0b14e22d7942dea2bb63348b59f3b3a813dab6c41f21e39c3b37bbe14500fe9a35443374b3ce1cc370d3dfccfec4ff42f6f757eeffe7f73b8ed4a690e87ff7e22d81f39f9aa6f4f5f316aa31c60fd2613fa37855dc45d283c44ad9fe59dd9f77f802a9f5538a2205daa220275396a24b426f7c2056cd2416e3c88d2a1ca43d71f9194881243b6914248647284d83b55277619e32b31dbc2fb9ccedaa59b076b53cbc10277df829ac852f10f21ebc05eec6a106962dd37d6442950acf11c0246b1c4329eac1a7c30dd3d216a1fd52296a82c935c904490a3980042ca6b41b86df6e5b4042a0db8837cd67b03bce413957d88f14e1394bf9ea1a8ab81fb49abf30c5fd23cd282744029530e8cc09e452d4d386deb007b7b0981f8503c42933619a142a8e071af5163aa7b5f4b403688b2ff6ed679524a697e6c39c9526e24ac1a5b543223bfaeaedb7ba97cfcee684772d4184736e29f9b4197aa27153232e1efb40358fb2b6f7fddd5ff2a6b89427076a0ab7d37454ffca83d19872e1446c543c5d39d8464f72e9ab82d3608c954310064fc59527d994ba63f6211276739d02edc4e45b2f32de3ff238938d349daf9462b150afa7aac9b631dc91fa2bee1611d67ac00d01d0d44a32f5314c7463affa637b489735c7108856b762f2eeb92a6758cdf8301a3aa23fde8b70822f3298616c799d01a0ee7e1bd46eecc8289377c76c7a8c2210e8f607fd6c0871b4c0d7e6d4ac07e16be0c3c52ef0c86e1ba1c2710ece3090d444f9bc70985e4a7d16cd6cce38c0b7a73024fd6444e1db9daec528d09079d232fc858d24120414dbf363ea24f9835c74651810c06eee864e3897e750341916099ce30e760b8841cba175cfee0601c698fcb78f969ab42bcc6b0ed455201fc08af87be8b21f21449f395e823b0a301a06bbcf887ec32e8f5870b5b41fcc4c324e2c141919e0396923246929e0b22e463c89e874b2d9a53161ee1495a7845c9a2979d60158f03fb0b9ac369df8452ad42d62ca0cfdc84c59a9f3cbd9b7db4f4e7e865aaa44bb9c6240031a5488219aacfbe0976cbc902fde61789fc88d97902fd160183bdcfd30e99f6cb2734353997f3448fd373588f3df6093ff57cfdb1afed036043176555a985b9e9229204d651aa52d2cc46a8441d0f876ed731ad22fac15f1d9c999a8861ec7e695e28f627e443daacc073032ec3f0414afad886bc1b1d014947e195a96f8510d1d4e31d1a8914dccdfe7c62e9bb00693ace52b6a2094536eefa21e9364137293e0dbfea92ebb03c196b400f8ce853edf01e2ed83658476afa39e8a6c96688c5d0c8c097e63f664561200599c8202b1a0280de5ab0ed2d44b0c0d26336cd1e5dc430f26d5a07b1d33d27e22cd99a6edf4f496bc892c5bdd5c0e76013906da5afc0a7083be015849cbecf2e0c921e7446dceec3b7330594e3703e40c9c9953932b841007c1022a12a176104519d62613704c789826bb63c9e8e5473412dfadcfc642193c4666a8175d95000583db49126c3d1d1d95de7298aeebd6ac982736349a548af65586d0fd380d04d097e48886da513595a48bdbda9cfb4d3f2edcc5d666d502b9c61f6ecf0ae30750ef56ab14c45316dc215700dc7462162c6d47bc9192dc39db054c5f14d044d69294cd5b593b7ea5ce822110e1d48f12b95b7de44648084148302d9b2327fbe7ce176d562377600486d1fcbfd7272308ff85bce65f1c3dfc2b337dffa59589c0fba3957d87a17d784536e95c587bc35a7b73f5cddeaa9395613b7fd436164cb54eab9ff65eeea01fdb6592b3fe2c60ad576a20b8aba6fe280e4c046fca865c68e7516a68a22891ccfad41187109a9c488a1b05d3b4b1c5a6306b548b8d8b9622749147fdd0396be5246397ecb08e94439159dd48792e7f1ace094ae27104aa50151aac3a4325730acd1ed51cb53bb427b56c2175b4f2d19acc54b769b3ff3a19c2904ba8367a344089a18a6fee4b8108d42be268776b7e2e87e23c71b67cec723a04bf53a061bf9a676745318124819e59932a210db034b36075b6a278470277862f8ecc4fa6af0ae1638acddb1bac945b2ece18af0c5363dada4682a34bdc5d3dc7c888dbd063e1458b1383b5acb1e6ded3afa1d2c8aba45b0872e56c1a5551e6ca0a0402739d1848bc6a451b6394a1d5fa3dcb692089c676cc50051d9781f60a6cadb44bcb20b703cc15650d7378d6d972db2e7e602c1e637c1217f40a096e9fa6728a443831dbcfda0076134da20e07d4402be73e0bfd76b669904f3154205774689e5ef4cad973dfc031a95fa2b4c2956d3d2c5de78633121c9bea3b881a4d30cce2ee821ffde3d21c5b9550feaacb02e9dde7c62d41dc750ecae26a3af19c7e1081c219be9c8af405486e8c05d2f3e654e07ce5adad369cd9c7e234e9fd56556644be131e28753a8963d96cad3f7168573f5ef6cae4a6af59ad20a349aa119f6653ac8ffc648075acadc9c42292841ba5449f05fc9f666433c9c9104612e9c9e8f063af46b62702934e81bb2e09288640670e2cedd67889713991e81fa60cb947759e2e86f0a6f6df26a927f07185fa09be423553ee58a870e87ed5fb6195daed75012365d14865901d3f81f028db114dc87fd5ef870bdb79c51f492bc5e2ffbd2cf67f38dbff8b7a8840807f0224c4d598124918249a49b5e1c0b22937206cfc4642a3bbab362cb7e64a8e44f363e6e8c7f633c9260139fca5ca8c89749c9de3ee2367ecbb326e579a841993ce2049baa4a8effb7d1671a1340d3062c79ff56451a6f24b677c6ec7a5b06af851d5e8331cde5cea375fcf9c7032d011acb526b90d0f6ab7e1d9041d71795ba1d93fb54542d258712c5b56eb57827cf351d9e7b7aaeb77a2d4bce292cac4996a99ab161900be4a798cc86e2021d0a3f27af2b3d38e606985bb7b03f1d8a779a581a69fc5ac928112c8bdc4d5e6b29ea8c9f289192a124d19072e101b8b22fca299d950bb00d17ee18b4f2f9b8a56920a68dfc2c968707e9b0f3a33b9afb926cf4036847f846db9bf706229e50d1155aeecedc0f981db84441fedfd066888a1fcc870ab655e0d8c0bde72687b6db4f8d138f21af17c0bd4f85be0cb6569ad79a6019be0512ef8575be30704acf388020bce7b48bd1cedd20ca3ba9791424cfcddd55db81f890d4031b18794ceab08194b3a9b4c2795ee78c9fc575d89f8bc4be7d76a7841ec70f9d3035dd0db7ea80965ba074e529b57aa64c097ace4b25ca5cd3bf8f8713f97731615386d33ffc147ef15cad41bdffc8d785e679bf6f4b9b94172a17299c46519d93835cb8de9e89120792a172cba286a10457c7c186bfe309eb39ea35a2f9a521599b252a3276cdc42a1d64b7fbde7a5e8277fd30237665f054495e1cf64097c74db0afd70634d376d7129142bed94632380581b843c4cd08bd5598e76b1fdbc12062ad8e225b764ec827e43e23924352f115ece558522808bff72f82905a8401b9ba9604fa093c6b4a7372a097023cd7889bb68aca26c7ee43ade582ace999b13f5d8340674ed496fb2b0d38e77c3b97df4ef2c40dbfc07db9a84379511f5876d55f66fcdd16599ff02dbfecfbd2f22f4be90f46cd6153f08cdad29f0fa3a4edf09682aa8efe24d18449715154e14b334f0c38ccb2ced270c1e623d23e690942bf17ebd970c5372932cf30b032189138fdbf091d10e4e9f9502d5b40137c5e828db2b508149e5d86854c649508f8a62e19e0e004b0a30141bca14f4e148cc0c13bf469beabe7049246a42ac15c6895716fb7ad4e066084922c709b4a7598dab280e50f26d17ee82a35d581fc85c148382e725beddb54964661a10b122a69fc3bf6e03cd3d2554ae40f7105086fda07cd428cb151021924ec751ebc3f4bb2c3f2f2f55b9ddd880006f0ff51168c3d203a80bee8e81afaf9555ffe1f80ec835bfcec831267bd2c0222a846aace46d1c4abbf18210c4b789fd1888d2f95dac3bcccda8aaf985251656c70655ab2aaa6035bdc8fb1b5de0399735d1d0b467b128d8a5b0a47045bb9d49c2a1d543f1af2be5d9db2298772cce8850b79f0abeb7f397eea4df299bfb718c18cedb173b8a3b3fc9588154ef7a17c712ca65d5b5637231678e242f2e605bf3d03620e83aaade259f56b61fee14b9c662c4e7b53e4007cc6a76185a52ea899137f2d9602317a0233872c6f9bc2e49eb27ea001fd8432875553d0ae3830f67021eda51010c755f34e40119d34b7cbf8939cc15af2ea855c623dda561786f03464c44751be7736f97b9f14cb886966dcbab7859ffd4bc1d5988164ffea3379cf99b354aff1b33e8fe57df4531385304bf0a04ffcb07fa9f9f192a0842e88f06e681652862b16d140d504c310b0aaebe4a1d73148e9b55dbd1209ec40a64b15ee4c410e4456fe2021fdb51ced60601e687b151835354ee47a0fd93ac623703664ddbb9ffa1c9f07dfb8d1a346858058a53555cd4b29cb7ae2994968b3981e93b329e8c63f82823fcc14e18b493675646ff2e38fc86452b5af919729476b853358f15ea164376a84ff4cbcf8f405765fab183dcfcb8dac998511434285c722f7fe1d64cf95cc55c317c3de8db205ba3949dcb8e599fd633712a7ce52c9084f61840a15c26235b5020366eac308b46af11ab25b99e108b712f6913b9156e924dfba693b042f66b3b39b4c3ee12b88ee5ec2ebfa5d54c338d20025985454ffdae6dda2604a71f4c2d3a3441ebd02f6e5ea2bde3f653249c474d21ca813c019759c73279fec0cb64e447cbcfc9022d2b620dba320c4e2783a271849493fb8a463c99d1259ac131c7f2063ecdf641fddc96274e5dba1d9506d50c6a6a54407a571a01e5f65db1112165b753512159ccd59940cd41c10c5ed0268d7546b87b225c709767ee279e3a0315e9a61f043e3ffc343d018333df2b181c250fabf351fda152adc73d3e623b6d4db96add33ff40cfd65d836034317aad5e89e494cacea9262b55f3234b68c3ba6a19e088f65fa7ebebfd478d73e5ac0036a424ba7ed7ea66efa74b82a6f164b6e16298048f14bab18540a16f64842ebf12d936bcf4b6a54dc89873f71bb5b0f5ef50faed9a0b412e4c53a64d61a27f56e2db15a3d93773ad31d7afc0d27362e553a3505639f4d56eb3bf6f10b8dd5bb6b4e559a89d3c74b4e194742aee67b10536cee2049b1d0778b93ce9146409153a7160eb9f2c3520d1ac59e5754dd69a6d6ce43b0e5ff5619f4d1463503da2f51e87481c621edcd7e4fbde5fa7529d11c43b2874b9d2e0b010cc8424972b5c90d46912917672d3a393855ec4232e4c80a70c9ac00c7efef34c1a23d9e8278315dc2a71a64bb408ebef0ffb5268fae72c9cdfcfda9ce75618c6f4e5ffbf674efc75affcc73f9ef54af482b1a2c137f4cecfb23525e91445a805a595fbd96d67d766794641ec5a813906d37395afd45bb2c7af7f1940266aa85deccd0939785f11730b523109859159c3b0bdce622b4934c40bd42f177224832d4230f2d882a6422a0b2dcad7650ce077263940e1287850284853f88d5ff274e18ac2e9890648ba208a86e9386964675b028f49523eaffdf8598d2568018fabae072471ee1c9ac0522c2149463067ae284d8ed8ec9cd719663d6fda41122659efe91f12f585adc4ee3b7fb5dc9d711c7a664a2b56b3627ceffbaed3dcfd227aa80b31d7510101ba9971087b4cea35f3e16419b844749822d2bd23bcf1241b896bf20d83bc01ccca24f4c93e3d9b33b1aed73beab66ada9866e7ef1c6101610146ba2f8c6137e96ce5acd61c5d91b18fdc8e36dd1d8339a0262d9ba9c2328d1f82866c85df7daaa3c8ed9dd2327b06138d2ea8e8cb88fb273773649ac8f323d771fa49b12b8468007007ebb4b22134213c226cfe22c8d229cbde76c2150b9b9ef2b1183d4f83052cbfc492f90bb03d398774594c59af5744aa08dfa1d6012d6935899fb1c1bc8f7dd48e7ed1bd453dc8710e033a57f53c4549589dcdf2e8895d0efc7eaccf356cd45b3d30169e3ea88956496b6ac46ea5e83f8ea7177f7789722ccf44e309a45ad346933243181c58d620d7f11abab82ace37bf362d0bb7eaec79b07c906f8a6f7318b548629b1c7dbb0c3495734aba95bde14e978617687d5fea328ab5b43da157ee3623ee1271e4268d18029dc516059e61f3c39b32cb8e291b4e9bc1a33ecc901e9eb171aa8be105d29e889e6b25acfe657001bbee228a3549428e7a0c1b69e6e3d088c624929df891b0ef36062006e0368fa7170aa481aa7bc409d2bd0809ade386e2d585a15da57c0e64a2e83600dfe221227b2d5598255c602b64eb694c108269467faac9c4f1d839759020e89f497dec85727303ae37d355844316087cd8f93c011bc203bcb751f9f12d7c099c6831bc2d8765e074bd442458d5d331b5e51c5635f11de9fcfa11e4de1d8e383a1ec429f1447a3eea82c71bb5d2d86721c6f1813f38aed140436e845ba0f9dd72c7285e9307cac15c2e00374c6e9d637fb6f819b08e8d09646b61bab8b57d158ff3d582cdeb83b369ae059a4fa0477bd7d5e28b46e998350ee18649a8bc57d9d26e56dc67f4f08515a3ce0ecfd6d34e83cc6b9e058c011a86f3dff17a81e630bcde6b7bfba741eaeb3a731c9e30d7bddc769937fffbb20d51d4525d1d3cc6c086c7e8ba752230ad219423e6cfd425642aa5e783a05fb66b873605a780ba952a47d68f0d5dd333f8486ff8590da30deed10c8076bc0a0aebc443a5b0888e6986e688f29fb79d4f84ee26a5d07a2891d2dbcf6b42e1d6acae1049b4187162131d1c53aea9ad5c8e6dd4490e25ce0da1b73d98e6cef8c95e0d91ac58e6ab7b171165f17527211a061bf18255f5d50f5271269926e81190ab495fd0511f2edca5a005ff7291fd523acd8ed93095dfb234ad7505fe0268e0830715182d3589151d30616a434c90c4d4c5cea8c1eae994677dc0dd73f5e8235b94353aec9d9b3844d796b68161a29cd9ab45255a992ccca2e4ca9404fb9ac55f3028d04160535fad38f7932bfa179066f456028fbad0ecd3bf09c8a4486fa42ccd75a39d28ed5efbb3b07c7ddec4dc076417ac9d28a8214260106a7a0f56c0ea7459d55003bb5a30a0fd500c33c1164c0dfd83930bfdddcf9d7ae430151a78df29695b9a6f29fd64e2c190554e101e1fd1264bbf9357b076f8cacdea1857163aace0f5b2883c27f25374f0caf0e414d8a6fc36d966e58b1138845f6cca7ee91b2bea71da4e05ba03aea575f54241eda4279823f150d7b7175c5e76c0efecede685f6f8c9aa626833c9b507f653db4914d8769d2fdd333d8780cd39aedb9bca91c7ce597cde912526aede3d846083e252b72ca88384a84a9952d7af0080ccbd385f2bcf376318550d732e993abc13cf25a8ced3319d3ca90eb413b2d28ddf520c9e4632e8022a32bbcd7004cadf7c6b134e9dfe3650b4a66eeb45cce55979dc6c12f855afacad346a666f056d4e217daa698e50fa6becddd2d07b056f741349a6bec1db22a241419362f41275269cc4ace80c140415b4acd9eb38556bf20a7b0c13c42337379549ae001384c51a2a9290000bd07641d500c99f11bb2f027e8cb31947d55f4420c9d943ac1eb0510679d14ef5d9394e44f321288e97f13dc5625eecd9bd8bf2701a27e822dcdbab02ba8de779eee9bf56f69e894522a8c6ded90cd353d4df975cc4d53b1de7f32457d6075d802166ccd6ce1f23a35c8cd74aa45371ee6108c2873f7ddcdadf68eaa602b91560685bd3ade269305940da0647134efc6de600e5e89779d1667a43f5251f6e6e010d70f2c8cdd484dddccd258f8108161ac231003a4b7fd54642d47ae6ccf2f417bf464324da61c0a3937ca8ab5e06a71567e3e96ce1c549f83572301624186a97ef4663bc154f69f40be3cc46bb0ffbfe92447c05e14af8eed69f62baa9c5213d43b92138ab97f8838a58a931e1421c2f15ac483e0cf256ee4532762ffce283f83bc45ae9eb65cf77fc9717e5aff64bc47dc96179cad51ec6b9bc03a51b55f7fc6177717064d305902e3efe22e03e1d008dbbdec43bc909e8918d578778ca72c67b5025f46cc0daf1ac54847ba3f513117701e2a88bdbe1803ad1022a8067273160285a8373e1ae452e7c92d5229571c985cb393b8d15ab72d9692d167f0c7514cd6418ad252116f4681ce5584ef2ba20a44b9337ae82b436fe6266fc12b780d795700dea578b49e1cdb2478f3e5b0ecdac2510b8f64ded26553211e6b77f48d110fcde6f2ccc2edc197cbfcd27a696775faff5f10c5c86856e4aed98429ccc6877370178407a039ffba6ec1faf40608f3d39b7805b3764c1cad59375d27d32213ad51be189d4f4e1ad72ce37d1b20147a72d1375fb740f82d74e6bfb1be47ec0d98d7dcb6773db7850fcb59472b711d9299452183381a0ab820422cf67da513f2f06696bd911b8d3b301b341ed03feb441a0cff17103f8f885263adceb41f53e110972ba11f3c3286cbd6097e889c2fbbe1a2bd64563a4b827c52d9a7a66da4aa5ffa5963ca50a8e76b87718c3927d118b59978c62f30d32149c4f0ecf789b8de4b7d455ada6b4c95994fa13e756b4b80d098b05e889d6ad1ec9a257dadce9cd27068484b5f205d73193ec1d196bb467eeee52f6e02e1469f501a12e34ef1da6d7b2fcaaa163310126c3fcf61ccc36a5647616c831cf9d8f3dc3a6fb801aa9d7891cd3035edb1fcfcfb82c381baf1656cbc1bac9768a68be9ff317ccba0cbb4731959a48dab7201035b780013b5be89382470cb1c77415df227dd92b01b21fec59bf7dda6ff07ee19f1593306c561ccd424f06c44bba8162be2f76966f57d28ea7d7758eb09353e65299cd102f2c514f65feb0a1f62310c80348deac234f28dad98d9e2f58b0d445fa937a29dea97c7ebc1f6cbec10f305f3c67710b60f1b39515f0103db399daa4532e88d017669bc2ee5723848d01df8d6d66f82cb915a3bf9b5beab72d5966e0c2f4f7649a123645c65cf66c8569f3b14990ce2731ad8a4fa69e6b278e1749d1a77064dad10375690e0eb7fc48eee5c06513be30e9899bf4ea6ea7b69ffb01c48123650945a75e978f2bd6dfb89f138894535b5f66191e3a297da25ec8b8777c5bfae4a05d31709e2f3bd5baec2ab1cd17e1c755d6b34c8ac6ee3654fc3efdc1c3df86211e179a35d0cdd904a9f95dde93ce2a1a963d6a9e359b349e9963b09b84e4456cc383997a1b40113b94d8db550755bbc956503e37c35595526caf011a336b56799d3d3d6ab667193e138e8fa685f2006ffdfabb5f8ad23130ee60e826c42b9b604186e172a52f8dba5d7f0c419db1895912feb5cdc0b803a2c19bb9a27dc1faa45cce17ea7bbaa9d216aa6bd9a707f3506cf9019fc7fd9cbd16519cf073eb9a0e709784e4d3d049f3175daf200e4a60053e38ad850d36a7782df62ad97816236151b5839e1ddafed6f008ea23350a149c7c20cdb1c0ccb5954cb17a7a3c215e69043b71350f0e65403d11320b453aad981196e789d3aecc4427b3556f3295810a8df6f3647d6bef69767ceb506b687bf1ec95571569e46e3809181270d9c6d24384b4ce7cb1b10506e94cafd4746f88aced8b4c7159e2aec5bec29035371a38203297d52c4472651b5a35dfc2b3cd1de1eca3f4312b36b209a29cd5f254d4acfc90327bdd8c040a2fc8b79c7edd2e93bda2f223986c7a35890ad5de729ffa1d0447ffe63e9d629d2dda96f63e7abacd6cd1e0539c42ec49968740f73224bce8b84f1e102c2447511595d08aa133dc9b720db230efc69bf1f924b0522c79e1ba52e4cb1bfabd4af47b85ef6e2b2a3ed7fb2dfdb03f262ad26a818eb0b030807b7af50b4b2bea274c6f7261658585e092abd57517602dbeaf2ef8d7422227d17bf0efe6c13a981e7cfad219ef2272a1cf752a55b0046dd5021a6f80acce51aabbc33f8f281403c6090dceae6b9193cb523d22c4ccd327b5f4e7838c65791fb63c5d1aca19b0c3e109622a7814e2c8af70c0a644605d590713a17ace1407afd68ee6a5cb08a7cec0c9593692ec600356b73ab234d1239177262602dd3ed8dcf2f5dbfd72ffb920d22825f451e6df384c0df88d0afa95e103891d2783dabd2e4d65cc2900d3dcfd3080822818000a5e101a613c3de5e0fc861f9400ac678107359309c4bd59483a635d895ff605f3f99655e760bf4866f2e82a36269305bc6b0b3770d1063601577e7cc106d563d8fa40dcdc45d7c0f3f72b03b44bca9b95fc528545dcc62b9188faf25c37822f290ee692e7294db8ef952949642fedd462fc28f4b1e6acff59e1650cfcf69093169a07934092b5ee08cf020e258c3302c3b268b496bab897a4acbe76c469ff491a7a08d42abd40d00da58d26ef111c4d6cdea8a256deb677fa004f2ddec9580059eb4a79ca450cb0c54de177e3c94ce5a189883da23017f2d817a037de438265b20920ffd25af2065ad985059e75af0c476d9964c42fa96eee3845f1a7b491ab8f95c898d8141960428d60170af963838f1090ecf37980a5628179137ad780baa7df63fed5e76d1def2f8b482acef2c6355f9e26fce19b5069c2c68c64faa0d20fcc947556d923d21142c2d7c6093ecac15b9247f4e0f7b2de50cd6cf2185f97c07bb75b66dce6cb7e3de37bbd9ec574be20b5600b08d630df90d8b9c6f753c2313942b13f793ab27d1c1a3bad7b524099fdfd69be542b4e31b5bc60253c3cd3b87d0892a8d7703f45a347f7b481a8e175dd97ed3cd2614a7dea5bdef2f0a61fbd6c5326bdd0bab11128176f242fbbf6b44997a39695fd80b687d4a37da1568675dcc416495babd4092d37bbeaecd8e199dba320902e3583897620abfa853a123475cf76471169d2c59cf15673cbb88662ac8681dc9d39ac5197c8a3ed6ef19cd05db0e276ef5dc38f71871c78ede1700e867ece188acfc4731354569dfc403b0a812fc09666e6c876cfe756375dc14c94a37a40ae24c157251f8886c4a4777cddf29ab48ad0fb05709819e880d4b7261bd715d30ca14f749fb55a828485c1120ee1539af4825a2eabac5aa1ddd396e189781c7e933c0a601d03647062421a0f998b93d49ab8b6055a3b6c1a451161ba038d8f01f2f1ddb15eefa0db22052516e8910c7dcb1dde5b32296f67ddd1837ced944c2a3780fc6809ee48a9c05e9cea1bf7bda60685dd1c0d0b34b0b817e2677bcf07b84f42232c5323191274ea976b109b536d5ff84e3ed3005092fe943acc0662cfdd48df223593962c51c813205a37446873b5bcc77d31a51fbaabff3a7b1f30d2f79beb5a7533becaed42332d88efa65b587bc359620a01427cf9cc450defd1601e5c7baf5f09979a0013f154bb907550a2ef1caf1628a03a5e769e27e97452d1cf2dfd2609bd5f9396596a003fc9ea5001787f5236c9408e3dbf1be4ff3917c92c3a12d4159b61384863fed61e56e87f233ffe67e615fe0f7b93fe9d17c361fa8f7dac01b03d99fe2a3fb6eb8499f393fad6355bcf523b664ff4982d7e754a6d0d200f1a5d9b9d466563a5ae8fadeff0d18c94ce48979d8ab0734035686f56dde92573c003f76a1c415c0aa7aa44f2dea5638cf39cca94739ca63ff4b272da018b6a02c921bb190b532887653c42f7ce089e0f223944450726dd69657ad0a0a8c5d2e23b3d93e6a6426fa6c4088fc575e95ea5104ef04525fe9962150c3f1c0c38bd833f70d59cdcb691d08fe4835907280992e78b752bc50d6d3ddf18c83c1f5d1e5fe2f94ded37422013b3b643622a6575288ab3c62415a00c4479890ae5629ab4c32c357b917dd035b07f4991dca9a91617a07e57a4f6919cec55ee594352cddd8c21f0f366a670b91080c12e70626933bf1c117fbacec07e68dc98f3ffb0f7a74daa2adba230fc576ed4d79a7b49232a2be27e00140411a56f4edc38415780b425a2e28df3dfdfc8047b67cd5acddefbbd4fec15516b8a269923478e3ec7c84cb08f0db19faebd15a39f8663f9484a11fa4ecfe28f529b6d5d4456143ee4b4204a66b313724acd83e1d23b361c0a7b4fe1c79feb5259fa1c23b55bde6e736645ec6b4660f5e054980d2ed7d45c61e6f60217a54fc914bdf7f273b91e7e0edd71e0454357128344542899a41a4c3a9845a9188b087394d371ccb3ab78454ad67115ae9aa9a827f17ab8784faa7064c96835e63e78da74c472b14e4add0da3e3cc1f4cdb4c3a51cec1e4e803ee6f0e49b42ad5f5822976f201590e17f154e2dc5de22d6a51f73f8fb4bd52cb96a33796eecde493853ae5b63a3a13d65d2a1b49719643c43deea9c30c45ea7468ce6725924a8bf170c998ce7cf7716066435ea13d14d9ca491696c462d2f0bc3eb2b2c9d023e3dc59e7ce06a9b7e5bb56045263f9e6e14024adb7c1e7ef73da3f24891119e9663b494ac520e86ab2ddafb93a9eca49b3e5387f304dbdfd567c3f266264e7f2c4fbd05727dd9f22d562a22f96a1f4a115d8c9a6db2d925b5b22246297724f3b7fb9f15be6bd22d4058afb6da338d9c6196b133a7957cc6193a9f89c63b25443cbbcd18b2139da70c9881fc6898f8ca69b35ceb687316306f62677dda93221c5356bbc1b4d2b4ee6ef5b452fde974aba52772e11cc5bcc7e77c95871a4b9b29999b4cc948d70f4d1359f4e7cbdc11834a7d7f1c0df78c1705c47c744e149249644ef38fea8e647b1fde4d3c0a83083c6397483aefdf112f17665664679fe392a52e74316970855d529b50d77e3241e8c6a6dcd9fb8dc3b6c97b4800f36cd6754a547bc0a0fe38fe3dc2e8ff651f77147319a89598c261bae54e685ca7119b531cd4f2ea76cd47ed74efbca70b6d87b3820d477ba66f061b47a0fc52db51ae82771949d0cff187d7a06395e68ca5654b6633799ee495d8ed2fd299a61f6e9035953399e2f3447f02d6cb59f47c164806c6aa6c1caf664eeda704ba8a5efef9d43cbd6c77430db6d72bb1ce363a6408f5463ce2613972592a5379fe8defbb298c48377dcd26787454071d82cb006ab95eb0ec6d381102e8bda6377a182eb3699a37a480c9409666ee8d3801199f97845a022e9cad8205b973c9295d19e39ee1646b15a6caa21167d1c0bcf9b0e9035b527d787707c883884c256845008c3cdcaccf5b13d6cbd3acb70293eed328c39a644b998ec115f117713d19a9943b5a59c7a4c889fdb9579da14ef237fe4bdeb4dbe28a4b9586f3d4fa5527e82acacc97ba8ac71817bdff8efb37c97a1f3cd723d5e49c7f7b981f8c74de1070a1ebc6344bc994c11c33995cdd020a9fd808adcc25b2db5803e38cca7520ffda89e52912419e31989368a33a76b5e18bccf4ce6e03324ce18c3859d9df673da1d4fc8f7e5bb874f49fe6829f47c304e9476b9ac351c4f9cfa38c6ed48c3edd85d97c724c686c763c10e32b459dbfe6c130ba3899446f13c7289688672d102199e260b360f0f6ac1adcacfe9fbb45a21ef35b1dc70e2f2743a4e8dea73371777c42952eb72d066e393ec116b3719fbfb78fdbe18cef843ab3223af1115cc36e5f9dc1387cee0f8ce870b7558f83b7d52298bf147c3fb25bf1e649fdb6391ad07035fd266e3f7c26b85c53b83ae62dbf9f0a30fda98f309fbf9aeb2bb8ca425c90c9b037b5aefccf76a3a3aea4ba45e31ed8eb5070327faaca76470689c81bb9ad1d99c51b7f16413da263f39ecb829b79a9e7c5eae3716bb4fb276e717f9a86d8cca62055f2ad69652e665798a69b26e26761b9cead9a1914f86afee9b8215823a3c8eacd9e9600c457fd78413aea8469632154de2b0181a89beff8cda554a0847da5d6b6b836111df991519dbec87b5f59929efda381bc4ee52de8f51e4bdc0b2d3276204cac853ab859a9d086a355777fcd65947bbf0733a373fddd97b1cbd7f0e0b3219af56442c318141e66a401a764cae178971c8a308a3b27c464be85cdc4bb2b9fec08d10654cc6a047e97b54ec4899a2e74eb518286bcf6bd6bbf8c3fe882bb521d3d4c07d753d2008373316e3a4098eea5e173685c1b49f87696b9a59e6eb09a1e0d1fb149b58ef56411df4746b53741db563f4bd448dd1daf225ebc87aa7adf2c11db2d34e9ae7b6be3ea0d1e07389ba56a3aeeabd55cdb0edfb6e7e581c74f97d6abc0ff1b40e57c5e7672365e6e79619abcc80500cf2f3147b4640997bc4ca47c26224bc67a34f69ac5566e57e0aac3771f13a10162acf7e0ccaf93118289ded9630f3425ed51c45d1a3d9f76cb7d15fb6ddf43edff77adfa576a977259c66a137349599ef151533e658de267b73c3ead62c5ec84a4a946e48ef5dd5dba50d8661e6511b24dac87b5f2da64252d1b3bde5cc3173528f1b24b66dcbc21d6cbc3b8ec75b78971cf1febe2c22daac1703eab895dc5d52dbde9e950db3443e18561a7b1f2c27a3b1db060cca92c7cf642f707bc3db389b7c9f638bb11dee501de128db4a3ee6f8541a720e8b91638f6d4d8fb736d4c6714a242bc29579729acf7946ba6ee084d17e449b1ad6a2e29269fdd5649cadd088c54851520b57524b9ec0036d27c9ce80cfb294e14e7adbf2cbf5c131486655db7c1cefa815e265c5445f2cd899cf46eb63922cf6a5ecd0897a12de71b7d833615de05386974f4120e24cdcaa4430168fc9e1f3541d4fefda40392e126e54f24d1bb1361d8bc27c3767e255a62a86962f3c7f9193a346d3fc6dc96fa7e22a48127c3aa38d86e58e4d32417021e410866157aa391a8762dae40577f2ea707b9c4e57277f352c7164b4a1333ffbd82e97c34311a6699a1c56c338d1d9e4d02af5388cf87296b6c154c7c79fc82e156ca7dab4ab58dc840b34c3e6dbe98c1b9d9cac4a708351e2d46625715c37814e364db3dcf20b6339748ead43555aa26f707755e4853976b6b322e4598b2e1262cf1186b93162ac120d4bb1705f206dfda3f567f1a8201822a006c1a2628c91cf582bf9686c2735afefbdcc71c9643e5db1ccde348de3540ac2dc1b519b2615944d3e5a7a242945bca57d2a466960eb52298f23753ed27654aa86fad18c022d4669cd41a2ba58cd86e6c47e0f857443f2f8b06196fc90b2e33c0a4a02ff44775443ecd561bcac43ab5e4fdb91fa6ebff3249d4e0ef57115ac7dd1df928ab5a18f9bc81c13d1315815b6471ec79be6800dfc81746ab864151e28f558d4325f151c7b122cca633f704ddc8fc5a0cd1745f86ed821ab649c83b41fca6a44d3c269f34107a2456fb3a96f85b38ad076e9316fc3756a730a1906a1ccafb040cc84ece07342b32dfdcde0388c4663b540dfed98d81c46ba114ee7cbe578b11ead194a7e2fc215862ff51dd67858bbcc4603aa9329c32912cba40f4bd8be994fccff1199e2e7e4a7f327eeaeac1c56d25a819ef1dec72c526683991004a114eff999a04d4fe3548d730d93b38315efe3422897a725e92ae57280546b211e4fa88f61694fdea9e396d12c67bd93c7b8917d84955698e47e830da8e98639b5bcc9d0c1e27d34e2632d88a4a3b2d9ec8e63315cd8bbb06691062d033f0c6b93df2afbc5a1f205595963d8464cb2723bdbd5c930d1b00db9f349c2c312e49df53772c3ce94ddc29f590bf43d42621c15483159cd2bb9347595a9858ff147399ecedfb32d42258e8e4d4aed60e3f2725bac93223da5b335e37cec07f1a9cebdf566623b957fd4ddcf44a48dcff1c7fec826c3c88e273bac4136ebd366b6b1799499d7039df5eb78d60ee743c11c2a8bf51c236c4dcfc75c388c8991e91a5b6693a16a36444ed15190b6fe68879443a796965eeb4ef71a9517c7141b8c34793454b56361bb5a2dc79cc54dd4364350241e0fd23a5dcf2d62fbced92d1f1111399ca70487e624466f9080f03f31059d7c5042a5879eb8a06bbb9dedbc5c748ef556b7e77a7634c2a3542ebde529b62cebdd96f1f0bd14b3f54ef8a4bd7ab479278a3288bc917d1c92ed8c129a51b61d1f5148a76344d8c5c388a6280aa5be57d33dff0374aa85968438260ae8f5e05802e29ac6e91bf78865a9bf5b71a7991eefc9a91cf38ce8d06d35dc57e267ae6fc42a39e806931849e40bacea84e4524bc2c6a9edcde6b8d2776db915687b22d393c5504919b949793e30457fb01ecc3ff6f6c771b09f1fa693033b7498a1a255166a1d97bc572bcd82d13f9a8de21c4fd216a59a02abca229eb0e5d63c316a3ab617f27126352731d99565beab93d18659c40373e421089becd6d3e5fb10e12b75e9a896c42c24d9fbd017c7adedf88acc8a0b349e251ee38e92c17c684f51ed34e37376ba5da493d987cb6679fdbe50b4959a78a8468ec962d5aaf5fbe0d88edf33c35ba80b86dea3ca3ec4732ac267c27c4f96ad995aa47dd03ee955a9051fc368c5b5b3e93c730fb211afea72e5d58e2eef1b979f2103515c1ca31c9fcaf6fb72b2448613fdb4fdcc30891b0b275c240ea3dda03591f77686e01abe128e2b653acd9572278fddfc48eee365550ed4f76532d95af2e707bf262957ddbacc7a3cd9b9a6173aae46dafb8f2d3925029b6346b16b4e3e17927af49a015fd76b428b8b01378a8ecda9a1192fc4d773718bd2093629b7ba4f2eeb4953bd8b5ee346e66055a6c3a51a6c44631c77f5195bdcfbaccb14d069ded3294dc532f5e20ef4ebfde554fa64b87579e9286bcc663b55273811a5454ae675ea42f314c5cbb45806c8f113f6568331f5e71c5478678ba4180a2dead94a494849d60941490dcd600849c95ef5dbbf1b5d7a593ff5cb2ce9877ecfbc25ab8719c34258606d3475ad8de62faf73cffc9a50324569baa1cb2a2a68a97da99576cd491370ecd6b684ea351e9ee02d9ee05dd43f83b7f25a02b1cd5dece7e979ccdd4d7df6cbf968a242d15a099e08f03fe9d9f686cbfdcbf99cf381ad6b3eb0cf913bb1a05b0fa733bf502ac792be8553fa19840f00039481dfc39bf8d485b4649e7298bfd797f2d417359cfe341ffa7b7d3a4f5dce263feff326c7bae7c3e95dbeb624da83a5c300bbc7a64a8a9a2eeffb16653aa796dfa9e1673c8c44e03ddd162dd966d6e8b812fb8592f967bfe93cbfe39dce42c7b35532038f2b7d4a5154fbb07e08a5d5c277e6a770466e5b461dcc947d8011b587b1a963f1e952fd6afca9c8a1930523f3143587b532dad3f82e22fe95f1753c3b059cb1bbb3ff5040db31215b06e272461370d9c6b694fdd7b8a2a792adae7d205439dba628f0e11157feea2fc0daebf433af2defce7688e7737cb605e34c37e0ff8b077edf5133963b7cc3de40be3f26e1b21e4d1ed614c5f0f303452da8a73197f3efd83848d6f8b8127bdcf117f4c8cc8476bf190052e010408fd9338e87f57770ac7164e1dcd42fbce43f9a3df86334600e14d51e238a62264ffcb75187dfe13f09ce393b8f2f401efc7aece3fe84e463a07302c0e3d3e1d3d8caa9fcced8b26d29a56c4927c744138f335a6176dcdb185b2b5c760ae6426517c6ddfda12fe1e183c982980ce80345e1d190a298c3133cdee6f0a7e0f972dc79cdd80c5e42c3fa9052d4d47e1a9746e4ef8cfbd2865639b6717e4d77234a2363286b9948a028eaf4447786f42d39689ce149a5bd973b95831bad6dddde23fd9ad7de97e166e5cc80dea967078a12a3475e63979afc0d5e432f34c8869cb1095ec9b5af755c403dfe37cdcc6fd711bd96f3078765b10190f32cf81f3578c2afed7c7f0c844da0ae3325e4d73ed26b7cbb8d1f299fc319454d5740d0a84ff2747e30bf83efce7fa3ed4242fc9cdd04ec9dddf410cb94f65ee164bfd6cbd3b1a7b9ba01e5a0cfbcc497627cfc73ee397f8dafb5967c64b3034d51cc18683ee9f0842fd3feb375dedfc60bf5706764971b704f4741f277ddb3fc525e3ddeed364b9fe4d57beeff5d77b97d718fd3eb757abc774a7ea26b2e74bf63277c5d8f4f3b60add23e365f2cbf84694c6b239c84fa1c9624aa4fb28d8bbce85f71f7d56bf8860b6dacb4f0bcbe3dd04306f544dba8ffd7e19bda9694a92671724ce2e45a4a15e48606f4b397072fcfec7b497f8f6714c33355eee9afb4f4bf4c7fea776ac95ff3e82272b7fb1c3ea6f3f3bd66773c6ac6e45f3f0706ad7c5c02b83bc348fb79f00df8983132c5b84f7887880fe0139fe0b33effbe736a5216b72d217b7d7eda6b7a540f0b939d20801e210f2bcf3c1c447f9d87bf3c2ff225ed519f51162c7460b356f292a266cfb61a0e5ca37fea9973af71c67eca3682dbe03107fef4b3dc9b67c9df77c666cfb7fe97303d9e95a23eebcc45f2f7ade31f9725eb1da20fd735584ff8bfc7230445993e94dff27fbe5ccf3fb28edae9f489f8c0e6991a50c63dfbb97efa7dbbec673833bcfc3b77fafc645d1f7218a5277dc186d95fa6b52f6518cf8701353ad814352fe5977690b5c8fe80cd0ec77466f7b2ec6b3b8822797d6d758f3a454dcb27dad98fbee52f42dae9f19f3ed0d0fa3bb6e9e3de8cfab41ef3f7edf7f9ec4fef19bec4d382c446db8500d84b8880ccf49ff0341067dfc7d3ab78d6f76063e9ceeeda53cc84a2639ea2d69fbd9ffbbffff7db8fb7cadd86c5eeedf7fffbb64ea3b7dfdfde7ebc496e1e824ffff33f3fdea2641737de6f7e990fbcb22e8b7f54db7213fabbc14753f8bf0f76615e65ee2eac079f8dbb4d9b7a10eec362570f7ecbf7c5e0b075ab2adc0e72771f16ffe89f7eabb665156e774958835193e2a304ff06e1ce4d32f855d18dffd3b77ebcd5c9297cfb1d43273fdef23208df7e1f6208fcf8dfbb04be8b2118fa0f04fd073ad6d0c9efc3c9efc4f8b70931c427639244ff8110bf23c8db8fb7a4feef20d9befdfee16675f8e3ad6ee1f0d370fff6fb68381e913fdef8a27cfb1d472723841c223fdea42c29d2b7dfd11f6f4b382c8ea393c98f373d09de7e471104f9f1c65d3f5afffddf951b206fbf233fde9400748afc7853af90d359dacd63889023f058fa69fdf6fbe4c71bb54b7200891afa6fbfa3230c990cd1e170f2e34daac1371312c126288a8fffe7c7dbf2be298a90d818c7c797a6e739ffcf8f37e6fb4dadfffeefa668ea3078fbfdbf901fc80fe4fffc0f208638dc4204019cbd0de2320f07995bf8a1e766d9a0defa832fa965e025c5db8f373eafcaed6eedeee23b6aeb7e9c967ef7ade66ea370d77d56cab2ffb474777efcf67bd164d98f3775e766e165f1e09312ba7559746db9924d3240635deb6ed8cbe334ac2e9fb5b0de3db4065f3dbcb12c83068cf77fdf7ad8bf9c2c043629de7edf6d9bf0c79f45199cc6b20cfe14baa3f2b7bc0c601746b8ad138818f437740819bb82933873fdafa0e817e9aff2fbfffc780bdc9dfbf6fb9bf310a5342ca15e9b3112cce9d32a99008feee0b5442fad89b3846c3a69de69b46542bed67417698ff6ef4f4ee2c66e965749bb3befb82ddb21266e963b3bcf1ab1a82a9faa2e9ae14fc254792df9c5cedee4206ef446baec04a2574da4518da40e3131af623f2aff89d2599951d3e5ecb73cf85a025f9b9d452e4a8eb17fa5cc45ff3e99db81fe1fa1fb1fa1fbff19a17be5cfab60e55b9a0b4c62d3a5cfd287b359cb4495e598c78d87a1193f57f6fc3cdb07161f79b981f32c8bda96b00dac65e4144663e3d0fc8efcb9b07773631330b3059329a56b2d231f63773e77ccf839dd7a5895d9b81cd9c0f4e4d8ca2b9691add227d7240a8fd36ffb1af11c9d5fe02a968d72fdadb969572e4caa660aa574d49bf609fd195812c2cf852c981b2d18c7b59413cfb1ad831b3bc72410312a177cbb8c348edcd8e62172ac38b3f14eb930291abb981ef9b8d13a2a8db81c8bf01cbdb02d27e6a7b323cf4a3315a322303fd7244e01c7d61e67a4a04f839b443edc569723e02a02139be7baad366f9e467e61343c47352286625ee147be65c47ebe43fd53953a96138951a5bb9c0e70d4b9380c0dfa6f83f93272e70ae233f4c9b104ccb1f808b8833cc7a201079483529dc7083016010ace6fe9dcc3f9c8c6e2d8cb03f0bc7712fae4e1466b63708cd451870bd5b4231f23513f97329e93f60e1cfff20ee2de3cf3f3a0f2b84364e73a5c6f9f630bdb523287a111afa5dbc0241ab09efc5ccafcc2c9fc6418a9961cd9e6f1e4b53470471abfa553c71450070b2a2ff7239f23db80a12349a30e92492d7c6c12399c91046650c079626cc37342c6732c1240256aa43c97e53c47648e09c61e027adbf37301f5121a71c0da7f81f380334e0147354c546ef896eef0cd39a8974b113f9396aa5c2e544b2efc966e1d13ba4d99975fe67872c07c668ea1a5d2879e1a73d590743dcb229e339a20cf5a0f23208df17327f6f32cb6f3632646556473f4c9e58cda63e8938d0b953f97173c18c3a26bdb94327e3edc8bb910fb58dcda2d9d842a4d80b5e2e752e998c79a9f0b1b9e732a8fd3efdfe394bd8ded323f218031f1e96171e370245cab808ba2d024513f0173092a1f57da50aeb2704eef018d2a99b192515255f440d05145353534f53069eb587ce39a93bd9b93a5972b7b47ae321b8bf73c23fcf177553e5a6f86d1473269ec9c3db9601e14c007b560922558032630b3dae1b2c639001e8a2bbfa537e79007cf09a86b1e53bfa5d7329246ae89c60ea6474e4eb6fcfc91f7870b26a723fb823369e3e7d921a02ad8e6dc17f0bd5ffeb574026161e84fdbe21750d65cbea376a2d9bdef4059c822aee5643cb38cecc2a83c4ebe7ec7099597b300d7b7f354cffcc1403ecf4e80dffaed0748a7677ebb95ab1e9451c73a54e9ca4be818be53283170e3fda842e1b580fd7b67dcd8b890f57c19db3989013eb7393af2b13803fceb6352eb5a34c2e480ee97706c88370acac50d3f53329f3bee43f3f59af82d8dbb00bf677c725056a580263d3c8d022ecef88ea7a04ce5b9ac09b849646347d4c71520177eb14efdf82ab5e139b606320138000e16647e71c1379c53cfc7b77aacf20a07f07f27cfa36ae6b574e3e132a4190733904ea74919903b86212c6d86c66c4ba86c53a881ccf77a7cfa3989069c1e79987de6a37b5acbb27da0d205900970ce73611f580a587f82e79cbdc71df741b73e17dcfd4c16f4b4963a16c445e2dcd3ce06c0c9fce45df05be77c5023b1256b0f93628f8bf73e2e8f56536ab864260b1b375a8fa1764142a5216aa8da1c892caa8c7806e57946987a188140dd682884cfe923dba20f5e97f604e870ef16d2de4bf8bb771c15159c6979e413da67122a12f528e25329130d691f58c2c6d1aa8dc791a8c3a01970780206cd42aeb7099edee9c675380313f35d63c3ed2fbd71ac38f62cba0672e4616ccde78c0dd0b13e96edbd4d79143754c2b38705cf503b87a192103d249e699c7c8c2d1ce390ac12dae713b90cb0786f9b68b5300ec9877148f8e80ed7bcc12ab26bea3fa351434f0f24d4c7d3722f629dae7139f2144ccbe1721a1dc443550673e5c03328c633ca18accf87dacd1786de38880b3db4e86c051dba6375a65711ab4e80efe15c675226ea59badaccaecfdfc12dc4010d70d48fa16441426ccff249cc8da16da2076077ddf47b704c09732ce104e0586d66cd92e960bee05043d2c53c283d8cddb96adaf3df3f333498ef8bc32f227fa0c5c5e54410e015f63e27897fc3e724a04f35f9933e27f6cae7c446e89ff1393bd87fe27462c3bfd7ebeca7fd1daff3daf43f5ee77fbcce3fe67542eebc7538677b183dc3a592499691a822bb7ffa9f5c6ef81910b046e36346da297f6838d27d542ed231320fe641ece77aa4e424eae54adc2979aa940d895ba834f82ef3137aefe5d000dffb09bdf37021eb0db2d63505e08c0187af1f4b8f6c33681db3733afd7618f1ac94754ea51e6929a9abbac4de18f5a96bc13b6b92a033de70d7524a002b7036038c6cddb353672aa90b1533117b0c5d79b9b3f773b48319184473217330b6854635303e709af0f3ac70e772e4e14103853c971dc4848a0c60b8cc584d49e8da35a5cc2ba4def10306ea05366014111eae478149400338e8deeba3a7f4f2fcaec8d0e65989f053be59325409da82f5e6d30b6e92855643a38ae7d038543b032db08023d4cdd7c933608c655dfe991cb9e6103ac650599ac4c601ebda3b391d2c97be1b9ea11d00ab67b204cf91090c38f4c6b33f4fa141f7f04e645bf2823f941be8087017630a0f70bfb9448d73b8077783277209d650cb2456d4f86649951b304fc3246ac7924e601d7ccba8fc1c38adc028bc28fb04285f8f63711ed20c5bf8b971763201acb89f67087016440acc53da3b8502f344784e818e5c476f809e8dc6e18cb3337459071eaedf435b0e18e36cd3ad05abf1b34ce3139a910d49d0db43642099aece48c360684b360455d6095dd50d8d9f912a3f93d65aaa08c62c5b6bd932d2103b9275c2017da948b6529843e49819e202583863e883b9e3cb08d0ab0b8d8d0c38ebf73cc0651bc7244ec08903edce74e2e374666359ee9a4b80a3c6c18dcee9c34860a0f441063af3f33ec707234ebd1352bb265a055c674cf9603d7f821f11f009f32f903f2ab2f8d7caba6e77816725c4b60484678d033f13e28093caab11dbd1a99e1bc7c0cc5ac7942345274c18b42896a3afe085b4c3d00bd970680b89d79aae47a24a43a7a377c0f60ee0b55935535bba84414440875137e6399fc2360fb7632ef896faf99c182ad234e1439d9192a252bb3ec0d33b97640e6448b7a3129c80b379ae257098fbf1613f3a6b2a3af1a1a1b4aeb7d48e9fc3bbc1768ea540e7d2e7d8d3839ee8827fac23f1f3a074cc2174983d786f20dde5f5f77df30c9d89b9dfc0773925b30ba3b8ac0797213e66d44e728072aec3631778f081533a43692335561642ca06bb244523ee02652db533e702eae5551ae0d428980bb15748070f1790b5a920162ec10050c01ccfc14132548fa7c002063d91aeadb406fac2cf8d937f4286cb2975e8d750920d87d5325253914cb65061ca3348e4e4c7d8e9e43dd047308005f16d2a3060076467b75345b4764be7ae79cc209ffdab7829cf729ead23d12a233e519ee790d0013fada12cf1a21238429593d01ecfa039cf9059c02df737f0dfb6856b2126d4deb194cd7997cecf97a08fdc951ffbe2d38e1e27cdb53f3eb2546a0ce9c61c2ebaf51d0238790d4159f1bc2358081b1e8cc7391513555ddf2dbdd65bfa049c5ad7742abba54f0170c27101017a5a007c92d01f9e659c0276d20561cfc10ccea8c01cfc8446fcc2c83a9de2c4de1cc8b96a139a01ee9a43d2c9d9dac7f431932bb15f0495b74173db3c9e1cad5e7866d638b87f6eb3b031f6e4a85462cf8dc636d1cc66801c1f42c7d2d4034bd5879f0b95bef41dcc05d451a9f1ea001c4a54d0d2c05a246974ee17feaed563e0502a1cdb0658d680df9dfef3da52dac0d47b9c2d2303d8020c89fa38bff7b82c8141fa96fc04bc6861f1de33f5c835ed083cbbe6b10bb432f41ee2a1082a1f0609d9da63e8c436a52dc413432e5d53686d4b2044a48a837cb6573972e7c8e53900a839a05fe0dccf9740ffa70e582f8e3cc07a011814d11b608788d8b1b20b21f60bb873bb117136067f4b6d862f19f2c3857652d4b87365e7515dff005eb3a576614225c2aca28d94ed651a1f59da3d1dded0da9067f87d60492d1c3337868eb9dcbb398bd906d9c9b7840e56d066331a80dfb35c71ac18d20f7f3b968624f697783522fe0a430668e83b7d8ac8151f2a804d257908dbb52f40e75d1f79daadf3b41e33b971b2cde5235fdfea97846791e8767e673cfa175e0d32af50f65e8bb68e79cc6c403b0fef3ce82cd2e6e0faef6c8c6c9c3c2b80fc720b2113cd0e07e01d0027f87b9439cb8c84fcfc206b00dd42dbdbc7c83ac8817d97352e0e7429952e197a675b29e45b5b05760ad1d164afbb047c19b9675a64695539218930a512a6eb37f27afbb0b7cbf75d50ff08742ee6a8f4293451d8a70ff86f1e94402e4398cd08c02ceba97fc663ea1dba75f0e64bd2e68e279e416b87a112018cdb0a518f2fd8dfdaa4b3704eb740de79f365c24fcb4868879fa2368c2c266a16d9a11298e0fc0ea0d96b7b30ff968f56095588edf05368a9779e013c65efbdc2a8bde913cd0338493e513afcf4df3b4046c90f6d72a09f04289bc0583a2bccf99cda0bdcb1f2f23ae9e1e9688e53a0df06bef33120ab81ffc493f69cc61d18f8bbb12f343472b8acf5804da05e7122b6c3e6b21626bb7554ba0a183a0fbae0fc3130d91ac86dc794818cbcd0c8daa43710b733a4bdd03363e7fccdd8362683353a01dde0005b25e1017f6c78a00bb80990859deed578e0a744377d75f4992c81dfdaf2338970f0a0f212608b13a700f80b733a0eb8b8db00ed36110c2dcd6c4843c06764e8a4ab8b00fe2a41045c0cc7823e2747a2c0ef71a8aa72122ab5f1ac00b2fa8ee6218d0d9ff982b1f37e0dee70119ac1c1067e2d83ec0293a8c207dcd8d45d9f4f724048ec4e76dcc91f3402b0f9c0ee67a89d68198d6b454fef3ff43dd566aca6a3346dcca287bea5a56c489a3e637575fad837c06714892a8a7a790664732a23475a47255936149ecfa98735412b2f0f7011c8d24242019e615ff365d4f97359c3b3c64a3522b841e1992cc2734206372b543af60ae053415bb3027eb9871b701314ca2446d9015f28686f6d0ea8331a00d7d5668676492ef4fc74a575a00be227fa5cb5f421c0e4ca66f8bbfed4943565e3e51adfc9563ea7ca9ea6eff07fdbef0bb9fab8d6b77382fa49e937eae1460d801dca39a9e4a12c67373dbc67bd0961867a52073a5342030efadde7b58e7815b413a04ef3e1e680f23c8e71e8641e7a284d7418596ae52fd420e2138ae419a1f1da17ba1b6e1eb3bdfc8b8e0b15ae1d8c71dcda2b3cc79ef8b984d82691da96d0f9e7acb4f738b605fcb7d4a8b3ee82fd69a0bf131a05585cd95814f9b9113b50deed6ee5afc733b3c8863e380ff07a7db797c516137b56420750766354b456a9c4cb270f38a72e368bc0f5f662f268dbc23121cea01d05d604c8af9c88817d66bdc4bfe1f33995dcda142fd608c8f78dc35cd704f60fd6e22c3b196aa77354670799cb6b7f9c01edd747f89e6947c86cb3d733c09e670f89d0d1d1b92e16ae91c508d12b1be62fcfbb1b0bda48b73ab67b0fdab717ba1313407364e29ac3c2a62ee3dff3dc2d9e547ef1a5bd7667878139753ec80bfb74aae9f24fed2fef851dfbc2eebab563ef64888855ada3922797e9eccf677b0ace61c3cf32465383531f53d87b094d037909fc681ff849c027ce83ec362e704e80e936a3efd6e1745983eb1cc907f9b387b6202e952206edc4b33d716f0f7ff13e8c73dfbfdbdb2237f479fb7e4ee32e976ddc9eae7a59f6b836f11d1e75495298479f933e276bb07e21ecfd4d19ddc96d683f12fb80a153c7742a0fc626a5bd5f08998d2b75a80e137e3acc97d03fedec0f3ea12203260db18d9793c8159f7a744727d7f786ae2547cb9fd3d5ad5e7a05bb65f771be55721f6b724c02732d61efe568e6157214e46ceb9a5d3c15c84c081fdcdc1f264c0efdeb5ecf076b3d3dce74945cca86b1929198d537e8de87355a64ea98711c58cbc6e78e5938374ee7ba8800235b8f534e627e8c039300bab715d3eb67988030575a60bbf95dec1cd8a500977bbf48231f077ead84405b8c735a0f4360f2948d1927bfa5710f17b6303e951b9b8023dbb04b40e8e22a7d2d073f17f61e0e13867258bbcadc8f116019b04d1acf721a7e2ea1767ed75f9fbc419c5c53c9602cfa36212f077efe5d7f0b27cf1a87edb38e333201fe14b089174c1a8587bb38c808d0e212ac23a0ed5bdd70a69dacb397fa753938a6543979768e75e7c04fb6fa588b8509b18f19c0364f2e7acf52503f1f464bf91c2f01ff5eda917c221fa17c9e078fcf171f884f141cc0cf2754bc56812fe27774c729fb07199582f90418b4c1f7628e62de4b99445f70b256bbbeaf725d00fa767bc7f39d4d00d7dab6847d00139ba00fb7905383d61964b8d29638cfc440b6691e768cfd3c3bf1d3d94144a5836d099b857c1f438036db7c07c7fe781d3f80bf5dfc8f0e3f7b3119f6769812bd8031f372b9db1fc1c8d6c5d8d6c38dc6a1ae3ed49547f934bcac9740f25145425ee0a4bd974b71c0198d6d29801f628f3b405fd801fc89d9c0ff85f4cde47d5b96ac6142531b55fcbc7e8ab32d5fcccf31a5d26ba9446062c44fa89ddf5285c50d0b9ef123a1a526fd7bd525ce56200b2615681d313e9459a6aecd9fd25ec42772e9cf8374a10ad1838dcac886c45a8822e8c9034c6799a7d567fb7f0393a9fed57f8772c3cf8c21c03f4c8c49209fc53019a9a5e3c052f6c0c7704d097c4780753d9ff7d3edabc098f773c5415ec57e42e77e4eeece316d11eea528ad6d1e165d3225d02d6ced7124eeb7f45d725a5fdd105dab1ba02f7a493aeef61c59a4934d7165e719c27352e998d216c205fca473629d4aa7b6a5c4700fe7df81e376b9b8894125c2ec4a57624bec82fcae2eef27b87ca6e9becf4498a1a696051f466aa8724a6a404faed53eb6fbc2463ff342b7772d479ddcbaad5b7c3ac3ad7173b6bdc457f274711b63f9ab70c818897a9cd20830e92e6b9c5e37ddd6953e57bb109fb6c5d74ff4c86508cf0c1b31e96d5ac0cbf732bbf3750d6765a0a4aa18f4da3084e5cb982857c57e66b4de14b9cc4d4f0d59430d5563fea66a9c0b9cf77e08c037ac125205981ce69fcabd880b99cf9df70f868ffbccdd381b7eef9a93fd57e7f12d99212a6eec1730233dcc10b7c9a3bc077e24b09b54ddd1d62ad09d9d9fc973bb2c5469cc368fa8a3d591c34d2ef338ef0b08b00ddc138816f3cb9942869f1faa3b3ccf9dd89b1b19bfa9231bd898661dad4ef58d7f22c5761f8f7438b271d44e76cb29ab290639538db31efe9a9efddb7ad7f6bc069dece613453252c2b25087d55361ad23c0b742a26ecfe2159df4b64bfa488bd07e1bf10cf0b5e05c9f717a39df09e000da3ee4bdde987c9717922b9d5f636f4fb05e71bfb02d019eadf51867bbc6ae82cacb957d802fa14d74c6a79ab3ad0edb08b736c115873789caa2056c83200b985fc572ff02fefbbd87de17e0a00d02ec19cce865c145b774dfdd8d79960fd48b3d975e9e1912aba7047d8e297ecc0f4f6df48bcf20bf8c8b9cff7a5cc0d801a479868f447df213fcf2b77189a7bd957e3d6142b1a8a2504e889671722c9e7c01fb4d1b3af67109d897e95a3de39aa67554b2345498f57105287ff884da692db4079fe8e6351ee9cc7b41037d42f1bf9a06360198c33d0d74dffd1b69e09c5cedfd0cafc9037d98f6afe98093503f3fc038b38f192dcf9cf167688a21ac641d6557c9abb546a16dfe420e258f74e03ce2ece57ecbdfb786b679ac3b392ac4360668651205fdde46b767d8e51d7878d0781c193bf7fc72137bbbc4cfa6f00c8c13f22b1becf1fcc5d9658cde1ebbc6692ec5209c87f391dccb5d91a14fc0cf8671d73e7e0fe037000d76f66eeee1c2ceb6804f6de4303710e66d10dd7e4a17a7bc9dcfd772fd26c628c3b32d96a4cd4984835ff61faefb281718a8730cb3c3cb652f8fbadf77bddf5fceae71c72ee6f1b3fde43b5a50a96e7fec2fe1fd1be3ddc17ab1f34cc510180d955818879fc3dc81173ef0533f67df3512551a9e83e39a47b83e5a97c3619d65b6c291b897c3bc975e1f3bf19d1dfaf8f720736efe36fc4cda7b165d79dcd51feae9bd3bc3e5f01adec553bc54a8bca48b95da2d8ceddfd247b2901ffb79e09917ebfea59d857476d6f5ccca5767c32ebf948ddddf32d2af39535d91d32d7e7fb25e7fd60f79fc3bfb253c83dcc2f11d991089c9b0e17f02df3d3fddfe450f714e18bbeff62a5420ffa503cf3cf2cad7f040daef73d7745658aba931353ade036bf7ebb5bfeaf3734cf9dfe63bf32dcd9ee34c8e1523f0bc3b936cfe8d3193c5759fa4cfc3436955432a56463bdb1dc68c54657c5e03c837ba22e89b72776fdf0be43966f447f4654fa35fad318c2bdde52f02bdc7c41b0f2336b6a57c9c636c377971b29e920b4597f40bbc67ff03ab304f25c0bbb96bfac942bd8edde546f22ff30a7c3ca8ba5cd23eaf60aeec79f6ea57bcd8c3be16067739378b6e4fb1ef73f3f7e412fcc4c7b9f693537f6a2ffb5b3af78ed73b9d7bdd1fbbc92560eef7e16ff306be399fbb9c85877c862fd6fc61ffffe734f6cdf9fe9c476ef31ff4b9b00ff22c75543ae619e114c0b396615dc2c831e5849f0771bfdfd13a96d2baa6819d73c365e4287445fbc0ce8ae380e98a4e41bf7d2d44571fc1097b00eb8d1d067d142f271bd1b8a1cb9b227fbf1d5ef84846d099851c052d353e644398439ebae4e24a6b2d7504a5a55299e19f650422490a4b2e559d602d84551574b960b240950d5a560ce1439bb186964abc62f0243cf9253fd74b5c4e86b9eadaf451d7a2b16b0e174c97ef77c98f00f09e8b2785fb9ce17381646753f46bf82d59f08d58445f589988ba72861de61e429978ce27b110e063ec943ea74dcc51d49b2b95669269601e33fd7c48c4ec667f4a43d210f9393d7d5c0a3f95b1810ab4ced2ac9eddece11548f462bd12614625fffce2c4dffc5f1d8c7369752e521c8d90f1bfb24611fffb6a143bd07f52a2888efe53a2f89f12c5ff274b14217f5ecb1465566035f527e5287ff31f93d2aaa223d7522853eec222f7e5759a87394880c114ce2e14d69738f14c4ceb885d5dca9c38b271e48ad25343eaca00d02eb513239bf3216a1ece47deb5f42a76702173bae3de4f6242453a6664fd36e04a43154146f4ae1cefd2ef6309daa50cafbaa634c0ededd8e1940a9605e56ccd03f3b4370fbbb376bab9fbb951d896d087d8a5bd3fcf5ad70cca80a181bb99f98554ba16d5f04c775e8b6c48dcb5ccd238dd950c9e613c9f5b742dddeccc8a7e8be5a6f4afe65998ba01cfdb5826c303cfc4a0eda2a783e45aa6c657abbe0cb22b2d846934a88fe9e7b9c36d6d9e338636661c02066e716e3c0c96bfc55e2e65e73977291b8f6570c3886721cc3055dcc304c436b386e76660fd0ea10a4bab1e4be7e280eae67cee1bbacee7f309f0000fdac703e8aeb81391a32023c64a47f41d987bdf473f77daf0f2232ce3f36f4ac5ec228d2ee743746766d4b6e5475d692a2c79edcaa7b8ace1e7410b4b5573bfbeacf74db9edede17e90f6efca4bafe599707d1fda82f5b2cde1659d646319a9c632e1a1399b6922435baaa1f01a6ae83c1bd07a26d05aa6088ab18c34948f64845c29b34c577572a5b7f45a49685acbd2f3dc45552766224367c0cc0430c134d11ca6edece1f6b545d7ae69a40f3c7353820979e08696eeca7b6adb248ac0640b47a50b0f7732bf0f150273d033b313dcbe2f96fd594fc7ca3333a43b8f83385de8e835be2ebcf52f2a3b5cfc5b64669f52a0f7676e191615c939db8568cf67dcdcd3b3ea582cea5a42e63034ab65364c1ff34f67f8ff4c59e33deffdacbcb1efffea8e324877b68fd59ff37329ab1bb6b014e4e66c319eebca9d609ad1799c6b18429791f843d1255e83e58cf05c1bc46ba9c2c386455f1ed69ccfb681a137532abd6eebe4224fec1e6f97b3c7e657987bf781910d65aab2a42c1b8606cb305f8d350f62d7eaceda0172cbc50c02e80a0fdb65372181cccba14c781c63adb38a0670e3736c6b9b68167046ebb7f4c186d705ddeac62e3c67a44096c69997dc8419faf4945b79c8737ae3b443f87e77be987fa11fd7524e8e79ccc54e965f78d5b1e4e821dcb233cf659d0c6afb85d1b8b982fbd30af173b6f171783616e9cc950f1f23372e6620e2f92cb40d4a887309f57198624586ea11e8c6d6b1a4d35a8b0ecb29f5888bbfa12cb3d785ffaad2cc1edf726e14b05cdf3cd67c37a73ebdab77d9998012ba32f70d2cd5bab86f026dcc24de428ca93a9b40992f6064231c2aaa0b8fd17b27b7efd627e032c4ebcf68ba39370f774d22f5707f71fe5dd02ef8cdbcbc4b17bde1832484fd29484f3f2fe101b47386c735ed884f8c47de6065245e0b2a1fad3524e273b2e1afa1bdec35cfea8bab5e34109e31a07c10bab0083c3e20c8d91a9e29c79139cf74a5a45df9079f75212718562479864f78268678e1d32e7c25e8e05f63a6a799a9a87ad7de80e1a38c4fd2cbd8e7f47818aa99c32d67c027395837e77ad6d4cdd65667737918914158a02d4425827e76e5255135e80f3d5d667c42916b954af804e83978f6d6d6b568d546e9f66a5376a95ebdce3cc032995e868b0cbd07b6d3d9cef438a3b04d89e01922b181ac3189de76846b7fd756cca59dc35ce50d5837c78a2b1f97c1fa75b8368e97b25c0ba75b4785fd263c27c1d4c55fb5ebe66f0c5d4b42ae6b62f8177e4449309fc6c6d09407340ff8e257eda272e463bbca67858d3e173226aa28401fdd797087055340d9cbea99b0d63372aa210abbd6a8cb7a1a1ce01f584a82c0b2af42c96079c2ed5967f00c4f61efa9f4c1c3a593dbe908f019b91c15305fd6fc3cc8204da874ece56477c40390fdfd398b4c0a79a73b778cbad802e45a43489e9574d910749e75686d96cd644311346408f8835ccb55e5245d590c9f18b7baf7996666e4564da11e5c30394ccf69fa7f23c5125a0fe74777250eeae5cc37981207e4517f865be6154ee5e764e399461330c3689dd8edb92f9debcb477bdd06b7ea6e43c537e73a76f66d7736ea535a3a3701f218ea54a8af606a7c7f8ee2e3f1057d1ffd9660e515120268e47c2ddcedbb625475f8007a31275b262a471ab65b7465cc55577e09ec64c88bb7f8307c3bcf1aab0bc1378e156717dc7259e35af277f10afc9c5ef64e80fd0d6c15cc368f95739f967e07f77d1f1409e9ff06af5066fe3fbd0ebd1c9b2280ee81ed377b4df3e56295f7f83ecb5e9822d99f39783947b74b3187366672885c95c8c4e4bc750afc3009f17081007218a61cdc9cabdb9fbfb8f738e0f75249b7adcb37d7f1805d794dc1b0713007c00b9defdec9d2fb1282339ff6fcd4305175671fbdda4ab8e802e4f25dc6a419c7cf88b571a72b9ec3be82ca936b954f782ed8439bcd245285037e9f84c8397b727478a4c7a23b3ac3b0155dead2ba5563aa307af73d1bf4705c7f17e4720453526730dd7be65afc42d5ed4831624147a11cb2baf105bf4fffefd7f9dcbe4f45a2aa8dc3508d18558292508960c0b1327e83907c0261b8c06e9fe14d897d307360fa7f2fbfad5b981d8cbc9444dcce71953f8dfd6bdcf7f030b994025e538c989551b283f14abb8d3353808dbd096ef0c16c2a487b0a97b55a4e227d5af1e2ee989297dba3066bce8c69b70daa2fba12d0bbef1220af7eb696601db494d4c17aaa86a403b8bf986366c12d74c2770b6727e6fd759a2d1ff578043a5f754c36956f8fcb9af5ed0ee542bed161fcacf791f49bd4f96219292601658cc219b56d65993333863ec776bf47152c3113113be20be3e49880a776479e53328fcb76fe09497846cfa02c49a8f2c65e7cb1156374f4961d3f831c692ec712c0233226fd113195a91940d7139caa071fb7b8d1d925c9eb5ffe1e435864604b13696f474442d2c9723573a4cbf6094adec229eb2724fbf27760c36eaa5fe25b470cfd6a5b77fa00d0e55a7dd005c631714dc2efd225882ce4f4e4cc2f7acacafacc50c1fbfa06f95a861807b8bd655d53f2fc9fa6da3ef57fa40d9d98aa33435d9b64ebdcc6d0fa74ed9b3e5e5eef7b9691ca8cb4b4f4b89675e5039ed5faef4c018f2a4e43cf34abec5dcc68fc137214a7d0deaf5d133dadb58e6e659516b4efd3ed652bd3e27e999e5df13365cd33515f06997180d7057d9680b12fb0f7e9921ddd286b0321961ac2ce2cd450b52992093abf585c624f341bce95ccebe3b89d6d72ac3ddc8f6ccb403c0c1e8f773e4bf99a62c83d95a83cd2c6d94696fab4ff0d3cce2f67ebabad0d63bf5d890dbebca434767ab83ffee942835dcafc45cfcf2fdbdb073f274bd714aa80a1372e676cdcce37057e32e087d82fe0713988ad0eeffc18c1b86e39ab29ab0a2a55dea48e031e79489f3afb8b429742959cdbdfa64bf5fb0c0c95dd6cbb2e64a053bab615036493793c3977e35decf93ef54560f51969e8e9e1c6a6bf1fef27eb7b81fb5aa2a1ffcda51054f537e069eae146ed70c322603addcd33c6bd9c4af49f97b5dca5e0f676f735350ed211a43fad8c04fd0147ccb9bc245df4f338787800f74be099c50c7ab93a8e67f83c6c859089520196439ac2c6e3326823af55ba712c7fe761022cc5e25989f07125f35462e558726360462263c70ad0fdeadc078c3f443b58d6c9c45eb71f441496568e544b5a05e6b1d67081f52c1a09d5a8b8e0f69a769d096d1a895dbce6dbefdfa46483f7ab854a8ff96cb860e43411e64166e752ed42bf8e98fab99102985d93adfd9622798ec88216dddb7957fa7abe2a4d4c892c60c05c1568ffcab89039ddb5ffb1c7fc0cf64324b4c653fab5a0fad50547059258512930aae069b98188198c05563666c81e9635c10c8dbd9c2d1c4b08569b4a734c09f5f30c090dba05f6998d91353f45221381f0bdfcdd986707c74046ab4ca9fdd3ac5db5541a604662f7eb25dea46c2af0484d309f273a2a44862a9ee5885f9d71fba1de94d400bbec210df712f32a602a6e7291edb769b733a7f2f2ecd4dde1f0c00fcf3c73a1edc5394634832500fbee88a18bacbff851ff9474a3cb7edd5f4f39ba3fe6ef29758814d472c15c756d1f0f316c45d523e16bdb2ee319e32e862ea8d778a332331803bc03d3faf44834bbb4eb3ec5ec49beff89149e2fed743eb91be39aba9380793da6eee811c003d06f8a21a81a2a2c15302f863a5e7cc12e2eb1b8daf932b43fe17107679bab7bf74346c899a221c7b3dfc1a4d02fe862550c95f7f185fb389a6adc3d0bfd11069dacbbf149909da0b3a42ab737f1d71ec64bec8e234fe7fdd9c718e75d9c8d39441e466c1cf54c63c7ccc1d84da8528d9db308f4d53a5ba5a3b5dbb60cb1f1cc6b1cf43bf14830b6980b71c0c03b566a0ffae35deced6cbff9b9f4e103f899efc739bb7ea59df3bd7e01dc09b3a94e2e961df45c92c1fb9758ca9c8ecf47023bea35060dd6e23196aecf584347ba7de2cbb1884cb0f7922ee6fb2256dfef635d743cbcdfc0e758b807748eaf9fc7316686aae9d94a361416f22e73ff1eb0c50286caeee84e85b14a58162e227c24e886aaa7a40a685d99e9d93f373dad2af3df8e79f67576dab9d139396d884ef0af2f6d23fe810c3514f91d9dfc3e447e1b0f87c4648420a37f20c33f939c36fcfb2e6deb40ffa724a761088a8f49808eaee965d6cfc9695f35fd4f72da7f92d3fe5872da993dafb969eb2939f4cc4374bdf7044996eaf0c06f26efcce678394e819fc72757ab4e3616679ec92e2f790c1b24b9de5d72d6f197b4647849a63e2325f124374b6678e88e42ef2eb5fc498c62e863f2c5df9298e141dc504d3897523ea1879e796cfcd31f1cb3f789420eadbd62390ae752758e990038023cc0c5c23f75e34fdae5943a8a682c69ac04fce69dada27dec1ee848fe1df8466b0edd3b9c511b17bc0d1100e7727ad87b26993ae6f1726cfd1a8c3f3d167e4ea2fe2c4bd77917ffb131345b33e4f5fbae5dec174ae5e4ec26806daff71ead19f2feb7aefde58e9535bc636578100d69251bb4a6ce487dcd90d8031c604d0f8e2520ae699cd63d6ed6dcb9a4cc68458bae0333a8bc84b8e97bd9ac98e171cd909bbecc2df313f4e0cde1de7c73a59fbe6c6a7a3ca775dfb427e035f19e6920a0df7567db4fae6b78034371778cf67bef274f2e34038feecf6a180beaef9b03f35f41fc7fd1e632df57632ab19f0759301d1ec54df413b82e6dcef3bcf0889877f75789457fa78e6ec0a3a0800db5ce0c5d4990e19a21bfd7fe0ce7f568a5065e028b0bdd31fe398906731a0d66bf18a3103278271eb4f5887d602987c052582f97f6d0fe3b5de6710c4cb67571e3f47afd67cd525b364b86e05c9388bde9617fb96fb0fd920eaefd16746d5b0a2c6b157316c094db0046334bd7c5e51e48788c67d78fbeb37372b766c8eff571c1d9a5afc6e78e71008f26451a0717f68145ed5c537e77cd4973bd2ff1762ec401ee71e764eba944c79b0c5a39d35fcca7b8e47cbe2fd5e171d90e0f620afc53b6fe29fc37ef9ce91bde13693a959feb3b9f3ba20e9635777db7501eee344d9f8838f0df8ddcb584ece59a417e3fecef62a5dd7a4f1cce80c7b93b26b109f53e6e007376e50b2cb76d6e65c5d3fbda5da9e4a4c3332d38d3611ae2bf5a0b857c9281e7be1e6561a28c7fb24ed77660ade6c844c4aeb4a19a9739f5f471c5a730dffd626d08f249865ee143428bced605bdf7b4c33e986707e701173e26ed7d4e7f875756e002b266c8938d9177edd6f0c803e847665e2e11173abeffbe72ac4e0e3eb6d74cb6b1cd2083f907d3e7f5bd97f34ae643dfcf686c3cbde2e54e3f657bf1ca8f13110b5a0f370e77787c5c9b1bfe750aa3f1ad74e762447f9c747fa7d87cf9b3759988d84bb87e4a676bee0ad3232fdfd0df4dfbfb716f64d727943753fde734333df66b46c0fb409fd6707ad8bf84737a7cb9aef73c42545e4bb4a05fd1644f1dffcbdfc4b990f9b8bc83c70a5a42e64c0f7b1bea7527b671e57efe7369e3e1805615f00e901dddf36b5a23ceb2e3251d4d8fdd1d96373ab093ffc49d8c38cbaf079ef96374f6f5da9d8f4e3aeb9f3fc7f72f64e707e0e7475d765ebbdb38dce9a14c7c7accfae35e6fe5faddfc3d8cad9fde3bf78d91b137250ac724323f67114745371ea6403b11bcb77e553adef7b9ce83cccb8dd6b6944c34e1ddbb3b783f2de4bb606f9b8767783a5e82bff5f760febc2da00700df7cf9f8db44c4ce47783ee3ebeeb7e2e65da09b9e69e46774f360175f8e8c7bb65b373fe703d0ffcdbaa621f6b5ddfb333a0036564f73b7fcf9fcdd0bfa3dfb36af74fd4b1bff8a83ab1e02baf04b5be14bbdd597690728a0b1a7df3b79d1edd9c0bd013af30b85302e47a3ded90217bcf6fbeb609d6b313feefb3b991bafd74ffe06fa668d9b0b7b1f5f361e471697df1262e96181649b44ec6046bbee8ff0150bc06707d8d681fb97c4eed2e6050c67db1f5e7da081f53ddbf0f01a068093fb72d3c77933e429b424c43151f9ec2785c63537ec816f2722d6e723e090efee79fe057d5fe9a697954066777cd7e97668ef3bd52d8eafdfe9b7b4563953e27cafe944c4ee68650268cdb59cf8153f5eecc179fac4c7f09a02edb65f7804f53d3d77fe45879b7b3b06f05b153cd3d4e4768e571aebf9ad7896272f65c0b9af3bde3e973ea3b96d66b58fb1b9a37e4f1ffcad3cf51dddf0a2cd4b797e91c9c7577cf6a82b602eae830b7d5d097ab6517eae2feedf07f3a99c22fd524774b4fe354c3086f0335e78d6597f84cf9ef9fc72f76cb603f2432c60793ad0ebcffef5edf1c516b27fdda6f3d53418734076dd955c500e5dee0eeeefc36ee03ed7f46bf8feff4016dee2fa5ee625caf84e4e5ac84dac03e6447fb16e87fdf91869fd224732f32607fc0bfaf91e7dac19f21736d461ffb50df6d2aeb8fbfef69d3543dedbb36799dbe9bdea714ef7f10576e3626ce1a844e70be6bdcfa3ddc7146c53da76740aefa5bed711cffef9e57b5883dac9d88988dfe986fe19c686deffb97b3ff5d6ff7adf0734b8ecf9c09d926ecf074387e3e164880ed1bf702e41179cffc5ce0f71d9f9199e777ed0d1643cfe333b3ffd56cfcb9d9fc9ab8d1f7c8463e4798b668422f8104711e2ffad53091e377dbeb9d9009e7649f9ab6da13f034ebf8ff45f6fbfbdfd9fcb4652470cf7fb483578fa5f4158854510167efbfbffbae93a2abde6e3c3cdca411c6ec3db2da7ff7af3b3242c76bf45e5db8f37bf2c3e92a8fb7c9e54f754a55118741f2f1c021effcfcd7ed57f81f777e171f7f6e32ddc6ecb6d0dbac9c1e30d2cb9bb4d3dc860a0cfed973f82ff274534c8c31cb42bab34fa2d2906ad9b67bfed31c01e25fcdf20299b5d92bdfd782bebb76ec768f0916421dc3afaf156975b0044bddb2645540398bb4db5ff7af39a0fd885d7eec21a2220afb6615d0f3ec00c6fbf884e49d56168e72645b81d6449bdebbfe8a6ec6fdb6a575e3e0cdcaec7eec14faa184eb67f0e6e7f0c6af7fa10faf78f01461028f9f4c5202976e1b670b341181cdc6d503f36cbb2a4da25fef59b38776f9e2eaf6fdd22e891f7f853dd78bb2cbcfe9007c4f501bc77f3e40f6f1e6e2750c72e7af78411a3bb6702c56e9e1f86dc6537783a120879ff34a8d2e408c8adf0cb2029a29b8f03b72ed0db67cfadc3d1f0ee9ba470b7eded377178dbdb605343a6be3c57900e7f4edb4f7cf667e9fe97af5f172977abfa3b4cf42d460b732f0cfe084bfeb25dbd0b204fbe60ded8ade3fe9f81bff571c8d0e769018e74b3e8f62bbf6a6e1f3ff25dcfd897af8a70b7dbba7e78fb5d59c3f5bafdaa2ab3ecf6f9f1956df89185fe2e4b76775fd7491165e1479644f1dda8755bfb409e87c7d00f8bfdab9f9a0292e9e5fb5d58efb2f26e764d51bb1f611cba01248eb364fba81f245cf75ade4936f0cfc04ba2ebc75d7dfedc33680ecc8dee9f41de64bba47221d2e0179f4db90b836a9b143bd7837c5784bbeeff8378b7ab6e3ec2ff9db17bf9f20c7eff1d1085d5b68462103c37db8b502e6b88a05e3cbf90d23dd6e1a7283c56970f83ba2d762ec0dfb62976dd74fa4f031faaa4f3d30599eeaecca1ec7bfaa547dcd3f7c0b4bad5147e0957f2ac3380ed051532f8e7da7dbfbe402b76703545e203c3ebf269d0ec3ed0d1fdf3043e82e57efbf1b60f8ba0dc0ea232738be8b7721b0d8e83b3d2885d3f7631e47badaa326b511c217ed11afe03b8ebbbedce82f4abc6cd761f9e15d017ede234f8f8bac5b3eef9a2f1ff8fbdff6e721c47d6c5e10fa4788f6845f2fe277a2fd19b1b37dea091488ade9b4fff0ba96c7757f7f4ee99993d7b5613515da31208241289cc7c00f0c11ff4f86e8071d5df7fca4bdf07c9cfaafbc6c493f13185feb05cd3d5cbfa0705a17dda0451fe8b52595c053ff9ba5ffb5797f7d5b7f799b6ef2fd1d85df6611667ddf8536d3d8a0e5d50f5d7ba2b7f55e8cd46ef15fe4eb9ea5edffffbee5cd2ff7d4f1dffff7737f75dd2f8feb7fff7ddd9a5fffb75eef631e5ef0fdee3d8ff7b9e70faf509a73b107d3fddf47224ecafc3c4fbf2a1da5fd2f5058f1373ff4a647c7822e327327e22e327327e22e327327e22e327327e22e327327e22e327327e22e3ff3064fc8257ff5e78bcbf0553f06b8cfc28f1afc5c8d83b46869f18f989919f18f989919f18f989919f18f989919f18f989919f18f989919f18f93f0723bf80d67f0150debf1940ff6bc8fc51ec1fc6cdbf4bb8f35bb8197fc7cdd0ff5cdcfc3f996ee7899b9fb8f9899b9fb8f9899b9fb8f9899b9fb8f9899b9fb8f9899b9fb8f9df18377fc2b0ff5204bd67dff0c41f6f417f5bf41d53a3f8df495e4bfc89e4b577c9ff112cfda4ae7d52d7fe3bba98ef26f907b1ed07310359c60e7a7b259fc2a8a46942f771b16af20d71dc8adecb2d1703a54308057c37054ef31f96e5eebf7fa35cf7415862438f0b5f56940e3902f49997cf7f461dda8364472fa25b2f5115097ae5d2782b790b39768b56927bd7434662d42b3186c6f86058312fa413fcfb33dfd47b665ec9466924f12b7bf4e0073147ad41cb143b3afb20f7a31731ac5eca040e3ac7aed6087cfff9d206f385f0051843d806e48a5c030705420ea9dfca9fe64f641d6f6d52e42b69e9fbc5228909db40c4db80c415e3fdb75cea69cc31b564a095efeaaaefaa9be7c48544e5dfd6c98b45ccdb6b98915feb2d436f5169a73167ddeb7a2105a1d2b7f6dfebba6ab574d5eabf9670e34b6b17aa661c7e239e7d2af71ecc0ed0df18cc50e04f0c6677c99fc1ec19ccfed707b34fd3f6b722d91c3b621f384ae2414b1ac14a62bc78d2e4f2eaa9225e7cd0b1f90669c6bcf872b5b7636fd1bd3eb37fbfe6e9ad9ed7e76bc920b1bb97fb2e2abc78782afdb12e237f6ff3e599c775cee3c7f74742e0c02282d5d4872cecb55de22d0a45bc9d855c7113581588cac7b524df7bf2efea7ff7e4c35b99cfdef93bb9a1102af2c7d52cccbb0cb5f57a45d427b9be8f5840c0159b5cbe7f7f8f403f6f8f21cf0faac8b2c87deda7fd0242f0edff93efdb5b7d5707a3124984fc25b25d562191e69f507b7dc84588f772eb876c02d527223857e27aec7e42c7555d8de8631c2a40fafba3d9691c7e2f9c7d2ef811cf0e7f673c03ffcc78f60f6e743ee3d9339efd5bc6b3cff3f69f0b686fa9febba3e4c9f585d7d44abe70e0d80f01e51d46dc9dedf063c079fffe19d4fefaa0f6aa6bbecf04aaff097fa6f82ecbd988eee53e8dc7b113a83812d7e8a741518481eaa30f0df197f322bed87d77e9ebb18b2e7f706ce7a3d8bfead80e0442f001809ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec7769ec776fe23976d3e70e9df7c62e7bde17dd0344516050f20d1747573e986ec8fe0f44f9e79c3d604f6f72c10bf606af8cf5b20be0bfe5c1f7eae0fff2f76343f9bef1fabc4c24ad2dfdf5226708f5bb02461253bdfcd93b341429eb380bed67cdce657fa6058b1a85cdac8e3e65b1afc58654e9acfb77da61e343c6ef479b9b913ec7d274e3d381f82925dfffa95c37b9cfab5837b94f85731e3dcdd1a71009fcc38cfa5c2e752e173a9f0b954f85c2a7c2e153e970a9f4b85cfa5c2e752e173a9f0b954f89f86e01f68f4ef5b20bc37f73f9d3df60523434f8cfcc4c84f8cfcc4c84f8cfcc4c84f8cfcc4c84f8cfcc4c84f8cfcc4c84f8cfc9f8891ff6ef6d8f736ff7dd8635f70f3e1f91aca13373f71f313373f71f313373f71f313373f71f313373f71f313373f71f37f2c6efe97b0c77ed1fa3bb1e47dd0ff0106d98fe26fd81a8460e4ef7b1185c0f03fef459417d19fafa23c5f45f9dfee6cbe98ee7f0a97ec3fc4d91a38e01cc2222070c524572ce8b96217bbca1873f61653681b3b681353a8fef60a8b7dff3bfdfd736211c17a1ac12a1895762e178fcfe4dbe7cf3cb3212c567299a6a1a3aebeab0272ae4e5169ab9eabdf02ce5ea3ed73ddc4eaafef32b4b14b363167af72c9ce8181deeb2fa24a6f4208dd7e6ca301c3b200eebf23ae007c57183d976ce4422f2258fb468f77d963aeb8bdb6577b0e788bca47ff3fe45ad1e2aeeb90d5a7cf6dfde6b36308eba7d8597abb64fbd8b1eeed1fadb7b1031f3249ef24479cda7baeba098c0f86a5fa780de9a177ea13872efbf2cc0b41933f058e963cc6ecd3333f903d7dc96f7bacc3d286856f9f6b1eaf34bd7d66d43e84ed5c77fd22ac74eac151fb180775f51d16f08da4914b110c9c259738b488df591b93cce0ec3ee4f054c8f24632d0dc73f554a272ec3343a0e6aa9bef8a8fb6a2154d5fc7957de89b576a214f8b905b26c1107a817bebc3cf79773f114959771bfb9e71322e89c6a748e0fe9dfece2d8c8a61a5173e2ca62f7cc53f904a19f7f2775963572c7c0aadee73ec5e4e2ed5e9fe6c58e9d6c5250b8912d38827fbc0515feb22da08224621cb7f4240856621a4a3122562ee27322a97120e023bbfebd0a544e21775d4bec3e6be2bd442a916b253e4423627c24d5b7ffb19579d7d47857c57dc1eafbe3d9e674685129a9f303a8e11476cf77196d79f9789b9f4454f950a78ae0e46803af99c552bb7e32c695f936ac9655a788e5e445992799035048e96c914f9fd3caa25e39fef9befb2a0e72c56b826996220f3dd467fd68780b3d3bbcd4b9478f30d700b617bf520eb2ed3bb5f9028f1c3576742f3bb7d7bbc0af8b06d7b891db6b739bc163ecd3fb97cb3f95fd5294e3e9fd79f183abf974df09da50f5726938cfc1371dcdf4158f655f45383219b2e6f3150307f23e1fdfa91f7a497007e9df3feee01ccdfca79f13f916dfa21f95f91f2fe4f3e80f94c79ff0353deaf67f07f2bed7d84f1f7742f47ef2117f2ad62b887d0b77495cac993e7ea4d5cda62e8b0956fff2ce57a7bfec3fd1ab696f86e0af80e9a7f73a5c14b2a794fb15e43103e098c8df88e0ac69c95dcc39ec0ab69e8582fa919af245e65df53e651e05edb31c82184f442feebdcf0638dfa976ef57515fb1fde9607211304ff0f4afc1f00f82f8c00f00381c0c43f75a92bfa719c1df9176ccba320f201f509f4de9103f4d502c2f7455ffbfcd502c2cf8b3eb7e59fdbf2cf6df9e7b6fc735bfeb92dffdc967f6ecb3fb7e59fdbf2cf6df9e7b6fc7ff2b2c1c363ffc59bef0ffbffaf70cc8af8d2f5ff758fe6bfc6c5df957d5f6744fee056bb3f6b9df1051aff89248f0fc99feb8ccf75c6ff1d0ee3fbc9fcb18ce87376e9b9761fd37512b9767a31d0265c892c84d529cc88d273d84d76df77bb87a0f207d979d9c1f45d41ba7f3e65e4123b2c2a97c52443e21441c428437eeab9caf0b1fc08b671090cdedb8e7ad28c2fcb8cd641e0eff5e763e0e09357125b0821935fb269b4821f8490cedb322098bdedaafe85cb80fbff4ab2214baababbfc81e7fb28f7e6f560e00f2ea6fe73bd1ef2e779bd87e4ff69f4164faff7bfd7eb7d4cce6fa86b590f5a9a88570b2a43e7a8245adf51012a435fee6286c934e61249aed422e6f5262ce34d9e9b2c7090894aea9bc01463fc386750485486363e67a754568f814bae8fdf0ed8bf7c8eb797f268113362e139e8469568263bea14967ee3c3f67af78021848c170eec1f6559bf89603b0d29d28c793b0f1c3cd12022f7b57a8c2bf51642fa5de6d2735420844534e2582038d692b092670b4c2439d74d177c7c57bcd5176a752b572a1c1d5f7e87f3a3fcfc387373ff5b49ac8113495286aebe534b54a624a6c342be834831c7ae3e6403f2dccc21043ce4942b3df5bff92c162167a71164539ea376b17b94228e18e42a1d420a7d3f47100162ea4103181d9bd57796c273d542aec83584c9c7d924df55fe3a6f5e4ed51ff8f17b897f15511148100788383c898a9e3b3bcf9d9de7cece7367e7b9b3f3dcd979eeec3c77769e3b3bcf9d9de7cece7367e73f68c9e28e43ff96ed9d72aaf6731734cd0be6fa39347e2bf42fa5f1c5e17f073aa2273a7ea2e3273a7ea2e3273a7ea2e3273a7ea2e3273a7ea2e3273a7ea2e3273afef3d0f13b68fdbb51f25e09a64be5bc7ca0ebb92aea7b3cfb8db7b17ff5e03baa265e31f4dff45236fae71d1b7a11fd27781a3c3c8f4b3e0f0efd1bfb995f4efb8f6345f25a4b0255271a44cc17576c7c2805045a98153a1a225e2c22c81e638a0402ce4a42f8fe7d317ace9c78ae0d041cb10a8f1f168cb9748a2a65a4b2637bff1198a5f1207b8c203b17787bf4397b1578bdf60d927cbc03ce5989c91537df4137df9813bbb4d7082aa6303baef2ed98488fb2c7eca38cf0a07f9132120d612b091d161538748a29128ca0c7bbd84db49265e02c85c0d98807d9734c914d9891b71002e7902bd2b0540b818f9b984b5ededd7e97d17ac82db0c5141be4e0b979124222e039c528704ce2dd756390939fbde8e14326328d8f75222577b95ea93ab81488f9e3415e093886a3d173c9d483d2422e89d55f893e70d422acd4225a09c5b054d62c545636855179af87b4c37229225849a2d25e62a7587d474bbc2a4f3c97bcf7e3e63962ef1b64efb95112c242e239f1ea3b773debd3e3dd733e5e03576fc232ea055e9dfc4a873d572c1e7de4f42682f535704430e67e181be54d3e812bb61fca72c42870ec28502269ada468ad42a2e5ac69d84affa2bf58b499f46cdb5a6203ac61e5ecc9660ad65ac9b39591b409a08c61eba209a0a6c0109cc0b027c72065c3421999228bc0d56bdf1512df4de7a8b4b76825a728239bd025fbc0b173f9453fa6ef58df8f5fe297c45b1fb688b36f81e337de4af69e8356b1f3e01ba842d82fa212bdeb2589387b0d9d627bd85ca5249e83e62ffa599ad0298097236ee8f633fdbcc8827fa2b26ad2b864c6b0b40139ab31aa2c86c74df114d97aae9f3e0e197ff977b40957f41670ecfdd93e5a91f633fd5450b29067a060cc15bd5c7c73ec0ca392e69df2c88396f46e332f47e050372ad9f9de479d23e0b05ca6173a9a0f7aa988179bb86481bbbe628e05ee75f8e5cbdcb61e638e56021b1b9a4d6aba2d5eeddc362ca0389bd991102861966fd6a866c21bcdd324656f1c09f7b9af177ec98221af25b62d2a2f76a94f3184f621c4e6afba1cbc07bd1208bfc92a974d1a65641995c4205364e367e418aec7caffe8831d9573f5b04dfeae0bbff1b917bb7869bb9edea8a0a2b2803c572f04fe414974b7853270d0d7238ae2c30674c6e634db566c96604c303e990c41ea2c615bf99c9c8d6316f03a10f1ca7d2eafbe4b4e7209a671698f72c9ce9ea3d6be814e51194de1cbb1c355868a4986f53480d83530881ffbb70a9fa98cba9fe8b71328e1adce21861f54534594019940f5890d8aa4c592ac55108e6e8ba66111a7fbdf850c6d3d57c84e1f5c15adf4a197c4ba8f314502e1faeacb7fa8ff71a4747ea1e9b23781f39b90b37a818febc0516b81035f6203f7a0c24a0307493c83cc43381e438e487dd65ec387de5feab8182410ce1fedc7eec3a78c11ac179ea32521e4bdcc61eec35642082dfed9b1342dd6d12df4fa493f9a951377dd5a86659b2e4892369324e71fe99532b904a130233ec6097a1d67375eef3ed7778531e2c5e9fe5dcc1545b40aeff3485eebf68d524aca48cd73f5faae33df158b3fb0733870965ee0c40787485cbef8ef3fb1ff92668b578b612d833a123fd25e0963e8faa30cbff7f10b9bfbb54d99253bf89fe2e2bb8ef83c89a1b4f1a02489a0748a9d257fe9a7bdf90f1a3b3c79f8e24a6cfc371e954f76f031dfb52476c55ee0fc7b1c78b4f1211bf2ee6fe4f91ff169a4618277fde8be0ba0a469d99f75f63ef7dfdb29ee762d7cf29baf7c321f63018550910b1c789f13f57b3b1cbbfab01abac677147dac8adee74068a053ec6a77bb6ac24aefc32cc9648364dee7d323e6dcdb1001dfd132c9fc86aa8e7bc973c434826c2670c5c283f529aaf2e46c90a3ef46895e16bd6fa46954c69bb391f177cf9b1757057c071843d806e48abccb0c841c520b1990d8aefab029af64ef394efea9fe83400989b49299e7aa85cedd73939723dd72191731c3661144f4b1ab172ffe2669eeed7eb63d79c513c3799bfb7f34cfc8e2c2155bcc2bbdc08b0fbf11b8da23560b9c5afb8eda095c510a5cf1c92fa1db236783ed2de688e1fbb6bf1d5772f65c310d1dfb411ff9b9ec8bfe5ee76ef1269fa8bdfb37ebe11fbfd7f78f7aa14855b37dd62c08d7ca59cd626cc305df6d50d46df5758e7e4b99f86e47fc5dce2321303aabe7ac6db2fa556708d7cc97b366e9d77b7c3d7db62fae28a557bddaef7d7dcf1bd01739d137bdd6d2f7f6f9c9be0c079d6357bffb98c27380d798f1915b58eff3bdf8b2fc5d37b1b3f4a71feb07eeb6fa63bb2f3fff4c3bef63601563c4dbc05d7fbec30e7fac8b6ff5fe4946eddb78f8d37aeeb9d8bb0cd637f69b343ff6fd0ffaf878ee254ffa43d9bfefeb3773fcd3cf9b0dfdba0fa30fd9c087aef3da62c5f3dd5e6db6b89a39abeaf6671bb60d939a1ffef9ab76af06797bbcaa411d6bc322d80ba71611ff786d24f1bfb4b937bb2fb698b38707252275cf498a31e69651a28441606cc3ca0943e01eb9e0c34789ebc31ffde61c7be45695907d31e63cf01a2b96fe62903fb3895fdaed6fcfbfefc64da01842e05030e4e6ef2849bffef907e7c7e841cb144156fd53fba05ea922bfee3321706a1a736a2d50a96802afd8fa41814916d24f75f5d9dfc763088b854021e3477ef39dbdfc90977d2bcf37dfff760c2d467f7dc113a7ecf8c89fdfecf50b5fff4a99abbfc4561a485e6973ef7ebe7ec4424b6fa2d2bec51cb15e8c073d2de955ea14f236e0db8fd7af6ac998ff2017fbd6f602c7ab05e795fef3a5ad977978cf1f1c1478912d69e4d246025705ee3ee54b9ddfed8e62bfe9c32326b3641a95f6f85a772d19e810407a13553ff3fd7f300f8fbfb0fdb77cdab8f759bc63fe5b54da69fc320eef94c4fea7f82850d1635cee79c87d4ebcc6a7bb6e35cf158bb07ae98b44e50fbd688eb885d002c69cfdc8b5252a4fa4f59889abf085affdd36c0808b73a11eed88cfb71acbe90e95b59787dfdd2a77cc2c42f7ec15f4308bce7a0f5dd4e65ea5b9bfc6afefedc5f8acc1d4f7de9eb3efa7ecf0300893e7e272f9078100bdcf37789d5eba824e0d735a7afe7fbaf75c9469578cfdff36f75fae578156fb9a805eba9070d5654b2b7bbfd7f51f63d87f5ddb489a964f92ec7253e28707f8e0f5ea9a23f647b8cabcddd7dc63db7925815b8ebd45f49302a9737bcd5bffa85c4e7ee796631bebe12d9dc31df5d5fd14a7e13f32edfe56802957ec80fd980efa0904489aa9da3ae0bdaa66e8b27cd025921cb13c10492b0b2fb903a966246fee23992b440d5354191f9f6b92f73bc77ec78c7e651893e782ccfc6afeaff46ae2fec59ad3d570c5de39e57ab5b0c11ab7fcf3b3eece33eaf8bb0f26a21071db388ef3ed1b4c0f86ce55a26192810028f3ac8a812d3cbd7e34ec6ae5edf7de30bfd36b13e5e79fd58737aa53b7fac49dffd4773b7e51016ea9fc72af2687ee0d19fe450f718aedf7150e153779cffdabfefda79504f73af7e1756e1101673edb1566e8f3157dc5eede417b2bcfc44a50dc4ae380a2f74ebbf6c4fbae36a571c3d072c64eab3ee7f9adbfe18eb79e07b1ff0792e3d70710cd9590415806fdc73c9875cefbeea0daf7c37070ddf61f387efb04434e66cfa6d9d53e0c5ccdbbe29bb7ae5238fa63fd642d1d177e3f7cf121f175ea53631678df77c2a2cee73d34e43e305677eaaebe12fcdd798f29e6771fe14adefb27f5946e2f42282efb9e5ab6ebfadb70ce1973c5983d2342cd122a49246aef4d573d0cd2fed55afc42934d27b5f7a813ef602b34c61198da6c57a2ee893266bb35fd5f9758ef6d0c98fdff180445580f457be76fcbe8d5406d3a5faffbd7efaaf5bf007a7ae7f2cfeb6538c0218f8b7f277637fde56f1abec3fdb2b0690e766f173b3f8df79b3f8c769fbb1456c313d4d92daf1ee798ec7e351d08edfff27deff312ddbd20c5034736f3acea466cc91f0f2b5f05ef037eab2beafcbb4d89361f9ac056aa36905f60d60a4f976d4f4eb858429c635a4c4d6c376ebb25a487a67483943d2883e37b9330b1183634b4917e3e7fd0c4f7802fb9ea65f0b2e48696c9316eb5854bade0781c2b2bc176b459a842b637417985ecd5bcdd4e2aea257569730b70c99a9cc6eb0366c9981c10cb2845326cb44ca40ee8e3b71a3d05151a5095ea7d278e3864ebe2ebd38505dcb0deaaa96278db9cc0c06454ac12035881ad2fe02f1433cdabc2816bb2a3a817b1ad2d587de8c031f2b4172574577d47e4b6fe7eff5f6ba9cffdf190bff6775060e3ec61cdb79aed8c8b372af8ba75e9ea1de9f6649f9386bd6f111cdeedf303f1ace7c3c1e1990b51966302c947bdf7a818a49ae7eb195f6df6853d5fec93661720a8d6fb7c924a01fa41e53364c0101fa6c2b3b5592f17a92afa4d247b002ae83b83148bf8eba24539d68328322278c846681d35cc2a648a3824d8d9cad18f22e3b39a7cac01cd9d37de8e9fc783cdec74e61d8e3f11ef9efe2a73f74e86e2047f2b115f9df186bf9fecfe36625e86d7b13a75f644a5e4a246f457f4326927997e9fd08c49b9eff1b63c7dde57edcc444a4afc748de6df2636be837e5d6be909b567e2ef7a7ad32ad24a698bfa79fec6c3a6c734f451f5b35ae30be6cc59f6cbb2f200688acc97338b6957cf218e61ea566b328f0b17b148edee8cd1e9308e9704b00cea329a80965471f1b77cc3b6613511275473b2f6d07f28c339692a77543f6b98c4a78d0d9bde1fb9bd999755b35761cefb06e77e88086d8eff79e3533155e73c770c6c84286d2831ee1ee68874e8165cd39a441a37643287365a63e24b3a78f25ad52c3ecc0ec35f1896c6b0dac71801e6031b719f34bc46a7b2af2f426bb298c6be2f3ba532ec331d9d3e90e688f49b2620ae289cdae2faa7334b5556534739a77fc7a290b67980194a8979d656a1199c1db848892a26911e45808dbece590d16001da6897b9d9b21714aec94a67cabd512071d9a693a4509b69e9640ac997c5878192164242ea9a3951a4ab8a2f94deee02562409338cfccba80ead04d2a41779745797f93c0d60a59793a461661f1ad42689b0b6b438a47929c175b514a744495a3cc329ebb1eac0ca08f014832755871b5b4dcfc270a3a6260062a1bd8d276658a12db0476ee8ada5a66812905d725cf31deb299e3009b2abacfd4990dc72e77975022144098c6121b1e22d9e1a1c34c71e5499c8272b515b398e1554e1503151ed1842e52b0c960e82e03a830ef550ba4d019de9fe9242623941a9b40f5b7d767652eb808ae1173a4b8d17a153ceecc859d2942d01c5bbfc80cc1929ca80a18b3725df51f2d8d8229837b863b77825c747bc1f597fc9575de5fa96d18c6b4965f588e8425e337e26afd5119f8a322a51c9a746b6b0daa4db41a62e554a73cbfad6ed599bc9a48270e4536f35f61cc480e5ac15e6715ca4013e19ec205f22764556978a52ce092a2cbe3d585629b188b5f2f319c16c05b7e6d4440306e5e09b5c6968521a4e8dce84290907948dbaa4d15d4aae83dd10d33552f7e6b519c6c4a49d5160460082a5dc130ed2909f9a1466f8ee5020bcb3b744f346ea319345f6566b3c395abb20a4e2069f72dd2d419f17b8637cd12c34cdd5b0b359fda882a916a9513fa2260aaddbb66f58e8229bca6a4125921dc26ca7797280495d2a0925ed817e0da6cd113bc42897bb33ef5ad1e610f35ed2af9e42833636401609c6bb74280477ba3a81c32000df9e3b500be27db58b87743b42a79c85e57a2398424e6ddd0e3986c4448e6662c1be49c18593c62228a23190b33028f669840256b6df18f5508ca7163ca9733eedf87c96e1bcce117b47233bfb4c92c1cc21e801cb0478510cce8e2d093296037ab2ddc29d8df3dad3cce29a0e6b5dc26e0314a1da24e5064eb695b1a593894e7dd3043e5559be193574113bf8d82ec172a93c246c1c6d6240da5f6d2dd70fdb7e24a8b868c55db73b8ad7bc0a4bd99fb260504f24064280821e487363404c36a6a1a44a77bda033886a23e3b75057ed741b664e30d0676111a76b5110477e7755f51b816ebbac0680362dc0a3c7d9297b304570a054053e902dd67ba75d5001e4608e8da8b337f500071a0cec6f575fe2f88089f304f121b266af7d59edc8049c70ac2eaa6b7484cf204f027e0213aab64e4857e8fba5bddcf64d77222750070f2d725d6a811676b6722ed4409ff403b29f2f7c6f9d4c4e2a3ddcda34ed6ea027b0b8a214e66335c0d500cb91c5de5181db4d85f07d7cabc49a891a55a4b564cc529c6f964cc42eeed8c182154c88cd1ef4a99ed3f28424fa59a817bcb88c831294803232c6046605a273f6c457ca78d1225922e54650eab93d45b786ca7be4762810d23c31a0e4338d5675abd73b85bb004570bd205339f4f95eb0b1d3f5a04fb9da0222dd7bbd0dadc2ad0f2e7c1760cb8491315bd75c9c2795b4f27c59a553bcd34aba068168070ee762bf2faf138a259e19ae86a190c13eed597b4ff42e3a9278622bcc9ae7c04d4334d4d82f3ae7f2f562cf7413bb4d532cc66d08a7b9b3c63362f6eee13aec8ff63d06df0ce8bc715a621d8fdc51fabd182cfc560cd6df3840998f6574df1572c57865c4436d33b47053d3c95d3178974ab85a413d2164deb143499db98e48012964174963b5d4ce761ce5c4657576f94b381910733d5857563a8967fc78f5fd95b005f52814cb1a61eab66ddbd9e742083d10d379262d5c35494e391940015d6938c3c4fdbc3b2fb47126745c21e9a04306e29c2caaabc39275e64ec0b9949255a7b144d92332622d2d7e322d42603003b5fc3af5dd862c58bcdcfa9035eca8c6e03c3962670921a331076f919fdf1c9b8995e4c4b5e93a08a39526407da283791593c456544d68c0fa4a9c03fe8acba0a6705ad0f6301d06087d591036c77c209d8482382bb65441a584cfe5ed20d28dd95763cad4ab495e253adc0d638303424bf3cab9bf82f46d54ac198a970b0c57fba173a0c14687ae2b915bd89fb01b95233b435b0fd8f554b7ca811f91743f590c3bfa76611c4e8ee849b47e4284f9e4f397e2427bc0adcbf74633d9763954de611a918c5fe931dcdb5e97f2299a26bea1b493837465a71a46e14b27cc71395def79a556f2f52a6060d863eae2406d0ded44dba32eda8938277d0edda80013e336c98cb29700508949c8e180dead508ef7bb5e051cbc226a7ab290c988263536a80290db6b94cde93c58883c92c0586156a0ab403025302799280ddf1404421acf39a30a9a4e51738fa4a6ce700ee3041d79c5e416b969049e87235d662786ad2eeb1ee3e31c869c7282845201a6925a9008d9f3bc0569938992850e6962c1c996d0f8d921bbce07b309153dbc1dceb9fac89369b7d70e82719f2ea8a67c9f27935fe5c9d6fc3b7932c1f88e9fc6ce027c7b4c547fdd0200bf390261f1e274e18b1f97dfcb97abb53a5f8fc345245921bc1e315d1e8824938a6cef4c5321676de73645621e3335d3aa60c95af1105b965e64db26d27e1d6567a5cde161e0197e479d951e394a9d956396054366be45f80147d11cedf7d30662d1f54862b7cc5318c4b7adce23412738abc98c600825d712110e516af7b8b6ebd95d3e40fa45f7196804ab88ef2f41cc1b8eea2011ae76e039019af380559ae7a94dabaf39752ecf98706493714a52019f77eb6cd52e7a32f86657f954bb663e9c477a44de4e9e686c8ed6b35762eb3057068bddc25428d7ae73201cac0313dfd6d81c53984b4f709006924b59fdd055b1c79f2f4590638896e54280a2d71d364e078b2d4834125728661a97637b9576c6626a9d3a85153b1abb964f04662fd045cc9bb24131aec08118cb94725c0bfb9af4e25367467ac37a8d0399385144be1a21e6de9a00d21815e868864ddfd857c15c63a1ca4696429dfe82269861a2807825c99ba78e7e68ab8562377e929a70b573079b659bc3305a786d2a256e63ae8b20203c6b2e745811219a75d8defb5682e102e6c0524508ad639014da5a9acb5ab7084af078a2048b9ef734c4832125f59c88e498a8327385d0feb87a9643f5ad4e96591e0bd78d8b532977d2124b949daf964bce72fc2442a4e6f4747a71696e038b2b721b37cc3d219e0d2b70d45d4ed125eab0144be191dd47756446b5a3bbaa27b178bc72b8572ed906379892a7e38ef6aebd26c619e69b9156ca3b65b70c0fbcbc2ec3954af2fb749ac91ff032f3155e9e7fc4cb6f6b069f8e92026fdb52fa3747fbdee64c6127bc474e36773d5ce46b75426ed4a9a2535dab7381ba725ae7b73a230e4704d7c8640730ab1bb424733be343becb79b78c65f946776d927aa1a1257151b062a0175390a77e9e6374000ca44a10288661704da068ee849e4d25953e5db9fd15c6f67b023b377b14dbb1cc31bc082c97d54c992eb0ca35a752c917696b46b3e89a83a87766be786165f0aa239616819cfcb58da37e4957c24d9843466ce20cd46bbe9df52e565dc32fae1a601fcb282ae771b928941a0eb7113fc871e4de76d8e57a2648b8f6e89abda5bb113d9f2e5c18709b6e3a416f40b7893ef631488f5b04e96ec8eff61708b4c4509aed93c0e356151a043757b0733939b34c565511230dda3540848d6c4aa96586722ec2b4fd0102301fbef53497b67655b40840271d32dc26da4e28dbe10e099bf58c94f60179e8d35e958f7890e9354a910c7834112e53135d2936af10c50dcc6e901f07d8b5e3c5dba5985cae937517603ca32af5a433f4c831f4c86094edb25b01d08f621e93a36ba5d44db40079e9b700af0f2703ef77ddbc9c56453bb815845c26adf798853b9ff02cf6c436468f4b25d0909072b406c8c774bc6ed5ed0e7e4a9556ac1af5f900bf19e5e2218337d31c1a8d8193e8071e86c6163e67eb26f401ac78138e82b441b5c2c6e2b39dd1d19ec4ca2b592ecc19a18da8beb040e2368519776b9d0c352daea2a949e4ed64d93a4d8fa483f782e1d3bc13e9b00cd157778268dcc0bc0a0e2fdd000c0a3e6031e2dc767b9f8dc71471160e37730f58fc23891ff4eb2d75857313ed2532e934dc4513b13350ed9af1968bf72454dfa6a1901ce108027c3e04ccc2d9dc3c1fc871ca11168e2848a836d59f2b4f342e2a41a9149a2260c26008645bc4b8da0d0d709781e56520b54a0389c5b614a73ae4d2ab50e00e42b36b3e226874862094130b3ad2e81d94bbd8e9361e001f2b1a657592323ad35de3a4bdd8b269cad33318723d71625969f0652e9fe4219843fc40cd37862e76a4710cf715ade807233595701f69484664734f2c877e3dddd86c54c3b93b00607e7602d2f7d08e2345cf36da2ea6a323832bebadd3774ea466e87c99f983bac6c802fad5012e042e1b93b9a1fd68b24560c7d7172047c8738fb5a513383612f42e64527b70658913c42754472a2071d22b27e4ccec309a1e5830e1c92a6d5d99e993b61866c71e065769faf56cf54ec5413794cae649621530269744a24c9b82245938bac8c10adc420af2b9cf3937f18b82a1a24d2c5d9f2df253d416e6768892d33453534342d2700261803b0c1315a7927aebf09c2790e3a544ca263683999a96d00aba921b79faac5e9a4db7bc89455c0b59a5a66f80284a74b7c8329dc0ab16d7a233a8ca68743a423863465a089e464c670ca73fedb6111d2f9746bd0823a7e2440103924d87b3ad82ccb8e04b7dc671201e47c4d1e81596002e6c4ef0cddcf9d14d720a1eef14821781690fa206cbdaddea73a7c65e9076d00457ddeb76c15bb7d1312fa07464b1915dcd4a1b8971747c20575a2f4a0777bda8a673e53dbc651838d96e51ddc3239afb8eb7d1645c5ff85d43848314d4fb2339c3d10d50955ab3ea03e82f8e1c091d64a504c41f74e2207276cef33743cbd16c104b33a3cf1e3299813c2ff5c5a952b2ed15ee3692a973398dabd8369b24cde842f0bc0762b139b791ea5cc290db611db6cd89e2f3c97a8589ddfe74580c599ee705974fcdc9e136d7f4ccf2d28b22ce238ea9130e7fa622c29ecce33975fb8251ceb42c53e3d9376c518253d8a8e44d4a4dceefc1333a0f6bdd77279a18114a915afb549644b828b69fb51e7f8332c2a1ca1b723aabb73e7062c71cd8f0d65e1ab940274d458ecdce222f6d7253a48a7617ee9c068a6075d798f1dd535b5c4c609f44737099c718354a5f2e1376bcd8de3913e423dd575936073b913b651700dde59b9539b66c13dc9c226709246e16ede2113c2ac931cc773e7e0b6a07245b9092d16b325d812b391c4b4c2f6a7e42aa092d5bbe3c7b0e1c404953a007d427ac333592b5af9346e7c312a9f13845ef759c3b53f5382fc76dcf6e7302701144d5e9b4bb41d3da8e1342eae091b88aa7b8b59a6993e7603f9734315cb21d97d720a1a5c3b813e345da85936308cde976f1504ba5276a88ddd6863b0a12c1bdc05efac1c8a7e5e8d1d788c3b92b6e47ea15cd0e3ba59ed5fd11dc8babdc1392be9dac892c6e62d31f0845ccc01898d8b33812c73d7e707ac808f6c374bceee9ebf53463cd06c9720b4c28211295d9c9542fae284077c995b50e2815f325167b6e5baa1b98f671b2507681c50abf0bd49ca1e10285b6094d79aa5223060ace160e2d895c98e0c806a3210f89e69a1b8c3572336cbaaeec98065a062cbd35898f8bcd320f559f2a265d593e5da903d4970744ebb90bd8d37521d71b0deadb151b4a730cf637de2d7d6148e04eb32310f4b2f19c381675d1513f02d2e0eaac8a723a6f8c98ddc0ab68c6100bdb75e21e8db3bb0d5b1137c5b836be25016d9da5687e29116b9da1456b024bca9abc3122df937983910626638412359c358074fd040a9c7474f85e9805a24ccf997e467d6ef2f6f906fa2d8eac3ad9f921a4dfa23dee4692bc19985576667b9e2c712c6129f262b0f73146ca710f2d397ea44b10a7e85b3236c73866b59636867c77de32000096a8048cea70c868aa3b19c5388c1e6c9a11da241374e67ac897845019398ef6f3136113b7d53e1ed04da72b0a3bd532c1f1fc3522c8b0b0fd9c8ab805b6f49373806498178f4c82b740d2f26ce7b89bb33fab43731689ddd5365b1f88f47e104205b1fc15c0dbfd6e97d9aad10eb97122c01e3b605493afb7f84aec17ef246ea742da57677a211c0d399f22d3b9468b8d532dcc4586bd1d01de9f2b252a8e003e6152d8e1d6ba4f3cb4070a73bdeca526ad2cd5b4f6d9b92d5741f596b868f7d57411222bdfd4bddd9ec4a9384a5773f1079fb702ce5f4f97662163eb182c5ad84542737002d4f26a2b3022c6def37d66a7268315667bc447fa00c5cba1e02d9e6172c109b5533d42173f07b3312ecb4a710e0335a2e40d8d660b65afe25ed175844e7da44b88d1be2d67aa447518ae0b04c89b7a55c91a0b9c3c64ec163e9e4e17a4ce436e27086797c2027d6cd41b0f5dc3c234641435d95c5f0f611d4e8c8cbb68477626a86efe31582e1a0fe6cc7ec097acc0a14a20af3a4113f1e1b6e380a3dfea31515f26f68876eeae89ceac89dfd68b84c46c05dd607577d102093f2413240adbd12cc443345be9b5a56a7e24601724b7758ba814f60b48be68b2593b002ff9f494ae63788e2608bc61bd7a186d083fc1822a5c1d922562b7447392f0e8e2a2da18810e83ce614bcbb6841e41c356534e6e1f0ef53672879cdee5284cdebc4205171d3c5f77dea5e3003829f19b17a57b96ef840a5706d9baa4c3c59c89865e209a85e8ac02a6dadfa3fb05102d45c44e5ebf34e0aeae9263b0cbd4f8aa33020ce8ba27cc90306cbdb79f474f2388830ba03c6a4c75b6c7287c49497ddf83cb5eb5fc99b6429f14b6542f655c2cd693835518ddea8b485c27e4da102ebd6708ed82eed363c47afbcef6bc48eec35b4433971499965271079455c5b2e4a3c48d56a98ad6c35ebaa54016f2fb4a2480039e11fb5b74a4a7a500956a4dc1c9ef0df5d4ee0bb38b8c6d030039847176548bbd6a5d075d6d65dcc5d6b34b0d655ee4e6fe9c3844099a1765e382b2bcce49787044a4dc21c2454892782de59cbd4c94ee98b343b9184089a8400afb1342aaaa6c9e11fb78b86e1746be9d015c657699d45247a9d4ea4d3ab5f96c5ed8b30a70cde4d94cebaa279b656d681d2f99b15d93d50ce0e460fab87eb1f5d49d3d1453755d2942bb5e69d32c70d58b27220f2818dfa729ce5deded40853b775e3154c0e578dd57fd15452a0921f73797dbe041bb8df62e9c1bd8dfafe4758d3065b5e23cda33d169bfca64b5603c760631a1e7aa4b289e3255ba5d0d28e379fecad89cdf92e75d9196e9d9f2d8d8907ba1f4f59b0a03c5752bf998657080670edc32d83b26712a261ed223c12e8cae5c83d6c33212a4a3552f09c3ac4b3d6f3dbb7245ede4d1b0c822c3711490a880583912b485509ace4c5990a773018f6d24d1f57597a9b57d186c5fba097e20d6bc70b960032585a313ed2a486dbcd58aafb29685ed2e13f9de0f9b1e0838d514ba435a79d014448e0a19b7dd466c66b54ce7de2d7c28e43c35741462f42307a775968ab743195a2e0801bab7848614a294690700d4335c2fe11a6080660e5eebed6275f482d6174f5523114053f7020dcc322187a037b97dd1108423ea5305824851ee02a86556786d09470c24683cf6264d5c39a6dbca0b2e5c71dcd2ed966a2f0023066789e591ba0ada34dcf52ccdfa801b4eb4db15ea8c49d77d0c9e80114e7cb8df6e91b68727f1225f6678aa27c3213963f0d03c362a29a7bc1d99f556e1db7544f676e10f494020d97aba4ae6c0143d823767d71ef893a55b6895e5075b169d4c3e157c297527268eebc5adb5337a261929ca707aff7a0e81563de31c1de7e391f3bcdf5ab7a7f2df5cb7ffbcd6f8ba560f38a759c3488da4b8fd81b3f286448ec7c8956fe1693224dda00c6607d5d52055b15fb81da4cf7822448683e8a27853f7fb122ff73b151de793579fa04c4bd33a5a8e6b1171fa625565c7e8a92fb62b63ab71cb98722e00724a50aa6fa0ac30d86477f616722953c64574adda21d7f32829181bcbfbf59c7586a7cf15562f305982006d76aad06227596c7978bf8f375976757651e78be5d67beaa418587312585d678782516363885b70c5b8cd23c6e5a25d7af6b1a62be80bb1488f352464fee1ecc3976bbad2f1b7d674c5b05201cf59fa4f671162872f12fe6483fb0d6c1abb1c96e6a284c244cbc710cd793be12043bb5d9994b3b4dcb13367519b44218213aa38d809ef2f45698c090718d489118c88e3227a3a1d35d3ec6541f7d89a0aec73a09e0a16bae943e077173984a751c6e10b94ba797aa679b02114628fc113b8c3607883fd1db14f8323ebca8a2614497ef71c9d9881fdf132ae458685a79b19a98bb4041b02c003609906555f87f1c89dbdb33780b74327390b9ba22d84c918cbe78914145da896fb1a8b33a8c51cc2272687a82102225a383ec12ddcd18393b3f632eb84b909972c390c4cb47928753b07b27ca6dab897d70e91b268e0983a67667102c8f294a6402749b7e124a96d67e7d9e980461ee8af1be233738df54d27518d13ed401014d6e05c04c059b77829aecf53c553b516774154ec2df12c8e517d02692968944dd123ed5219be0bd80c6b84b8c41af65e554b31494bd5d2b3a189db281d4f18a60a890a569b9aa4d7b1bf30d9b55f71623581741c334381469d5e8a019f612634866620a4296987fdad8289f2ba533687ac25d281f38ca9c6d2f7c50a491ba8d8246eee462cd08fe6585ee69cbef67c945d6f658c2d9e481fb11dd61d62081c0e04668c984ba7c038430c3958570cb8518111f726c3644b410961df90702c82191e739d248bd361ada303480e9edb6f3a6c9ef5840948c66a01dd91452bbedea0198c8c068c80368bc3531743259a8836b0df5d69cea66e0a434dd80a2cd1adf456a88d9bb1b4e7bc3cf884485c86c541b45625c440c12bb320dc81b281d6606cb4f0d2c3d41ccff6ae38579788f54eeba94597ba5793ca3693a6410325c13baee9c362b109a923afb1339f167d80c99dd4ea6d68ca4676f31c37a6058a3c457d150790586c29690dd8c5e86f6a4301c91ea38c73ef2f2c1d6556d807aab497d111b9a6bb51432ea439e7e3993bef6233a535388c74e972d8f49344dfea5da8f020d9754d8eececc108a0babe168b681a83b0e3e3f60aa8b652f8200391978c707b9e7239d73c57bb2a9aaea662fb3848e35ebc8a3bc23aecc9b1e48c9041bd59cebdf67c08b7cba261ea1267d922984b7f33fc75aecc4d4c152c76d532ec14d8482778571db7381de792272b72d35b5c20130cbf4c5877be5d915cd61067d770009426eb2c4918d2d08b82319c9029c21c6a7b9665714968749a27f790500a49454d178cef4dcbb5a3d184b2bd25895ee68fb6eb6dab8485d9ed4c140c0a3359609443cdc558db53647ff282a0579c90cdb19aa81b5b2ae41409423e3f5c1ae7e0e05b14f6dd09ca7847632f3053c55471aa9966cf9db57014fb710ba83020b5c32c379ee343c122a79598025b94e1bb592ff3188b6f2575f215abeafc388195ab118e36485866d01ec19422cd2b75cca2fd4dbb0a6284ec2788d9f07c5fe47c95b7b0aa93edcdb12fec6d2152a60cf6dc29bc2d2d524f0893965c7ef3cd15e2e12abc00396363c40df6cf424893e9a10a0b1536f58d640e1bd1d290511de73de4c81bd24ffd2980db8b6b830a69560e7229da0945a15edbb83219f6470863000429420d2409b7448119efb043b732866ab77dab0320be5c00fb725818f6601f70db2a7d6e67d5646aee0b14afae1d9223e8f5122e359239f8a62ea214b1cc26d49b9f892559207a450fe94cf8964a961274b409bc70c92ed932f23851284b182578cbe8ad81e69400f3092145b405b482dbb33aac72cbba3208bc1b1ad6236baa81a163cd4d662810fe51b96dadbbf169c98483afe22bae7786a916a4b81c9683da77cd2e5f4ef8611d60c0b4a19b62a20dc25fd4beab0c68e82a2808a4c2ac2673617b44b433ad17d541d8fb47a9cde33a1e4f3a2089a980e8c0aa2fd5dc21ac7eda67d5b5dee77a3ded000877bd094edde84205bc7f85ac9aeea3ebce302fde8428f651c83da9bc216563ca0405badd2d950efe125a432b6c7d36a3d3e0a8277fe8db43b246b4ec9956bb52b7fc784d8d2bdd1ce822c7157817f60a8e1fb1086f93029d8ea1d1e506e067175bb89502a3a6595827fdb55f1d9a0c8e367805b16547d7c18a40f33ecf2b30f56517884eac09a57590d9a6628bd7319f34296a9619c6230701622f8796d3d96959f98053aa25d921de7af97e4622ab5eb2ba2166dc95fd5b305dd1cc2bf796b0d6346507115c66bb6be98a13225d01d0ec1c72069ad595961d0798e73ace7812462be402d926637580b21f23c4d3dc3d9056d1a0d7decdf376d4d5598f868c75c9e6519101d93c95c1788a1db73e335352de1f54a588afd7ae6a89142ff785a2875b2047a262c78190ee6e3d7dd1f7e98439cbde2328dcc39a0b51f03b1a37cfb8daf4a34f08978313398cedc3b6872c27ddca55c440e7cd8f15ebb6048de2ac6cde8cf1c85e252e062e27bc6ad7c1399c375fc77824b384e9ca507b7bad8a830735332060e11c401091abf4555e0c740a831a63ad3ceb423b33b62e6cbda65fb5325a7ca7008f3357ee3cbeae21e948b2a614c2cd1125cebc1158554d6f6cdea5523c13862f28ad609b867bb12c74882b16688dd61680b623b419921d11ca922b6ace54d7cc93731e97480e3c4c6fec40621a166b6e27df520e93ada50ebcae86842e222547fbb696ed690d23c7726e5016815625409a8ac747a3b94460b0e318ececd569a49b8a25673a73314e391f8b5964d35d3b887b463ef625ea8e8d1ab8244f944c6726be9aa46eecc583049d96e4da41ad9406d5850462c28bb87da09ed6db5e69b15d16093520974be384991ca080b0122000a263441d77ebc0aced2132b6264925af9b7c3bb8948183b562b5ae2abe8bc59a40ed6c7fa2b6b6dcb68d604452201bc8627b0960024ef7a2e0c88c336e84fc04ee8c05f3e69d3b9e6cc2983d91e06a6d59a6a593f582010fe401b300d31d01651201ad6972a857207fc5602898cd91b7d4d10e82201a261346b1b56747b8de8a7ce7031917a3620a9c9a251db28cf376f2c1c913c2f426784dbde1705c0429bc76669cb767b7bddd927060424030e1b16b2cac305b59569d7622c4ca90b70bc2e7439e7356c0726246ef9614a26f9a529a2693dc2a87765d43d2385568398c9260caec91ccb40b0755cf71dd16351f4bf67c2a49da3e912d4e9d1246b3bda6043abf964ab12ae1a0a0994ac86990ad8ebd60ca052b12aa54595b3877fe254c0011dda8de1270884a27908a476e3fde549d934af8d45c384ac4067bd78649c12a7c5bb4e6314bf5cd318f449e4e741b4d584ea890618cbe48939548f86ccfac534444e5ecd0a8b83a8014cb97ced88b2b35561191916bb316f01a4428a0cd481f3359c341119fbbe785d9880b823724a1a9fd9676f1d62ca7ddc083cb8e37e5c29d10e8ffa3ecac9178d99ae4bea0369ac9fc3733b3d7ccccbd7ac5bbfa34f3421ae36a09c738555119bfcc0cb8d82ebec2710b9244181136a66a985866e1ce8f427beaad88bdda25c11c3107340210f63df0eae568e27bb9c031bc314bd804641970bf88cd87e754236de962f4248b79bfded01441416e183ed7b80e3a1b64fccd5d6651fbfb161dfcb8b25ff8cdab0ab520d7f6b15cf2f1a3880c550a633e9e03d18ff1e973a7d11cb8ea7053e5e82ef15d120452da091de687108613f75c8cf5ec1c53849f3bbf28f77f0b533551fda93e454db57f8fd46aa8d6203c11e1162a78156ff6262315e5c874ab3d14991fb1c7f7829078fab5d37661f0c75da73490b57459f7818ba09776bfc57b89ba957f1510c7df1ee0b576b87aa99e81f05360a0ea7e175ebd525e5a0332fffa3df23971953d603ecf9ad74e7c2d7fe026d24a5cd44ed4adfaa2cb5850c7b11772a10807fe91a6ef11ee406570a91947e6440e4171e388f869bb97729448823274764a86904d30414995ccd7f5a3a0123cc838123254cbbf2e1d0aadf4615cdcf97026bd240420bcdee754c6e0ac3b59312f6f833016c7d95639410319cf6deb803d3f50dde7a2a9a0f04b47d564702189116bbd73bef28db63aa6ea812f4002fa58c3765b939653e88d0a02b223d8f53c6f39393ccc3be5e60ef91c2efca8fc41774788cdd3dd8a725a19621c2e612f78df2bab7a18983ad267e4a383f8cf57a0e688e10bb3a280c12412c899d393182fcaf77d8d7b26026b76dcaa3457c0be6ec4c415c331d477e6792b29bc0ea8f2a6dbe56c968af0c75c1504e1b958d1df40c39c6ac205c9c32d6d0156018c48739c7a7f277e8283a71be3a70b2b98b46a30bc4a4ab32cb77e8236dc8208ec18b8e212db1c8ff9658d36c854cdc5f983a47a5fa9e4c9a4608766946814cf7782fd6290429e95d90d6c70de11c8db6e90fbbba2ad6c03ab6c3dd15a0686ab64cbeee498ae9b88128cbcb949dc4373d2ccb69a7af26480ce881c088ea69b60257f9675a7d502e348cff32ff1a97884aa1a91c347efdd22da56407644cdc56691e2378a573507f8a3c9833aabaa392a854aaaa482b05f95d38106ba204f5642c17415255ec0795abb2a011c9c628435b2202f5542a97044cbbbd5985c0ef096fd068d370e82347b5c1efdbea0116c9b6bc318d83918ff805aeba5d1a7c5e9d75f1fa51c8a0bc2c11322e78d3797b1beeb4eabe4118b120d884a04736ef5408f0649a0231f694990c6e459c458b53acc0e30608fc7bac3bce4c7750723b2a59d0221ede6b9995b35c240b19524bc31f04e6344830c16e76bc2865695a623899400af84ba97f3d97652e23f835863d9971ea604aff8b6f412869624026d5d5b0793782ec199adc7807f81ba8204ae00ec021c65693393461c34f95c4ca52558ea3d1b88c04ae8e3c9b89d3afb5521ee2fe972a9b92a9bec987b3c8bc1b2e3eb9baa273dac0cfe8197862b39ad07b8a8a8075e244ac660bbc99392379d7a233a91fe22dc4e7a19140e0666d85d2dd98d62a9c2fc896df2bbc3ef4e989ef50a70a80965f8e1810836c4741401c6eca0265f15f89272dfe23ba92700a8471b195cf3586783dc8f72158c621c781cbb31d40098a4d465ad2168c557b8d519333ef558b49473052ee58c23e99e66ca4e94b380ac447541d3d2447f26274d5c772840b920e09757cb4f9ba2ce60aaebadd733d00a3451c3ec4d77bb0f825774adacee453c52d6e4cdcad60d324d28beaaa38257292f65fee1c13e27d725d5ba504c811f647cb88d6a02d34f009c987a485aaea50a6a36a2e435e0363cb4dda594bac2cb99129c762eaa8b560afb76df257404b6ba26d5b0e4ad1b54357ba9052ca9fe829c8c5c06a7bf6e16629d4a4b57350c0a2c3bc48f38a39398ca93bb8f2b410602c39b3841b2b0f2a34d7456de7533cbdeee24f52fa97d0316d8aaf2caa0e67b9f0a5215c7b335c3907e18eab571aef97c8693bffeba15257b4a372c733c2434563f49400bb26b7c65da687ec560669d8e8300608bc0d43ade4fe64a80fc4a6c605ab202963a0feb37d02ce5bdbafed6ba9d7ba9aac7fb3725c34c649cc364d7ea3d90e0524ebe6b3ea1e2d22d6adec670e7cbabee271232809b09704bbb8f503aec54938cc955564efa477c10070c4fa2aeb5134e9e27eced7c02ae4335b012708e10b0dda08a4f82f2b4a0ba43b945c2adf5eea39441751c33e8d2bdc2c418222f18e4d34643453b5ec239f38c510f0ebd0a4d5a8b012a0830f754f2b3a1b2fa22d258c7b55eb65a604360684bd156adb352924b8102a3e424724911983337153b00bb58fe881047aa400d72ee8fe8ab15b238a1717e998fae8cbadc359a7d66bae08d4ca28c0c78f17967bbc01ed528a444a00091b6ed2a4c2d36b565acc5027e5226b11a50bfedfbc4515a30682776b70cc8e1b58f77b040b8c65963a48711b728e68f2e6b864d78573977ff7e2d43fd952eabfc95278dd633a498fea5c90a3e025b10fc8bad28cf52b8526f53b0974eb61f115a69377a58ca8e59371e99f8fe9452d4cef48afc438529322ea8b4c274cae63b07a47e153663a849364d29edfe406614fd4d87f54d5a0a561788b1e5cf99c67ad639bb238281ba0d888bab08f7652fec4b97ab133694a2b1ec9945e53853aaf4f6a8e5b23c8a9d1444929db921cb60722fb63c463882bb4e5eacce7afa9e56ddb28cf38d5547ebbde849474bf89554ede443e82929f10a15934e146ce81328979c0085a779d4d7f5c3a67bbbbd5b894bf71d70a0b197d06d232349b6193432f4a708f4675556bc9b26eed1cb8001f55993df1e29dd3b26966221e1ea97eb16cfe8b30e9171d52e08843ed6ab9594000be627e3b9c42d2570ee2043f53172617c2bf4d06e0ba52781f573e31a3d615dd496ab24110a784afc2a18e1da66c7ec678be39e52e47c36b80f98a7bce28849903acb16299ed8f309b86b5cfc4f05bd92a967d55eb4f5c1b134395f25314bd945e41875db609bba65bdf9c941b24860604d1058e76a55b1e957a568a319329b7e35b842ac17db218311d6bf6b55c89a1872e86a18f7e61162987be93385b069dba2298cb28593602a1bca06ad6b98b6309e313931756473fc3d7e83abeaf13d48f77206f9e4e9a4b3e049db1acc25d9b2c94d1146f5351356ff39bb365f5a88d5cad180e6f84226ad6251f8e843a6f9b4d30e85f64702fff327647b52018bfad9bf5ff697fcb9f677fcb9f17fc52b1a71389cff66632be688c40a00114de8f14cebcdb9ffc436327631c8deb1730d7e9432f6e2a9f43b102972e1e1eb7702f6cfc13017ec36d935f8856178e9f53af85cb2b0a43aa78111b24874f95556ca10cbfce6083c7113d698eb03de90280100a02914a449f4a200c3b2c0faae4db8edee5d639859cfbf77560e4f6e98545fdf1cb6a24e0d185df9ec07798bd0de81c69dc9591b6c4debd67d82434687f392b3f2d24c1f418bc52003786ececdeae70ac5ac1b379d6f358872c5bbabf9a699dcf109161a22892fd1d4b46b299fa92eba11398a72f96d19b22335498c8adbecfa57b0f93c3c1c5a4efdeafda87c7551d4544cea1b6b1661b864b9b8411543b05db97add4adcf32e89a6cf853b820eaba25b43499c96845a971c7ed1812746068622709d52796d296a31e604ec1a0dc639791e1076ab8c53bc4e676d59496e45c886772e167581b0532d1c00f1830c4972ba2ee7061dff564d598b2642c654bd12749c01e1f03903b2bd44cb417ebe56bf3cde3ade88a617997748ba40b218873eb4aa58dd764f44a3308dced602d32df0fd376491d1e482a6013a3468ed7bc5edb4a5fa8a27579a3184b04c8c96f9dffd8437751f1cf8ccf92a3ea38ad29ecf7fbf5a3dfb4fb9ad501f34068106b1c4a563f7333d37eb74a3c3f4d85ea2ff083d130adebf79836a38000ef3df84500acbaf1cb642dc7d89a406ec677406d9cf0280e17ad11fc00e8f1d41999476eccc3669db5eddda994b5abc0be071ba048bfae3955adeaaed6317a1fe6e214df8bc10ae8e4310ed6d3882c1760ef2755730b269907b98101c76a595b9fcf341ace01d2d1484b1bdafe3d705f87adc114746a76fb08a762853e2c0ae972727b2a733efdd76174ea42286563de0b992fd28179f0467703bb2a942813623b320ae98ff95053e8a7116085ed6a3abc8c8e75428c319d6499b2ec373e8b4313374b4109f5865e4bea72468d5aa8ac398b3327466102badc7125de84c51288fe088b42770f58524ec60e7f1434e71886cd7b8a5f062079d1d7d11f20ece13ccb2e0454a607fab372dbd9be331b33d3d3798ca72a9cd2afe32bc4c655d5724296fdcfa0d78a2abcbdd95e1de53d93dc2b015bacc82ba55217205a7a9d9b4711ca8d08450b9dd5a7f421ecd88f8ee4379de3ac6015354efafc2f3e62d4dc5b54014544a9b4067ff7983d19c0225f647bfc97ade219c08748c9eebb9ba87fcc092764828669d186c31686aa4b21dde1ecf74ef281bbef9903d055a23cf28a604c5de0c483c5056acf1382f4996c78b15a6733105d4b1bf4b0fce0b8790e2e6c9dff49ef7e17f8caa14a7d6bd161e3e619a21abe108aab2f95897050f78cbc2419d7d887c9e14268635b6116e5cb7dcf638968b46290f54494cc77d4cc66b8e6086a6ad7c8ec8ded29d9abcc12547cb98b9582f87230a2b860b2c1403cfbd2d100b2604989118f17e5b2ccb579a1cd14812c9cc389be3f44b102f3d7c327437d5351d23b5e3b478e441669e3052c473bde7099c776c2dd5dacfefcf01fa4bacc8193089740df4b683a08e5eefeac3b013ffe68a387ea910d308a3f32e74b0eb235a2bb8ce9762c56682fa93c4958d1347688bd9a362447731946145639448283579dd5e1da1d880403aa2cd312d3c084514f9cdc21a5792b38118f4db601a8d4d2c3cefc972139b005c3cedd3dfe10fbb6a00ddb9d8d30af740cd0b12e524f440239813cbc30db293f21cc5aa0ba05528104047d4ef073c8c2b9b26e6a7d65e353bd8431ffb5111df7cd16233bf4dba7c5266846d123ab53a19337e5f73201b2da62f8a40e4d0daaffef0b81c95c604302318b34e881a75b9dbe787f64cb64542808d9809c6180b1b7e67b5f0eb970ece8a43e22a2c260aa606d6315d8b7be4e70f4f7575fb722aed4431bdd0d1fb1066b1b4aed332b46e107dc48459e6eba69359252219c1dead64d3868d042aaeb974ed2a09e0db2f2fa21cd7b308e1b0c8cc552b7b3b4cd970e1c287545e13f1f8198e0e4d37a94c951098a79690ece660545d02382540e1c63d4c0a3dc6be5c983591b529bbe7feab1f7c30332c720d9128c8a9b5b7a119e1af76b434ef00076c15f6a3c7eccbd125562b6c2c4d14b0756804faef577bd909e97c355e898569a0be0a11a9a0a30c8b770a3e2292cb7d817c8350d903b0a642e9e98e9f82f743e7800541926691ec45c8d627e15a69dc1178ea3100f1944209c199d3f052b95bd8e42ad2ea1f605efcd658ef45dcb795733c913cef3924ad9182d8db47e0c0ef278c32165139500f62eee851235c45a30c8d164874ecaf6156b19efc71de434f53fed404d06f5b3786b012dbd69c7e06272d959769a5bd0a3702ac408e9685e7d7d8c8147d22807ea5f5655f79e1e3669a01d7881bf1ef8947a15d6b579be7ae0aee016db1a326cb2ef1ec9921bb0fe1d3aef173a725d246c377adcd9d43dbc5a7f4914606378b5012c23c0b8f1bc42762d948d04b4e6b851e9e22338fde2a4459006dd09dad017e3c4e92433ccd3e6c39b4d21c53df6ca10efe9eeb082f282f9efd369897c0eb3328f5fb2c51c51e026fd5d06f40dc94f5308ffddd0c7a1fce5d9952824ba80352f2e85ed89e36c41f6929b803117211af98af3e132186d2b0170eebede616aadc24af05e497257acae188d4ab13da6895cdb457ad2eeb42ae141feb4c1233d9ede303bbd5ea8750aa6b2d44f233c60899a3c15aa62025206f829a2a8cb7dc9afcf1dd9af5c2033ac6e6a76a252f8d5123fb267d69216090fe503c8e5620fa0b379d37e3b28c758f2ec322b7a008e5d5174d8e5fb1535cd7696dbc07bb7f016daaaa7be1413dfe9453aa35b434c24b69bcb6a5314c979582cdaebe9b4b45460677ee4f753ea14c9501f3acc2f715baf515b8db92079b527ca40bc730cad0762e12c3b9074c79069191079b50713759c2a15e162c397c4d0a15bb18ab0456d2e2a762aa6c8aaeedd2266dc5439e0e1cc0be00f07201c845f75bd5326e8c91385df5f822385e0b80e350dae558f26283c1185cdb565aea0f63c24318cb37d47f84433007b50165587f65bca467d7ea78c6cc392972da4a0286154db9d45c49888c43e1ddd9a23a14af77a37def53d1a0be02320b0f3dcbfeb55c55748f9e2c5612c241842f28d7518c734a5756fa438eb765a16359d6700a06b64e61627be09da281f12d6d614f8067b6a933246b00e33b55dd1e77f1b5e0011ab7fd65371c4c21d8a1ed0e759cf2fb51408804765e54159f5e468a243fb52819f458fd98df802afb4d2aced506b5beec15db9fa3e0515fb4515973d7d23959487055eb151ffc1a62458b004247a346c694ef51fd9c25281b051e9a25b0772a975592733ad20ac680005812edf326a008d026463e0205889f393041cfc5defc3529bb2a519d8ad67e6f996acdc5108c3e7a7fa6c20941e9ec0dc5fc00b7864a133426596afd49cc6a119866d5a7550e9df3317709aea3ad01f161f00eb272828edd2e21bfaa3b98609b9f1d5b076f8fdb2f780321b337961084c3acbc6f0328cb26ecb33e624d930b2d98207c68f97db2b72c415d80fdc08a92c8a4a42308ec0845c38b7725aeda4055493bcc428c1234b76277fd55d43c43d762891c6d61a5b382645647ed33ca14651a3dd86966bc61235854a9f7d00ab0f5c90cc7bed5dbea1c6fa00525bed72fa899e789efc18bc099c8a68677bb87c9172459508a2bd9a39e74e7718497364c172eea1ab8acc20213b46bd0897030f3fb48c12b93694d5199642bb4d021616ea868cc45c801edcae3e6ce64f5039b3634c32934b5c6e27a443192570fc2e38865f459f64cdc54bff8fad45990e15236fcdad49d465ea4fa4e9b9c669a02d564337d87aa0c8fae610c0f8173ae51f2da17c47418e6bedffab377a595a33dcc2993c78cce98c6a55f90e79f4f962c1ec85277a12bc1cc7b8f5c285adf8b48261f346d86e9e62ab3d18c002124995889aca5cefc73cd871df681d9725294f9d94e0b5fca8ad07e655711eea983020e21c57cc29df43b277b646233ca68d7f15a2ff0d5335bcf09d8903fc0ab9c71b9f9f72abea2654354b5575fee1a7f26e428d37a4075c15bf9e35fe523e6bb0248fbfd384dfc3bff2af057fe5598690ab16172d418b250d99348ee3d91eee2f0e1ffc4518f435bfcef48d3ffa36b19fe005b3cccdb56a61f27cc44a196c1bf8f6658b18f0a3332548e6f781956e6374dadaba9f3e32891e3d80bfc2443f0c9c6a38d01f367617ceee00396c6b3285de7a78f49ff2500a94c0b4983765173f85e4ababa7956d1ea8e5a5cf32b61bd3b52367538adb96014d0120cd89fce8bf0c4888ec320297cbe6aa4b376f7192c0ea936e2aff67a376f353baa90d94ad4bc2e05a804d6446ccc7024d379afd6dc05c22c350735c598841e4280560c37a380fe4368385addade40fd2f292998e99180e67ef8d8b347001c6abdca75d63d9fd3554b0318a4afb9956a8336069f5780246f773f16649071788782ae32f3ac87eba9c79e3213b21d3035a5219fc7dee7846c2a7ce5138a94f2d886bb0b6d6e8d62c19e68d08cafec488541f72af355e27e48bfb51f545355eea03decf8bf29bca1a13c5bbd6dda36ef744e031da0a98f95ee978b16c76fb967fa3b99215139c7a504db4809a6cf36dbc4ff2f46b82e36f4016a8ee14dcf2ad4b28ec02256dec8390107838d5f47ddfa2c9f6cdb6603d650abec5447c4931f1bd22e540e65e9be053644c834280b75e203ac9183b7e17dd62d262ef6a275223bc025ecb6c2af78019c9f0141eb40f2de5f40f87ffe478e519452be7cdff7e92cdfd1d8b7cff158bfca7a68417be1c098e787cfe9b47c6e11088288f7e043a85ce506362965dba346637f35de4a3715388f9998a4632ee8b26741df1d9bec461e94b65102511b315cbf8607d5668a4d71f044a549eb2c89941482807221db2e1c99b2887c311a30575245aa0f8b73d388564080080e065f548ad5858703306dbe371d1128b90797abde039ac24908e4e1e5ccf02ea13660ae0ec0458730b1a386a93bf05e1d02284151788611dcff39104ce04be85ac1c8131959c95363dfb31a286aa5c1bcea7e54ddcf9c98386afd66731cf2c69f1a8f649e6fdbcdc8bbca9905ec743e4a0f6ad2c12ebd8a8b0c7683cfb36bc202898f537b3705840582ce6c5e49088b0f969802831dc292c949409f6863b962ca79907065f9249e361ccfaee522f7fd2903dbc147f98dc34c46a094f3415d3a1c663cfc2fab000cea61b674a01b4d66bcdaad7e626d355d3601e6a7f834a2441dbcdbec67be753230b79724daf8ff87c9e71d2abd9f6722474062a3012c9e9aa471b93e576226d19c603058ab10635122ff7b5946f8434d6233b9b18f7d324005971315bb34921e43e00d999584d39ebd829f1f5e70a160697e6653f4e800ceaf0013a6c9ecfbed536974e5d70b3b52047a51808795a200bfa93dce0110c74956f2ddeededb7b16a9c9952532f27f8f03ce3d6d9fadcbab6b84e743da9ae4a07eea21169c8894a43d5feb388a8ada216ac1b166dddf181f161ebad96587e0a16e912b00519edb8660587280311579bb13a35cf94fd9d96f253c818d6f3807b3702d2a933c45544d24e64b1db201ae9bc31f478d0f01601f08d91a891d5315671475175020bb38ddd67a5fc1354152116c8f0f62b18366155eda85051f57d7eaec8e43f89b0cb03742af9eb5828755535e25b5ca01e7657c17fce823c9cb818e1f75ae8850504aba5be1afd8c7904cbfdc8f810491c7d1b45dadcc207a35d02bb9299c5475f7c199e25085924d82a66f416a260b23ee6edbdafa55905b5ebd89c79a0d4a41789806cd404a28c94c259dec80340a6c8b7344d9645aeb8117918d58cbdc9e1aaadcb0ce6f63344944e6ed562c35c0c1e4dbaf2ead5f9e5c2cfac91db2ccfd498da2d6bb4b6f2ced398cd2af1bca9c805ffc4c264b0d412f87a843f1580bace3d29cb362c12c7af6ebf5046cedbf7f5fa5e80d58a1d85599cb5d6aac6ac5df05b2cdcf14ee5ad6f8bd0cff76e36c77fde2729e2af4142b0f7d774c309c791a2277dc28a8ffd2b641f8da5d086392cb995a0c0db07aaac7c1202170d0ad6ad71ad99ba5e107e1e43803e3f34fdfd2b7b6195723b129c3bdfe50dcf741742f59a55e33b4e5669769acfb25f951f406160ab3d6032418c490b48c48d3946525d4821f2af3d75a08f8e5ca8bd839c7ad18290b15e350fc08971198908114e638273595103a03865ccdac06abc52087b4461eba9aaf747e7f0c6d5670e87a0828b33d60c4a0bbe7a605189256836f154033c88a813b0c61806a847dceb700bb46a9e62a44ed880bdc28f491f0ba201f9c1cb55f28c0347cea9af424b02217fddd26bad6a0eec5b96164b2d3cc8e437390518946c29ebab0a2a584fd569c0cf49752f755159723425791548c248ab8c7ce20f82a8d949ed2ff72bb9523e98446d8bd6769ee1899d1bebfdcf39c7a230fdb2a65c58fbd0d25e8cb0f7c9993a66cc1566e8695497ab916a9f21d367e49d356124b2ac4e371a6f3646a92d33c8c6c070aa234c80bc7abbad2cebaadb012d3bb82520be25bd222fac40ba8b5d2960348646003fcfaa5e8bb237c2782599eea421981fbbb910ea9d4d7408e05c16c3b8d95d8694301169af929e06db3b448daa9cb631cb854cd5a208bdede78635d7fe6a38acc037b8eb082285166876ecee88a04145b710e30f7df451992af1903f7ddd1c6ac1b21f3225644fedd8f225f6cb6bb87da326d94577df25f15b5029987987732c649596eb75026b1a1ac15b76594422f0a59e9ae2ba44c9edfacff3de83707996655dfba9f9e26eb102774304fb6d6b888c3025f2d4b70431d510578e504ee1a2adb822493a5a9e6f8fb308fd0043b0ba2579abf174146d5acf3511be497c80ab41141e110676999f6d46240e7cd234c1afae274d60da870015bac4df16af674d739697a0380a5baa645b357095e22247af3fcda6fd7ec28315e5ae5cf9760fcbe595e41cfcfca2140d2c36470eac3a124953a81503b3d3fd8d55e48f17564609c514f1fc8205edddd532bec0398f707411d5626f961f4d1350c58aa4879eb491d2c8001d6cfd064af2ade8be06ea0753106d9dd5746be89b0233fc82f54963fd7c853d471ac6ab425725dd05746074f13126c84901a0190c7461718244bb5219bc784075809dfd79fac247bb48706ad793835b9519de75eb1658b454f2145d1879e1f540bd4c578b7608660a9424e2fdc8253abd83fa94ea25a44d32def7334058782d3dd31f6c68e3de08cc71714c90c940197b40e9234b8862d4c5afa9d45f2df509311a189bc245b50733878d7bd9597d605a04f81abc2813475afae3360268033d4bdbc5110c060474c02f0542042f977c2ffa2b7e9329ea1bcaf74aaea44aac7c083ac31b967e1c49c1ae39b111f8d1175580e0af5f50b6aa279a051cfacffdd3a0f7367d94f4fb712557ffd5fd83fcddfdf39fea8ae0df5559861c87789ffd2bc7670a82247c8c4894088bf965eca98ab3ed47fedcfc64df1161469c8278f58d164b5b5fdb752ca975a5b3ba84d5ecaf243632082e5ad734aa7be97983e4c57bacab04acf43a4b45f9f1f156e2a65899078e5e25090ea0454a1b4931a68c5e86787ba618926dc635a225f69c5a1a002dab1f798a1854a39270e92527d3e43153a59ae91167ee48e2404655f3c50e253406dfeff673b14c4c4c67421973163dfd82983a58cd6e9e98e88948615a9c1b4a0bc36dbd919960cdeb532ea6651a52e2371e98646d8be3913d673dd71c17e69dd6c66664745a0289a1e0639e66cbe5c47f7d4eccd37079de41c1fea7b862d58c56a40752c7e76a17f19cee0da730440506d256e5fe68c1c539c93252984fd863d055a5e928eeeccf189671b33f1ada482da6936e7c4658a01e68a097b15f788fcd08b3bd8591ae68df0ae922891a57c3c3ffa0b4abbb5dfbf237e386a4837159066049c5b0959441a7a760c673371a475d08bbedc6a32771d359a61fd864cc9e5dfd16a850e71dde13afe89395609459cd035a460e3c196653cbdd01c347647145881cea445bca2f1997f0bc7c997dee2a1fd02c4b0ecb5d0f23f269642475272af6a29c26a743883c68c49c0fbb13f9ad1fb5de59824610e6bc8c4f078d1ee3f619b68d7994df698449cb298f9d571fc194330ddc6c4f306826844dc6fcb87715b5dfceafdc1238caa29e564aade34086d81d209e9876ba08a28565f32688600dbba7da4a71830fdcea63bcb2f79ca582439a035db1dffc5afa58149872e770ae1d0568a4805faa61920cfbf626ed787537a6037b1ad8d611c48b5f9dcee1992c8974c9d5e3f98d47ce194b2dde7695660bb291174cda5a71c4ee382bdfc37feaa288e325c9292eedc2fd35c4468e0466450bfe69c65a9cb8983ebee720dfdb04facecb47ed8d8620c9837a201795e173b27a963946d7934905437a867386d007f5c621729b194b1e61cad8a232cd750b9b751fa3576d309f1428f6ba0bd669f8d3f50f4629f50320ee7ba3cf6f715dcbcc7d83ad00b92434454ee3d22c99356f25fc2ecce1b9c723bcf5db3f034d823502ae1c38932a3bfc0d9dfdced4ab3575647e335a4af431c7185f2c09b67baa5f0cb1c1cf1a3fef7e1dc1095759c2457b473fa343256a3bf2b6eafcae1f73323f393070c7926b81e1f0b50bbc7bf0505d2d32ba99fd45a3588df342cf832ecda7485d98c29520d040208c811fc24d80069609bc67682992c8e90cbd70ccba9bf4db113c17fa1f48cbf7b441e582b5dd2c1e2eda45349592c36ac921ce02047c3b910fe2ce04905388c7e3919aee2adc2e960155593368eca643511653f1ce0d668f18fd7dc03587c3ca4467773b6f2a112692a2bdc1403d6669aa08b7530971592ae55b03301a543534e8d509e5d121d2e86697de8db9a502b9aec3c4a4e58ce21707143f55ee818c9940a625acc20c9ee2717716cc02ed64dc39ca7d0c4491a66601e9759e933e728198140c74a4f487fafd55201793d979b200f5e99e75e19e8b69afe7bd6e8c974606cc91404ec0dbe8f13946fd4ce8da7fdfaa5714e628b2c72ac98a4b62913fcf74e67d967858eb5853f07215c312b9bc6c1a587d2c2bb2524f3c10de89627177b487e44f5a500543b692464ccf0fe835d850e568cd54463e34532ec82bc2f89276a729141cb4ae24c0a1d33de62abea9e4d5011a19c40d0cce00d94652a405391c6c72b09d85d2c64059c3cbb90e2b79bc4619b8daafdf100b1a27809580f0a181a7f8b30fcb5ba9b5b2e67f3f2e62ff9ffe80ff711f7e7fb70fff8bd5e132041fd3b080f3ff54e5fc17b7937895ff1c81a097a000c92e34873ca3aef251282b92bba2e6ab5038cf86eb2e87fd28ca8fda669d29e29b4eef919e8a5bf040c5a121674f4d0e843850d5f38f460b5bd372cbb29b12252a801ec8efcc2a10c47116f9099fd389a2a586689160c3031484312f166d1864f18d688a9f297a029a308d1f9492096a45bb7ec772fd2e01f8eae9039fc71611987bd1af18c66a90a16d47411cbcc2ce2641d8cab80812c80101bee38a1fa3094b9c60f9df24e24449be5e0f5831ae3471766221d117a409f92286aadf2ed80a96e8b1526d2519ac5750875769d8a2882b2fb82cdc6fbb26cb8abcfdec0bf014ea12fa3ceb3cf729388bf6013c6e929adee89b0f7db2c6435b1f2de060263fac460ca7ab70192bf32ec44a4ab6013a9a815e6c808c9ccf914fc93ae34e651d4eacf53751a7eb48a066f337a2fd55dbe8eddf04d29cc80b14c34707ba7054fc0767051a7c9e2996c006a7d453166f703338c8e74a21e64e941dea6b7e3d244c805c5ee11b211856024c3726328a2a9458ab4bc71e06f3b28b1a77a70ed8b40a9243ea91d3ba5d03e460a12fa4bed7953cf39121609c0c2e311c1df5bce0a7e2ae26137ab077f0b582faada3b41e05b9cc2101e2725e44eeab15b94d9ef48d340c84c900a1601e33c35195fa1e8fdeef283a3dfccd3f24ce231b95e47106108587402405f7b8d750fdb23cd7a70e4e5c0c6fa774423ede7b734549cc3e36b756dd4cb0e3d3097104dbcc5817b9f149b973f1d4f40f2d8d28f8e668209b8d8f061b6c9a7889eb6e67f956ce39a40de92bd2e775331d28b80d23a6e95d7c982cfc533ad1627d4f69171e6eba2e696d89642e78a6be9b16fd96707dd09da7fee5a92eb1751cd7fb9e26b4b3c5c1a307fd047036d5069eeb3b238fe29cac8c2d9e75c909ea32a2fc521f3ca11f30d0f1b99bdab2e2780918c606bc3e4d3ebf9a507f729ca6b76d807b56c987bd078566e8e8e1a74f83bb0d20578d8a3e467ff20e5ceb7697bab2577a807d65e84b25ce47f4a6c0d3b9d081a233b0945d0c9ddc9da8ad3551f89bac12a7576a20a411c543881766ec24f9bba0653bc958f907f4320ff6327f343d17ae6a7cff467bf9b547ebd78a07b0324f0db2e253969db232b209bf2459f04d92218e17e691bba8306458bb62a6be65a251c43fd5ae98b6f7b830e05d66216f571460d51e3c4e1e1ab757eb226163c35fc38464f87afc196358afaf683b8bdb2b739e70be4e2dca1ab6c62fa94dfb6cdc9eff6578546f6e2febfeddfe407f872d19e2c6dfc25d97b216e02dfc99a567cd83715273bfdf6ffecb597afe7fce52a11483ae889cebbff5e72062a3dd831f9ffea172df22bc678c6c1888bcb26fefbcb0ceb0d0d8cfa09250138d9655832e0d6fabf7a23595ede7e0a77411117738f10c6a9323155602269d1aca6a25f2c78c9c0ed0cb809246e2becbed1f5659685ae0644e17df47a21f68646034eddc2d65948135023baaa3914c36352c84dbd37a8a5450246a22742938eacf798ee374020610e4a587fc93d560f9c26f6c954d4933eff71a139d79c7ac86e845faafc480342d3ae02a313e544a0c840d0d56ba55ae77f13db73f38c207114acebca7d92543466d64b732da7d17ce60de9803ed47c58f8795db338b4876ae4a10ec2a29a65311ad2bdd1ab51bd4510d9f5bc86e23675015d9af85274312535dd5f332e58ccb38dd0adbdc85c80e205ef022ac5eae9e59c1e6bb889701533b545218be9b2290343a86d0b2cac236261b4a6028ec3531a29204e55af761e0bfcfa3dcd02b5f31b33a9bf13a2232a766a9157be83f9aa93df9301c12bf943c987e3c14f7f7ecfed0724d30c0d784357565645ddf446f115189af381526da48e184d187386b49b083bb83504953ea6a994efad88a1bcba196d98ce393059033c0539243a3208cedadb38ef78a9ba3f5a4f1ea3d6b07ed1941bfc51f50f3982189173c0f875d510f365beb1f4815f6227528bd6e450df4ea88ac583412403984e4d7856b43f41a6af7667083e71a137e70b36cd1be8a71129f54c96e2946b147fca22a86b0c146b0c25b419d7092a27796c7f4e600db590dc66b874288b37d53619ef9df568595570ea46fca2ecd1e4b31d2fc3a1abc12cef089c05b2cec488c9a896ebedb51cce923019482f58c717d47bc9e0d6bdc463d187a2a66fd567456aedcd9badcae922f862f6a97ad62dce9d3dc1e43a11f77525a7fed3e9be6e932a8286736bacf98b5d2edaf0b15d8d1837563c44d76820d7295b0239ab801c3166dfb40fe3a15dccf346cb3252de023c3f61f378ee61ad5fe248d1b85a725fcbef481a4bd98db2fbeaa3604a03c544a80e56a26ffcee50d0dee9272595443828a9830b46b9a9c3c2e15e133696c4a380dd3c64542250b612fa4cecf0e435f478c894700e82e9009d2b0d1bb797f145458c403ac4ce4c7ba3cb521d1167674d71280b08f4c8f04296b05db1f24839e8576ce86efc7cab1c2b835f68e3ea2e37fd239be7dd007f8f7b958d7f21c2917e5feb446ab2f1a329753252ddc7ee6c3813a6ad2118dc8adfdbdb50756ec893ebf09fd011ca0719f4a12dba1da921c21032f104f498f153bef1168feba6f045838471a972d838c2b5ffcf3339d0cbf21ee190629039057ee221c86151f14ab1e2f7269229d9d6ab0f14b9f25817606649c39144d5e986e3e145a9a02e92e23e227d86efb5a614e4ee44f7df3fd90b10770f3306ae2696ce7c18f7a2ae3a1345db7f8a6315515a0e0c76589d2e1f7c564c6bca467f5889b7698ca7097e145e157637c1e4554c0dbaa4ab469c4820d6183eaf768b828d90afcecab5dcef70275c2f7fb1c1418fcf8a335c19b391963e34049fb948230164854aadbca458b844bf2585e803096101438a103990e1e10bbf34c403ded4746fc0b230a06d4edcc1182dfe344cf102e7202a10ec9f21d8e3f51290853079bc37615bc0b3ebae30fbf2bd6ae744fc7fa441e13056d82a02c3b80ddc1e2e3ddd1812b12b412445b7ee90ce2488e445b0c08c9a0f02264659187d0adcf585bcde8ce1ef60e33727cca2705ef944ce471e9e2bc9d379361c9f77b2ef90a2e2a8c6d0321d1a452b5288f2e4a3ac29d651176cb3079c8248954c4fd8d712dc8709631c01b1a7df8c04cf87ac4cedaf9e238b519a10293617b5814be710b2234e77193e894cc4f2b485e121ccbac4aa730038441b5ac5343355e01871e529d660c5cf7fcd617f367301fe41a934941da4107e630a903739bdfce2ceb72fa932d775ee3955dd5545e6ba490cc90e7ef788fbb6ec8dd2c41473b0774435eb2a9b062bc708908121ae05bad91730672e0bbc3713660ad690a30c11c3ef47ab871e14fe7ecc95606e017fe89c1f5ab42eb79cdd83d5aa22ed2973fb6d835cfb2474b941202920711dfa2a4129eb100751dba55b2dbce817746b838ee716e6d75b0bb9df2296a917c5a85fcad7447155d5b9a734a2f919dc328d6552711be31532e8c288dda6c7ef069d29fffe8cbc3a27c551cf76a129d732ba64639b2095d76339e04d85e958810742b1b3822c4d6d3ad877c74e22c804c1f823bcce9e54549be32833aa62da5a394f2d38165a07384c596c5be44c6f86ae69e93996e7ad63096616e78c3e4440342373242fe48f9d32972cc4ae513765689be191803f162fceac90cecdd61dcc2b3afb82996309d55a34ebcc3a733a178d3d7642d8f6caf7748687ef209ca73ede5a555a2b4cf949f88d2383e954bcff208767903517883b41d6e256d5f57c5a42c3ed7e3f64c88377f8b865514e87415d376741e4c6c27dd5cc6f2c47743f6de0340eb244affeef1a4175359290234fa65840fdb0ac7a7ddc2cc66c77a1f1256cc18ee742e47ee1a9b2c8840bb820efc6acf9e810a8d37f90fbf96f4fdb9e35e6806c9bc3fa790a1e0a7a06fd70cde889f53a3af5145ab0662ea792421623e2de115e8654870f3b51d7ad51c84c751b7c3a7229ddfaaff28d757c8087a5060c728b12d01c9b79d2c0e68d0e96e8053216548ef970f4d6ba620f6c341cab4308214bdc5a1101eb69ed9fbdcc769ec8dc6fa8d79c60b110a96e4e4cf35fd3c5c385951728b6a0d3f6e72dda95f56af36dc1703ea21ba206986df3db2f2d910cab0c250df927a5ad1e15ed4d2da4fa3aa2d45039d55f3503cd642e1f74c692591a7d5ec950fe539c695c31f9f01bc050d145f516ea5fcfa16e02cc03ea09b07ebcd7678082322c50b7f167ab74bac3d46ec5cc102b27c03a14cbbec35d866150b99448ab4a2094b2e1d2b9c621e5afd402864fc1e98222b7aeb31862285f512e0e0571946a1d5fe9609f9a93eede8eccf64b971713f412462e8e4cfc1044439e93a658570ea23d12b1eecfd89e528cb4937476528c7df42c318814270853b9494ea6273a93c35703877060ca00402dc1fc6a4c31e42c77bbbfefdd8dbfbbb8e3be8af18931879feb623f17ff452597fe7a5ea32b1bfec50f90a496962d4e132043ee210ef3d713813dfb8b22919f2c9f937e312101096da4e4dcbd835bb1b14f021ba2d4111df459022efe6c3469b8e02b3c9adb45c37b90946f5b3974420a00b0acbbbf28cb5e768564aafcdd0fad0d752192c5ab2aa24cb04724cbf010ab4508c09f5446425484f9f905c2d7d356e4288ce4cba0fc5ca04e260871d75d71408d31a37ba32dffc15ff5484dbc451d9e205d6c44742587ee6544302956e53422ca0634090111e932bfbd3a45ca06da32374201ece61d77f5edb7a2fb70f3eceb3332bfee6aef989229f8c60f85251a3a05d9328b5a8d32127906a4e9f3e8524766e9386d8eb44099c04547fce4bb5131c81738650d6484d03d49cbce4a914cbebd4b4c1778615aec2e7449fc1ab1ac22e8a52b063f88f0ac7476336f04227e285f41181048d99a234275b647248ad772063392800df29c71ea192b1422deb0336f8bf78fb6b25f8b5256f107d2019250653ccccf2c4ccaca7bff1df073abae3ceccfe7a4e8c538614e56965fe285732ec283a09b1144457f448acaef1bdc85a633bf537b201be5e801646de12005af12b1fda7dab979f68a0930bf461d8fd6d3b8e9a809ca0b7536e70d04fdde1638ba633f5e5268e6d91a293ea40b4290ee19c51c74220108310aab0c6283b670e49b0d243b1862a53081407cd78320ed4245e175da57fe00d9b384dd6f62e4fa834a9962f2d50d5fe1162a340e83525250ae993b69b384121f39052d340f677eaacc5ea1b92d67c9865f53473bc796c7c5a50e55b51ec368c276408a4c4e5e01a3f5f4dfea608528f04e84c2be0614599007ee96d222d410c3093b2df539746849c619cfdb48f7351139079832c2b58197167521e57e9ae94741c3fb685cc8bdec7d418abc4c1526c8c06238fb5bdef50adb6f3cb66bbf3f47b95d5ff4da75530ee97dc11b89f06c745b7697ec219dee313378963f022122e18f11e5e3863e51ca3befdd9162d1aaeeae6aa1594d0506f29291e2d4280d6aebadb4653e12211810831e9cb05b7a52543a54e910d96e7b1b933a3e12cb4fe745e3974580b1a0018de5f69048db7c620d8155be81bac3c747e53c657998f2abf26e0c44ceac192bf140e7437f5f6ce51897b1c6ac155385039f599c460f9f060c5f0888f342a7b69a79b574d6589d4fc2262f4fdf236bbfe51f3ee4410e09f2dd3b4f0e7e76fe4eaf8bf77c7e75f350f14da1c71de3834405f52ae5c0cde421c861c34ae2c849a6c74f434c4061ba6ce62fcf3eebffcd42d48b6f0390441c2a5cca8fbccd8ed3a9edb2658d66ca1435c866c41965248621f88a58f742906d63f3d240a909b8c32ee272d1442041a3072d6952d09027017e853fb3d32896ad09a34c663026218f91153374cdff53d100e5cb4f049ddaba5a218eb2a06b85e3025fe6008a55f053e718699b2ae4320abe1b8e04814ef6124869a6c8e120f4309fab47e1123fbb29e5fd3e15c0faf43dd32688e2f1c177809dc5690e41963a8dd4ea863cc2889b0c07024cbcf774cc14d7de4d52af891501ece4fc1ed3094131a12b4d3e95dc0aa207f62e042d99b6dda4580f593b3d357b46001f41ce7a7c76d280787030e0bc0f1ed22fbd63092c0cb26db2ac11db1081c2a56f13ae1224c87424204d73dace3b3cdc20debf9587c7089e2ac3b01dd2cd9ed66d2dab21959ae68d9596ae6d9fb4e9d912e47632bcb3e91c6729e8f798f01ec295377a744711aef8eaa5281ecf3f341f6305d39bf5bab10220ee526791d1b768fe3858513e94adfa554d793b0d798124390a34959e4bd134feddcee1f45a84d9e8271109b8d6b166145233ca34c38a332cbbd99fc7438205cdcce672a8ad129e6bc5b2df9cbfa550ffccb7c5d47631217be5e14cdca2c4fa1b7a4260dfc7cb87750d8235dcb043211708abae9584e95dd362c4425315bf18df03c7ea4b3174f8140e7aca79c284ae0561ebd6da5bba50738654dadddfa7ef7740d06b67e79de207a28c96b62ba8d6db90a8e481f4f9ad24596fd17e867d27df21ac74e7339c18f954ccc410dd118155d5392c83506392a85c9280eb9386552923bd56f2f7fe33b4c185ab1062b7037ef74f07ba028d618f79e38dc59a7edf38708de806ce6c2d72407fae09104992a3aa04870edea6e65a9e0525e33ed7e0364850d0b1d813444f0e2ec4c4e42672c36a61d28bea1bcbd461b0d90cae53742f4dfe54ae611be180422ceb6486d5543a1319a6576750ffa24bd451c11fd4a38c5781b394200af2d6d1c1f6d0fe9dfa411494096058860714c5be9da1308e185a97d8a3aa244542e37c44b1882ea7a0ed7b0040b416c36863ffd80b2ac90e41b54f11b005f5aeb44b55908a225b0530a2a4a74c149e8c5fdc1409254e49862bde269510018128e35224dde07f115acb07c1a7ef2ae9c174b1116d3cfb3c2320d93667fbdc04b43d19ead8bfea1323877797cb80ab5a4eda4cbf9efd7a84c047776d3b01051623d87fa3f59f0f995232596567ef5d650a7b120e482f5f2d46ee961f769462450ecfd0ac43d80531928f6bdd8c3a5aee013cd9fa5e87536f63f073be26f7e0ff1e4edcea74ebdd556dea29fb69577d4e104770f1c169d5f5704a2532e4e4262c55efb09ec7c01442a4e81d319aa2cdf3fb2d9a46020ba27bf4d4225ab98495758f4a8113e41b8b323fc1c4c6894e2e377f63837345ace2783a7c44f153396c8a6bc8075ab60a3f7f7a3d3c8be38bed430c0877ec78fc4ee7d6a5e7366a6abbdc95aa5de50a80e82d4cbaccbb4ef3e6c1cdc73c33f9ae507544bd4ab1278befbc9b373ed024f0be5a19acbe2a3780633b7615cf2b065c6ca63f3699a165462db86301c765c302b5fc97cef211857a816b8c3aad7405af3ad8e96de87c55771d97744f37d93e4a2076a3d8ea54050bdc544e574e4238076ca2740ef4b43d2c56a1d8662b4fff05dfd45bfe938a848aa10cefaabb7352bf632e256db34ada3fadfdb3b49fe1ff4b6ffd1c322652a4268c82647284563c8a5ff361351f4bc60dd1ded3f3f4a8025b795e945e4672467e4577350bdd17ddbebc990e34d6c305463c4b1e4a40920541ed9aa6afa37687cc1c8a0cbfd32fbba2a9c007e544491bfe820e9c8d46c47266a75714bcfb5566fa90b90ed3daaff5c55d4dc62824e8a94eb59d4f65c17ce45c9458f7591efc535be41551e1959a0310bff38a77bd32b1f93ee5a454e367e366dea5c256d4b3300f0aa553192db0cd9170101c593c686762110693be0dcc921dc58f7fa5ac64867601e7ba970fb5db16fa9848ad31add972420ab306ee6939d6bc7e8c8bae13b59a8d92ce45db9d67e2678065387a76cd0317dd69e4f2fb4844d25027ee8285df1cf1330f06e4f2aa125419a066da7c8b7e5d520379c91a04882d2c70b67dda90748b4620416245f57075c928748d5b4de83f6e814954e603f90f5cf9dafb02ad71ac09ae3d8a61cf8a8868137e7cd1342b29b909474c57f24e0eb644d483f8808acbff89b751cc6e2f8b44dd3c92dff2dfe66fc9ff037983ab2503813fe59b231e032188393ffb157dc1fa0bfbea52b416846fbdde60fe5a8950d78c6181addad9536d10c59baa33d8186f12bfc3d038fdf54733f4612fdfd7155cfd9e372bcc20a99242b237f1246d5285d782d7cbb8addc1011de61a99e0b6f3429c2d90a3cbb011648328913bf6a3572e7af3e8ae2ff6e236bbcaa87337747caa3792dd90bcfc4b5c9ac87f802cb05be9fdee2b5c9afa618ae77715e8a3ce8846e0a36a93c2a8676fed9ee4b162c3cef7f62299c03dfae777db9a02c98ac4acfbc1a4ab1478af1fd5c7004f10a403639f692f8a1b36f64dc260a43a0167e3554d8b4ce9dd24a2ba4a2540a840628b5411d15f1814e45b7f9317a6beef4e7adccffb8c0a6f4297b33b43818076d191a86eabecebe65446f5304232714998cc0bd21727b21788dcda96375d02557cf3059ce785a35b0381838ab49d27dbcfc4a30765614f612faecd675dc485299af263ae03ad702bbac56fc2e9e1af5916ca5400dfa3799ad6f6bf37cbc2d9ffebbae421cc7fcb664c4190058f1109166a0a6fc9bb39e39f41bb85bcc3c9bb4b043dbbcd8aefde4cccdb296fbe611f7b62e6beb9a301e09536049644c8339ff77ce2d0525495daa4bf60a24400fce558ff2a30940e55f829c3f71d44851cbf12f9260c05a8aaba8d9b39a83965f8f84820fddeeb6cf5e1e465466b4902146d3aec926c774ddf64d49ccfcc0d550121ed3b8b022462f0a007307b46abf3bd70e7540588c1638c64c130ae4cab1b50c990621e8f91bf2f5772ac39e4e86f38f95072fb3bd476625a1f5acb5a330d23713b14cec01e5d77f3a3f809c9d413c48adfe30ea68dade81c155e9d5e46c998a4c2201af86b37bc78f2423d47adb36e7cfb24cb1815fd3b70f08b261d18dbe1b2f86b36318697bbebad610ff869c57aab14e86e7c1ae4f8d327615783179bbb19e1b9c3827f9972c220a7cac1e5cd2dce187367a357ea35fcb64438c2c5ea883f0e6f2133117334f36de99e929c8308fa8d32f449ab40a21c8be490ad6b76c2e0edc8500d8fe4807fc0243f378bd98f4b5775abc83bba3c8adb09cf18ed212ebaf696f7bb965801b126d02d59eb37639b51deebcc5b492897b50b984f37504fb32693a1dddda3f991861c92184616dc8e6de028577a482fb41dd48559a6be7bedb7b99dd1a7130c620493e69b2f435dd19509d43327a3bc99ec50f0cf81fe8e215172fdf96b459464209ebb4094a514dfce14c5bcb528bdee119250852bce6846f51695c894533bdbf69d70b1562014b96bb1ae127670386306678957d8cd7f87b64dd5b4060e2d70f950e0d1e8f470ca9cac389e10036de312a06ad905d220394fddb4ad3061f4a9155b64059ae76011d5af98cfdce0b3ae935ca526a7e03868e5a9312787e5b2a572e2897be006edf88745980d56771114908e57ba86ce533707c212deccf8ce276717dbf25287e130203c64ad94b1daf83c47f79c773d71768e4f5bf99fd34b6ea383c6a2ddd42d517963bd7a50211a3f5bb0cbdf46bd67082d17f7991bc14a3480a5587e8fb1deb1a4bf9f54fa4b40468c29734a5bcc0b2e0337c6fdb7860d830a0c9627a99c74e8b67e2937440fd66dd06868c32e006fdb632ae249015d36736aaef3fb70a29b99e10fea8872d86ece2c743405459a7b018cdc5e8f23aea98a2b6acff72a7445532e16916488498949ced4bb8729a4cc1470edf2158ba0113c8088e617827977c1ba4ced71a7fdc45ee772f6e71a179fe4a854e6638c50f56e4ed169e42c96628022d1c5ef47528ede849dc4500f6f550b5b5ffe5b4b1f88764d2be6b2d405c9d7d3f7830e2af1509f545759d49987a9f5796c28c7caba29b146ec747895a0a16c720e89f57bf81d40539023dc759008d860532a4c3b696cdc9539acb36144ac1bc7df50295298b6a4dd627703429d6091b523b28139d773e7eb197a3093e871a69e93368a3c4e274c3ae074a10244b33b60a70bd06f05904494aa209b66126a9c7186ce3f2fcd550e67c764f0cf33ce05afd199d64cf45fe5711833e54b0df8bd4e6c88302d79e71d7154a6e8afc91c8046cb6aa6ea4b3a6a06988692753b6af19cf3ca1d3d42328702da8d42610c9bf65bc5fb720e59a6daabd80408d8ea81e29ae71281d9c8c19a35073e9431e3d95e4620413b0a19f79d8e2d371558afda7c7a68b91a55a42f84ca05d98d2258c6a9240edfad8a0d321dc87d99a84a09a9cd243bc13d0c6eae929af07dc5200e5f52e1c51162e2132c512d7e90e73ee9ab7196c98d9695c1174bc32c2164a7372fc05e0ec20a6bfd9dfb325f00332c7b961c9638d3fa3dc241125ac14e4c69a03f1b556a7038afd858965051fdfed943e1806034fe0fec5250ed3faf5bfdf71eea8bc29bc3c1abf0c25888c1eb8cc39b238e5784cabf35f67ff5d72f4832ef311cdec247cdbdf7170ab152a302ad856f548055974590151c8346afb87dc98462ab12ed62b41f4d02f1aa308a270263c5769d64a5f4ee87b1c37b1235630990e984747f399c99c80e5cc84deb719f30b5c2dc88629ffbaec4fa2fd461ce39aa7c0fe0f45bf03e4bc1c63095d6da216fd28c81540db8c4d1aace3ec49e34ae9a14af08db5116e45c453dd0d4c29c7a09ab0d73f9cc1736277b883bb660c4489a69621daf1ea7dbb8e184b118b43b11ffbd13094c1f0086ab1ce050df368c66ae43afd90b2caa83bbb1aa52d6a89cdaab4e1e1aeb849e5404b03c7c599362cdc32d4ac9a7e440f5cee8c6dc005b1b7c8c742446709e4fddfdd46618b356687ee1705fbef2b2e255e4c0d1fa40b3c469052e669116ed127ee7f4e008c154fc94c6ef96e6fec030b8544d2f680c8828f8acaedfe437dcb3c99fe62fa71ebbcea2260c17328283bad84e51accf3def5e9de5bce2691f461f1dbcd93f1b6cdf6b5b4ee910df6550b3aea321bdd1e9ede4db847a2e17fa15097c9cef0bea1b4e189a5dd7fb7a9fad43397d430881bae9d44b2617044e1f0179a0291514c764087092d4ee84bb0ad4e3a33fc127c7f10a74746d930f744aeb7a2226bc12c68f4c12df9184aaba68c6afd47ca4fe1c5200ca7b69bb5efc7acfd0ce7e0a83a6494fbd8426c964b650f538a248055673129111ca1bc48fc407489b0c316860c499d5b4e092fcc6de1b639b4da5ac7378f92e354c38cb56e5d0bbc153304878af24b122550d19068b4bb6ae9d86127f13b79627dd93db16e9428fbacd4ee5ad07f8dd89125dd8f49680a370b52c8e8f19a477d16b2b33a4d7b1bf612abc4b295ecdd12886f35da280196a9610daf3ee0a357ddf5602438e71b1cf3b925ae2e7ac9c468ceb0b909f9bfb4c7a58b5e0009e9fc379a56977904ecdf80f66d75b201f0016ae869a613f40cd7c75bfba3b66e920044a18ca108daafc72a2315baaea624b6a97b6cd91ebcf3592656154126c3dcbc08a5715b8074679b2e02c514630737eb65bd32592f62c3ebc59fb2157b36905d0f4c67e2e73e0b67322f093fd35ca9820b9b2fa4db0c8e30e9bc912165962610e663f832fe7956c4b0be027d99b521cb09eab6d1a7b73d437e227198653fde3fed1f4f7c2fb41df34add8fbdfe297f6dfbb7ff4ff1fbfb4e348f99248eeed30019348b1fea15b60dfbfead9920487f7180caf57bffc858f88de05c1b62bde1116f57965a05748a55f747591e93f28282c5668d212e2ab7cfae7e340cfdb0398dbd62de7ef77e0c552d4ece9b9116212e6773d703225300570d647913436d1171b9b37aad5814b3942ea1fa991f1dd90455b3b2dc539a44b3a9c9af7a7806a43ad127d8bc809a8603845e11eb19c44d28d73cfbb39d9d2b53c0e81552aaaad3688c9c3b1a6100af922b296c7a25d8af50623873e2a809a2ef7c19faae60d63dab262e034ca722f86a7b39578934dc95b9b87f322db1b42fa5227e495e3d9e6e0ca202d8c2a0e7fb84d1ea21417175fb63727ef407c941da0f2ed0eed455f3998af84df017b1f8c8fc656cc0749b0ca2b846f23bcb64f6fdcf5830629a8c3b0d7709824f9c25ef80c58f31964e52cb2b4b8d2a2eed02a0d44053c76e2ab918cb23ffc42336af9bc90e73a5e07d07f0c278b01ed4d7f51c358a74b2ece8b12f801eedbe4a5b888174627ea6deb9cfc18b68b7beaa3b28dbaa34d24ba5853bbaa73b61f9dba48ddeae7c011c0453f7e0e66990994044f33b2a7791ca79be120e5f679d69905e8a01eb8027e7f626de0d9693f02e458182eb827cd63085a8e12f7615c9fdd74bbccef8518837900ce31fa7e3cc048b50b3255507c5b9d8adebd28a5d422cf6bd2f0901ad4a84d64f1f30eb260e8e6fa51f0e285206f6dba3aca74121b0c30c709cb91d31ebb1550dcd6ec9518946c62c65f5e9285740883ba7c8f3749dbefe775749fb0cf78c2a08c4dd528819947205c84a4377854bfdb044854e8ea70f6467a64cea90a2214bbbf1c109c8eb4e22f868c8ae420c49402c1b27c65d49c2d45d32e53929e1b57d7399bec51a043da1444c32aff3b7e65d58c3ba9d03b81fdbee7ccbfd33475caba616dd4b40241af051af7848c0c6a01895a23df7fcc328acf912998ced234c730f7dfc91b337fad86fb7fcc1bc3c69ebad47fcf05044c934fc690b70e9b84c9958f819846ca57080614f7ffc241f63fb527cb084ec8e3e1dcfec1d09b4b35a6140abbf87ea6d973dfb0a6aa3dec10d7ced6f974b6c4089cc444977a6d867062d4fe9c0a4f7e7686a4a314be49b051d0d3fea8eedb0ae5ebfb51d0b183b3a8debc290049898b828862f951e4efac684943833ed4730381d439c5e260dbeeb54d3834e832691b9f39bb39f558c53b4482ce2c8e543b5a31f2d6fbb8006543bf2be2eb13097e81d21909bbf974f7f11e7864550be3e4738c0341abd5386a7757fcb6a59030b4f798b42bf3f723c228db2b28a93b3f85aa2e007a7838bc74fb19b56abb239a02b2cdd27d11955dc8eb4523b90bce6a909b6682133e51294526f44e13240488b6a9783cb5884507a6f33a7228f77116d5b1288bd2b16e6878e778cfca45d100570da4c8ca1b89d4de3fbdc113c74860d5af640ac6a7defc86ce2f8deb0c81ad8408a1443db22e5eb03ee8bbe645e5779dfc11414295b175012925e8b13cffae26ffa6ad59688f1ca8bc7498afa381c0c45aba1312d11ec4385700a7b8554617ddecf2b13bda9a27cae04c77e8a88d3651c3932878131a78ce5c5cf544772c89dac71d6638ac13ab0eb4480c20626d724fd3dc16b047fa3cea673c7c3cd03555b99796dd067891998e1d0750f36baa3b21535f2316cdcf919e109d52ab440ce988e0a4181e019f510febca8d20b18d5267362fab1fc9bb5e9853275fa362d5584c5648c7beae6a562e3d33639103243e2718ae46c4aab3bda7aab56483392c8816fbaf8d35d80596711e0f0a03595343220a36ea2415d5fc53ce01ec28b9407b87c9bb0f03b2d967d755a4996a7c45d01d8eefe1a2c96c08e344932afc114771e7cafee930860b5eaf9bc0267fa52cda6081c028dd4452df45f4206d4ec5b484923312ed55d76615e88aec7724bfb9d3d52a1b207232edc1738ab55e608df932f4077b79ee44abb042e7c9069804f86ab14b10e609b37de5ed0a28c243814448b74fc582d4ae6da6bcddfbc78cd8192d1d3cc52f40648ad086a6499a90feaa454e55f3dc29474e61cdaf05df821c26999aaa3e08bbf9bbea884a3e42ca65efd7817522966debbaf6dc40c4c865ac4e2512efa71cf6c8a65ac60e023a14fa4b2eaaf8f8007eea3921938525f3102428ba446feb997edcebb4653c3aa2187880bd128274ed4e555cf2d019a461a8fb849c60970e2f72470307ddeb4398c38375c97df813fcb6fee207b06f4cce24fd40cbb8bd89e9664b2ef03a28f3f66b84016961ef35acd2fdbc8cb3c83548ea8fd4234e170c6ed8812a5f2cdd756e8e286ccc70ad1db86161e5fb3bc1a3fa74c45095ef203966ad045ac8450a5d58292f26c8aac8c8df730f4b67edf5d475a76ee6f461129e69e80166c7d7c8a4c169c3a66e5f10c2567851aa938571009da5ffcc56ec82b55588adff6501fc2d8e2afcef75deffe2a84693c381924dc6904dc65288039c047fddd375267ffe13314d3e0a6086fcdb4f387ce8b07890f77f638a146ab02f594ab74362fbd1ca0901a58d4b3d2a3d982aecb400102beaa34dc0e473e2f0efb17e9e20800fa9730431116f0e17103d334d77efd67ee637867c536566faaf9a108a1969cbbcd1bd990d9afb40009bf50f8d113460bb6b06b26e2fb8f2568ad27c5ae3e4b6c56d7df3b4710119b7cf971c5f15ec59fefae0f21bcd48dd5b2f7292dd5c8ee3ad66e2010c437488e2d07c420f0663396d671442c124f04a0fb4395f20e094552fda205dc806bc31d3a15178186ef4d4cb3b93e7cae333c96e7e4f0c91b7a05d4c6d1dd4b6868f0fe7a3b9e8cd0d4b4876f5a0983c4c268806e16f483bf42e9c7c48c0edd8a0716b6c46a9a22899001fe82b30aa1e03ec37d042b8d4a72824d7edff6c693b620319b50199fce063cd44e5e08fe746b0c52f845266eff416d5b63644646d428d31e2e32131c051d5a4191ba75ee8330faa4600be374f01fc405b7ba36436b61c6489a5d35b2431b8273595309700e4b7fec8948031b072e75544a534e4b36b27393e9a671dbf01e4978b5c06dc3676b5ca6124a804ecf5bd93e8a684ada7c9e4206b870bc8569908f47e569925be11da7ac49a31260d0c7dffee280f0289dbeaafab51792cb42bf22aefeb2760f233b483579759a69a2361c9cef900282de627753fc50b549dba0b13f51b6100db6fbd73ffcb74fabc54331de1c9905ca5edc92fc20fca490f16bb2d2ba1f26cc144ddc21c291ae0695531257ca7682b566284d7849e09442cda7b5b154d7f62739d6309fa871fdcd58b7548ea1f08a592fcdfd38cf6ffc0793cce0c29ce7ff930ff7aee234e5388febf70d5119a0322087ef823e0defe228386f50e8c196db545f73bd4ba15e5dbbe3d3ea59b7a145d5687dbe1046fd5848223887cf694894c63973377a5f6dbbbd9148dda93f3382f00733a75c9faed15a0873f5b8391755bbf42326ffea3705372292aaaae5f810c57525e15b25df4cd6c6436b2fa2c1ec3014610a5a4f300581cdc7267d357fb1680e156756d623b087c1b9cd88cfb01de5402a744d9c05f0c8f46e89dae768a493577534a8c78bdb0f472a80dbbd07cc28606952df09c250ac2180076d7bf1231e8fa204d9987ae67931d9ca5da47f16a38e749dd9e1692b76d39ea60c27d02d61cf55c8639715d3a1395032dbbc03b854a3d86fc4b806f4458b2519cc0b058b33d1e752ffc96aec27f893352bbcfd9c31c7f27884cca0c2d01d7e2a44118cf3aa2592ccbe1a121de7d3958b65e8242190e294191af345c92b911d8303a1e98cce5b0fae26819efbfef48b963b8eaec2137b2f63149620259151c9bcf11a62d0727c30a53e8d8d270444ebee599c4c7edd740abef0a41476f89efb2bb96872dfcf08c70427ebfd78d8db6688024748217d18940cbd9faf20a87777f4069943057c9dd0e2d753b0bfb27b8441d3d8fad1ac2e186247602824f1487c11e6f53f491fec96bc2bde54e7f0a50e72ec415a524ee1baab276a8bc315c4686f5885dc1852888670d1d7b0a5a4d868618cf6db846f0e743ee5940e1e6820d121cc2174021110539e41f365bbb392fbea7bfc448051287ee617a3346aa51a3e8bd4c77a908d7cbf42709bf0f61bb566f38698b9f1108cb9a10edecca166137a4da10c642ffdcdb11772ee886085fb0feb724cb2f23082910f60c0af421f502bf72b55d228f74b6b1b55b466803f96e75131f0c18738a5367e1438c3e51397b1df063b1882f26d716583899d420fc169922f4b7e0b7e3ee9f1c7ea4195f22e3c8d2b108305a6eb480f4795b635da138ed66398eb321907c615a6d766680b5ee1e1c82d453ace456f878e187c353c37d96d0db247fcad466bffb106534c4868ac97239632767376111c538f7ea5e96025f3d6649b098c6eb66cd9fed82ab908ab3df387f88ec0721459ca363cf8a1877dd2a2e7d9e8542aea36bac45bfac0332f094ac08bd75d3dbbf54e438f2c90416732b13bb948cdc6facbd5c66918f8a94cb3e16b24ee37e60fc61f4ce84330f7f0d9fd9a3b4829aacdb981b88febd888c1d1b504eb3118cde4ce290932d04cf396f01b4e324328907e21e9fd0663c397d55a6bf53349b9f8581644c4174f1d2c8849283d3204ea6e13c8cb8d513508f4587227aae3036b4906df8e6728c6c8e4bb5cdbd07da6af63929112afe30d350065fa73d734dc16d132b1de9c8413af9f7926b72e24c217700cf349da09e08034d364ee1ee8674dd723e1659113f0724d212143a28db41f80aaed763250c642e71bfd7524d0517f0f98374de7222670d1c83eccd4aca667e5c7b927d523ce7f80d47d0316c807bc938e0991e280a62131dab89f0095191fcb57a70615858cac1c5cf121fefef1aa0a0d0ed39dbdf16ad5c5c2920f5a5bc15e71706733c8ec139b87f11027de071135d69a6130db9633f97f814ad1e89a123933bfaddd11d5c188e2d3a084700431221387dbebef40b8aa99258f24fe9f95fff5cbc323b3f86ead8030d4e693b1f6ce1858957b5fcda77fdc9818459b4a7f8902af8d6db03d74b2c6550017f17ca8fe69994ca9ce90500300631ddbf393fcf040c9b9e98036a220d98586bb66f5353bf8c651cb79532531fe386ca594fcd0eb8559d769d4d9e82a841729a7665865bc707373abf698507c281d9dcfaa769f765b927a97de07ab124658f1d1416f669c3c1a064807e29d090b19ca1a956b9a39ea8d2f0037482ffe436facd8711f79165b2685c3fcb26eafab0e7f103e9ee6ac3462ca4e729f2d691dbe4e36c64d48fafccfb1e4f42f518ad1c023502ce6ab03c94f200c967e4fbd4062d62d9f0bf9f588b57504acbcd22e1653cdb5ea2cd4646698031b017775311b824e5c08f66a47aacfb3d74053c8416269aae2579b4c4a97a9fa2a2e583c7164e58f1a45c65d035469605003d4203cea6b5941a988ac51f0d28906aca735a9162300f5dca08d7dcc324160c36e65f5648b18c77de23627b40abecac941d4a094ad5e0ba83329fe78d3763e9986818b050d8bdcae5413ab1c29d0efa575c598289d7ee0c7102eb033925f36c1e2b952f8bf6fbbd8dcdd53639c565728b16ff23fcdfc4003f1ccffb51bef8bcef7f64c34b7bb6a6ce866f6ca8ee5baa026fd900907265bf12415c816eb4a344a9cc06936f6010bd3cb51365dee4de404ed27d3b537e2c7df3c58c0c44d5ebfe6fb5cef9d6bbbff6e37408c0985ab87aa7b6b8ce77b6197a774d9ea8f319cd2b35e49e133b29b87763f40c07f5c3ee835f033fa33419d5f3ad503322f22185be6460401b5bc0f9aac7e6dfb25ca4d2ecce64b236f0501668b92ab070d6a222f774ed19823617296b04540a21e55be0836abea07cacd993de2edb5bc4daabbcf78b1d6f6004a82b53a9ea6dc01ac4c5483097ab9afb773901e1c5db00f259c7efbd2e8a667eae01c4c3cdb18e0fa657030b2467e1dad3d1005b4946f9b4553d034b1cdd617bddec5fba3d9f10aa9798cc4dd39e63ff2ddddeadffdfebf65e387c39fc87db5177210e57d60b6f0219601c39c3bfb3f44990798fc1087af503b134d486fd64d77a6eeb2d6609ad356c41e0733e5631a64e4f2d3bf84f1d0f2449a69419adb6dd1034905ec771a5efa67f6dd389053c406bad8190026220d623064052d497563ff257f9d9cddc65b23075698acbb9fbd9a5c587a654173b4e875a60332b4681641c2935bcd18bc3af96fb624060760f533b42144395810eac60b97f45464de76dfd785c25977d4a4f9d5828252b3a6874a236ff0e4bed823691f10711b24eec4695956276ecd747095daccd2894d2c9b7986030c7e1e627ab0d02da1658df1c3c1ec783832a952491946fe29929110ae2820a5d1919f22bac25547304a6066399ee6feeacefbfa00e127568adfe035c0df9d527f5bca7fa64232ab6bb1cb1256a82ddb2a2b5288ad1b1fff21e7b83a2703dd0bf31eec13aed2a9ae31a9713db9290cea14f45df8bdd432c55d8e09974ee51be1a9270162b3ea9dcc9acc515114f45dd189a0eb3b6697a559ecf0847ab9020ea4ed16f3b7cba85b4db4d1cb7e9c0a72a05e85e26c49c38d2f127fb9575dae55d7a84693777db7928381c4122859bf83c062348d1b839899a8e67f737aaef2884538a12f7feab895ddf316899cbe45ad1a4c10d87f0af20d5ccd97b5b895a0cf9c665718c9c59d112ccdc479752d8834921c09172791e26b43d406aa46b0b248cb2f978deca61fe6e7d1e175124d77d876eb8d3482a1beb003e361b8a03c9c8a5fd1430a229e5c017ca0dc5f09a39cadda9f7e94b9c8c02bc9eb4527f184dd44ce476ba745a12c588e8f5f010dff550aeedd912d9bf83dfdcea116cbdfa03cac5f94e931b602bc49f3b296bc43413eb7d7ed6469a1db8734d93f801fd57701de1c9c8abe46ed287263fa3baee76423f76afe7e7b2a967c6cf9e6fcf692b96803ff4905809ea4435ae9ca9b4297c3e93dbc243a9a451cbdfe3df3fe6fd56663d81f40fc574edfcefd585ff7d5ef4bfeac23ff9a61d154dfeefe78a57880298b8ff9cff238220f249cf766c0aa4e27058fc90d1edcb561fd685c306e007c77ee65ba96117e25ce6000658e3af14091398fd2dde8f8e7054d6c7b98fdd0aa57fefd44e9a16282b89e064a125e6af2c7300c8cfa8c289ea8cb69b0d49971579dd14657c173384f9bca781aa96d951887b9dfecf47f524ce812f1031146ad0c2b099b982a761872924dd0601af1afefc9f8b2ab02aebea2d2ee646ebf79b583f5077d1a8cab7d01e6c429478cb87092bc704a5ca84bc60b76384930ce97531e7eed90cc7767d184e311fff61e5f43347390619468cf4bce6ebd7aa9bcc5e5dd551a9c491c2dc4ee2765b5568bcdcafd721fcecd3b763f2aa3f1c351a368dfae2daed4ee10175973251c9f70c0f7b09b9769179d2edaf23d180aa76d610b772730ed11b06c458a21852afb4edfa334e98f6460cabd6952208c23daab78ddfb33c073ee73e9f6a43807642ddf57c3c4edb996e0f27bfcf13e4eca17c155f927cfd93841af7674a89723f8fabe71ff2524ab0a22828f4f59a2d1b9b5511ee9e0ce09588982b7a2341ec409565d92b67586850bb032f61844ebd6af8601f044991bc52ae00a5b6d91393f58b59388fe3de16c970f90dd70a6979224e90f98b29130d8bf372a0140c07d5879f349dece9ac596d3dc898624b580b5de019a008145f8b72546eeeb6a44d11c4312cbf085a4774b654b760a6e1d8716afaba0f584b34619e7785041268ab0fc29a65c2c865c9dcf6813fdf8d99a0e84d6eb860f9e5ef26376b59d927cdbd84b3788607ec8ed3b385c5c16b700d7e32f307f7ccab5fe1763e47a123bafbd8c148f1a8789ff5093e5305edd4b357a8863d74e0fbb067c59b1da80db1155731b8c02fdb3ef6e1f8d72417575a1792f4a2f681ba92cce1a000e07c1c955ab5dfbbe0ab32e38e0bdac9ec5ec0106b8913f416cd1da359c81acb244f70db127f04f573eedcec86161ef8d75d43144d35ebccd2343bfd4def4ff80f787ffff2fdffbcbfe348690a91faf72cde1238ff95694a5f3f6fc11aa5fd201df6338a57d95d442d48cc94e99fd5b5bcc3e709b59f52042e9016f9b11269ca9ac8f7faf743ab9940630cbe119905d5272e3f1d2ee06427f48240b108a1a85f2dd75d98a7f46c07ef4b2c73bbaa26a45e2d072df8491d7e0aa9e10b849c076d81bbb1888e66cb741f195fa5fc730410c1e8c7500a5af0695043b79489ab562a464d30b90691c0492105208fc6a47a43d0db6dcb0fe7a936e20ce319ec8e7510d6e5f7238539d694bfba0623d60257c30a53cc3fd28c74423850709dca9c402a052d6da80d7d30138db9913f7e186924749382c5f180a3d682e7b4969e7a006df1c5befdaca248f7e27c18b3dc446cc9bb947a8844475dbdfd56f7f2d9d99c70aec90b50ce2e259736438f376eaac7c5631f88ea91e6f6bed6fd256f8a89797220067f3b4d47f6af34e88d21154ec444c5d39583adf7049bbeca6f1af4b172705ce7c8b8f2449b5476d43e04dc6eae93a79c9878eb45c2fa471a67a211a7f3155334e6ebf55454c9d6873b52ace26e617ead074ce70155a944431bc344d3f7aa3fb6877019630c8168752b3aef9eab7286d5880fbda122eae3bc08c3b9228368da96d61900eacedac07663465a9ebc3b66d263148040b33fd0b241d851035f9d53a31ef8af810e17bd7e4776db30198e73708681a824f2e785c3f492cab3a84673c601b63d852e6a272df0dfee742d4afe7489234cdd5f9848247e806c7b7e4c9e0477108b260f030cd8cddd5009eb722c8224c322fee6b883dc02a4917268ddb3bb7f00ad4ffedb474b4dd815ea3507e2caa00fa045fc3d54d98f20accd2c27421d09e80d8dde6744bd619747cc6f35550ba22709c3179288f4df39a92328aa29e0322e8a3f89e07492d1a5316eec2499a7b8541a2971d6c1afe0ac5f73996d3a718b58285b449719f21199bc92e797336fb79facf40cb558097639c5800a34081f831451f781956c1c9f2fdea17b9fc08e179f2fd1a0eb3bd459a8f80f6eb2b34353197f3048fd373188f39fe026ffb79ab739fc61db2048db5569a26e798a060f3795a19736bfe0ab1e0641e3dbb5cfaa70bf3066c465276b202a721c9b570a16495b783d2af407d012e43f3818afad80a9c1b15024987e195296d8510d1d46d2d1a8124dccdde7c62c1bbf0693a4e62ba2c3a4536eefa21c9368e3529360dbfe292eb303c196b4c0ef9d0b6dbe03d8db07530fed5e433c05de4c411fbb181813ec46edc9a8440034591901625e961bd2571cb8a997181c0c7ad8a2cbb987fe975483e675f448f9893867aaba53d35b7206bc6c757339e805e4e8cf56e397871ae40d7e95b8cc2ef73b59f89cc8cd997d670e26d3e96680988133736a620561fcc019408123c40ea22843db64028e090bd364774c09b9fc8882e3bbf599982f8347cf74e5a2aa1220a1df761238534f4747a6b714a6ebba352bea090d852495ac7e95ce7716abfe00e42558bc2177444945f162b73667adc962c35d686d4629e06bb4307b96693f007bb75ac5209eb2e00ed90260a7133521713be28d10a5ced92e60faa280c2b396206dceccdaf12b35e6170211465aa4c0deca23357c82f37c82aad91c39d93f76bea8b312b903cdd3b4eaffbd39199eff0ff835ffe4d1c33f3dd3f79f58190fbc3f58d97768ca87567813cf85b137b4b53757dbecad3a1909b2f3476963de50eab4b2d4f77207edd82e8398b567f9d55aa504bcbbaa8a45b2bf84f7a66cc8f9761ec586c28b12cecc4f193110a6888920d991370c1b5d6c123547a5d8d8682942177e940f99b3564a3266c90ef34859049e958d90e6d252319697138fc51199ac9060d56832995370f6c8e6a8dda13dc9650bc9a3958ed6a0a7ba4d9bddea2410852fbedaa851ff8934597c735ff278a05c114bb95b63b92c8271f8d972b1cb6a20f44e818a5a35c7ccb26c0049023eb32a567c1aa0696642ca6c46f10e07ee0c5d2c919f745f15fc47179bb7376829b56c9cd15e19a6fab4b58d084597b0bb5a8e1211bb21c7c209262b046b59a3cdbda75f43a6915789371fe4f2d9348a2ccf9519f038ea3a319078d58a34fa2881ab693dcba9c389ca74f450051d9bfdec15d85a711797416a07882dca1a62b1acb3a5b65dfc405f3c5aff4436e865e2b77daac2ca22eec44c3fabc3af9b28027158a0065a29f719d0da99a6813f5957805cd6c0797a912b67ce7dfb8d49fde2a519ae4ceba1e93a37ac9e60e854df41d4a8bc6e1477175894c5a639bacaa1f45597f9a3769f1db70476d739288babe98473b2401c81326c3965f10be05c1f0bb8e78ca9c0b8ca5b5b7538b38fc128c2b35645a205aee31f30753a9165986cad3f6168573f5ef6ca60a7af59cd20a308b2119e6693cd8ff8248071ccadc9842212f91b21059f017c4bd5b39960251025f0f4a435e8b1573ddb139e4ea7c05d97e4278440670c0ce5d65889b2399e681f2a0fb947769e2684d0a6f4df262a27f0b185f2f1be4c3653ee98087f687ed5fb6195daed750123695270a5131d37fda051b2230a97fe95df0f17a6f38a3f90568c85ffefbcd8ff71b6ff2ff210010f593cc8c7d598e2491824aa41b6e1c030293bc04cfc467ca3b9ab3a2cb7ea8a8e487163e668c766194493fc58ec25cb8c8e348c99e3ee2366f4bb3276979b841e934e2708aa24c9efb33e13bf108a0268a1e3ce7a324943b6d2199bdb7129cc1a7a1425fa74873396facdd733c79dece7f0e65a13ec8605b5db704c828c98b4ade0ec9fea22c2692c3ba62d29f52b82bef128cc63adcafa9d0839af98a8d071a698c6aa463a80ad621ec3921b8830f8289c965876dae10c25b377afc31ef334af3850d4b3185532903cb19798d25ce61335593ed143452029ed40056ca351845d143deb4a17c0aa15bed8f432a96026298ff42d948c3aebb7f9a0d193fb1a6bf20c4483fb47d896fb0b25a65cde205ee5f2de0eac1fb84d88f7d1de6f800aebb245845b2d714aa05fd09683db6b23854561f0abc7f3cd93a3b54097cb506af34c033a41a3f4ff63ef3f7b1fc5babc51f8bbd45bf70cd9404bf70bc0e4647278f468443239980cb7e6bb1fd9ffaaeaeeaaeabeea4a239da369a9dcc67fd86bed957f9b1dd2db213f831db8e8cbecbb3a94d4a0b49af22aabea631b5a02d6b063922676db79da05b8d068223279f8709b9171a79911bf0543ec1cd2f31a2c5b66de4b194baf1394dd15576195b26ef2abd86d0dc34bc5c13f848bc3ebe1aa5b629954d07c67ee16630ed26531b4e40ecdb59d8a5dad9efdd962491e8ff25e27da080aa9c4c43c13c77861e634d346ad8d03f822ae106721887a4d83f94469ed8ede187d9f1fcf9524245120f448adaf06a623606947f7dab623e414ce6e800aad7eb8d7478ced9dcedefccd10c99d6973b228d35524687e224c03be70b97a159a0e3cd03c4e902a30f6834701111dec70e3d5895536905b9a30bff1573b611ea9c802837330d8c2bb084baaa326a2bbabe06a37451bc2b350c1f75886594820217432270a56e812c668a3e9d768d7ba646ef34738d0dd8455cd329ee47d4901437b635bed6a77994fbcb0ad44ffd43eba34f52fc0b63f1efbba7af6e9e1b6415bdc092289deb9769d07d1d15d8a075857c1c8369c457322c37171e43a5eccc4ba7c671b1bd6f7163571c2e26f4e3e651495319d20dc060a84433368c7e6c4fd09e84e3dba3cbaf1b2119482d0b508a6289fb5854cc40c0fd608c7a5d6625e205ebc34e9885029399b3cd543d77b2177799d5a38ec171e5ab26d77130763dd2577a3ae3c8fb71d6074bd143cfcc045f0a31c9815f227f6b983da20aa04d40fc1663d8b50a0ba06e61ed7ee6ede0eab00fb9a601f164bd6e025f3ea463c8956101e171fe61532f04b07228f61b8db492609e548bb5760b311070647349a2f79ca6cc1e5ac73f1a9dc316cba08f9edd9c3731b4e61017108eb4981989481c74fea0180e0ad0c8d5d85c5caa902c5a4364a92b4d3cb50ef318fe0e3297112f0e80ef8b8b7d6655f86672823514da3be3bf15e4660a2bc991d8f814f1bc1ce2a137a7bf4a19ba933aa8f587597de6a2339c88abf2f8236cd738b623763a55b6eba75029ac28fe3b9a5f3e009d9a32adb70a596040e0f8c45c762278d0bab2888b465b7e86138de44e0cf80f36f49ae34e00cd1b2e1793a1fd99c6fb7b7b831e0f5a2c018bc0449ff1cc2d209a5069ad1fd2ae68fc72e520eb033dac5462ac285c0eaf49bc4c5037208b623d49afe71930644cf8296ac22cfdbc606bd76d7c7a62efb36aeda78a3bca7a71b86f0e456fda3e6adf094d36ff87b6d38f5937394fe8e3de8fe2c2f72ee12c1d89ac2d89771a01ffb0ce1ba1ef8aa816f97a14903ae2c44f9226a5ceca64cbe660a6a8a0cd34b862983371c4de1413fe00585e103d9ae2bb01ba6b8940670a1ee28ed171841248e0f18775e4f27cda59e51d9d777246cce73da109504543d4530e211a4b92024a5a5b1996ea1a6ab39a680856debed620b9d90e9b965676b0fb53e060c3abcb4e4f464f118429eadeed1b70fc44a9b789676ff9e2ce715798add9d6e84e2cee4664cb51c2b83de90d8c901955a744b24d4e2bcc306cf113464429c9878ee95eeb984e6037b323a8083537041c044c07d8315413a28742ff65bbbe01e43b8ee1e1a6076588642c96e381dd545c5a3a9e0e44638cbb35185501e08f1969d43296b5ae48357f8c90e4ae4546551161ed0dd216250c00e7c36f5602519529b56ddf9ec32e7042ccef0ee32b13e0f9ded343701f71d7fb89bb12bc76920836b8c4251a7122406e342b8ad7e8b853d32f83dd0266852408b56ee88931842c7484335217c23696e4eb422404e62c122cc348906cc46f4b88812287089d45f11ad1151f5c6ca9d4c9b2d54ed3ec65ac3ded7dd8d585c09aeba3b08ec776cd16c168562c74e290cc167bd7210652722b9c6ec9b4f57f233621ecf2976666429ada7ebb61a4a3e1f078f33e2c3488822ce24edc4337044abc7d0403ee91c6655e7d39d68fb87f9bca04d8423cf737d5af1712a3c2bcb373c1e31ce0bdd9df7ac408741cf51e3ab221c3c5e1637fe2833e32aa0e6568fc440e7f759acc7b54f5921d53481d4d88ebceba1633c28d9d8a8f51930f5f332d40cf7708896cd1e0978e656311d87eb5ad59195a46eeb8811eea43f6204bf88d6a9d329daf65c07691573b113a1530850671f48c700a5b3d04403fbbdac67ebdae9cf78a47dc7346f8fdaabe38ea054a286e5da66609e81b599398b649aea75111f8b0fde4c045c2dbe316910a23c9c4944c60df328f47123dcc8d68c3ddbbfc11674051601d02e3d703afbdec9146f20a7003ca0520c628527394839eee81981ddc75e38f7bb3e9afb265294e608ffee3d27bec495dfc68f7be5c1d96efb2081c3b39753376431ac4491cd59b114eade2a7bcba06f94081bb9083114aa24d2ed216dbcd19ef5415d846b0e9683319a1e034d4f581bdd880b3db6a59e9e57ae4b3a6638e26129e26403dee2eee8c3283e8f6ef1801f3a92668745a997fb12261702438099400092c0366c15ba1513454609e50bafb01ca76aa619f9463c86501b86d97e18bb13e76888a450fb541417bf2e138384101ff070185fa92511c522810dba4ff218d5f723aa401ee5f56371669e38bd92a7a7e9b696cc16330cb2c462c93d7a513d8fe378767d75f7c9264fb9444158f852f5947935da307fc60e140e0d13722695fa8a3d7b1b16c6ed75ed1c55c5b70baac73cb2c7a712f73197e7cfcdafc6473752c574db1298beb0c3a525eb546d268d8c9f8c5e6aadc551c69c18fea858addbbb4427c73d91ea9a7a87118f7e605b1d2908bcd90b3ff4b64af9ad0588cad062cec2f40c1e8542bf0b79109d7c60b11ee25e9899364b41650b0f6a613a396078a8c4612a2b760dd851896e01e7ef7b81baf46d0878edeea253b834d1306882923f61fe71754ce2d920192985c1de16a87dd2bb5491073295880d9ae6ac82cb535a168e679fe6a8db64470f33b6edfa69a906623f6d2060f7dacdafa518e5448b6e625a9fcc8d1c9cc9ba666db684f2ed0a3f9e5121f3b1ca362624c8a065da0599ae0fc6d1ce32ca52eb51197da33bc0ad48cfd1a4a4340c0cbc758ccc9525c6ccc852b09b2d1a8a1b4b2ad390677e2047e5021e4235aa4115722dd3c9d7c655687410a11ed24eacc8e278eee2663128ccafbd18aea11e6dbb3c6d8e4b545ffd7d7d5ef5faa030165db7d40f649e87e7bcf50abebf059eeab7a12f98c1cea3e7a63697e0029549d01da0cb37445ec3a61b4da977952ba6490f856dca279ff4ae704dabf1828d41e3e3b51c89d4e00d90eed179d786f0952a5aa7cbf1d0b4e93e3261d7adf74eda8d81b01215ca47cd12d95960af5833dd921028aef6c53e0ae9d61ea9c3031dc9799b6ed214143d570e769fd2626af2b0344f29744c7e39eb16608e09f2193268b82eb439b29ff3f48615d243a6f7e1dab63b7442418eb832bcc1cc00f6c798986a7a68b74bd668c37ac1548d79f681d3ebb7fea2cf23e50afa40554169381216244f1dd2d6138abb3e67c95b08eef2f17ceab7b4102bea197850418544524b7466144fcca114ef8044358f67db50a24a06b5b5ef5994ba1414e31ced7a5c8a59b56bbbac8dbb0c4a8765f681b7404c7530e3aa6db7fb198fb02865d2d3c40214286e289997a60f44398830d7fed4141eee327e3f41f01e4ff22c77eec222d643127cfd4e7b9666ab375f296ebde4f9235423f1059cb0879bea0be689a97eada8a229663fb9dbe3b2fbc8a41122a9783cce1f75ff0c094cefa527885f4bf4baa01de9ce5d224ba590b5a55ff126c1f5c555296b204accf614ec1cc4692e4b9ed696fa847ecb2b1e9651480d06f491af75c3a74b18cbace25f1229ac53d2afbd81594524bd1d8c6f1c8442d26ddc74d9390c45a9afae335c6460c7dc07e00f398ea6d5a543a5e2da813c95a71325b94f5b216cfdbc6c3593b70e3cfa71a140f632728dbf8e51e9aa1ac268b5943e383d16d89ee32d81e02147d66f2b04b0a4eb1ac4998be6b627a272bab8e61f0ff6865860ef90f7ee12f3be52f07194286ad911f2f6ac975477947ee412e72258406efa6e0e5e590a26ba63a659348f86a7e4c94095b32a38cda2aa85e8804a9e333342aa1cd33211bbe0456c014d13c18f43710e99137637c0a3c50580da9d33f0cca98427909bb78715e701260ea4f7809eab7e4d926bb27026f6506d21ba8c5db26974f1bca5ed6566ef81263899a33e119b9127c2554ce099e96bcda6c484dbacd65e77623da79449b2ea725f6aa338c029d8e347da94316f190d7d4a65c7b174f9ec57c5d66cf30a697d90971b91c0bb91d0583fc143705d6b6b66dd110c3245d7c10a64fd4744658ab2ba17509bd2e5d09364549b569251731588d95eb08407f3246aa3cee673575e403d1a6f6384425d8bbb954bf85a35aa264b38a3a38feca290e708707a578d35875a375a684703bfdc1f87203f49448b8f07389a297f4a9ad682d1bd30265d46b627b021238753f9066cfad56f44244c5b3b94faab196a0f320658560274bdb72b46928be481eeaa0660be956862273c2e1a0071399886de154801c3022415c0ef6a601d307052e6a8ce8f7abdbabc10efd7a77d1909155f49f3711a0976f5fb99154d3bbed5048dda816dd4167283a2204406761b0fe9a218589224b6722f057bef68d80773f4e8352f5a38e538f0817bda8b699e366f094aa3b01048b5f1b3725a5fcd06f5d0437e11cdad695c6fbf2d0ea64f87df555d0a6fe2a5294bcd7a045da3d1177e6c4c995db0a3e85d84210fea408aeef0a403df99bebcc81733f1ad580ae9d11a2d7c6eaeee4082187a0197cc79caed95936b6a8993e81e1c6a710de559855a333c114b5a55464e97c256e8d40e42ef2c04b74d71c09357c7f2db604cf74cad07caecd5726aa6e9c0afc1ea7acfab638df5c245a394cefcde64238cd14a86ed08876632e50dd7f920dc279c348d3066531ab6d5011d58c3dd672e17eb7c989209bb276976cf9d0cb60ebc19f6ec69346d9f6dae58b592b5dcd12d9d19bca85c50e17667603187742f85f5dcae472784808d1776ee6111cda8c74c64e03e5e9ed58de6536f2ae4babb06950b9bd26055d845ea48166181a5e229c0e3f4c65c314bc7875b18e71c1133e18a0909ddb50f5a62e2451ff4dbdce4bedfe39effccae5c4ab6ea9cb559273c0718b7487cc3248094db7b40b56768a5d0f379b554e29e73616af7824db60e9d35452f8720f0ac8bdc0a1f6177d5cee984d3e27a9bea9186e88159dcf33e3ad7aebc59875d3a580c0ccd4016993c771e86c7a4356917a8816b15ebeb22ab773b85219b5e182b854acba38187a584cf4e71f0f05a49760b75b8ac34c723611c0dc90aa035cb2c94c653b141e859c965bd01ccfdb2546d5ddee2be2c6c30384b42dc4a1faf44424cd5fe0a234f1176b9db2d96e77c3f50507e66d515336bdaa546b0dc81bbdcb0e4d2ee960bcd774f439aed3913b573f559211aaffd4e89743ea02b6773ec711c32cde569a14698cd072512d95a54f2997346bad045228654983dabcd109f3e8deaab80a0fd0650049474e68db247034e36be7a94b258864b9a297b90e8fe601538c4a580cde99b348783f290fb4a294ecebdf26829ac501e50e154e1814cdada640d590d4c6c1a3dce8ba7b0c5b179d13a0cf74753d1280be15eb2d9266a687cd89b03686acb740b6cd5206b976889c3f44dcdbe1c86d32ea7baea50dcae2524658dbee165e793b7ba4f0e20ae62746bb9882f7c7e1a5d9793ad14ba18f1402e04d4a2b0d1464fee48a3835ec34b7c876cfd3e75d3066c0774d7031c82b40743d2e01e5f82211a012e9906234ec6352cdbc5ae2a939df02eb688d8a0ae07c413fb43bba34deef8c025714161d4e72424487352eb5b4a0399c291275ff3c14424fd6edf21ed70ef17edc0121ad32f34b6948208cc9cad155d1956e20a5e95811a3bafbae7f0d5402fe7868e9ab70f891e20f78d19f2a3cc68aa61bce8bec7b2e815694cad46af7b5171d2a11bf5cbb57b8a0e1ed996119ab6cffba7c8e0514536c42a9b1854de5a7cca1a26eeb0818a164c239fd6b8c8d332cd97c035f93824c8c8ae92f689d61be62457984f88b1cee218f3cc885c10dba3ac2dd874a533912a6d18db11ccc77398a4ebd8af572778c4354d4548608dcde336752f78781f51d8663c2dbf547ddc8152b2655ba7d0a28cc6bb94c4c5c8b74b6caaf4c8c3491a1850a345f67821ae13181ae39abb8f72147437db378a793cc4743c5440ed69ed91e4f15e235ab964dede6158abe9c8ed72d3eff5560f6966aa28335364e1610fe34a0314c524629da979f9bc535762093454e7b1b32c1aca6a60191ab52752a7b4830b59bf228ead6812a9238a1c9f8adb37e998ccd0326ffb52cb3ec1b0772bcf4917b37050585405d7eefe7ab05c23babaeb00dd33358062e1d6c178f2061607b0973eca468967793a72a80594966859020a4f8064e84bcf940f81a09568de3dec215fe98ec96f4093b9c4eec33d9b46dd1355bd6c5930d212287fa1c6c71176992b81adb1ef715d1a5314cfe7b3c965a45c6ff49a3c1eb89a585ec7a2b0cbc4234d363e5c9afd4a073ae0463df924ba6d8405791a04828943eb994e4f08d4fb42061a5860e29c0671262b3d3dbf95506f30b3d73b0839f7a2018f2c27c4b9d0a5392decb840af1bc503ec01dc4a4659378b8a0f4ebc5fa9b83b649ef0a45ab7f6fc68585339fb3aea02854ecb92b44fb2dbb47890a185eb3c740f87fd8a4c9977b5fd795b6e175687130491101e7950648cd95d22833a6a6f58d1ee270f3c445d18982ae36ed906de0fd1bf1fecb9950f22589edb91395e3d77842fe72ce9a35eaa5eb6ee5056347a1077b63bc215cd1ea8070c89f458b714c8b9e35058671d7078b9d63674df6e40ee763bd69d518f553e3e90cbb3cb2420030c49bf147603ea95293eb60a3bed6b2aaa107695a1785d07215c75c9be7aa8b638b81cdd1d80d275fb4487bd8a3c21be4c90b700a804cc29d7de9e904b4757575fe30aba7ad2d2130cf4d42724c92c8a5d140a0a97ace005136dd0bc54e0a1f0771edf622e64c97247fbf2961fd53d71f615c4d58c4776b1bfb74d5700672b2267e6ed20573102206fcfa178a87d74814866dba98b088be805606dd753bda0dbb3c6bc377730bcd0b60ecc448f872073c41e6eb6f9833be3d3ed97237b54267af7052af1d774a46281c5aa32b55c0b2920ed6209bbc31a80343763ed72a3352832b0dcef998b5461b6d1bc9349108719d883bbfa75b63cc7eb2d23188809f73dd3a0ba16bb3014eca892d2f624905defe3faae7babdadcc61def644f9ba910e4f5e704dfe88b49b06d0f4390c0a9a52e0dd6ca8b4f479e83a83e79199959e2c91f17b76a3203098fd99d8b40db10517ad8e354290dd4955825a02ea83f9f842daed706d299ce3b372cec89c4d360ae86456a857763bd2885bde340168e2c703b48393c5c39abbc148bab4380fc320be3eb3d7c6cccbc70dc5d2c7d4b691f1ca5a19daf0221d10295c726bb01ecac8bd3fb695f740975b5edaa5405a0d8cad62667be6cfa7cdc631f278238292cedb89157a7393b84efd036c6a9da7d2833aa090a2d4e3e6eb2ded591db0e9ab3c61ec29db3a163d50f4f8a0d7c6e0feb8ad55635f49871cbeae7126ccf751f34f374231dd22feed34b463830d7f63845af0d678fab971be91b0e06b6955cedd145ec9d692fce484e172ed26df779b5b15866a6c60dfd5ac69c08f177c5969b6b0e3d9fd3302e73d47491439cc391cd76772787b18bf9037c8eb40f08e9e10bc324ef65582588aec7f74b5983d25c1e6029400aa6a1032f3f1f91e9e956bce6f13c413d33f9aecbaf520c5dcb067fe40758e180a6d886d57270110d5a8f95b295053918a0397449ac9e410b69f06dd2a806dbf4ac014d376b9b646c6e27d0849e35e4f56e53f73145dc626e195989963ac795e794bda5404952bd6f58cbbe49a322a21ac210f54578f0ac23f1cec56f428d9cb0e798e4b89e7af6dd85bc58451a38df64415dd780a4ae4a47d6712987b097aaf4d5bc3a84cc1f809c08122d3d906a2f336f816d06dbf01b72412bea1243a106ca37501bcc3097b9679922b94947beef5f35ab21b1d685cf5b353fd7a3510c8e00431db0718adc840aab750117c625afc846582742c0c5ed02df491eaa703e450f8ca80beb58bb0281ac04f152c4d59903bcf5c69434501d7aaa97456ad88448570f6bc3158b541ed0169e9a7a4170f214732f6eae5362f9cae84b313fc4a1882f976b697930a93d757bb70e54ac9b6aadcfca981a14779c625d9f8a16acd9b822b1ec065b510db43162f4b5f32e57eeb8c516a2dabb0cdd80676dd7cfab4574170db6252315148027b7047b0ca04b5437c1dcf7b052705159c6e8ec78643b3452a089063879bd42d8cb71e7e34eb824e87edf80dbc7be485a5ae180221a14c58032f553e7b0827fc7fbe38f775ede37e7267d7d5f0c79d1fb3c56f732eeb1728877baaad89e71c27c536443892323a01764eef5dbd3cce4a70bda606b1974d78a23cd5775a09fb383c438bff88a603eae46729154d2ee25ab3bf0e46203d3a36d018cf7ba470627b5450628639b0f4d4830923c91554f4813481f1d8037f146e9a8489834655f157bf1a17ebe8633272a974e314b816c64d02fd1283d175b23992e558a2e54bd79b02cb2960898611d4e0cee1af7709b3b06b88c524127f094cdc43060cff185997a3660e886fb19287a84a9f27339824b6c3bc8b03bfced364af57865f150cb0defda6582d4a4e992a3bc742154583cae0f840948dcf0e248ab397a479eae710fd3708b34295d2fd2b9fa52ed0be1f4486cbd091f7dd5a330b41fb1c6ae16784121ebb2a051d11fcc35381585821c4fdd50b3841f15b6deeeb1ce38278a1b3ba9e5d085668b476fb363041aa62966bc9de625cb9ee0597b9b1bd13397a1d21a9b22febcf7a69af08c768c6270b48c8ead1323714e7a76de82181325988c10c888a23d354f892ffd53bda34f34c2d33847234d494bc5a40c925a606df3bade74e51c0ecd73c7454e2f7452f3773dd3979be294c51d952fe5905d7d031a70fe21d25ea8f4f2bdec9d28cb7736016e47a39d54b8793cbd2149b595b9de5b7799e966630355542e6e1a1fcd652c4f8a933c773ad0adfee0e9ca7762d6387d28ecc7610f092e52cd4a33431505a37da5361602a71af504b6076b4dc65195f142617e6c0c8b8a261d43e068944dd66332b188a273f51b028dc9a20def6d5881d3d85fec2ed5163ff1b60d2b8fb842848b40275b59bab95b572351f6a68bd10331ae777e2a6e46b98c3c9f00b73a5e47e5b2974a1eb406113f1cfd74921b38c88423ab99f6b03bf80ce863045b7fc432ac88a8e89c13b54a0ee63260960c21c9b198615385b84dd0e5c5f4d0a5b11081679ada86fa76713a94bc567c7915d1a24cc0ebadba23dcb1e18c9706551b45379320953be75edce55008e1329a4e7751cd5ab7e6084b85030e2e115998a1269815ebd106d32fd29e4077b12612678119a8a5ef059054718ae253be97a6488285a6c43bfe18845d399e629dba03ecd2080f55d03dc155309efbc6cbdbf679edeaf061282a480d534d8dd98c9705709decbb78f26dbc8d2a2d2140b53cf3a1de9121dbf0c72e04fd1eec4e8284a6bb105e77252abe3785cee2f986aa3cefc9b754000517fb5c07371ce14b0660d6859e1804cdf54ba68c940e38a7726d4e37d9f367ec92b86c9ba3628e7854de56d231f27a3d73160ece0778a75aa495ed504a7c585f853c2500b09a9805ee8fd39b8f6cc4ac3e49d6703bb869af0176aedaa0c7119ce9a09d5a3c9620220e2bd558209cf8a27644015c10df613739a578984d7d40d7a308c06f8094a9dd14737366224e40b69093618049c05e459f00a33002ae63904246060c34f75e049b3e5f997d96dd4e97ab0185f3c7dec5f10d00efd44adeb70cdf721ea4601d933a09ad74af75f0003de2a96910ad38e70666f61aeb65620513539909c5673dd43aa870c231e539eade5975976b728d2fced2ca9d2628d318c716558b04a8fbc42533ef88c45faae4c2b6730309957ac7756dbf082e98ec5597a426925e60aca8881be88667bfa02e49ad0095475dacab764a6f21f3342734c9a71b956b9a8bb324b498a1404fa2045c588fd912864418179583e65c053ac209f2a25e62e4468abb6fd2028097e6a1aa938d206538ed3812e4361214d1bddfcb0246f7bde380065aee41c256857425b43a2f843cc27216e27319444f42e6da6cb33a5eef9fb7cb6dd0c1cb84a915afa8e7b9dfdce1390bca8c9db935f5c0d1e0a71163f7a8c493b5b85f649415b7c362aef1a29870e01982102b6808ec1731932db44b6687184c197f2c62d28b77a0798e7bd7dc0120d16c16bf74f121c91706d28b207c24f9837605b1e49e178b9b1b92d6342f5b36eebccfde65b85d774705279d39662e0080307f4e3732dd96108874966e04c61a0ba2ca024f24b699bff1faed4c4463aa7c6e2d9b634ebaf67a2ceee07352a27577dfecdbbe3f0b9a9c162238d27362b7c538ddc45a978e93d229dbaf3e7b6e2eaa24f392117c375c7df3a678d826a36ee9accffcd06b4cdae9e86edf5d86039390ed1a6e59d1c97f36e6c5c61ba0885463c521f0d2c1cdf904ddd4bcc6d6205bcd8951ba60cde218def3397bde04ef19b19722bf3cd18e2c715dc70a8d495db2b552d20d0af22e97eed6e6394c352d4b6b90a0ac9ae1dd1f889b418cc7b8f4b5bee4dd4c1a142d84830c98f7385eee73f1081ec5602d645dbb4862dd010c8b1a57c6cb25ddadd591aace658ee7763b3caf6912a7c44c24bfdc60c2bff81db539f51850f4941f3874e921f77af713cddfb9f81ccd07bf35e7ac096de0dc3728079e2a14f98ba54fab3fb0f07899854dde1ce372732f28524f99de3d9f8bd678cf91c12d06c04c977c9e45eca694b7827e7b95e4ab7469ae4f0db7076f889e1217131132a5926c89dc03e8853d05cc8fdaad6484ced0279ea2e82bfb73b5dbf59faedd9ccff37d7f3befd2febade150b17d95968aaf12e0355301e6e8ce5ea559ce3b3856c9835d64719bd46563cd70b0cc3de6e03a57d8d2fba7c93ca8166573f14608f98f0052c82c0f79110c6e71dc7c7f75972d8e5a27639ed4d3240eda316cde514c42b67b85e0f3e184ec3e307c71b50111d290371e4fe2c57895fddb80aab766d61190fb21972409e0afcf22120370de5430e26f1983bbc58f42baa0ac31e6cba4cf7ce70790a0d19456998e5eb95f66cf880149539129dc01b1dca39985434ab8b34ab173124b567cd0801b1696a863f9de310d5fb16ba24a34f81581433a58371d3118e2c736cc2e5f7bd2ce5b53742bab44ee98244ddca645387dc18d138d3544198e2b0b01457f6727b9ec37e5e6cc0dce592bff6e272e45c40178a24cc0253e88d65ba762bc789dc92d7c5b693b117c79ba2a76589dc58da5d387e5f4a0244a48c071986d32def8a674abdb41d7fc65336eeb79b7e263ada23e0b5a29ba4798caa8a6e5d56d775b9e968513a5cb91de68467b9d8b3f591de1c047f82732d05e1501d7aa154990c35b030de58fe7a86cd50222e631675c0690a3e2da9432ecba28ea2ecaa68b81f2135d8a5532191deb59d878723db6522e7d35d89ad3ce67a955bc083e2faa68f241219388f23618b6b8731584a01a93c30ee35617cddd8dd919844678d9b30224be1a673ccea79ee7ed3d2ac8daf54b5d49259b5573526492d177dfb69babd0bdf7bb3dfaf9670b567aab63267f7f2d42e20da0ec17cea7416f588e0924975458a08ba30aa885241d1e6698f214f68a6166cb5d0429d327fbadf8eab75092e2249d7c436ed7a7a4f9464244dbfa2f72af7702cdf53bd0b6272c7ab65838104d0ce852ff56ca3acbd9b0c71e878ee947c2ae61e88adacb8921eaddc651737c838b3e143f07898fa95a6a5b37ad0a9e2d363734bfc8c1d307baef7f6c8ee75c09b64966686a8c3a9d248cd96f0d232f64905ec687ec5ad0eba0405566d57c7cd6e82aae2f2fd7a6728e3d2653a8ca8ce0c2f317ca8cd15a03e620a7a030b834cde4bd87e723eb1f8f7c494a4259fe13f7076e510729a7d48342bc60f3637598095d234d38a556425fb76e2b555b4366c349b5fac4527f5eaa99291d9ab0038dca50227a807da07c485da47c6f6c3fb6ce088db3cb2c1ee3c72ad6080ba55cc79881e43a7f2e57a150b3bcdb5ddacaa79c7954c0ee66ce2c005ead324cb264f1ccd55de864432cc3b0c574ad9f4233b4f255ada7045ce0989c570095eb8a432168e356739617d19bae460814012a994ba3018bde758cc243df0478fdf844b338254193a30d1db5b8018ead8ddcbae3e6bf6ce848f1528cea98def15118443b23bd1b35468f7893fd69d2bd13c2888195ec0ea7e566c158810234c80c32553c11ea8804a1e6aca7701c602db69713e430becea45eec8540d64352878e6bba48dc975067b349c34353ea2db6a536db7d73070b58d2b6ad97b1744f66414bccf13d6d1801058e0403dd577c1c7c60b1f1c628ee5242ad4180fb5244c57608a254fd8848807250d4e162b323d05073bc7ad12eed3e80482d3ec6eb66bbd1aab67e1fbfe253090ecd22bcd7d969e743c5dab0bd6f5691e5f831d250f9692966b33e23bf4b6531c94e602cd698aa220eae7d6740b7f879dda99af81a107bdec750b7d098c3cf7fc8973c49a3a9975fe649d62256f4621324a481f03ba0ecab3752a652837c7654ab7cc1389b3c28c54ed325bc229a8aa5d77e6a31f253a200c9a9051b3668ca516c5d45312e00e088f3578ecc02a6c3762e3d090414d7bf0217f57c578321799711e4b6586fba98d10b574f0d07705c1f5a37732568d07b2b1b3da722ae5dcf7ed3c95d78a910bc0bbc620c895f3fda65e50501c2c35b47c8d9135237e38f23e0661621a9c2243055bc64c742d01010d6e907db262cbdd46b926d847c435ed74914d5bb7ca18b2499cecf4c39a2ec07ee097c68d654b66e81532d70c69a91c61256125fbc3ab7d32d8ec27adf776fa40739d3fd89bd0449be116fad4ebf1143ac6ba44220b028a22ef798bdc8ce0a2122a8812ce393e1b58e371e944146cbbcec0e181978305111bd1a55d376fb7d6ec67038fda9d5c0b75e801eba296c4e81bcf877827a9c81a23e68e1373e4c55918d964b03e46f286a501cf5c8bc8239eb266edf10288d374c7eca203f86bbe2fe742337186dc056584e81226fad14948752296e1a2c44b947b80ded7a86aa595e2e2c5c7fa8c11899f535fbfecb4fd6ca7345518d40fce40ffedfc72aafeae70fb98970e712ecbce9683f10a442b94213ad4579ba728d1a0953e05f7e7bbb5e945d3f97e0eeafbcc16cd744d5a711add2c49cd7030c9ac5ddb6530cd6c7ed4eee767f3afaddcbf6b9751e96fdafde25b86b5b10cf7e6e5bd369afa6d6db4f8f571fe7b7f2d2983a26cc7750c0b92ec3af8ba563af28825e5b931f0a5e1c772f88edfee3b7ee5e9cff81de20303036f2e92b6fe4273feddfaec1ff6c7564c8ab6fbd715f6fad0beafbddfeafe9bfdf9321fd8ff6d3e70c293b3d2d1478cd04dd29943e86b3f2553fa7b161e2f1ede31f0e7e4a67cd784a632dfcd61feb9b6ccefdaa2d0db9fce87feb936c3ef9a64893f6ff37773ac3ffbe1ed0ff3b5352500d49079d53d01d553d44dfd63db8a41b794fa336bf8991826c1f739dd3ead055eb3388859249dd9245f70d397feed7fc85910ceea25fbbad49d1b4551c737fa03297b927ea67f26efb681ef4e296bae298c4d31ccd5a12fd6aaf557f46f0a0f113263881425bcd7cad8dfd18f40e59fa1ef20cd99f2eefc87fa0f7ad9768119be0b46bcbba47c5305beb9feb5ace89b1658f7e41554f920a0a8d7976f6595e8ff04af9f73fa175f53ffb0b7432108083bbee8dcaad7a7fc8dbfcf14cbf1db4fd41be0cfd3c4222ea6c9ed4e518c286c142553dfd154859fa971c0664910b388f9fd6fd823c34ac75a012f53e0c1973d36dfcb189d7e46c6364f76e1efd62ffcd0ff686e4b702865368a3af69ca218e23bffab2cf467fc4f7bf7b9f9425f7afbe05fd3ded7136cf157ce495f3e7e43bfa36d9efdcfd03602dfec0d5f3b430f2a63de3d24765f03989b4cbe3953411a82cefdc3f9a13fe4474c091923007aa3282447298ad9bee327aeb67f889fbfa42b4c4cc020fdbbb0de6a8aba05dfd1a541e367e8feb086b6786e09ffb6dd5d299b2cdeb196c9258aa2ceefecced57e2a0eba5ff8a9b5356ec32144dc23f07f7f8ef48f7deda266951eb2afbc33b11b4529f9b7bec6a9b6f113be067db5412ee3dd2afd515cfbeb1c9752dffe776bbc9f5e47f4e338bf851c0703af38cfbd3e28e03bf906e1cfd300b9f29deb3c0dfcdb18e9c7f28e9624379f284b5137fd1568acefe2a9b0793f23ef0ffc46079d06262d57a5dc1feaa66fc632b535eec2e66fe7e51b1edb91e3bee360c2fc505ea6fbf8f79c73fe6379ddedf2d1b01b4d510cfeca7cdaf69dbcbce01f5de7fdd372a1be3933f2636ec01fed282dff55e72cff305e7d7bb61b5b7f17af2e6df2af3acbed2fce71fab19ebe3d77caf8ceaef92cfa993ae1afd7e3d3e14b57f5e7b1f94efd4b9e70dabe22e43b9fbf97245adfc5363e8ff3ff89b3af7ecc1f2adbb879bcf7eb5b5f79c8a5beb36d28f9e7f9bb05bed6581e76861e7646be39a4ad6bbff273dca63fdcb3ef87f6f7ed1ec5ef3d55fe687fbdeffcd3f667fdcc5af21ffba89c47e3dabe2f6be1cbb9667ff051af20fff97d60a02141b497ecbef048276dfa13fc31387883f9e7fb0c91e4c59ff21d7ffef35fb74f4dcd21812f353fde3fedc7f6686db2c711e0cb1edf3e6c7eefc369fecffbf05fee17f943dba39e7993caceab661d0c95a2d8ef6b35e4058dfead7bcefd5866dcd3084024785db62f3cfd7ddc139af25fb7c7e667bf4dfe92a76ff74ab1becf9972f9afd3e3df1f4bee33e8a0f7e9a5cff7c7b75b082a06bdf53f857ffe529f7f8f1eedf37c82c9abe6b9b9ef18f73dce4dea9fafcbfe4c666edcfecc993e7fa2d76fe6306adfe50b2e6bfe695bfbcb18268a594a5db780a284def8611de4cbcddf51b3bf6986ec1f63d95fd74114293a77ffe3d2a1a85bff9dedacd79fc28b6fdbf92cfffa1b1bbaff4c6dfaedbb19eb3b7d0897f1e7fdec1f7e67f84339c9247c1d65e9e55e52fe8a99c977720214f6e7e5f4a3f1ac9fe38da33feaae9562088a2e448aba3f3fe3dcfff37f3efdf26988c6ac9b3ffdfa7f3fddebfcd3af9f3efdf2498bdaecf5edbffffb974f7939174bfc9f49df02713ff5dd7f0c635f65c90c3c962ef91598b37668a2399b80e7128df53201c53c0fc07fb66b076c63340cd908b4d19a75fff1f9ea3f87b11fb2712eb3e945b3ec1efdebff69364765f3fea9fba0fea74ffdf2692acfecd3af3044fcf2a9edd3ecd3af280cbebffed75cbe9f854118fa0f10fa0f08b721e25794f815c3ff93c03084c04992f80f10fb15043ffdf2a99cfe2b2dc74fbf3ea266ca7ef9341d6ff2b76cfdf4eb15c5afe42f9fc4aefff42b0243304292d02f9fb4a6ecea4fbf42bf7c52df64110422885f3e3965fae9570804c15f3ef1bf7df5ffebbf8628053ffd0afef2c94c5f8d82bf7cb27ee39c6eea8f7ea020797d5df6493d7dfa95f8e5133597ed8b132b4b3efd0a5d6190402114257ef9a44daf5f081284090842f0fffee593fac75b2190847104c1bfdefaa5cffffdcb27e6e76ff5ffebbf966e99b2f4d3afff3ff017f017f0ffffdf2f5328b2f12da097cc3e0145df664013754916474d034c6302fca5ad0071d97dfae593d80efd38dfa3b9f883ad7dfcf1d6271fbfdad19867f3c777b3ef3f7f53a339293efdda2d4df3cb276b8e9aecabf2de5766164d7df7712fdf7365f3b2b18fbb3fc87ebdbc65c3d7ef7636cddfdcfdfae99b27d43e5d5ef4feefa7cfbcff6567dfcc96dda75fe771c97ef94745f6ee86daa7ff90b8f3fe3fdb3e7d37e166e354be0503fd2784bedd7a7877e28bcfff2d2e3e2be99ff3f6fffee5531acdd1a75f3f85df8c50babe34ddbd024c05fad44be285e6b6f8c03e476aec4b745c3e22f94736534bf2c759ee6ba4873e3f4f9c4a152cea6f5176fef2b64d3d5058a9d439689b45e98621a186af59e11fe469880ff22fdeea119b52398bf6f52d20f45b16b2a945b35058698722c9fb7f5b643659eaa6b2ffd9a67f1d7d7fbbed4bb8850814ff9f89b7107105490cfbd7c5db0fd6ff37e0fe6fc0fdff48c0fdcd3b7f0baae241f3a987551fd366e9ed4b39cbe4831f7a7b15c350230ae62a0acd9afa621eb72e22721c14f8d298fa6a1e76ee1220efb23b4f04698d5ab74a1956661ab38f7c354f606e4ef8bd1105fa88e1a10910230f5e2527cf0d71a7e681459f91877531effcbeadabc8d3ed57be3a75317ffbdbf2bbfb7ad9a326a633fbd0faddfd25fd4c7d0d1405a94905f778d1897cf31479ee0811770e3d0c54f25e160f35b779b20abc2d0ffda209908fc4c2d45011c14e9e20ee115a3418f11c28f2b41cf86121ded85de434d682a9fcd5bfc8c3ce94e7a69877eb579b2e4fe4c9fb75ba91bf20e2abb416f98f576cb150e749e72e224f2d0a0cc17197e489ef16493b43c939d4a11fe64a3e3811efbc64f4016d18fad5fe910a6a1e09269830f419fa121cfa62fe828122cf4129ff4a0ce6f085460a73e02bb92507ddc68898077051c46dfaba5ec3923e63c43d02f84da30e2d54b6bc204f60124a5aad11796d0ddff4bf3e0346bfbb16857488f92d0f5ae7adef84e7bac0379b90a1c1f8a08fd4c396973e45416b922e6c9212cd2ddfc8036f3fe3837ec1902539e83af4242884d3216e933ce1c92365e85cb3a94df3283981893ce4dd32f5d2eedd4f985b445e6a449e03d37702756b916f5a91c79ad07bd1465ff6b68a8204c5250d862fddff85cc53de3d539e5a98bcafc483fe90371f4271abe522aba996d1cb966f74c9411fa1f7864b4ddc7eede319befac386ae5d6b0fa77605cbd51ca76972917797b46d8e18c6de36260a6191b44d11b47ba3e4431ef0f419f1ee1433f41920d29008862cbe68f8f414785a230ae8aab45291c0c5111c74995934f6d29528687de8ed93284895c88743cc3b7f7c8e37d7009e9ba4c45e85c433868b25e4c9b7ae523ecf338f8492f2d597744810f3c88ca1c9047a7dd9a8d9b8ba019196e9a4920399966743750c6b63e88b4be4116bd4927ddc9a6b680c4d0017abc8487fffb39698df2b347f94c412b4dc19bdfa41bde441c94ca9be74c0a45e33857cb384dbcb878a2139e8eacb5087c84b50e4ed7572d07703acf3c8838a1076f2b0250f51f8d6f7519969e93cf82a33ad4ada664ba9e17dcf97b65e98fb87ff0eba7cf3c2d0cfc017e577acf9fa1b352bdec7f3e13b167260e4878dc8a879d0b943cc1bbffdc64b43dc722f59ffbe9fd617ff60de7ede9c2f7ffbfcdae16da75ffced33dd2986b522e6774ce49b45e4d9df6267eb1e4ce79e1fbef696c1107b5c175a7495b46e91be7d842b6324fc53dbfb4ce3483d540e783afff007353779778b7912fb319fe6f935067ceef3878ecc26e1f735b37ec7ffe7bc1079d8cb6faa5878f99d7bbce2e48b5e0217cdab9d04d68ec8a741a67df9a0faf2fd37fdb75c3fe20698b4cd7b8a46f24517bfb71ff6edbbefd8fd9253da92d5e7d7e832539babc8636bcabc62a1d4bd7c377dc568d87dc574d7a9f7fcf77efa91ebdef23c62c40543eb1d333ffc90ff8dceab0f9e4742229f3629f3d1e7a425a1f4154bbafa659b53cc93c85b3fbfe978f96bdb349bb72c3ca979df47bd735425f29aebd4db9fd9f5eb6fe43b37dcfa55813fe25ec493677aeb51f5966fca3654a92f4d2203c12263e2ae2ba90f8b4e9892ca1527cfc55a5be3ce6ce2ce985da1d9427b78018f29f2b4e2c3a7c86702938b587e7ec63372b19b13b1859a04d18a107613b1ea739f116b5948fb18e6e6c86a12b18312b1145fb1eaeee41f7c8aed0b1c5157e5203fdb76b1268871d56f14aa3204107bee99c05c17dae0efdaaa4ba6d5a0a4dd72c50f7249985f7a23bf8921a2cb9946e439ff8c9cfa5430b71fc9e94ff8fa17f5edfddc1ffaf659ffff3640d7aeddf63746d25e777c857120f8425a9f711c89fcdb71dcf547380ebe42ff088efbe0fd4f801c8cfe2f92fb5f24f7ff3224f7f6cddf8338767d8f46215acf946aae58e0fc6fff67f495c8ee4300bb4b02bbf5ef1227fd79942b7760b24d85b4485a27375b128a5bf37342a17ac3d578d9a25fbf354949af71fb2e6ad7a4a4e71891de4024eecc57327c019c1788fa4ccbc9032f3d42ef03c825079a8b9cd6849f0b0fbb261dcbd1b8df15ca75e4bfcf7f29d30fa08244bed9bf787d01b814268fe80b50f2cc3a7a170e581133f410b7e19ab4d007cfafe248909a10e68e77a1fa2a68101a7b15269160e431922ea12f9d11df6c4a49e52e5f3422cbd966f94ea44ddc699fc1d4ab98facadbab30c262c4c9530f7b1795e9c7739f472369f5cbb30a437beff65f45ce4d5c5486ea5ff7bef42dd65f6553caf6f42ef8451e2a328b5e62c4c853ff052e3efa1bb6cd145a74f33197cbc8230f7d83cde4255f0fabc2975e3f03870f5ebeb6bd880c1dbe788d3d0e1379b27c17a2255dbc749508751ec3c1b7cfe4816fc8e2d657efe29aff9a2091144996afa3b0edfb7dd6efe444aa2f1dda8dc629b6b8a8545fbdfae97ad814fadaf9d243e2bb43d2be8a5c0913796e7bf30f7365cc3b79cc7388f8b619ae4b5af70b707bf18a246d03be8a32857af5535bc3ce7ccfb91079f30d8e3eeced65cfee12f2ee1780f1550fe25b7fdfdccbbf0a4f6ef9d005678b6c638b25cd18ae2639c796bb60e3582ce9ba0ced1bae64190ee6588e6b8b2c6989ac76b76b5372d9e66e376a6e83416e3858f86acb021bdd64b63cf41a307af1c2bb68f2ea3ba2e62f7b8d3c688bf9e60580ffe8037c53851e76be80d1ebbe2f7692207413c04d1b79ea4b464b88b81f400a26e1d0973e0377ba49dacff36560ec7cf52b645e360c0d29cfbd8bdfe4a5cf3f918ff2f213e67f20fe58a0fc3f1beb3e46eb454e03035f0245cedd44562a525eeb7f2b323fecd469dd3df59a23f48cdc7430ef0d303af5fa57fcbe6d87a165c30d691f2ceeb6e3e48af501003f0f6abd804821b2036b1d74ff1e987bd961fe41f3cbdc84c0db7e4f53160feacffbc450b96d4b0f8b2535d3a2e6cf83269f8114d9be62c8c71b8af47c01ab2ff3f243e68ff4dfed389c673ad8c38668c739a85914dee76ccda16f3649a7e609cf9ddfe4898f01352ed44421ed430f7d03e0f87d061ffd3147fe73db2243374a9b2cef6779b3093ab7fbaa0fbe0113d89dc2727bc7b90f397e80f937c86321daad5ddd0749c3e55452718b8fc1a7839a3d4182e276a85384baa68254c49db6c58804de3d13f411ed3da89232fb97013732b3f633f5b52df4b0faeed7d32b5f24ad7b262788aa376afbac43cd7043ce6e48db021bc387a49bc88079d8ee45f811ef5ff9e8036cbee4ed99ef41b057ecfc78f3831dc1ffc3de9b36a98a748bc27fe5467fad739f629052ee37414150290149861327de60b00019a44450fcf56f6432889655bbba7bf7eea79fe38e7097489264ae5cf35ab9b262125b3fc588ce7e152d25712270b9bf3076be102a1fe710329e30c9112f71fcdd5c6099cc0a194760f14460e9d8e397656ffcfdb6682d16e1b8b40c65db46bddc6409fb486cf9b62f21aaf171545cfa137c431d0f11dee88379bdbe03384e618de1dca28db0a5e25680efe3ad8cf5b3ba6f68a055ccd9e5c1d6d6adccac98b36730689da19c16219d84cc9b6380b3c78d6ac726c41b846b208373704306735310d732c50a9c19e473d976a37ba4ad0f682be17297d0866ca2046eea65ce164f4cfd74b6d6f9dcd1e3c222ddb6cddc24b8b3a58e4373060a53c76393857c1cce8999e89a67a8dae07dae325ddfde4cc42d753c7c3dee7c618a8bebc833e661e4b7fda2fbeb7c088d5485e72a8f880b78df6abeaf0ca5f274ad81d9d20750176069dc2585d2e1e31039be2bfa1dd2a24104a5a36bbead9b3ebcb6f553edbc649912c121f5321739deb8dc6199d0d4a53d82134b2f6d5dac4c43a416581678c9b45479fa60c9bbd6a9b6b660bfd0f89e2da1fc8f2cb85e3c7d44b9f7703d501e157d5810a7cc4cc5c04d512474bb20b9007e96eb29b964e9371be9497e61cf948333aefb87e3d5abf161138e43719a3120e21a9e26f8c6fa1a0f7bb8361058a1f40ca942ef4cc0c0d297a59d708409e89abf858cf78a74365040f8b67cc53202843f42ff5d6b2c34bf842bf085cb18628843dfe973815de0a1c2b1a9b480c676e90be279dd4712d5eb3cc9876c02cea6bebca5ebbe7c09050ef3fbf36be1e876b4eac54eaa944e8557967e8a4d883b37cfdcc82cdae4d1fa1f4c822eac244e21ffb253315ee8350ce033709cf073cb7396318de8f986d740bc45bab74bd0b99740fd2e2e6c12cad271b46499836944886e4d15ea29548d938dec12c9a56fb7b8c831aa72c64271320ed9ba5fdf69f4c3462f2f6b47f909ca5cc25299f346c7519f2ea4bf99b7837c198d59f7e198652d725b3846ceb15e0767b6a44dfe7416583cb7d87128c2f756a2dfc00bf5b7d2997833632ac8ef9cd93214263b5fac06ef8bf5c03758bf98c7c74c64bdf61988b397f670fe95e0bf86e374510ddec56afc24b090a6ccd24941ee4c3ee03c1c272d844a0d9fe6770bf228f9a64d02e5938878137c97c68933211997227fca9c240f9bf1d438c72bc86e83bfb904e4d5d07e126873c6901672ccf5f48b35ee5b7c5c395027502f30595483a25b0b9ddb5b2a93792c9378fa29dfa8ccc9d3b91cf26d4b97218fec7064a5335b04db295675f8cc9a89d07bb749c8708dce50365850570905481f5b01ca027e0479612d7bd702b453fc5e5f357e864b68b756c254a22cd2cb9c10eae2d4d983f6c28c093c3ea8838a2ab22dc03a8a4d8443d0666499b0de6300ed558af2f800bd0bd99c3c8d43bbc71a6799158e23938c53c8abaf701ee1d8e0235db066d2acc1152c36ba7734a15dcb62074fa7b2cd0d6cccf1559f1ff880189a35efb8e23fb80fc7e642bd9f1d1f1606286cc3fff0fc4ddf93f5945b6b38c380a97fd3b7b49481b4d6a69ca64e6efb86f0f4fd858ae34e1243de1cc9d889d1704996812208c9f8664df0cc493c720179692ae110cea8afd9d2afedb9b81038f0aa021f058a1c9dc3045e8ce1774b650227853615d2353368973b24408145c49358e5006d21afeaeb1c486614705c179d19e92589d8d0d305d7a12c083ee0e76bc51c3d42ce4c56b8ea4f8d385d0677d7f88ab70ac978d7e0f415fcfbfddee1abb76bdd9f13924f4a13fc367531b7e0d8119f937602e2e5dcb6196f2b37d198919cd4a0cc94708f477677bbd6bea0c2762292696ec8b842a87c7c0f38d63c0f3fee747ce01b6ae6ce55cf17c2312db062e1547764370ac8720dfff34f7315ad1df271f4f51581e7cec24cc24c9d8a4c43aced734e2a1d9eab20fd2dd7e35676a1fed6b0bf33ee7b44909984efbb09082cc4ef0e7dfeeb08ecd437910d2e40b85e9e6d78b1c1068e11321ee2ddc4d85fa9e3d0494637301f773a8bc837fa6278abdba2772298213d0aae09e45f091540fdccb80b7fe00ac938eceb1477d608f2f7adc55ed604f50fd7a2e59decf8a0f1e35a0fd29797fe7880f4d7dbf17dc41d3136f546ce407d9e3b86628d47ed1e53b446062bfaf774983f3deffa5d4847eacbd8fa39a4df7678b70821ced1a1ad0f5273dcbdff9ae6fa705285f997fada951e06e754db2077f4d3c95a933fd5bf9c3b7aec1dbdabafc75ef190059155964a9f6db6d63f3fea53680e5b611ab36bd53b373e85d2091906f24b6847bbd04e823671e2c57dbf409b5482fc7cfcd53a9cbb35b8cc91bee13f25d2054969b720909ed8ea13d7faf017cf233ff7f5b38d2ed2c3cffef30943da7cbcb51bbc6a78d9edda045770d42449616f6d4ea64d80e0dc542cddedcebfe2db487f4481e6c8d2adcc41be49a9745331364925dfa88350980c9225b24f6bfd4308c73e4089385ce124347681a7e65fe1c9e5b9816dc8fef273bceacba57b6337ccc6cff71a5efb9a2c9d226c432c9d048f9d54f6bd84ab6cbdf6a7429e89c63793628f1d846c82eceb46ce7b2b2d3a4d359c5eca00bcca58c0695bbc74d17e273ab2f420f08c65e1f2a7783303e7768f8147d095c32be745720a3c9d82b2b75a4497ef281961a6545077736bdf39d44b212c4b378d7c978476ad84215d8cb72a87c05042924980b35b31a4438a7be49f4ac0d6e3e96aa322df4bed5769f6450833b17448948493a07da0ecf53b3c2286ba49e1185621cc24dc4caefa6b9254a8b3ad2b31f245f793dc1268e75ff537b792b8b0b8268b37a643684f419d78ce46fee678e5077981b8b884eb0871bb2f1b5adc896b7da95997a3a54b9995c4adaf3b8176b2d1f85a0c420c5c0240dd3cece49ea1e06e32f09772eb2f817fbb76b410ca27c49f67deed75670309a142c2f10be13858a9d016716bbce395f2864745703e1e8174f07291e084739727311d4c566addf785af8b50deeeaf68bed609d05a9b86587a281105d9707339028cc66283d7f59214d800f2b6b5439c023789cfc2647a5ce0d2d134c4ed5cbef621209d6d7640ef7ebbef3f40f73afba3864fb908078d1ea6f877c6183b895cc74708bab209ae72485058e38b0d75a15121da74eb25d2829fd1881678a9741229f07850988602e92170f823b2852d489f8409ed5f84df6cd2b4e568288763b7f23361967ff0b32defcccfd2a59d538d43910d30371c1fdc6a9c1afc201558d717abf1a8792eebfc6c2936672391d130f0a64c6375a57f8a7bbe10ca3b77e6457355f46f745456061267608aa88537636a79de3a6ff5ff2d4a8af9d59fe36e2b4cc100c2df25903f1ed259e0f0a7d2ab98c0339412da18b6de266c5d6ae7f492b43e66f02759e0864ce226f4a1f5692f502c45a94cfd38af1314a16ce15042915b31b84b20bb05c57a9add02fe65b700b245bb44de3ae6c861356f0a32338931819776962eedebe4a4b8e892d55426320d2558d489607fc767def34185e2f482578b8a3a78c9d51eb74f60f911a79b3e43718aebebd87b031150e5885e4339b9521bdfee1d1dbda5853a762dfb35dfeaef01fc500fadb013aeeafc2b4934effb58feec386482c61d5e294452f6912c6964537f8fe6c7dd23d4bb6908f9077ce4634c6007c5226c745a48cbd73cbbb67581f50a705a5500b302405cdef589f259e0c6a072265837372d02f21a07ea9afd49bb5bba715edb2110de68d78d2aa2e42df7bc2b17a418bb7c1b3f18dcc699ebf76c85d2d647e557b5ed96ec005f6ccd3b63c69a3123d886b7fc1eda91506f52356bbd52a1ecaced4c813fc41b95214cfd845bebdcb7f851378f362e20a2362826e0cf675d7d1ee026c7ec0ace332b70662016b6b96f421d53cffdd773deb34fa4c06cfc91164f17965af36e39e2d60aa0a72a68e5f0d7f8ecf6f78e56ed1ad4bc5b081509449461e016a745e24ac3a06d85f975cce21e9e34ba4b748b8b487f7b1158686ba1b97e8469572b09c200e93ef4b5dc187d9716c20b9e5f7c6f1fc67a81fddc344454a7ead6cf76f15d79999328a5472e914ed4c2534db84a436dc4be4e7081612ff9776140ddc08b3df647bedc3f01ff26f6d0d8023cd241a03e4380861774b2a5feedea9d2d7f18df89b934fc0c489c16514ceb537c9b1d3fb4d13a9b41beeb17693f0d2c90ef00e13c2bf80b6df4097c85be5fe2436ca5594f94fcbb5071c4271606385b8640df197baf0d13b8a404f5cb68a5b6b066180d978c352e4e1bbf02e23f42383eac2ba40f7ec09bfb706462e70e0e98249ceb2fc7812641f80a07eadffe461c686071703e836b78831fbaf9633ce09b446215c75d025402dbc20fac1520beca1acebd86f7d61a47baf91d3e14dee281750bb3bbf1969fb786a67eca6b3e2a062691a30477af896dd431c33aefc021bdc2e1e9c0baa6979eefadf39f4d503d8933f6231decb696e1b47b47a38f5dfc34dd060bde21055f6ef8ee8265ced0ce467ed7c67f0fc70f200ed6fa6ee290e2c134a04d0d12941b88f236a83a9e52fb29fbf3f99aaff77c8c32aa13b1a44d5ea22cb28b3f5ce228dd18c6ad0fb3864b17cb1b5fc75dafe3cbf1c5ef58fb3c3e8b275fe1823aaee3637f0aeedf78dfd5583b3d4f5780c8ae7189437ef819ca1db863037fe8a7b55dfd85caa09a32b67e42ebb3ae73388c96672b3c4d3a09ca7b69e4b1155ce9a1b79f1b9ed3fb6c85a9543a069339fcc51e6af0bdae8772bc3fdef9077fa9983961ed2b352be4dbefe34738976ffbb9a1993bebfea59e85d57ad6a5fee3bd3aabcb2f7963fd59fada2567aade78d387ef27ebf547ed90db4f6b97082cd61fc7777882bf080785f0c9f8aee9a9fff16ffc9cc8775fc72a54c8ffa5a3c0ded2cad7e341b8dfe4ae699cb85223300135edc1b5fbf1da5fe479eb53fedb6c67a162b8d6cf641901866ac7e974f137fa4ce697384993878733ea1acb3819af7577e433529561bb06886e3445d4b6bbc3b57e2fd2adcfe8f7c8cb0647bf5a63e457baca5f84728f0db60e416d4d43796b7d6cbdbc38598be8b9a2495a37ded6fe2032c25129f86c62eb6e38572fefae732385bb79052ee965752e69935730534a81bbd8157762d897cdb675cecdbc8e29367d6e7f4e2ec12736cea59f64fc8762d9df92b957b45ecbdc4b7cac974bc05ec7e1fb7903df9ccf55cec24d3ec3176b7e13ffff1cc7be39dfcf69a49fffa0cdc4d24be2c852994060c5b387ea16a37d092f962e87c2cc0b9a784765194a65eb806873c365ec24d61be1a19e15041ecb90b67eca61bfcd5e887a7f042f9670ac3d3d0cd9284e42170bd0c3cbdec679b71a74742463f8d4c04ee23a026f32106788a6ba5c5c69b58e2c51a9c691cc0a1f790426490a472f558de20c8c53157c3967634f9501232b407c5b4f39b08e244101028d2aa924ed7e89aed2ca45d646b7b2160f6c7d3067eb7cbf2e3f028eb7dde0285ee70cfb068a0de3b54ed1ace1b778c1377c11027784b22e5c684a3b76947b8878629b4f6260d0c638284d4edb22c17167a6646b9d8e3cfd146b6de185692f3eb5c6a20df6393ea1d8069a973204b8c8681cc369712f869762fe9df50ac5e93864fdbfae065852a6c77fb93f2a34d3b56a3728bebc60c35fb93f71f8f3f627d643ff647b22fef28ded893831c2f101f9d89ef8d89ef86fb33d1151e7658ba2cc89dc5afd642bca4ffeb011a32a1a76d906a5d77bfe6fb6d6ad1dc2c23c02a56fd66eb0667b93c0068c869959b7c589a70b4bcec65a04a47a0b005ea7751274d116247348c1772edbae028b1463ab2e9b7e5e84635f2340dc84005fd7b822ca98566fc5ebfabddd7ed66dc1cb2ee90c28b41d58bc92a12d4109970b50356d54c3ba764d3d773701a96988515b7fc09dc595ad7b3b8f65a0a919bba9b4b38d7121b075fd131948fc658b25385f6d176cc7d8d601ba6cdbac558a26bcd2dbf6970b1c4adb40f51f96e1e028b0016c3b6ff020bc6c5113b2d7660b64bdad10a5d0e02ea1b57347216d8107039300478f45e1cdad43a0ad6f819348713be73a5de3760bdcc0173834669426ee102266ea5d2d8de3a6aeef70bb6d2ef0c6f59cdbbe91d9dcd60e203dd2ab6e8bb95d60b7c04ea28c81570dd30e70ee4d1fcddc19e02427b485cfed6d1333d3c8afb741c45b944aa732b969b87ebd2d156d77adb74ef17121ccbc0a6d534ddcbc5befde56db7ea13c84fb575b4b2f5b33d1fadeb485eb65ea836e9d64b0f455b00c05a4cac6eb05cb182a5084350e3481f3182d169975ac880a58fa6b5cf0658c7e55a6b1a66af4ab56312b256498751cb5735fa81a355db04c0c554c382694229aa0949d1285ae0d26b77510ddd04c6ffb25a2811e2e5d6dedc94d9d4abdba0e4aea9056ec366e42a80a3a7a7c46a1fb74d9d42c39658e1e6375ad10eadce1d17d7875b4f58bb61cceff169ed9a413684d0d2b608c7d39e16af76c5ba7e51a9f55cbe070db10638b65b8756ca2d431f7dc8eff8f6c69bca6bdcfb63636fd5f4c5116f31dbeabfdd2db5237a8d036905ead2e81afb73aa114a3f63d1717842663c19ba249c21a6d6594508d17a71aa70e31489bad614543a7b5db4d97764e1d36e9f889d9c0adabe535bb8cb9311d5819281395a365198035da8279ef5d332fb00db9ae77c44f7d9b001494150e71887bee80d849104fb87dc74ae39435848dcb7395a9e3b1c7a33a3a47131dbbd3978db56b0e44909706b113f65c0c4d6a4a9f1f0abc5658d5003d5fd7eb723bfcb10de56ce9a76451f3f28e562d43f66f5c2d07bdddd2c9e2a69b82c24e14d29d64989b70854ba25a53b43553de5c82deda04c0166d6db12d4e2d6612ee9228bd8adea827281b2bcb90ceabb57f5c4ec6b7b0f8095b321b59f8abb66536f0961390a2adfafa2917ea3935a95d8db9ce7a63b1dee2be45dbb43ad34d64c054120c0c4cd4e908f17c91a00bf1988d6bd718535a8979b53e1e1f63681b3d61f6ebd091b64e450ee9cedbfbe2ba836fec2475aa688f0ec20dea4fc11afcb93b1e883bed786cddf48510dcd2062763c14a54057fb5c67c21a10be1e2d68befd3ac36bfc84580092c40fc41ac5d22a87480977039aad1c6d389c0d6db48ebad1f425cbb9b904b9116582114d800c145886ad795a8c1bf60aa45b1aea85add1e20d7512c8451f7ee36351eb9696628dc0ce92481eb665dea70f5c25ab5cee510548cc68274a171286aad192f2d54c0bc69d13216c231bd52c7a1104239077984b4b70d463571a6bae894759a5723338f688b4cc3c3172c5342dda9d5331d1ea4a62e51024b8526e4353ad5e88e68edafda2e12e960b1177e03d7cd3282cc2565b87e35acc1a9db926b904c65a9a8df50e02594b6f8a376f5fcc1c03624ecb226c0ede811a7e17c0a93c02301e23ca48b1fb5f3772f2e71c85c4edc6a333166fd6c0cf1c3a96b40ced914f15e4e8bc59516d39335a670abf5b85b4fc043fa41db4830b4e52b5562b435816508d31033240f504d4cb17454e6e890d2d9ae6504fc8e75650266cb5c987931c20995099c84aecb3b40dedfd42d6423443b751da971a70bd0ab35460b9ca4c940d404ce62d6d3782a03455c6303481ff44ace322bacb7c40821e8cbde8f3833a5f76a84e4e09c4d506a4ed1fcf51543ac1c5278b9daded09413b19a7438c88f9ada82b1935a999bd085a383c26307fe2a34abb62f8d6fb68e36b20d85e9fa6ee27efd35a4dfd6b5463fa4a4f323c88f914c45f20aa5c53775096f4b17347d34e1c0cc49250ce2487bbc5affd9859fd5f0807231a12bd6dfbdac89c3bcdec29cd55b2fa19e8c68b10f0fe09a495c18b5fbbdb08c20ee60cbc7856dc8df852bb473ce6d6d3a534735f308533f65d6754afad5b8affb18d308ff7b70453cf31fbd0e0d1f9b6010efa1ee37bd8ff3bbf96bd2c0bbe5bd283db2a9cbd7d5a5add3cb918e191e7d5ba5e245d8864da11d26610e2952900fa374835e9dda7abb8b553a3cb47bc7611dd2158acbfba05e7949bf30493807480bb5ed5ef3d2ebed032d9d36f454b07e76a51fdd0b2374b200eb7e8bd928e68529b50257b2e2a3cb5754057aa50aa1c07b25d2d9742a527868f749989c70674b43e53ce675d90c602a9a54a774ab60a2b05afd3be735e3b8dc17e5dd0b4a479da254efa96d087355337d0504a286233e64d4ef17dd26f5bf59e7b67d938634ceb6163b2e167e262ae13814017a572c6c315a08d118bab19bed7823aaf4a6164afd6ff8b7d11fb345d0dd7688fe1c5f930feffe31ec9bf1b08914415a5340c0c9385d8ff182bb853555a08ebdf57af060b719c23d858fab7542634d4af1fcaa44c9ddd028e0f42998d421506d5e6fffbcfa2d84fceab3b584ebb08e680daea70a240d8efb8b39c6060a9f53ae9d5a8745d21c4b59097e034728f3554be722b95f2a6bdab43beee6724f8609d3c646d27a69f3e9d257740af1188507b969c4b135050397e7eafb7e86b6972d30d3175270b67448538793c02bb1c3c707f78c8502abc5889784e35d4f5fbc13860135bec5a7772fc18aae24012a8fd1d4009d66fa1a40594ff1aae6bdf561a3714b5ad0bebc1fa0b1c85097a6a2468ff0c5b0e6e56a6c495de804a7fbe394b533167f791feab0dbec87f0d630a05d74eb5a1e40bc5ca937b2009c425ba7dc3a55828a37bc16b6f4a2459cac4d810a9fd7b6d8d73c041c5168cbb8a4e3b99fa6d97ee8ffc4008d9aa853a0ae74bab2fa3eb42655bbd7c7dd63725b1ea94c69631d9d56b2a6bc01202effd6f46f3fe3d7788bb34a6913a070cfd8693141fa7e6eebf879b5aef156561971fd7dbcedc29806ffc3d4ec4c982a2b81f59b2d90310f695dd4a6217c7737f62655b2c61b6505306ab9c6b8a98103753dc1625113e6f3cef7c4709b99123b8d1fb7d64d4eb943babe6900cc2150693ca47b6fd45e7a21ff617bca2d6eb43ab2d4a4fc6f5129bf84cb2fba36f2fdd6db6bc86597ce58cbe1a6f453878375ba7c27e7675d68fbe826f4ced6c5cc6399adcd83ad5ddba6d04e86f410b8292a958399eae0ca8e11c125dcac469c2aaae35d2f6d1cd2c84dea546b2f8a75fa54d8b6efa74a357106761cf742ae7319ca94ba6dc642dea49fced6d5fb3a7dbe497b11396d4a032d3af674faebf77db2beddb82fdb33b49fbc0d629cfd04384d1c12e4163f483db696dd020baef954a87dbea5e52afdb6d1bb2f6971088f10fead77bea8ddc0886db79644f3661e4787f450bc04d51366f1ee08368115924d256e583f12d156485ddc3a7c8c74e495ca1496e11e1c4244dbb0044ea25c52891d957ab50cb900040865e29441bc7f6dfb40fe07ff80b674b28153c783a8d458ef5e54437af5f453be2645ce31186ca3fa6907db4bca752c5691bfa8fd35df7ebe978e0d9fcfe62a3314e2c19c95a3509c79b19948b98dec3a6ae226208263b6752e77ab312df054ec55786926f5b6d7f6c8b14544c51e0be7aa20fd5726c5d8aa8fcf0f1cf6b3b11f7db1021f52af45d5cd3a18a55868f83b915545679d006c11235f606612407688b8f0a678e0245c6a19a2f7bacdd6962ee16e12631bc054503f33093a172698af63687c77efa31ad8007b798d95dc3d4fabd76a1c790408cd66bd16bd744d0595d384f3f98047e9821da71ff9889bb5b07d537bdb69a05e769382dbf9bc5294861b76bcbd9f723bb5322789cff5990837f4f091663adc9eb73ea2294aff2febf2421dafefeca8bf24d5a88bd7fdf974a3eb127f1fd2866851ddcdd98bac6dfc21c05454cd17bfd6ed628105573e7451bdf81b952960017c06a5f469fe42af53ae9bf4b20ffcfd0fa4ef7ca9a70be1d53b2e693b219cd76dda8ee6433840f9a600515de3e25281f362c7a7ce16acfd12f38b9e2f23fd13953a6875aefad93719a3a7ca1a3bb576071b21bba0f655b1e3a4f12f5cfbd15470752d36e50b6a5ed7b349b083a871b42a573dff6b33c6ce77c7d3e7363e7bebe3bcf2b3b147df21a8ada5b638768a2d82db6ed47161261c866cb55a57a971addf96a5b68e7ef1837ec71f09dfbd48c4c063d19925b983ecf1daf7d6ea6f6e22bdb970fcecf7fd9c75bfd2c1fa5ebf70dc21bbcdce36111fb54492e1f39d2f65c6046d39604bbdf8a0e15adcfad2b5290734ac8e1377251159af74c2dae77bc757dfc4b13a195f3aa1e0bb3c876240ad7fbd7d0f980275adc5af32503844bbecf5735017f3d8717c85772af255a22de10b4cf0450da85a44ab10d795a916ff95a969d92ef9d72989bfce4c6b1bb58969037c447e7d001af57fb1c11ac7fe1f3efa7f03ec5fc3c1801abd60d8cbffc5067f24316df4f30e40ab87fe9724a611184e0e69088eba6937eb8f89695f357d24a63d12d37e4f625a4b9c97bcb4d5841e38fad1f7125021ffd3160b97eae0286c474fecf6d495511066c1d95e676793086247e7965d0ec3160b2f678ab4f2bd4b4746874d6a535a5a9ce562c90e8e7509f4fa70c84ffc130397903b5b4b6207c7c5765c6c66522484ccc0d14f857bfe9def6ceca10d8fe74eba7cd9cca4acf597c07178a4472e52f75cbf7f542d27e3d3020fa43527419bf960aa78e3b787f251788276d18ac74b8b0739e8e036c0e038979363e9e87464e9a7ae5cfd0abe7f724add84c6dd691cad92daf7631278bc62e9cbef75bbc04d95cc4ab8ad87da5ecedc59b1f4f5bdba3dd1bd673b45f35d00e95506cc5a9dd2da8aa5899b71c0353d5a8688d93a38af1ad8acf8762b19a81606937bba973921d5eb7b59bcb283d38aa5b7cdf6b6d80df1a3334371f9e2823fcd76a9c9a94de7eeb5a7d051eb8e0e30d8efaad6eb479735ec8d21bd2a9ffdd4d8c8a30e6750c9fe38477ea0e6ec3638ff5704ff2fda74f3bdf74e2570132ff62683d362eb7f32aeae4d3bcf8e4616497d36d622954acf10b79606500928a83fad62a029213658b1f4f7dab7e3bc94542ad061aaa45897ef4f68dc9b31b837fdc13b523146e7cb213d8f2a3d43397a86c239895422ddefdccde3e4e95c6593e07c7ffda7c572bd2c962cc5db3a15389363d99ddd577d8907977e5326370d056d675d241c1c5362c231ea71b44abb331551f9ceba1fed6026f461c5d2dfeba38359d757e1f2a7c0432549b1c222c5d233c6075b979f6c7d545cce1eeccf853aa2f87642578e4ad5b4c9e29935f9c17cd22edff369a90e4ecb6a705c44d036e5f24fc7df7ba6c56f74e6a26e656ea21d5cfe845b445c5cf55d217e7858afb5d18284b63b486c438cefae19a2f76379e527add77b64f1009571b7746abbd11a9f01cad795bbb1f4dbf479c587e7d7575b2447359c19d19a0ca20df9a3b550e80f3cb0edeb961786caf09375bab4836b35c3460be2821baadecda9c18f0b3cc5d9e1076b43d11f78e8657cd8c660e255ca94cefa587ae8ecb06b58b88454babcf6848eaa20456cc5d26793a0afdaad50a9036443c64e22511d1e5fff9e5946cd076fdbaf75ae30752f46b907938feb7bcde795d845761f284c32bac0e54a3ec5e5e2428fa305e1550e098e5770bc5d9b1efd5a29285c233ad804d59491c663c847bdd9f2b375192d88bbe3fa14cf56fc654cb7b4dcc3bf5efbebf7f678d73be23713ed739c999c9a35a3d0d99a1fd670722cef8e7372babbaed73442654e4555b0df85ce9d6bfa97bf0973317649f980ca091a626c4d8ea589e4ba1598a4723dff99b4754888ab0a7c06f28efafa3eae512defb88b4793537d06614f06d6fc9fbae2112dffbaa199df87675faf5d5b32a9953f7f8ceeeff0ce3748cfb7b2ac5dbbbe0fee7cb33d7c728a9b32af7dbe7e357f87e0f20fcfb57d1374e04ca8d4d2a9d84d38cc52f1ad4328484f84cfadee6d196ffa5c255eec24a0320d255ee8e81cdb033aeb15d19d579afaf1e3786a5a42f79af32c3f6f0bf1018e6fb6bcbd375a106de9ce8ff0baba97f69e85b2e9238e7c8637377a71572aeea3debafd9c0e60ffbd758d36c4d77aef67780075ac06e7faf4f9f1b73bf8dbda36f764fd5d1dff02838b1c82b2f04b5de14bb9d56ccff67088631feed7fca28ed7a0b80013bba94281ae24ea952ed0c1b589adc375ce17c9a96cce372e9c463eb95b649b157622962eb92c1c9e4ebb7b21b574084f32752ab00850ad9ad2bd8b14d2d911b5b550ec923a746dee8ca1d5fdd191076bb8bead0e8f8e5f8030b9de667a3b6f963e6f0c09b3745c6eeda40db8e485ddd0ed684134b90824a2bb6b9abf83df17bc697825e4d935ddd5b21de9fb56d687f1e537ad8f6b9935a10af84e2f81b2eb0a574610d76cc30aeed163a70fcea20f748c8e2758f7fb45a5a7aff1b9b62f6ad85ceb3190de32ef234e8dfa73bce058436fe9477e729707b47d5dd176bbe5194f4c3dce5d824b2cf57bf2e0a7d2d47764c39d3677f979c7934ff7e8ec5656a03c5c8b149b3d2578aba37c2e2fae9f87f3c9ac34fa5246d4b8fef598900fe1335af828b37e0f9d7da4f3e69ce945121f20ff58a4685b3a94eb1fedeb7ed962032befb7a96db535f2396087fa282ec4875a5a289a73b70b14e39a7c3dbe7f035ed887f535cf0b95e1159f34b09eaf03e5437fb16ec7b22d1fad757c24d67bf9df5fe0cff7f063c5d23fd0a18ee5d73ad85dbde2eaf7fe332b96bed6675b9e5bcbbdec764ed7fe056e6b135c6aa9546d0b268dcdb3bef62998bab4aff154a1dc2b3e7ed73eef7e47fb4f6b1e3b5a9057b2a1b946bea1a7bf32ee93efddaf633eb04117ef4151923ade43e083e16034c007f837ea11bc90a31186511fea11d48ef94fa33e044e90344d76519f411bf5c15f46c3e11f89fa34619ebb519fd1bda00ff94212741b9e79c1317240e218f59d6a04cd9cbf538de0d2f42f09fadc067cbe196880578770f7a390d01f194e1343faefdffef5dbff7441a41a19ae634839bcfa3fde26dba4de2675abfff77f7a5dfb3ba7787bb3e3dd73b0d96ffae1a6fffecd8dc34d7af897bffbedbf7e7377e95be8d7dfdb49d55759e46fbcfa6b471ff0f27f7ab1aaff86cf1f36a7c36ffff5db66bfdfed73d84d022f7b6349ec7de420f2827deebfbc09ff0f53ff39d924b0dd2e8bfc7f85e9736527f1bf4a0292c70efdf71cee8a4318fff65fbfedf2dfea68d1f35b186f50d8e8bf7ecb777b3888fcb00f533f8763ae036afffd9b53bca12e9ceab0c91100926cbfc9f3e73738c3fe0ffe39cc6a081dec30ddec9fe3303f343fd45376f75576d8755f9eedbac7fac20db3004db6b9f6fa37bddcbe5c6cdceb4b8fa0289cfef0c373981e36fbd48e9f37ded1de7bf96db3380eb343e85e7e0912bb77d53dbeb753af01deedadbc700ef1e67223f1a8cb057cae77e50e7a17fd09e4818d5f5d11d4cbd5358513bdeb9b571ee21e9c4e14465f5f3d67517882e896ba3b2f4cfdded7673b4ff1feb563e79b97c1d52f616aefabfe2fc1a6dfdbf3364744dd5d67080f3fc7ed0f74f647f1fe878f5f1629b1b3fc3b44f42d42db24cec6fb3d24f9c376f9c14334798778033b0f9a3fcfeede251141b7d3821469c77eff27372bfa976fc9a121eceea7747338ec6d77d3ff6d97a3f5eaff94ede2b87f7dfbc87ef3166fdc431c1eae7ecec3d48f376f71e807576fcdabdc85fc7c73dab89bb4bc77ab48119a76bf1f36f921de5dcdae4873fb6d136c6c0f2147cbd9def21b0e573f96d49c0dfe797642fff2f590b7df1b024da0ba51ff794e8af8106636021afae1bdd81d365eb60fd383ed20ba4b3787fa7fa4f5f4bea2ff5ae8763fb6c36f7e83ac30dbef101b84d7c5be63cabb1c01a861cf77b8740375f4cddf9cb2eecb735ea5071bc26f5fa4877a3acdb7671789a4f6aa03a67dd82588f77db8d300eec3ef50b5ea4b0a778756b2951950f7420219feb974dfac2f948af5b88a3474a1e2d57d7b2e0e6ff8cbf5f5085dc2e5feedbf7e2b37a9b7db3ffbbbd84efd7fedf6fef3e9b9151a81ed0636817daf55b68b2b9cc4a81fb4467f20757db75dcb48bf6a5ceccb4d2b80be681744dedbd72d3eca9e2f1aff60c61001bd34879f6493e7b6ff59775728ee1788847ed82edbef4ed50f1a12cf4166bbd117ad422fb53fb99d5779c3f2eedd8594f69c6fdc62bf7976422fdc179f420b353deced347fdbed93af1ab5380a3bfc4ebb14f6f73f373949ffdda98eff1f6473374a63f7dbffdce42dfdf77ddded42f2f04128c7fee791ddf45576133443bbcca63a19ecafb2879f1304d62f4bf4d92853eeefb48aa98755fcb08a1f56f1c32a7e58c50fabf861153face28755fcb08a1f56f1c32a7e58c5ffabace2da5afd95a6f1f3d62eedafed63d4e24fdbc79f55b1ff967dfcd2d9c7e43fc93efef7a961ffb08f1ff6f1c33e7ed8c70ffbf8611f3fece3877dfcb08f1ff6f1c33e7ed8c7ff44fbb836597fb991fcdc2e7efeb5b97c69f6f7c6942f07bf11ff249bf911537ed8cc0f9bf961333f6ce687cdfcb0991f36f3c3667ed8cc0f9bf961333f6ce63f6d33f72cd8bfd17a7ee65a5be2c7a1e7eba6ad3d8d8f065f17aafdae1dfda342b5044e0c3092f879856ad1c87f8f1dfdc7cf4ffff7b1a31f656affb7b1971b12bf14b1bd146160124fa7b64da1a921eb679963a00354fdab22711505db9d362ac5c3bfafc7dddc9d81d0e1e3adc0d785ec85e9a5f0aa30cbdbc330c64a0a0a57ae8b4a74cf4c9b629c6ceffd61203a29fa2dabff46fee6d82b463113636f062a27440765f86b1260ee0c60733e2ee0df45e2c5de148f5d520a2c42dbcdd568d88c8166fd8cfe8b0b3edc85bf9066c5e11bfcb5d7ae65ae24fef2eb982b4e0c7e1e7345237f30d70773fd0f67ae3da2fd16673d7aba98dbfad2378953e0924b5fd5a9a367c81d977367222a0566a9ccda9b89f591d23a38bbb0bf75c751bb7e9ae777739519bec9bbba0cce8cc1cde4949915d370d3e0635fea2d6745c7081797fb635ae03b4edae3a2375c9c93303741c761a496a14896219d4ddd8be79f73ee43dbe6b5b97f67dc8443c4113a12a4c7cdb5e668a2deb83228652e658c18cce6e3f322e9eefb2bf5defbfe1e49f05a1cbe270afa0d2fb280fe85b260f0f2336501fd90050f59f01f2f0bfa54fbc78441abce764c6dc654753d4acdbfc3fc861f9871a752fb99303b7c64d6ddfd8740f85b04c27e93ef8abdbbf941dac2a5d9ef4e5bf8eeb9403f4e5b18e014f64f485bf8773e15e891b6f0485b78a42d3cd2161e690b8fb48547dac2236de191b6f0485b78a42d3cd216fe91ee8e8b55fa4b3316bad73edb591687ae8d8c886cbfcb36fb43f82353fa93675abb9a1efe9a63766b7b1aff794e5538f0bfc2a7faef6c4d3f7caaff8b98cc67d47ef1ac0a1533b93d9149e0d1893f73a162f69611f92b95214cfd845b727639b92cb17027e5a8450206e894cf097ef1ccfa59ff64c3c0240ee8f492fa94423cb7742f30c9e860275cf5577b0ca17cfa9ab9a1167fe3cea6014e11ffcc6a20ff3e81a2878bf0e1227cb8081f2ec2878bf0e1227cb8081f2ec2878bf0e1227cb8081f2ec27f9af58e6cd15fe518842ffb65d532ff947d4cfe1bd9c738b48f71ec611f3fece3877dfcb08f1ff6f1c33e7ed8c70ffbf8611f3fece3877dfcb08f1ff6f15f6d1fffda6a99dd1bff51d532073835f837da76f2b0991f36f3c3667ed8cc0f9bf961333f6ce687cdfcb0991f36f3c3667ed8cc0f9bf957dacc7f43b5cc3befee4ae9c105ff1d15332fcdbb6d2718f50b8bf950d44fdc770247fe28e6f3d878f29fcd66ee90fa9faa9c895986842d920c7792185bc41c6e1ae2de33240dfefe7abc792e01678fe7ce2e092a4b970b0d5e4fbbeb219bc407b47185654a37710b9be70e2629c62e29173241579686071e2fed2c433cf7fb764831edc69064b8cbc7986508856930d922e2ce2e01aa6e2eb7ef4841611b32fc7bb40d2576432a70f9a8003c387b937cde6b0fc78ed9fab2795f1038ba54a1f94797712d1270f2742e07fc68f8fb9fa54a6f4ae10e7fd2d1e69e753e6723466937eea0318d3f965752525098a492390485e0deaf505a3f539703f2123ab35806add9e59901aab157b7af3f5db926be2dab34a60536409549af9f8b0aab77ed248014a675c5d2392b0a967eca9d6a1a5eaa95d61fd990ce9621a28d4d6e45052e29c56eaa7010af9cd972274441ecf0a7525085fc3206eab6ec52f6a1acd29441f3bfad25787fde94e8a44a6c9162505768f56f4b2ca9b03d1cab6788b1c552a96d58316cb748a4123eeba48ab6319878ce8a813b63725b979abee87797a00b218c7afdf53f54e8100a3567c5a1c18a5dd92683155e04ee18aa3cc81d9e7685140be7f2eecef3637f9104b1a9437cf54393d00eb62e870b761c4a13e1dbcfb824139ba415bba904d70f3dbf5407c72fc67d7448099bb342f9451bcce6413167a3c22595c09b81b34cd091a5fad57232cefa78d0fb146642471bd50f2f65b9e0da77b474c189f07adddfe4dd5fbe59ed96874af6212c372d2715d6df5099ee3fd2151ba7b15fa936fdc41a8868e40fb5e9a136fd87ab4df7e9f727aa4e110545076169f1018a824efd889857d350322f01a2a373a90514a80edd2950de3e7f2954ae02d9b78c00b3742a722b86efc615a33efccdb1119beca814a66060e912eef19aeff1412ccca4c0d1e17770f6664bdf4ca13a101702dfbc47650e0ea1c48b9f5f7c3ccff661ea3b8854be62a9bd767f3aac3b840c03277f6f5817a7e81702bb58a1837f5258b799f377f8e9a5e923acfb08eb3ec2ba8fb0ee23acfb08eb3ec2ba8fb0ee23acfb08eb3ec2ba8fb0eeff46c741cf00fd8b82b797373c6fca4d7af8419e73d3e6efaaad8f0f891136a4ff09d6f0bf7335c08735fcb0861fd6f0c31a7e58c30f6bf8610d3face18735fcb0861fd6f0c31afec758c3adadfaab8ce2e77f3945187b9b7dfe2f28d7bfb6916fda76b6f20feae5ffac041c64238fb09f978033f88beae53ff26f1ef9377f13e3b8a5e74b968dc583c43440ee4d76be6b8060a3529953d1a1434aa513d289a973e785211dd1399d84583aa47c30539039bc12bbfe4f4d14bc33ea8d171e76fbda7df1032674d5b4cb0224895fc9847ee2a11d68e40f2ef4e042ff515ce88a487ba97e095da28cf8995279ba3667e3fcdd90b3cc495046f89b4b2a94c3a30379cf2ecf6dadfe3d227e41070e4f84b94904819b4a71dd17c0ac101bb0a952d93afee6cdc4c0d64f9993786f1e11641e0feabed061c556e0cca4984de202ed6ce0e8c4d6a9c0e1e8c232bcdcd6a9589860be9570b94b68f3bf96e9f9e121f4d3dd7ef3038e7769d71dfc4effa2bd6235bb237ee2c1eff4efdc2bf69f507be5c1eefec3d9dd85422fbc4e9d82a5c652076b9c61a621a69621976c382d1cc32a16a457990673b40ca174748eb0f4c1c123d14e98d80da977d310e682ba7b5f90526556f4c1d4e36251c16b2570132ff6d851ff7e9d0e7d739f0d975ba162d6805bfa42b5dcb22115b833e5cd2240611962e0f12062436aeba05d654ce0f1fe7c915881492aa59bc647d350766c481ddd847eb774096343ea6c190a66eb54ea1e77854b32e8a075390181932ee78b54c2dcb37c30096e6bf35afb7eb453c8e14f991a32a232058cc02eb7c27157d8ba129bf2ee7d91c4a47b447f0fce18fd3dbafe6e0ec72c4ca9d89b8ab1a953e7e6b9d249c46e4c0bb23b0cbf6443ba301311b7f553b438ee4a8b8fcf100e0b820abbef155598219eba091739f0994bfb601eee4a9714b70b020f6c7d50c2eb5a0146ebf63e0fe9b39b2c4b94d6cd8ee075e8e9716e5d60ad6be8f829256ee7e8a5d216a57a1fff6a053a29d31f4811d8e2efade1357cd4bd7e84b71fe1ed4778fb11de7e84b71fe1ed4778fb11de7e84b71fe1ed4778fb11defedfe63081c6e8af8b712765fa7cdcdb59565b5f9f1bc96da3bfd74e1e3d6a5d3fece4879dfcb0931f76f2c34e7ed8c90f3bf961273fece4879dfcb0931f76f2ff423bb9b35cff167bf97969979b54af2f26bb631aefa064fb46d9c6af1eecec6b7af08bf2366bcb9afe89c9e368e89f58d6f8cb2373f391caf44fe7385fd2fe25d16951ede602bbf365823e6e0c31b388001326c27139710fee4c8c5d02141ecb6036aff90e09efc785a91f7dd30098cdd395803e1ceef141e9a6cb820dc7eff0234c4f994980c2254024cc4061f1a01266cace521906d58ce4357fcdc75b4ba7ce967af441022a97884b271c578bedd89fa3b6e3f0d24640e56fe7214339a4e63b3a47093c557a2c83bb04aadd98b91593d8fa29167830300970f45826734266eb10f8d1e1e3c049a458987999c7fb75adc76e8c1a1ab7c0c5a5a73207d3887c871031538f0b819ffa26848dca945658c3e1322626f0c63b7feec37135257df900f366ccf9351c951ee9918b843b9abab4b354aa7413b774da678d65b99ec61345a3d68a8ac139c375406b01742ab70ce92c40f81b2073131009bc48093c77747938662e74e07af01cd9c03f7513105b2c8339159a33e926314af65ab0ccd9212ccc23b8ca9211fc22db9030378943cf50e033b89328b1fb716e109eb76d4b276402271c873258fa2a5886c25464342c5e2fc6a86f43058ab0c68126701ea3c522b38e1551014b7f8d0bbe8cd1afca34d6548d7ed52a66a5840cb38e235fc5e257853dfa961e6336c4131e0c10ee914bdf2105dfd6d1fac5163b40f0d1081037b8b4b475297652291678ab6ce780ca3b137182ca8ef35c619120b008cdb7089ab00cb1807011664cec2678e69252e610d45980edea39e4b68e6775d972ba70abcfe083c652f64a9dbf9b86152c122af6d8c1fb5509f884234cb463e3eeef85ad8f0a93080227a16267b62ce6db7c8ee64c8a98c06781974c0bcf503287a56437a18f750971707e3deeeed443c5032f010568131223a5f4082a77082eb20ce152fb74d625dff9a85c35eac3ca9c84cb050ead7961558ca1459cac4d816ae016a7c592b8c606fe4a1d874b76802fb666d896a45e54bbf7b6c4f53c64a6966e059e7ec2040ea8eb1a2f2387f40a87a703abe527f793277d2b154b473dfab66efa4e32f245e232076088b95821dc3cba094dd8bad2e0057af7fba2198f3b13332fe1304bbd94a0b7929a7769a482921f85a9c2291107d69cf2a64c69631d9d56b2a6bc01202e8509e60bc98596dd041c9d8a3a98a8143a15343cac4065ed891ae6cb90ce9c8ac64cfd10b8497427397414f6cb80cf3f81efbc1a876d9f0ba34b363d08e1782f709e2a03465680f80622a06a58bc5ac3df59a1b013ae12b66d09fc71390f771d5c040e2589fa1e3faa791fffa1ffc29d89a5cba32303e296972e5886b4f9786bb3ccc1d6bd9dc7427e4a75bcd1e269d2494ea5a92bc04d8e7ed7c72c82efbabc7f06104f715209b3742e12783a696838ea7085a78b9aaefec85ae20c88c0ab815fe0a371e20ac2164c634ec36959068a204cb08fe5db43eae02583f2b24e74b3ce38e92690e7826a9132954332b19b2a99652c21deb73584df21ffafbfef7c0d8e0fc10c5496fa359e7b449c3b2c13c279c1f7d5fcfbe7cd5f8d38d5c019064c7d7ff5b1347eb84870c209e9cb1c3fe2dcd73835a550ad6487309bdac91d8c2861e6ed6c5dda093369e79020b7ea79e2b53ea094028f787105e9f7231e5ce85d9881ca619904ca81fa1d97b15df8cde8f7f034598b68081f4d07f4abace15c1f661deda7ed7b4488d797f59e31b8999c32b3baac4573cc024af49e5fde13b88977d671ecf67885f5c6803480150e09308857b64e610e3fd80921e62b177a823207bea3f2781009e1f551124a12e796ca84a621c50a1f57962e610e295270ecf5711456e6f0dace34c4d4c5f3a37173148546c6678f07874542e31e4ba19d831e7f2ae6ac701038704638c58b01d4adac5effafe13814d8dc3713ee6c690ad44db61e4f571b151d53c198a9543a33805900f19b1d3a02c3efe3dea814a6714bfb3fa233df3282cc2595f38265aa9a6fc41892d52cb3b579b0b52b26b34226ebf325b7620281977097544a47be79f7ec6a5d7d97e72a53c7630fbebb3fce1a7e0ded52463b3eade36f318f74cd5b787f80cbd15f6b9cae68d41bc04546e3184e8be90e07550dac1b1aed8e77409f0b1ee1709c2b95992a9ac500eda41998b20218b55c63dcd4c081ba9e5ce1576685410dd7b89b6ba7376c3434cea285eb9c8d6ef0b3875f5a7da409e43196ce1d5a99d1e916f185deefb687b04941ee4c3ef6efcd44eade7b6b1dfa0fbca75b03203a29837b087e2070d41fc2e21aeebd8f762d0f3fed07ea62dd18b82bfcddcdd7bf7b8ef0b9464ffad1d86fe77a4de33d9c6871e8cb392c122ff62ee3a7e61ca3ae7188af8a656014b3d6401f8781161df39a3fdf79ef0cf34d82c34cc2f7e7d378a518c1d63218a4530bbc7617e71abca75c52891d952a3d43863a49e6a44aee847eb850e17bc59516324836201ec5ba881f7d93c6906e2556c29d3567e8565638b308eac97771e24bbcfd36fdddaedb3858a94ce1e9a7fcf648a29f411f8b44ca1d528ae7f7d6a9f779fbe4f89c3795d99a86b2b5d9f14ed5686ec34bb13b43471ff996fa39ac7afc3e7512bab2d471b10807f76137fba8975d8de7eafeb76568e6246e6d4fac773ed29f5b7cbdc7eb9be39f6ad93aa6059e8abd8a417c7e8e642198da8618d79baca2c2220026ebe2d9214eb8c703d93494dd9c8df21fe862d7b8c7c7c99ce54acf508e9ea1a077357418b80928bc46aecc552adef0f1d99b2da14cbd037388777e703d07249365d3106327adfb9eb351e1e887c836c44f79ff0fe8f00bdc6ff569cc5780a8429bdf24c5d834ea7570bae3b5faf2719ca275698fbb9a36f2890098c67395a553cd5cfc0cc165ca852e41e79ea1c4b5aeed6790fe85d00deff1da9f85431e3f7a115801da6c1fd7eace98aec7c2606e7a77cd2e36712dbb7837a10f50079d233c3ddee0e41dfafd825f2ac89ebacbebbab9433dc063fde3cd78698197d0f16c021b68f64c2cbdc6e7749fde7f004b43aca0fe6e5dc3f4ee7a596aa38b721266ead21eccc4c024b4bb72f4a2c382816dc8bbe50d7cdab5ef8e49bb671fccacd2d6e5fed8d0ba2a906700a0aed960ed4198421c30c4bcb5b7166ccd17045e895d12cea7f617cda1cd07e1452efd2b9937bbd5d1c6bbcbf83da87f165ee8876b60bd029c061a06d475c4498a2a64023b85bc0877f8a32f86a6ffc573b20ca435c0685561af9ebb4be79ded086d73432ca01e0cf598ef8eeb0e5e6d6d9eab741c837af5d925bdd24d64a8775cf08d0098a553c49c1525105106e4891a2e196b5c9c0a6154783c3d817dc8865899467477dd65e47b06055c3fd3504ab7dedcdaf99ce635df663c43d941fe511f4f475773f67359254f2ff6e8273ad4d14d680cda41962e433bbf999f72f39eb87442a6e1bbd2d923e8ca9a22ff38e4c119d489109e7c31961a57c5d8833c2064d0f1835fbf2f807675e524dcc1528f7dd87faadb7e94f50c7dcb03fa704076f1cc8bcd54cabcbac8031a57c7ab3a7be5c6ce4c4060f1907700766328b1dcfa3959a63293e5555b3711b710ffe49e2f14ead4976702d2d2c5b36d28f102ea533a05693336756c777bd462ad073532a5d3b398c42197ddd8efb70922cb90305ba71ad85ef76b2574ad274fa59da95385a51fa16cc6dc842b5cc28addc8aa1c02dbc1b92cd8f171c1324b87a0d24584333a47ebb276028a7aafcffb3a1aeae7c33d8666ffcaf3a7eec69312bbdca4ffb7b9fad7d6fe4136f6c7e66ddc98c286f8af3cf6efe527561d6bc6fe59e4181b3c42c78fd0f13f3e74fc91762f01636d9a4f18461e43fe341e8fc7823cbefd27c2ffd61ad0641517d791598e8f8cac1e5da1be2d740dbfd19776dbd75ae35e55cde2345c2ed69a0db6d8747edc8e65e56dc390ecd450e73e509cf7f33edc097eae1f025e9dcb741eadf91547d0071dccfdbd375a3d1fc972e49396292b6f316f0793e1797ed2c671aa28b96d2f396e667a721cf84e3555f71b7252adb7bbe94e7c4a2715a7cc8746e24ccb24dc92f2e11caa43723a383965b858d0c194309ef857be10f6ac9bca82b99726a3cc70f4a83ae5e281ddbff307a992925779ba394e8784bb8ca7831d4ea9f3e70d313b7805988962fc94baaff8f38450240437f565e62d6d1f82623f96bf05b7d52ddc9a20c49f590bebb33e6d7d54783cb7370d315b1c97b0af195b3fc3764f73cc627c94b531926bf0cef423e21cc7e3f114e7c0747a50358aef0212445c2e5225b009aeb2d53bc1993ff14e49fe83ef2499d241c6cac58136c7f2c33c1f2ecfc3258e4d5660f924cd17a35db9786396b94b2ef1ea209ea783bc2a94f982dd8bebe961b9f0a7732ab4f56ce36471e0c65ca0465c3a65e0d89963b03c4cc7dc2b5cfa49341e8fe1da2da7dc780c750338fce0c38420828cd119df7f66ad17f0bf3ab8d926308c26f598fcba85df36fdc69898693726d360029308e20ece7f62ed78386e9eaeac8a6e03b21d4ef682aedf1bb77c67dc93e5e7e3ee55019213baf4665081e48e6b9dcb9c58c24c43accf62476795bf0290c7c41473b5d2d479ee7d6e3163273259293c8ac2cc33c6c2d82ccca339f585e0b0f531de9cb044e62c74a5c88c22da4fcf22c5504601a204e884a9ae8601f35a9d07cfd1829a8fec3dc855cb3aaff7ebdd7b9a01cf7b1aee9f5ef658463f3f3f9bda719a8e76fcd8390e997841042f8a3b320ae0e8f130cc56ce045777864384c662ba7bf18fa6522413893d1c75927bf32d3a3cbfabc34cc7728c1b1a59116d5c4e7e665d53c9c2ed726aac47c7ea69b9398cfde749f084bd8f7dbf1a2e07a6983de571ba72cbf73455b36310ed67d52689f5c311a3e8dde9495bcb2e1392e77220ce97b2ec12ba36e0b2e78533954981384f8ce9162c4c3b36d6dc7cc51a5b16a737e7f275be64cf6b4d610262b1395924964c04879eefb3a3bf9cbf49a313abbc3fd99cc8d06bc7b5368574789fe313c674cdc97e9744c7f280a74a52cee5e13a7754f63c1749f9f43e226433a0f9fd6eee0574c268b329bfacc6e91e4f557b140cc95252c80c48c14a386cd932b3314f78df16afd343459c6d50f0875c3bedd809832d0ca6a8a227ce5c9a42292c8c6595bf0a73237932cd9d4f0ce8042b9c78ce895bafcc46f8bac87169ea5a4c2aca15cf738224bca45377a7ab426a2da7c3e02008867e50889c08cea53d0915eb1410625212c1fcd979578efad3fc5dc797aa152b1c5b6c84fd72c515bc362fc393cdce8cd961700c197181a98ab85d464feca2c8808847d94807efa374e18d4779c159a7a852243e7f9fcaea5bc286bb62a008d16e6a858b2a1d8fca3871136a6eb105176beffefe89582bf374996dc3fcddc839300de731ad2f5e732d0347dbc334bd4a8726cfbb326631f61361cde9a738dc25cb6572f429e1648183a625736ea055b3e36a3004cb91760cd6943da57872bb4865ca4f547d471de9f55c78a13877ef678ac12e76f6d3c19bec06bb7cfd961d0a7f3dd10b615a6004398f4ce1657e885eb3809ccef62ff160a63f6be27acb28de3474c17927cf98427bb21dd6cb4665a418096ecd047eec6d648d0a22c9d9034e194b7820bb929b17d49a22aaf3f939e388cd62bdac342219842f4ef8249b0b7b38df0773219998b8b5c3836c3c7cf1283e328e334373cf3a7d7c9e2b6fe6728283e181d018dc7b0a0eb160946fbaad4f07d8ec7db5c765db7b4e9fbc43701e13af11472e76677a1a2f02a000879f3243919f4c3d016ce7f6869f17b11dbb85bd081d3b7e0e5c0ad3c2e7f3547a898bd777fc553a46e5d32c3a2ec868170dc0d364f004560c631ff901f5320c05f2b45479e06973423dbd50afc0888da3baaaf2c9f464ac754edb38fb33b614d2f37cb9c54ba0855ca287a2bedbcac22c90b85956c8d449dc93e3f7937ddaa4e6c0c974b99ce213ab0272a4bc9c9f0b9af5e277f169ff3416dfa2d449165619da07e99519e204b6a45e98f5798a0f176a7948d8c4a836d411a7e4626abd13fbf44901e4f495c4f2d089bda08a637a3c7b7a93942d4d9d9fc21d86bd07313e367910702f6b113fb0d2927c61de87b9f9fa64a71873581799a8705be985b465127bdebe59737e664fbdc81f5804b3e3def2247d627cbc1c0d7771fae68ec9153e6330cb276949aecac13e569e4fef9bed73b67f654a5cc15fde076fa79d30119ec072154bb6522a2f83e7e366966baf6b7e9e9823ed2ccb10415ff1f88d6287d67087f13b8ce399f85997b0ed562246cfde361577533793c489ec1761309a65a7501c6e8c624f0a9a5d0e00f7a294bb6390bc0e7c6525ec4ea378531c9676822d8ba95ae2613c507850ced265b191ddc59c5964c272777c7f75b7191be583ed4b3c60d6af537c6e4d3339dd5766aec7c6098bedb7cda04c0e79f42c80e1ebdb8b5246d23b264e72330744256c737b33dbdbc35339643c6eb7e3bdc84fe7d56c96a441e93dc9c9648763ee137e58c5cfcfc95b490d7d73ed54aaba64ece720e7c0339d1b54c18c7cb09c5651846de5814ca9cf27853766bb13384e32cfc8b2f8a46e0f4e79dc6bc56ab0ce8d97b7c3f3184019bc5589d599977d6d3ce6c7f3efc960e15b3258694b244faf12dea2a5da54c9a3c0dad1466b59619ee283b9498537cdde950326da7387845df17b3ac0e60e779acb9c1c80f08967752f4957c66ce3942a317d7bd1deb8f9abb81a8ddf2caba281208d85f854b943e97c3e9f5716ef10d40b5dae8e8c3692d60cbf7c55b198789b90e1507c3e3ead4e1375452ba32533b1f78303bdf24f92a190736dc5bf62ab64ee57ca64e82f9f078b81767a1fbdae355a980e554ab3768165644ccc8d9273ee702a70774332f2c7c3d57cc0b845846f5d2bdaea60ea2dfd57fe3da80e42a1053eb67b9dd8c74af47db0946421c3776ff4ca9ebd8d16b8bce465fb3d27278e3d986c4e032e1a5a58500a31bd5a82794a24f3d131d9be88936c9da74530dd556be66d3e719e0e4536c284f7c96cb9cadff0c9b6586a47c23b6d48327d3eec75e200a8c37e9f0cb64efe3adcb2d1e04995ab97e1dbebee7df9322b06c173a94db9c202b1faf2aa8be67ca2bc0e84e3ab35dbc49b89896df7d1b39a95002487d47c298b4138ab2685f30ccc7d300ba8c0b7d4e57ba90ff6c95e52d5d89abf0e758357947cb6dc2da3ea4d18e24e3e944e3af1be239e4460b21bf9955ef979446c597b287aef7ea826f91cc3971e43e83c961b29c5cfac7d2e61fa28a57793521b94aa5b4a9ecac6d8e2fdcd0d8fc1f1a00d16058315e950b31509b34b9fe4e76b6a426e9703629099fa8a5a5241e9665092ae9529af4f757bcfbc0d17ef83ad4c8f22a79824e1eb944b37d5f370e64524a1272521244bac4cd8d3c01d3ccf661a21976b8a89154216637ea1099915be846fc79775e62c1567fbb28a24a4274f8c5c7e1154482e94bcbcd593997b7ab276fc8e9e4c770ef4eb2424a571dee357c902da4c2c37b3f883937d91d489a87b4bf19c93c87082f3361e2a8b03ed87f3387cd6cb325e84ef7b238bfdf538944239b54fe1bbf8e2699a1287e7b338b1766eb85abe47e4e1309bce9ed8d5321f8ce77b2d1a6a1a49aca3b33b7a19515444e5cfe5191fba6f6366b80dcde57460016d6f32b86eaf24ff38180ed8c56e4e3b073700f9487ecab9a7e840281bc59a12059ebab37c637b335597f4813b92f6f8cac7b2d56198caa62965ef4a15b1ab643514c69c5f947e208c8e4fd551db19d4ab3acb9e528b7daf428b8c5cc565b6afa6a89e7539e7dee8f37e682cf0f8e9344d29febd3adac28bf632f5b695b72e02920f5e493bb0e706abe5877dea99b3d526b6a3e1400e23c1a6a8b7a76151be685ccc50ae5811de3433782e97267a1197effa2e2097c02df6ef335f983e0b93d89bad172a3b35041e1f72d364e1ed84e71d637aaffbb5ab649c99e9c47a44c7ae25b983f5b356628c5a2c89f1dac9f20cbc09ebca13d2b0e0584acf37943f54d71426be31ccffcfd859ebe0ae6c5bfa811c9829fccdcc9c9999d94fdf5a5be7766ff5b9c14a9d3918258dafbe39ab8b8d33c90263d08325a91b0f9d80e8080461218ed3a7664f1fa9808c220c83d1db8e10e2c5e4fc76d0004cfc9aa4643244d58996d7d065587cf5ed48f0bb1ca9a9e262659fbb410e91e08c557751c17a5231f87bc2b8e47c633f64f7d561c6b62fe4ea138b46edc366246b1d488cf1e90551ba1484b1c39d6bca88133f78a8b0eefcc8c8c4e200d5d17c2bcdbccc37b2211bf414c07ccebd7c0e9dc88855812a5e918ac7a7fdd085d4fbe604b8b8da6da568c9c4cbed510374e039fee9cbef73546cddff89d3cdfc575fe6ffb7be7cff775ffe1f66f02fc11272866414e04c72f8ff7bf1fbe7fb7f323304b5143357205644a955938975ac39718d63cfbdcc56a2bd25abc32bc70fa36ca60620fe8dd295e13b8b3a7aa097a2b1d0b48edbd6ba8933d7ae8b611094d419aeb46f92be27b9143a1883a6719224d199c6f13ecce280ad27e7aa44b0424910a4496b01711210f85f56ca82d8cefcd83ca8212ee6a8f78ffa2da7376c0ba1389bd73f7136b992112aa34f6366f2ae45be3fcd4b47354fb4f4a7dcd0fcf69fe56c8511b9c950d950f01bf37cbccfa7d459233bba9322b4228f3a802c2b8b66d039e666a16b8013b7cc52cc52f173bc30dd5da4bbb8df5ec0dcf9e588136512009608ec2b997a07a62c51fe94b9b4784f68589ae1ad31d33414d8826f0b9493a7d0b0c6d8e26284f1eb4e201099a0ddce89cd1a4cc38a415cbd6147777141cd06a148d442bbf36ab3a70cb137bba1fda8b475669c6578f8e761626bd48e3e7cf1a0281fdc764852a464b5494a570e57246e9a13417cec4ea3536fae9387ae93bbbcfe95c00bc1495e48a49657933e2ff903f563b2429273982eb503dbfd98af6e13d18460e565ef31ff889649b545acac05fe7b269943e446e46c48fb3567f54ddd9ff2331a9ceecf7822a554e78e4f8c1df1cd89787ea661ed10128a9c2b6ab5ef27ef29aac71785c39ccbaef2275077d07239c89063c58c0f6f619c9bcfa500d5d13278c5f6cef53173caab78b6ca74a61f381c773221b5cb6ec24961eea01ac255d18570944bc6139a95db011d3a7590051676009808c5d960e123525e1f434ff26328c2a9ba2692ad250755a6de6c2ac26b657371bb6a253fa2760699bbeb18d450fec190d41f29ff888178df04735e3d26a0398bc8d36724f7142b6e69d0acc1e20d06d73c8921814f9f6fb07090581e82a4418d3fba58a1aca372cd99d854f240851827bcfd89e1b98520b8a80c5c6e7300d247a4d99d049490c3a2bf613de616b72d61b32babd0341277c399b8d3a620a847a289fda51de99d51047b773c37008cfbcbc089d31dc26d3c3d03731b6be9f6dee987d85fb313dad3c8ee8d80e0de0a532689f14d64943870d7ade0f21f4fe96fb73940981b2d7e97b744186f813d703211e8208bed59df0b97e457a040803497508f31d64eae6398860196ee11e2b120fc0ab4894835bb313a4c9bce1466a2d712a717c3039f99fe1838facd99f6e37a9b401c91beecafe5efe124221dceb6f7a50a3a5c304fadb25ec022aa26ff228cf0d36850d3fede7b31aa9361e0d9fc53c6281186deccd7c1fb88bc36af9bbd1606510f13462191382eb66854a3dba85ea2b15f3962e35278e9cd5e4fe6a7db289e126719e5f2397e7c0958e463afbaec0b94e7b5130d6debd0d4b452766ec18686e7e60fa1782fb733d83c498777c3dd04be133fcb72314af9140d8a1e50480db8ec0e0c983f1fea992d8a828af3c4429b7b511512b3c5443b0f48f24e0d0789da745a52a00b8471571082ed4d4473091e6c3d6c393240271824bf3b43af84d59f409ec2eb4df6499f679840bdbec67973446f69786125c5d4caf368fd75f9bca327de2761fc714c319712b0d0d9a1a633f8636e34ef20439f6d7f26e0e409b55cde10bfa1118970684211835e923ad7eef1f65046afe5ac18bbbc54bb9fb90ca78659775dec4ea6094bf37c9575f954f5c61f5a9262982cbc7bcd8db0cc32112037f2bb6b3d91eab74269003489c7d5b4fb7e28cd5ccc50fc222ff6c67257144ac242cfa143c962733ab8bc9fd544fbc0eb16a769ec69256ea0a86883ba93f6a98d27263b6ce1f7f1cefb6672f489b1baba06e638d2d9a30749bbc65287b474c88e1d665a46b7a761117a8790756bb968037ed906f65b009f29d7bad3d5898b1ed16a525df6b7aae093c85c87d283c03abfd3f23e0bdc1d136dac85b30c62ab95b51fb74f6d7ba780229a6d09e140fff96d1868012dde0d66a930ddf95c44e5e8a9d7bfac0712aa4be710665698d5f0aabe2aa8628edf483ac32c5dd874e1e32a8d561ca229522f034ee009ed5becc9cc89c3b85b82aa8c2d512c073a9468b1f3793fbf0f14bebb86c41c61e7e6023ae47ad7f3c21807fed1956216abbf5c9f76a7e03d72f451b680d8cf306d37c70928c5a302d915baf26276658cfb0677b14711ad01bab1880283b250ee87db5fcf2fe6aa5ca4c48a0a72a3c25b02d0e7db007f30a8bcda4eabce67fa173374cab213b4aeb470015d82a59cf40fa4887047dc143cae5f05725565dee4f2219ab642174e2bf4e46d1abb2b2f0e715b5d093e81b3853492451cada3f1c1cd5ed40f1b0c64a14b406af43c870e38f25d7823b19391f3486af914f2d4dae0c1a7909eae76d476e47d28b968cbf1398e0ef00bf21c64d32d754229cb731fd3dee81e37f909371907b28f0466ef6209efdc3c68f3c7c1ce5791c7e89d29d849d198c8478d6e7690c370dc9e561dfa6ce9e0490e356915beba6e5a1fafb41d5c295e81086830d7d1cfb5a2eff8866219ce77497c155ae7b6c1fb72c4fcf7461e7b497db55dfac5cd9358935c5e3df8969747dc0ddf14711c139645f5174abb7ccbf4d858ad63e18978c560ffc1c94a61afc36c4986385d0e5251ae6a9f4bfae3e6add6e52be788aa795cc07b42f26a4fc5f8284a2737c214cb75f5b9fc8a42b057ce3d7ac0fa5a08829e7c84dc89205a8edd4c77388f33463d2fc797fa422c71471255cef45314b9a437e980eedee047e09fc34d2c69ce1a2d4a5295d34c360449cfe6e283fa8e191288864aca8fafa915aa5749d8c2e80b41cb38164ba1812af0d604ca9dfd90331df39317a2561000dac070d7a3774d1ade49826497feed8a8a069fd8543e7350c1c9e21e3ab431cbccbdb0ca9f80625754ccdde0fb4152724f7a3efc20ea22d56ca3fc17ac637c8706ef2d41756926dff07cb0b5d6f1958df82986159cae52cefdfe33c06035956bf8a995f7244722f9a998bc66b93c4ce1ffd2c7ceb65c5e8830c5fd78f65337e70350dadba0f17872f0d61f757204523cc420f912cff77298d9e67c2265d2c3ed598ce3a487c4c19e38d3e1f9ede342a580bae3605c93605b4d9f41f758ec883b283a0f18d42ff36b303399867dc6072bfa33cd129bfb4c0464d98a583275cec5e824a4ca06cfd570dc137ae725b239bb788d8af08dd93cd8f8925ffa94b604f73c78504f3b50c824339543737441748008fd92d529e8b9bc841fbe45c0925b8247756fa9628530211d6a00a59daa14515f88227f3f6f5088fcf69b6a6567e9a4d10866bef7cbd9064d06442b6dcd9b43485213ee6ade33b3f20b813b72378833402813950db90a19812ea211ef193ae686d208481a3f0e47249f55586927478e6f66c33e2088f93b45a2e7801e47992e1e0cf87160ab02e2721321b41ea92ece1b50903679a2f443f3cbe628bd9b5eb807e104846b27e89a1310071f48f1758534e3fd5960609eea5f0ab4465139bc8c428e13cb37221fdf1e83f719db344d44102ee1ee35b720c9524fc338e00e3fa0e12737e76709237f8d336a9432bc66484e24b73a8f425717562d74c4813c6d9738d8fc722106b7208e736dcfba9ce3cb06bb9e518f0e5c30947194f23aca5f75ca5f0254bb066a33099c141a22a89606bbfcc75dcf00ebd3dbc057b2bb86b98283b7e5eef7419096a194701a0368f8d5e118ab4645e46b45ec31f643ef81561dd223ec95fa27a6e358dd7546840a3602985cca755dbca3d60be5c53aa177876c4442ac82cb8c0c9a1863189a6761c18fa8be92d73a0ba20c1e68d595fda9a33d7faab9f6b7570a960189cb1507fc1a1966200801f29e65eb7e55fd7a295a135e423965e034d11de3a4e138fa9005f3cb79de40197171d17dcaa214d8349458051fc1664074bf242e535af182d35ee1d8a4620cd845e2871e76770640762f6802be4cf5e6a4fefa459f837c6e82afc64c0f2991164ccabb38959962b686da552ed24a9254f18198ac8c050ccdd8587e2c14aeb6cb63e274060a0dd5374a85c05390c413e27304005f87135f1ccd8f161eded1ab748dc99681b9fc7546daf5e6d1e9d7389822c536630e5504ecf89d32960f88a0e5b2fdd0fab2798d004b5c2f534580d58ef302ad3107c411246a2727a9324b72599207ab6667980313622cf1eb179566b7d90ab48ab427d9b243a96878f24634538c5c691e1a88db011ffd79d373597b34244826c64616eaf499e421c539025b7cc498f9118c404efc64ae9ae1ac17a410b2f3e2ae5236e4c25e0f57f357fa1bf7e073191b46ae40781395c8c13f1746a4bb2782c342d3a1e25c130c63c308a4c8cabfe8bbd2a192aac8f9db3d8eae447efbc692922b8af29d6065d712e295d45205099ba7746d326017382181a2ece2a26d306e52adc00236a113ad1374ffbadc06d14b29b5f246aff9724346748f18ef0b77527b36069876f787249873660f86e4a8531a6b5fb352bd831f768c5aac283824d3777c7c6a7b22d094b0d5cc411ad5cde48b627ea2d9b6708be1d5bca538f03f1e0267c4ae95ffeedf4f8ce3bfe2f66cff97dcfedfacf13fac1e0acddb26199b61459010fd7e61b0df2f8fb42e332f57755cd6e501649e0e752a9221da10e7a66a397743cc5194ce00c1911a41c0c0cfdb8c671369eda699f3e7f70eb9e83cfe346ebcd324cafaf28151acbca7f532a435346b242e2ec847c06c56fc30cfd8f011e6d8138055d6a9eaa45068e06bb59b1b3bf744ce0fca8c30c4799b21afa4a929ab848260f1695ae4088f71977e3483aca9bbe462ca82e308c7c01b857b142bfc92e217d3e753dae52efcc37465e7a11ff51f8684ddffe53efcaf4c57fdfd15d355b2c980e2f0d9ffe52214a134d49219c0e0072f4b301ecf52ea997c71da2fc37b29a845c4b5bb8a6f44dfeec3a00d1f63a9753a35713d244d6a2f87d13d6b1172599397dd5c1473ee327fb6e7ed9aecc4c2cca681951ae620209d73a4c9566a197a9d1a85964813f58dc549f042eb3448a2170c9028faa10940834dfa13224db7e5a1eeff9c1c9bd2c2fbaf3cdfa12533b3f372e3519ff4c320f4807ccf65e7ea387fa2155bf10177c4a6868fd0e02b426aa420f5b59a0e5b668ce04c162db292219dd05748cf088dd02b5a98e88a6edc11f642f0dc0eed7d72d9d6c4c1e75f8cb39d956a9ac5aec5aebd1ba6b6f921f273cfdfca0531a3d934d0a6aadd61aac6ba057d6b12781ec3c9fb61097fcfe4be6c2abb843900c3b0fca6d6904296e34b6a315bd724b1b35d6c693e80be6229673e9b30a7a68bfee94e6e97939b4450c00b6e46a9821b8086312a75331abed31e4bb1e6cd6992a421d7063c7d46dd54e75ef26db5bf14fd7a50739eadab23a7c33dc341dd289fb9c772d0ea55af07d84d283d5680fe85ccac3221dab7fc748e49a24c58b320c3a78af77692a9f3f3ceb1bc7baedaa5bcadbab1209f58e17e24406e4481c0074193ee49465c039d37c233875f9150c7a66eb17b3cdf3e032b67fbc2a08502b754216eaaa65cc43be704cc1c71b47f0eea594ecda70cefaf90136a8a5f541d72c3b9bbc039b4b645666e0532e2b5124020507162c0763acf5ee40b3d7937c62fb216cb3906773f1209add0e5f18498bd1ab492ead4e40d7474b001b4ba7c800f71435ccbcf0a80c19aca5c88cdd75cf167de8d7a0abc7a59f054afa94d5cf66c78025add98aa086ff3710e9401d4d559334f73db2e0ea3829359c6ccf7a9481165f81ac63fc8d2dd3b6361a11a2459d7da9347e0f2d6cff6d450410d3fb1aa014e1b2b19efee4f4bb480c26b381bcd72472d89cf3155ae9b814c976066db961e0382c34d9179ae8647f1dc4306a462ad2023d08704e611a66ce96897d8488c3c6b02a6fcaa3c3d482898a3e2e25500da2740e61c4537e3f1f8d6fa78b588ec2b1f9b349ea26d1fd97bf6ce4dde7bf23ea5d1c92232c66cd351b7b95060fa7d4573dea3c44ccce7ac94ccd424555ee4667515d66b3616028b08214dfddeaa4a620bf7e8242fcaad2edf990d0a8240a9f2e270120322f228d7137b95a4b47b7e14e4a787b4a0af2a719b9c41147faf4a666d67d1038fa37c9bbae3318b05b9ee2cb39b719aee7a98093d39d3f312a883d6606926f544b98444487d79b66f26d24aa12d94283f15ec60cefc028a969d9dca7e7e299ba58c4ddcda128709923e5a33290df4e52d05dcced81764d18dac99e8feb425458dea959b9d014cfb5ebafee08665bc8afdb539d8d995ace4187821fc47f5e0d04b53bfa286c3ac5d189442f7d00d3fa6a06866ddb362f385f1cd28f65de2bd88844e5909f57c40d21d9a5872c6310d316583817acec7f0c447af1ce24ebf1b4442edc3f66b3753742da300d6196f0ab172582f1c4776fb13c7fa007f08c94318366436ccd0d1884337b591c4f6f2ae11acfbea4030f5945050120f2f10014105fe9888803f338d070e3835551bd663785566cf8cb521f5198fa2e602ffc9f397b4cac80c9833714773d3896f30a38afc029a1a2266abbf96f95d2c2ed0ee08772df72dc8ddd0707f618c82af903d88a0e0a086f8bc2f8fa1c0b1083133b30b8afc66f1f232994e7e7af7add12735239f1d8941bd94b3b99e3130ca433c84b16f0bd03f2645bc070a7901d2e91ebe605269ecdbe422c7362169aa0ede74798fb0634ad0dabb621c3298fcd4b52fe6e2341d48551a1973a0d779a67bc304c704dba99ac1de992f0042a828bed026ca4b3695920af1676ecf2bc0f5caf8c2f4e027f7b13a76d8b8781acdc2d1d6352a913c997facf2b7b7377e1da16126c7be12f59b735aecf9ebcb76fdaf6adc8a5b086ee8291d05b25da7a81f99536b3de0d72f73b7de8592b60ce46e9479a369b3b9deabfd0d3926fd057005930fc0cde98b2137d8f713dc245a04e5a6e021cd9cb681a7074a75f697ade6cb73a3541e625011f7c8635ae12a6804c51abe1a64d41af7e08de5fefcb4f342df54a4255d7a55781b8fa02fbf33c706698e8e2d508d9172616a05c1de163237b4bc91fa0022e45973d14a0c8a4f5889041eef6f900e9e3916db110835537e3873dcc531c056e1fb733572abbf98cd5d2490d816a51af2f7edadd7301a4818fa5054d536ad74438de0a03bd9976ab9a207452a3740b773a5033617193e604cb3544c2e253d4800477916652cfb99d072498479c807091ac4d8633a7e6f602e7e7f49a1fbdd932e7af80afd7216a750a96201952635adef1112d69738a484b5be7c553c0b06ef341031b2dc904c66778a20746f7095f6b8f895a53329f87dbb6541eb7e5bb6c6cbfeda63fe24e100ff6e710462699e11f5c7089e9aa1cb0fa72dc94dfd69e63ea1df1ab5b8693791f5550e3c372a7d1f3f8a498056770d6468dd68fb46b45041dabac2bd9bdd96fb0aadf3c9b534269d2548557e11c8a533135f27aec06e42f47d5d157f1456cbc175d682ebcdf2d00f3ba4cd617f9211dba08a9fbb94399c02224f5af1dce48ea7fb5aebf0a56bf652a1b479c06deba180bcf6db473c3a17238d18891ef9cdab13a36ea2222e0e15319fbada90556dd2a964a0828e73114c0df3ed407d2581369767481b9f25cc5a2dc521f9a56108c6cf9cfd01efc1bf2b91bbdf52376abc5d499096631a92ab32bdaf41018532d378d08226fbade3f77d34af3032b320beb0ab109f8a4e9ca73ffebc2937932e18701f32be81e83403dabd63851667fb79ae67d39c81870986207dc88b4e48bf14c85e961ed97524794914496fef947ce30cd234cd8fcb4371f2dd85139dbfa10712a8150b5c692073799aa36dc518d088b0af692fbed0b7890fe2f7c86a566d5ed1af56b4765d9d1d7c06c91e7a6e8b4f0edeaa6946b85eb432b9da5762527ff4bde8a782a8b41cf03408d7d9fae8797cdd4d211745ae6a8b86bc8a24aba2acb763ad170c216e58c5bc0eb354a8c16d8e0c1798cc4ab166cddb41bc8cd096cceaa84c239a0e1c3fc93d070bd36f973d6d1014da5027ffcbee2d29b31a52f08fdd7d9942d8e682d9e214c1b3331c511d5173294556218f0058b37a1074691d56efd736ce177a3fba6f2e6ecd2fb2a70dc475cf44e19849a11361e7df2ba7f3f10e395c7943482db4727341e565cf29a75be65dde017dd31c87ec1bdb0bbe5d442497fac87af88f2e316a6168dbd8bf662bbee5318143821f40f2b421ba3024e062bbf80ac72d48126144d898aa616299853b3f0aeda9b722f66a970473c41cd00840d8f7c0ab97a389efe502c7f0c62c61139065c0fd22361f9e538db4a58bd1932ce6fd7a43530405b961f85ce33ae86c90f137779945edef5b74f0e3ca7ee137af2ad4825cdbc772c9c78f223254298cf9780e443fc6a7cf9d4673e0aac34d95a3bbc477491048692774981f42184edc7331d6b3734c117eeefca2dcff2d4cd544f5a7fa1435d5fe3d52aba15a83f044845ba8e055bcd99b8c549423d3adf650647ec41edf0b42e2e9d74edb85c11f779dd240d6d265dd072e825edafd16ef25ea56fe55401c7f7b80d7dae1eaa57a06c24f8181aafb5d78f54a79690dc8fcebf7c8e7c455f680f93c6b5e3bf1b5fc819b482b71513b51b7ea8b2e63411dc75ec885221cf8479abe47b80395c1a5661c99133904c58d23e2a7ed5eca512209cad0d929194236c1042555325fd78f824af020e348c8502dffba7428b4d2877171e7c399f4921080f07a9f531983b3ee64c5bcbc0dc2581c675be5040d643cb7ad03f6fc40759f8ba682c22f1d5593c1852446acf5cef9ca37daea98aa07be0009e8630ddb6d4d5a4ea1372a08c88e60d7f3bce5e4f030ef949b3be473b8f0a3f207dd1d21364f772bca69658871b884bde07dafacea6160ea489f918f0ee29f285073c4f0855951c0601209e4cce9498c17e5fbbec63d1381353b6e559a2b605f3762e28ae118ea3bf3bc95145e075479d3ed72364b45f863ae0a82f05cace86fa0614e35e182e4e196b600ab0046a4394ebdbf133fc1c1d38df1d385154c5a35185e25a559965b3f411b6e4104760c5c71896d8ec7fcb2461b64aae6e2fc4152bdaf54f26452b043334a348ae73bc17e314821cfcaec063638ef08e46d37c8fd5dd156b68155b69e682d03c355b26577724cd74d440946dedc24eea13969665b4d3d79324067440e0447d34db0923fcbbad36a8171a4e7f997f8543c42558dc8e1a3f76e116d2b203ba2e662b348f11bc5ab9a03fcd1e4419d55d51c954225555241d8afcae940035d90272ba160ba8a122fe03cad5d95000e4e31c21a5990972aa15438a2e5dd6a4c2e0778cb7e83c61b07419a3d2e8f7e5fd008b6cdb5610cec1c8c7f40adf5d2e8d3e2f4ebaf8f520ec505e1e00991f3c69bcb58df75a755f28845890644258239b77aa0478324d0918fb4244863f22c62ac5a1d660718b0c763dd615ef2e3ba8311d9d24e819076f3dcccad1a61a0d84a12de1878a731a241068bf3356143ab4ad391444a805742ddcbf96c3b29f19f41acb1ec4b0f5382577c5b7a09434b1281b6aead83493c97e0ccd663c0bf405d4102570076018eb2b49949230e9a7c2ea6d2122cf59e0d446025f4f164dc4e9dfdaa10f79774b9d45c954d76cc3d9ec560d9f1f54dd5931e5606ffc04bc3959cd6035c54d4032f122563b0dde449c99b4ebd119d487f116e27bd0c0a070333ecae96ec46b15461fec436f9dde177274ccf7a0538d48432fcf040041b623a8a0063765093af0a7c49b96ff19dd41300d4a38d0cae79acb341ee47b90a46310e3c8edd186a004c52eab2d610b4e22bdcea8c199f7a2c5acab9029772c691744f336527ca594056a2baa06969a23f939326ae3b14a05c10f0cbabe5a74d516730d5f5d6eb1968059aa861f6a6bbdd07c12bba5656f7221e296bf26665eb069926145fd551c1ab949732fff0609f93eb926a5d28a6c00f323edc463581e927004e4c3d242dd75205351b51f21a701b1edaee524a5de1e54c094e3b17d5452b857dbbef123a025b5d936a58f2d60daa9abdd40296547f414e462e83d35f370bb14ea5a5ab1a0605961de2479cd1494ce5c9ddc795200381e14d9c205958f9d1263a2befba99656f7792fa97d4be010b6c55796550f3bd4f05a98ae3d99a61483f0cf5da38d77c3ec3c95f7fdd8a923da51b96391e121aab9f24a005d935be326d34bf6230b34ec74100b045606a1def277325407e2536302d59014b9d87f51b6896f25e5d7f6bddcebd54d5e3fd9b92612632ce61b26bf51e48702927df359f5071e916356f63b8f3e555f7130919c0cd04b8a5dd47281d76aa49c6e42a2b27fd233e8803862751d7da0927cf13f6763e01d7a11a5809384708d86e50c52741795a50dda1dc22e1d67af751caa03a8e1974e95e61620c91170cf269a3a1a21d2fe19c79c6a807875e8526adc5001504987b2af9d950597d1169ace35a2f5b2db02130b4a568abd65929c9a54081517212b9a408cc999b8a1d805d2c7f44882355a00639f747f4d50a599cd038bfcc4757465dee1acd3e335df04626514606bcf8bcb35d608f6a145222508048db7615a6169bda32d662013f2993580da8dff67de2282d18b413bb5b06e4f0dac73b58205ce3ac31d2c3885b14f30f9735c326bcab9cbb7fbf96a1fe8acb2a7f359346eb19524cff62b2828fc01604ff622bcab314aed4db14eca593ed478456da8d1e96b263d68d4726be3fa514b533bd22ff50618a8c0b2aad309db2f9ce01a95f85cd186a924d534abb3f9019457fd3617d939682d505626cf973a6b19e75ceee8860a06e03e2e22ac27dd90bfbd2e5ea840da5682c7b665139ce942abd3d6ab92c8f6227059164676ec83298dc8b2d8f118ee0ae9317abb39ebea755b72ce37c63d5d17a2f7ad2d1127e25553bf9107a4a4abc42c5a413051bfa04ca252740e1691ef575fdb0e9de6eef56e2d27d071c68ec2574dbc848926d068d0cfd2902fd599515efa6897bf43260407dd6e4b7474af78e89a55848b8fae5bac533faac43645cb50b02a18ff56a2525c082f9c9782e714b099c3bc8507d8c5c18df0a3db4db42e94960fddcb8464f5817b5e52a4984029e12bf0a46b8b6d931fbd9e2b8a714399f0dee03e629af386212a4ceb2458a27f67c02ee1a17ff5341af64ea59b5176d7d702c4dce5749cc5276113946dd36d8a66e596f7e72902c1218581304d6b95a556cfa5529da6886cca65f0dae10ebc576c86084f5ef5a15b226861cba1ac6bd798418e65efa4c216cdab6680aa36ce12498ca86b241eb1aa62d8c674c4e4c1dd91c7f8fdfe0aa7a7c0fd2bd9c413e793ae92c78d2b6067349b66c725384517dcd84d53fb56bf3a58558ad1c0d688e2f64d22a16858f3e649a4f3bed50687f24f03f9990ed49052cea67ff7ed95ffae7dadff9e7c6ffb734cd88c3e1fcb71b5b31472456008868428f675a6fcefd27b691b18b41f68e9d6bf0a394b1174fa5df8148910b0f5fbf13b07f0e86b960b7c9aec12f0cc34bafd7c1e7928525d5390d8c9045a2cbafb2528658e63747e0899bb0c65c1ff086440900004da1204da21705189605d6776dc26d77ef1ac3cc7afebdb3727872c3a4fafae6b015756ac0e8ca673fc85b84f60e34ee4cceda606b5ab7ee131c323a9c979c959766fa085a2c0619c073736e563f572866ddb8e97cab41942bde5dcd37cde48e4fb0d010497c89a6a65d4bf94c75d18dc85194cb6fcb901da9496254dc66d7bf82cde7e1e1d072ea57ef47e5ab8ba2a66252df58b308c325cbc50daa1882edcad5eb56e29e7749347d2edc11745815dd1a4ae2b424d4bae4f08b0e3c3132301481eb94ca6b4b518b312760d76830cec9f380b05b659ce2753a6bcb4a722b4236bc73b1a80b849d6ae100881f644892d3753937e8f8b76aca5a341132a6ea95a0e30c0887cf1990ed255a0ef2f3b5fae5f1d6f14634bdc8bc43d20592c538f4a155c5eab67b221a856974b616986e81efbf218b8c2617340dd0a1416bdf2b6ea72dd5573cb9d28c21846562b4ccffee27bca9fbe0c067ce57f1195594f67cfefbd5ead97fca6d85faa031083488252e1dbb9fe9b959a71b1da6c7f612fd47e89950f0fecd1b54c3017098ff268452587ee5b015e2ee4b2435603fa333c87e16000cd78bfe007678ec08caa4b46367b649dbf6ead6ce5cd2e25d008fd32558d41fafd4f2566d1fbb08f5770b69c2e78570751c82686fc3110cb67390afbb82914d83dcc384e0b02badcce59f0f6205ef68a1208ced7d1dbf2ec0d7e38e38323a7d8355b44399120776bd3c39913d9d79efb6bb70221531b4ea01cf95ec47b9f8243883db914d150ab419990571c5fcaf2cf0518cb340f0b21e5d45463ea74219ceb04eda74199e43a78d99a1a385f8c42a23f73d2541ab56551cc69c95a1338358693d96e842678a42790447a43d81ab2f2461073b8f1f728a4364bbc62d85173be8ece88b9077709e6096052f5202fb5bbd69e9dd1c8f99ede9b9c154964b6d56f197e1652aebba224979e3d66fc0135d5deeae0cf79ecaee1186add06516d4ad0a912b384dcda68de340852684caedd6fa13f26846c4771fcaf3d6310e98a27a7f159e376f692aae05a2a052da043afbe71f8ce61428b13ffa4dd6f30ee144a063f45ccfd53de40796b4434231ebc4608b41532395edf0f678a67b47d9f0cd87ec29d01a7946312528f66640e281b2628dc77949b23c5eac309d8b29a08efd5d7a705e388414374ffea6f7bc0fff6354a538b5eeb5f0f009d30c590d475095cdc7ba2c78c05b160eeaec43e4f3a43031acb18d70e3bae5b6c7b15c344a79a04a623aee63325e730433346de57344f696eed4e40d2e395ac6ccc57a391c5158315c60a11878ee6d81583021c08cc488f7db6259bed2e48846924866c6d91ca75f8278e9e193a1bba9aee918a91da7c5230f32f38491229eeb3d4fe0bc636ba9d67e7e7f0ed05f6245ce8049a46ba0b71d0475f47a571f869df83757c4f14b859846189d77a1835d1fd15ac175be142b3613d49f24ae6c9c38425bcc1e1523ba8ba10c2b1aa34442a9c9ebf6ea08c50604d2116d8e69e14128a2c86f16d6b8929c0dc4a0df06d3686c62e1794f969bd804e0e2699ffe0e7fd85503e8cec59e56b8076a5e902827a1071ac19c581e6e909d94e728565d00ad4281003aa27e3fe0615cd934313fb5f6aad9c11efad88f8af8e68b169bf96dd2e59332236c93d0a9d5c998f1fb9a03d968317d51042287d67ef587c7e5a834268019c1987542d4a8cbdd3e3fb467b22d12026cc44c30c658d8f03bab855fbf7470561c12576131513035b08ee95adc233f7f78aaabdb975369278ae9858ede87308ba5759d96a17583e82326cc325f379dcc2a11c908f66e259b366c245071cda56b574900df7e7911e5b89e4508874566ae5ad9db61ca860b173ea4f29a88c7cf707468ba4965aa84c03cb584643707a3ea12c029010a37ee6152e831f6e5c2ac89ac4dd93df75ffde0839961916b8844414eadbd0dcd087fb5a3a579073860abb01f3d665f8e2eb15a616369a280ad4323d07fbfdacb4e48e7abf14a2c4c03f5558848051d6558bc53f011915cee0be41b84ca1e8035154a4f77fc14bc1f3a072c0892348b642f42b63e09d74ae38ec0538f0188a7144a08ce9c8697caddc226579156ff00f3e2b7c67a2fe2bead9ce389e479cf21698d14c4de3e02077e3f6194b188ca817a1073478f1ae12a1a6568b440a2637f0db38af5e48ff31e7a9ae2f134e3d06f5b3786b012dbd69c7e06272d959769a5bd0a3702ac408e9685e7d7d8c8147d22807ea5f5655f79e1e3669a01d7881bf1ef8947a15d6b579be7ae0aee016db1a326cb2ef1ec9921bb0fe1d3aef173a725d246c377adcd9d43dbc5a7f4914606378b5012c23c0b8f1bc42762d948d04b4e6b851e9e22338fde2a4459006dd09dad017e3c4e92433ccd3e6c39b4d21c53df6ca10efe9eeb082f282f9efd369897c0eb3328f5fb2c51c51e026fd5d06f40dc94f5308ffddd0c7a1fce5d9952824ba80352f2e85ed89e36c41f6929b803117211af98af3e132186d2b0170eebede616aadc24af05e497257acae188d4ab13da6895cdb457ad2eeb42ae141feb4c1233d9ede303bbd5ea8750aa6b2d44f233c60899a3c15aa62025206f829a2a8cb7dc9afcf1dd9af5c2033ac6e6a76a252f8d5123fb267d69216090fe503c8e5620fa0b379d37e3b28c758f2ec322b7a008e5d5174d8e5fb1535cd7696dbc07bb7f016daaaa7be1413dfe9453aa35b434c24b69bcb6a5314c979582cdaebe9b4b45460677ee4f753ea14c9501f3acc2f715baf515b8db92079b527ca40bc730cad0762e12c3b9074c79069191079b50713759c2a15e162c397c4d0a15bb18ab0456d2e2a762aa6c8aaeedd2266dc5439e0e1cc0be00f07201c845f75bd5326e8c91385df5f822385e0b80e350dae558f26283c1185cdb565aea0f63c24318cb37d47f84433007b50165587f65bca467d7ea78c6cc392972da4a0286154db9d45c49888c43e1ddd9a23a14af77a37def53d1a0be02320b0f3dcbfeb55c55748f9e2c5612c241842f28d7518c734a5756fa438eb765a16359d6700a06b64e61627be09da281f12d6d614f8067b6a933246b00e33b55dd1e77f1b5e0011ab7fd65371c4c21d8a1ed0e759cf2fb51408804765e54159f5e468a243fb52819f458fd98df802afb4d2aced506b5beec15db9fa3e0515fb4515973d7d23959487055eb151ffc1a62458b004247a346c694ef51fd9c25281b051e9a25b0772a975592733ad20ac680005812edf326a008d026463e0205889f393041cfc5defc3529bb2a519d8ad67e6f996acdc5108c3e7a7fa6c20941e9ec0dc5fc00b7864a133426596afd49cc6a119866d5a7550e9df3317709aea3ad01f161f00eb272828edd2e21bfaa3b98609b9f1d5b076f8fdb2f780321b337961084c3acbc6f0328cb26ecb33e624d930b2d98207c68f97db2b72c415d80fdc08a92c8a4a42308ec0845c38b7725aeda4055493bcc428c1234b76277fd55d43c43d762891c6d61a5b382645647ed33ca14651a3dd86966bc61235854a9f7d00ab0f5c90cc7bed5dbea1c6fa00525bed72fa899e789efc18bc099c8a68677bb87c9172459508a2bd9a39e74e7718497364c172eea1ab8acc20213b46bd0897030f3fb48c12b93694d5199642bb4d021616ea868cc45c801edcae3e6ce64f5039b3634c32934b5c6e27a443192570fc2e38865f459f64cdc54bff8fad45990e15236fcdad49d465ea4fa4e9b9c669a02d564337d87aa0c8fae610c0f8173ae51f2da17c47418e6bedffab377a595a33dcc2993c78cce98c6a55f90e74fc892c50359ea2e74259879ef910b45eb7b11c9e483a6cd30dd5c65369a11208424132b91b5d4997faef9b0c33e305b4e8a323fdb69e14b5911daafec2ac23d7550c021a4984fb8937ee7648f4c6c4619ed3a5eeb05be7a66eb39011bf2077895332e37ff5ec557b46c88aaf6eacb5de3cf841c655a0fa82e782bffccaff211f35d01a4fd7e9c26feddfc2af057f3ab30d31462c3e4a83164a1b22791dc7b22ddc5e1c3ffeba1a82543b0ffe15a863fc0160ff3b695e9c7093351a865f0efa31956eca3c28c0c95e31b5e8695f94d53eb6aeafc384ae438f6023fc9107cb2f16863c0fc59189f3bf880a5f12c4ad7f9e963d27f09402ad342d2a05dd41cbe9792ae6e9e55b4baa316d7fc4a58ef8e944d1d4e6b2e1805b40403f6a7f3223c31a2e330480a9faf1ae9acdd7d068b43aa8df8abbddecd5bcd8e2a64b61235af4b012a8135111b331cc974deab357781304bcd414d3126a18710a015c3cd28a0ff101a8e56772bf983b4bc64a6632686c3d97be3220d5c80f12af769d758767f0d156c8ca2d27ea615ea0c585a3d9e80d1fd5cbc59d2c105229ecaf88b0eb29f2e67de78c84ec8f4809654067f9f3b9e91f0a973144eea530be21aacad35ba354b86792382b23f3122d587dc6b8dd709f9e27e547d518d97fa80f7f3a2fca6b2c644f1ae75f7a8db3d11788cb60266be573a5e2c9bddbee5df68ae64c504a71e54132da026db7c1bef933cfd9ae0f81b9005aa3b05b77ceb120abb40491bfb2024041e4e357ddfb768b27db32d584f99826f31115f524c7caf483990b9d726f81419d3a010e0ad17884e32c68edf45b798b4d8bbda89d408af80d7329bca3d6046323c8507ed434b39fdc3e17ff678e519452be7cdff7e92cdfd9d8b7cff958bfccff26e5ef8722438e2f1f97f3e320e87404479f423d02974861a13b3ecd2a531bb99ef221f8d9b42cccf543492715f34a1eb88cff6250e4b5f2a83288998ad58c607ebb34223bdfe2050a2f29445ce0c42423910e9900d4fde44391c8e182da823d102c5bfedc12924430000042fab476ac5c2829b31d81e8f8b965884ccd3eb05cf6125817474f2e07a16509f3053006727c09a5bd0c0519bfc2d08871621acb8400ceb789e8f247026f02d64e5088ca9e4acb4e9d98f113554e5da703e2d6fe2ce4f1e347cb53e8b7966498b47b54f32efe7e55ee44d85f43a1e2207b56f659158c746853d46e3d9b7e10541c1acbf9985c302c262312f26874484cd4f034489e14e61a1a44cb037dcb16439cd3c30f8924c1a0f63d677977af99386ece1a5f8c3e4a621564b78a2a9980e351e7b16d687057036dd38530aa0b55e6b56bd363799ae9a06f350fb1b542209da6ef635de3b9f1a59c8936b7a7dc4e7f38c935ecdb69723a133508191484e573dda982cb71369cb301e28508c35a89178b9afa57c23a4b11ed9d9c4b89f2601c88a8bd99a4d0a21f701c8cec46aca59c74e89af3f57b030b8342ffb71026450870fd061f37cf6adb6b974ea829bad05392ac540c8d30259d09fe4068f60a0ab7c6bf16e6fbf8d55e3cc949a7a39c187e719b7ced6e7d6b5c575a2eb4975553a70178d48434e541aaaf69f45446d15b560ddb068eb8e0f8c0f5b6fb5c4f253b04897802dc868c7352b38441988b8da8cd5a979a6ecefb4949f42c6b09e07dcbb11904e9d21ae229276228bdd06d148e78da1c78386b708806f8c448dac8eb18a3b8aaa1358986dec3e2be59fa0aa08b14086b75fc1b009ab6a47858aaaeff3734526ff49845d1ea053c95fc742a9abaa11dfe202f5b0bb0afea90579387131c2efb5d00b0b08564b7d35fa19f30896fb91f1219238fa368ab4b9850f46bb047625338b8fbef8323c4b10b248b055cce82d44f17f587b6b25ecb52559f0816488c91433b33ce127667efa89bd0fdc3e773a62feee18478e429e566665adac4a36ef13c1d9fb9f3c6ba07e1d9b3b0f9496f61211928d964294995138279845082814f95696c571c895349200a3bab937055cb7bf2a87f9fd8c10b5535aaddc300f83478baefddfea3285c8583fe4b6aa3333a776cb1bbdadfdf33467ab4e7d7f2a0b3138b1281d6cad02be1e114e15a0ae734fabaa8dcad40dea3b28d591f7f77dbdbe17e0f47247610ee7ecb5fe61f62e062d16ed78a709f6b7c5e817f83757e08cffc9aac4344804f6c19a6d38e1ba72fc644f540b497045dca37314dab087adb43214fafb4055754042e0a243e1ba359e3d53d70bc2cf638ad0174456b07f552fae72e1c4a27b17bbb2e1b9e141a8f1e3b4e44ed2559edde6b39d571306501cb87a0fd95c9412d2065269638f91d416528c836bcf5ce8a3630f6aefb0a05eb42414acd7ac0370135c41624282b384e03d4ed20128c958eb67623fbc5609674461fba9eb97a10b78e37f670147a08a4b33d60c6a0bbe466853a92dea0ef1d4033c48a81b72e61885a84fdceb708bb4669d52ac4dd880bd22c3668f0dd180f2e0d52afbe68123e7d4d7912d8350b06ed9b5d63f1eec5b8e962a3d3ac89499dc120c2bae528c550355aca77e5928cc697d2fbfb2b695784a8b3a94c591d658e5c41f04d1f293da5f9ea9f84a39d8546bcbd6719fe149dc1beb83cf3dc7b2b482ea4779b0fea195b398511f903375cc9827ced0d3681eff43ea7d86ac805576ce8291d8b63bc36cfcd91ce5b6ca210703a3e9176322e4ffb6dbcef3aebe5dd076c25b06925b366af2c24aa4bbb8950246736844f0f3edfab5296723cc5756e84e1ec2f9719a0ba1ded94287102e14294a9add6349199390f6aae86970fc43d2a9da6d1bab5ac84c2bcbc8df182ffaf12df383a31a7cc3fb1743a4d802cd8edd1d1136a8e49552f2a18f31aa532d1dca67ac9b4b2d58ce20534af6d48e2d5feabc828e3b376a915d7cf75d9abc259581b97fb8c742d659b55e27b0669119be5597c724025fdaa9ab9e4754fc6e30beff1e8427701ce739cf4f28ef162b712f4230665b2364842949a0be254ca886b80a84724b0f6da51549b3d1f603679c2588014cd1ee96f4adc7d355f5693dd754fc26e901ae065105441cb8657eb6199179f0c9b214bfba9eb480691f4254ecd2605bfc9eb3ac5959c2f2281db9561ccdc4358a8f5de3f7e90e1df4131eae287f15eab7fb58a1ac24efe2e71767686873057260f591caba4aad18989f1e33d671305e5815a7145b26f30b96b47fd7cbf802e73cc2f145d48bb3d9413c4d409da8b211f9f246ca230b74b0cd0c941cd8f17d0d140353106d9ff574ebe89b0133fc82bf93c6faf98a7a9e34cd5783ae5abe4be8c0e8f2632d909743403759e8c292148977b53605e9807e2176f6e719881fed21e1a95f4f016e756efad76dd860d952e9537651ec47d703f50a5d2ffa215a19509188cf904b7cfa07f5a9f54bc89b6cbeef6782b0f8da466e3cd8d026bd195ae3e25a209b830af680f2475610c56a4bf0a3b260b5b527c268606c4a0fd51fcc1a36fee566ed816909107ee0455938d2d21fbf11401b1a79d62eae68b2206000412512127879e47bd15fc94c96646ca8d0ab859aa989fa21e80c6f58f6f124057bd6c4c5e0475f5409824cbfa05cfd9b680e70e9bff54f83dedbf45132c3f015fffb23fd83fc99fef967d84af85fc3ba4c2589f03eff2f7b7ca6304ca3c78c2599b05926e74e4d9a9d200ee6865102578259690a9335305b2c6b037d37b0f467a89ddda59cee7c15b1916178d186ae53dd4bcf1ba42cfe635f156067d759a92a23245b855b526d1d387a5524388036296f24c55a0a7a99d2ed5b5244b639df48b6d4f35a6502b4a27de42961d00f95c5cba87885268f99aab4dc88796b47521732eb9f50ee504a63f0fd6e8c87e5526ab913ca5ab3e41b17c4fec2d5eae6898d9f9814a7c5bda1ac34bdd61fd909d6fd3ee3135aa121357993814dd7b63c1ec577d7732d7071de697d6c46d6a06590184a211168ae5a4e9ce90b629e86cbf70f0a0e3ed593ea66b46323943ba1d0ba58e00d7f38c5212e3190b66b8fa1450fe765dbcc6021e58ec1d0d4a6a3f8b33f1358c1adfe686833b3d94ebef119e180df4003bd8231d13d3623ccf536467a9273aba487a45a520f8fc04059f7eb76fd2bde9c1fd20ec6150580650dc3565201dd9e8259dfdb681cf520ec761a9f9ea4cde0d87ee0d2317f76ed5ba0529b77784ffdb24f57825567ad08690539f074982dbdf0060c1f91c5932072f8a5fa527de9b844e71528dc73d7c580e6797ad8de7a987140232369b871b997d534b91d421461231542d49d08b37ed47ae7291a4398fbb2011d3646823b67d436d6517da719a52daf3e4e517f045bcd3470733dc1a2b9183539cbf0ef2ae9cc2eacfc12baeaa29d7646ade34046d81d22be94758604a2a5ed081688600db767fa4af14300dcda63be8aff9c958a43ba0b5d49d0302d7d2c2a4c797334ff5c1568e45058ea61924de7f627fd780d2fa143671ab8d615a54b58ddce15d83c8d0dd93392f94d46de1d2b3dd9768de64ab251164cde5a69c4ee24afde23787e6599244b5a507cd645fb6b4a8d128bec8a96c2d38c3f69e213faf89e837c6f0be83bbf18f5371ec2b4087f03b968ac5090f5b3cc09ba9e6c269af2339c33843ea83f0eb1d7cc58fa8853ce95b565ad5bd4acfb18bf5a8305a44871d75d726e239c5e70b06a651c0071df1b7d7e8be7d95611985c0d2815a1ab4a965456c5ae452be377690dcf3d1ed16ddcc119ea32ac1370edc2b95c3b113374ce3b53afdefc62eb9bd14aa68f39c1847249b1ddd78272484c61d685790f7e319cf2b52d5eb47ff4333ad492be236fabcdeffab127cb28a189bbb6f213591e5fbbd0bf071f35b432a79b3958748ad3793ff27de8d2038a34c4295a09020d45c21c8421da4468e0d8d07f8696228982ced10bc7ecbbc9be1dc10bb167405ab9a70daa16aced66e9f0d02ea6a98c1c565b89700e20e0db8d03107727809c223c198fccf256f1f6b01ca8ab1f8b265e3694553995efdc60ce88d1df075c7334ac6c7c76b7fb6632612119da9b2cd463b6ae49703b55109f6772b13500ab43754383fe2fa57c3a421ac3eab2bbb1b64c24d77598d8ac9a51fce28192d1941ec8d909645bc22eadf0291f6fe7c03cd44fd69be322c04014697e1c20bfee73d2472112938a81ae9c3168d05f2572b1b953a40bf03bbdf3577ae76239eb79af1beb67b109f3245010f036fa4281518c055d3bf3ad464d61aeaaf89c9aaeb82c95c5f34c67d1e7a98fb5ae3d852f5fb31c5128cba683f5c7711227f7c403e19d24957747fb48f1642555b2642bebc4f43040afc3a6a6c46baeb1caa15b4a495e312654b4374d91e8a2bf5a065c3adb13be169a5a595da05140dcc4e01c501c24435a90c7c1a600db59ac1c0c5474bc9a7f51ad8cd7a80057fbf51b6243e3047032103d34f0947ff36175ab3fbdfa090cc3c7dcff2b3fe0bfe5c3efcff8f0df5e1d3e47f0318b4ab8f86710d6bf7d3ba95f07cf118a46058a90e2417324b0daaa1ca5ba228527e9810645f36c7ade72388faa32d4361b6c99dc74768ff454dea20faa2e0db97b66f120c4839a517c345a3aba5ed8b6d354285103f4407e675e83208e7308237e6e2749b616a1658a0d0f5012e6bcd8b46992e537a2197e66e809e8e2347e5046a6a81defc69d28bf7709c1d7c81ef83cb698c0bc8b7ea528d1c21c6d3b0ae2e115763719c256d64390500909f01d57fc182d58e6453bf82609272af2f57bc04e70b549f2138b88be242d28903054fb76d151b1d448d47aabc870bdc25f7455a62349b8fa82cbc233db35d976ecef675f82a7f8aba0cfb7cf739fc2b36c1fc0e727b9e9cdbef9d0276f7cb40dd0120e67f2c37e88e97635ae6055d1455845290e40c733d04b0d9093f3390a19f9cbf9535d87136b834d32e85f2c52b3c58c687ffd1cf40e6e02694ee405cae1a343433c6ae183f3120d3fdf922a608333eaa9ca37bc591c140ab5940a37ce0fedb5be1e122740a9aee88d110cab00b61b530545554afa694bc71d26fb728b9674a70138b4069243e693d3ba5d03e46251206681df5502fb9111609e2c2eb33c1df7821864d2aea5137a7077f8b5a2f6ada3bc1e25b9cc1101e24a51c6deab9785439ef48d342c842900a1623e3bc3719d05be80deef28b93dfccd0c9214b183caca3803882a402092817bd2eba871d9be1750072f2da6bf5306a11cefbd79922ce51f57d8ab61a5d8f1198434826d6eae8bd204a4d279786605879ec5147cf33490cfe647830d364d82cc77b7bb7c2bef1ef286f435190886950d14dc4631dbf41e3e4c36fea99d647381afb68b00375d97b68e4cb2173c53df4d4b414b7801e8cd53ff0a54973a068e1b7d4f13fad9e2e0d183410ab89be600cff59db14ff16e5e25b6c079e4047539517d59009e10030c7472ee96beac385e01a6b9016f40930ff323344649b2ec764c70cf6be570f6b0d44d033d82ec6970af0194bad1d0c7ec4fc1857f86d3659ee2573ee05c39fa52a9fb11bd250a742176a0e40e1ce59443a77427eae84d1c31935de1f44a0d843ca2780409e28c9da47097b4e2a439a73040af0860af0847d3f3d1aa2537333a0bd31e6df0537d8053046a50d480b29d8c53904d64d274c137598178419c47fea2a288e59c9a9dfa968d4709ff34a766dbdee7a350f0d885bc3d49843567f0796568bc5efb95299798c11aa5242bfc46c61ca3dffa4a8ebb78bd3a17291f18d4a2ae516b32e9cf72cec6eb0526c7e3dfe6f58a11dc2d03063b6c2b103f320b7f5dea5a82b7f837969e3f014cd21fcf30ccfc87587afe0fb154aca4b02bff116cf7afddd53117ef3efc0434832a7d8b08be3972512809eabebdf3c2b9c342638c49a5912e992da7855d16dd76efc76ba638cf214cd92221de70e239d4a64726ae044cba3f28ffa97130e6e474807e0e543492f45de130586da3598993055d7e1f897ea09983f1b4f3b79c5326d688dca88d663a39d4b0105e4f1b195243b1a44bd0a5e2683017058ed3291842909f1d0aa368e1f245dfd8aa9b9ae53ef39a139dfbc7ac45e84506afcc82342db9e02ab30154c92c840d0d5679756174c93db70c1ce38304a567d1d3dc9223a33e725b15ef8107e7b060cea1ce50c9e363d5f6cc12929fab1a86bb464ad954c6eb4ab7e6cf0b7ff10f3eb788db46dea46ab25f4b5f8164b6beeae765ab195770ba15b7b98b901d40fcf04538a35a7dab86ad77912e13a676a8a2307cb724206d0c0ca1158d831d4c31d5d054b96b6225350dabf5d74761f03e8f7a43af7225ecea6ee6eb4ac89c59955eee51f0e896fe14c370c8c2520960f60950d2dfb3c7a0d59a6240a08b6be629c8babea9d122929a5c49264eb499c1296b0c49de9260077707a19196dcfd143aed133b696c975a662b494e0e40ce10cf481e8dc32871b6ce3ede2b698ed697c7abf7ed1d746604fd966040ad63866441f47d1cf62423dc1cbd7f204ddccbcca58c5f2be9a0ff8bc99a436311542248793df8674a7e43edfe0c6ef0fcc344066e962dde5729499393aab82dc328ee485e54c3102edc084e7c6ba8134f52f2cfea98de02e03abbc104fd500969766e2a2af2e0dbeaa8f6ab810c2cc5a3b96329475a58475350a3193e11784bc41d49502b35ac773bca397b648052b19e35afef48d6b3e1ccdbfc0da6914979bf959d5da877be2eb7a7168b1948fae568187f0634bf275014249d9cfdbe769f2debf45854527207dd67cc5ee996e92215768d70dd586953dc70833c35ea882669c0a845db3e54be4e03f7338bda7cc94af8c8b19de1c7d15ae35f30c9e346e15905bf2f7d20592f15ce8baf9a0301a8005532607bba25bc73754383b7647c1eff2051432c18da755d491f8f8af1993437359a8669e363b156c4a817339771a228301073121000ba4b6482746cf46f2118450d96f010ab52e5b12f5f6b48b4855dc3b34520ea63cb2741ca5ec1968114d0b7d1ceddf0fd58794e1cb7c6d9d14772834f3ec7b70ffb10ff3e0feb5a812795b2da9fd66c8d4547e66aaae585dfcf623850574b3ba291f8b5bfb7f6c0ca3d35e637a53f800774fed348623b34475662641044e2a9e8b1e6e63d062da6fb4680830ba4f1b82accf9eac5bf2037c8e81b929e65912a0405f52ea36158f141b57fe3452e4d6c70d30f6c822ae048a09d0105670f555716b69b0f9596a750beab986044c76b5f3b2ac88964b4b7d80f057b00af88e22699c6761e82b8a77201cab2754b6e1ad334110a193e4fd50ebf2f3637e7253beb47daf4c35287bb8a2e0abf1af3f329a206de5653e34d27166c881ad4b847d343c95614e640eb0aa117a913bedfe7a0c090118ed6026ff664cd8d0765fd534bc25c2049ad6fbb906c12aec8637901c25c2250e4c50e643b78409cceb700ed741e05092e8c2859d07072570c99c78d9f215a9414425d92133a1c7fe24a14a70eb686ed2a050f7c0c3718982bd1af6ccfc6df893c160a3a0441d94e087b832d24bb6b00572cea1588b6c2d299c4911ea9be98109243d14528eaa20c91f73b137db5e23b7fb83bcac9f1a99e0cbc333255c6a54b8a76de2c9623dfefb9942bbca828714c8444d35ad3e322be28f988768e43b82dc7942197655295f637c1f530c739d6046f680ce003b3e0eb913a7b17cae3d467840a2d96eb6149fcc62d8cd142c02da253f320ab216549712cb76b83c24c1006b5ea97999af98a38f490da3463e0ba17b7b1588cc97e90674e1605e9071d5ac3a40dec6d7d3bbbaccb194c8ed2f98d5f757553fbad99410a4b9eccf11ef7af2177ab025dfd1cd00d79c9a6c6caf1c265224c694068f5462958c885ef0ec7b990b3a729c4446bf8d0ebe1c74538ddb3275b05805f9891c28ba923fb79adc43b5ae25766af706c89679d558f56282586a40022814dc9153c6321eab974abe6b75300ef8cf049d2e3fcda1a6077bbd553fe24f269559259e98e2abbb6b2e68c5e62a78051acab4f227a13b65a58491ef5d9fae0d3a2bfe03196874385ba3ceed5223af7562d9d72150bba9c663c09b0bd6a0921e8563171444ceca75b0fe5e8a45904d93e02779837aa8b920375060d4c5f2a57ad94a703abd0e0099babca7d89cdf1d5adbd2073c3f2ed61aca2c2f487c98d07846e14846448e5332872cc2bf513774e8dbf191843e96283fac94decdd61dcc6f3afbc298eb0dc55a74ebcc3a733a5042bd015bd881dbf7749687e8a092a0afd15e455a6f4cf529e98d27921532adff6096e7943497cc3ac1d6e356b5f4fc3e43c39d7e3f62d48b09845c76a0a74bb9a6d3bba0827ae936f3ee704e2bb2167ef01a07553b57ff76432caa9aa55111a832ac6876d8593d36961767312a38f083b614d6f3a97a3f0cc4d1125a05d41177ef567cf4195c69b82c1af257b196fdc4bdd24d997714b050a19157dbb66f047fc9c1a638d6b5a3311cb286219918a6989aed0a822829fafed30eae6207c9eba5d2193e8e2d68247bdbe5241d083023b564d1c1948bfede47040874e6f03dc1aa9227abf02685a7315711e1e52a78515e5f82d0f95f0b1f5ccdfe73e4e736f742e68ac33598848b465b778ae89f171f1e424d92beb35faf8c9f3a67e59fd9fe9bd18f01be20b9267f8dd63bb984db18a6a0c0d6cb9a75503ee253dfb05595cb79564a2b3661daacfd928fc9e19ada6cab45abdfaa102cf7a4ac4083920d8d0400935e5d52ad3b7006f03ce01dd02f8db1c5780302256fd88b1d1bb5d12fd3113f70a1790131a0865db65ff816d5e73904564482b59b0ecd189caabd6a1ff1e08854ce68129b2a6b71e6329525c2f110e99da344bfd176cb9589cdad38eeefe4cb69794f713c612864ec11c4e405c909e5bd508af3d32bde2e1de9f588172bc7cf3548ef2c22d36ac19aa045f7a4345691e3657eaf3030ef7ce8101944180ffdb63d2610f61e0bdf36318eef6ff2ce30efa238f49823c7f9a91f8dfce52d97f364bd5e5527f3991fa95b2da24a8cbe7087c2411defbd270a68179e5533a1493fb5f3d2e21016199e3fe6805bb666f83422142b7252c93bb0c33e4dd02d86cb3516437a59597eb2637d1ac1967494502baa0a8ba6bdf5c7b9ee6e4ecda4cbd8f023d53c0b225eb5ab62da0c08c1ba0401bc5d8c848254e868cec89c8d53656f326c4f8cce5fb50ed5c240e6ed8516fcd8028fbe16657155bb0e29f86f09b34aa5bb2c0baf4c80827ccbc66caa0da6d6a84857402880a22604aed7cba5c88b46376840124c339ec06e3b7adfff2fb10e00237731233770d2349423a82d14bc58d8a764daafe24838e7891d40afa0c2824750a8734a5de202ae024a0dfe7be543bc13138e708658fd43440cd29c8be467182414d1b7ce758e9a94241f439bc6a11eca12805bb66f06870723456032f742a5d481f1348d858194af38a4da687dcfa073256830a089d7aec312a9b2bd47201e0802c374a6e4a2e25d9953d9a686b722f8ade38eeef1bb990582f408f627f0901bd04ab87f1defa152606e894127b586e7fdb8ea727a02099ed541a020a326ff8b8b2e92c63b9c9635be4f8a43b086bca433c67ccb55118c261942eed31cecf994753bcf231bca1ab0c86a441379f9c87745930244fed1f64c3275e57f4bd2b523a4bebe5cb4a4c7340526a5418bba6b4c26063d2778b2069741e327a1aa8fecedcb55c0353d69b0fb7ed9e618fb748cc4f0feb622bcbdd4188948a808cbc5c4217e6ab29de0c457f2309b9d30af87859a54050f99bc4c8300bcc9412f4f4a593116f9a673fede35cfe48d8ba218e13ed9cbc73b948ea6c572b26491ec746e7c5e8137a4c34f2e0682ec1c251c0db3e70e956df856573bc79025f750dc0e9b44bd6fbd23b86f6d3e4f9f8b6ac4f3ca37b7c9226754d4142a30527dfc38f66bc9a132c703ec76624d3d3bc42b3c30a1e7e5b4649478b9290bd6bdeb63174b4c86428c16cf6f2e16debe9506b53ec40d5796cdeccea0407afa021a88781e8610300c30b5666d8f86b02415db94581c929431734557255c5a8096b0a4deca41d1c056648687899bf77ae46dee3f0133d9587d4d398291c510e1f514d9ffc28b3769676ba05cd5297582b2e32c1deaf68f3eb1f9877a7a288808ec230e25f8f3ff0d5097fb6e3f36fcc83c4b640dd37894c2890d5ab90c2b79486a180cc2b8fe0261f5d238bf0c141e8b31cff7af77fee53b730dda2e71045999073f3d7e7e6eefc92b96dc265cd17262214d81115398365ee8139e6c89672e082d347e310bda938e74179a15132d48191b7af7c495180bfa080deef914d3593d1e531195308c7a98f9cba61faaeef8109e062c44fee5e3d93a4c4d070c0f3c3290d0653ac823a0cc833cad5751d42458bc68540e3648f6229d2156b9405044eb1a70dca04dd97f5fc9a8ee07b641d7e2d8b15c4c2f3a19f226d0dcbbe3946faed4606ce8eb284882c4f71c27c2734d2fc8ea25ec52016abc30555c28922256560513fddde03ec1a0e261629d5bdd9a65d02b8203d3b63c54a0ec0ce717e7ac2810b683890a804dcc029f36f8d6219ba1caaad53c295cad0a5138df8a57c8c1b70444ad0ba47bfe46cf368c37b21911e42a679fb4e212f4f77a799f4b66a468e2f5b6e969b79f6bfd360e5cbd5b9da764eb4b1dde763df63807ada32bc2955ddc6bfe3ba5261e7fc02883b2c4f29eed62ec598c7f84959c786db9364e19054beb277a9b4f5249d35a1a508e2194a9104ff2432a770fa47157f9640230484cfe6354b88aa93be59a5bc595bd5de4c41361c30216de73395e5e89673d1adb6f2e5fd6a84c165bd9eabb3a9875c2f86e5555e64f05bd1930e7d01d2bb18e2539e6d01b904b8e5afe9385e53bc362a2535b55ae98d892279e4b3974e91c4e6bca7dd384e915619fd6d65baa5077875cdecddfec07bba06135fbfa2685023929535b5bcc6b13d9540e54fa02cf9a2aafe0b8d33ed3e654d12b7b9dc10e4640b7731533247d5d0d534f6cc41892b7132cb43294f8592954e0bda2bd8840e178756fa4135b45b7736043d50966b42f84f12ed9cdbf6c543866f48357319e8b20b7fc848416c1d1f702c7a4e7db78a5cf299a05b4ebf018aca45a581c23a2afa497ea62769b03697302e9cdc70d15ea3838568ed091b2905ef72a5f3885c2c0a93675b668ea663f018cf0ab77a077352fe228da871a5bc6abe8d12a380df560e418c8e8ff66fda4814a028224c7204aeafcccf1749f145e87d8a3bb24235be30a54b1cc2fa7a0ecfb4451b451d2e413ee380f3bc94951bd2881b805e46ef24ad5948b225f1530e6b5af2a049eca5fdc1218a529584e6fcf269310018529e33635dd907e915eda87a1a61f2af42902a0991b2cfb7a32a8bd2667ffdd0cf22c999ed8b0131059abb22393c955eb276329402041b8d8d91ce691a0e262bbce7b10054c44058794ae61815fc6d0d7d9a0b4a2d78af4ced961d4e9fe5640a273e58a2de019cea4073efc51d1e7d859f6481b66afcf2b1075dfc48bef93da45370ba803e8d565f059b79da56d9319717bd3d74396c7e3d09884fa53c4999937a1d14b9f902c84c9a42b7333545b941aad9e47020bba7b82d52a3ea84cd5644f2e9113921a47362e21c2c789493033c7b821f1abd10d2c15793a74e585be23241c4bb5574b0fb03992c762e5ea8741c0860f00029fcdea7e6b56676bada9bfa69f41b89f54152469577b9fedd8743407b610647b38040bdc4bd2643e7bb9f0237ff3ce069e122d20a457a54df64e7364a2a01b1ad447d1c21cbb2924e1dc71487c3494a76156a45e87d14e74bcd867644f31b586fbed5d5b3fbb0853aa9fa8e6cbe6f923decc0ecc7b55518fe6d0959bb1df58890930929d007f2907689f68b2229de4162d7c0189c8e838ee51ae5edbfb9ad59f19795b69fc3300666fc59ee24f53fe0b6ff8bc362752a2378c82757ac247328e4ff9889287b41b4ef8e091e901611d96b15669184192d58e5d55dcc688cc0f17b2ae2050b1f4ccd1c093c3d191288d447b1eb1f030eba50b20ae4f160ee5c574d900048c73405c607c5c496eeb80af9d316aff23d7bf5975f0971bd4ff79fa749ba574ef04953ca6f96f4bd30c473510bc9e73cf47b095d68304d40470e68ac3238cee9de8c3ac0e5fba7a127973c9b3e759e9ab595150244dd6a38c56fa6124880881169e3c0bb184a8c13f2dee4925e62f8fd4fc12977601f67a909e75df16fa9c59ad71b23906520af717e16d29d6fc7f8c8bbe13b39b8d96cf45df9d6792664863257a01dc8b502ce994f3fb2c54d234361e868430dce1330896e4f6bb1a52086811cb72cb6e5d5612f9ad1b04cc32a204a77dde90748f5720416b45857175ad287ccb4ecb787edd1a91a932241a8189f375f515dad3f006f8e639b0ae0a31b16d9dcb74849d969224a36d4e09181af537431fb6032b4ffd66ff671988b1b300ec3a4b7f247facdfc9fe837843ef2483c53e159f231e4730447d2ff2b573c18e0bfffa52b451956076f0bc4787ae542813587c6f07e6a9beaa622dff19ec2c3f895c19e430738fd789095a5607f3ccd77f7a41aafa84627d9ce2950c6e91fc6947e8bdc9eea7448c844854ea584e3be30ef88d4e8b15c0c3b104616aef318b587dd02b61b8bb378cdaeb1dadc0d9d90198dec3494a080a9c79005082822b7553e785fd1d2fc1eb67cc0abc41e6d4675921835871247237f7fde491d2b3eec42ef2cb205dc63707eb7a3abb0a2caecba1f6cb6caa1ff06f1ef189009860d60ec73fdc508d3c1bf491ccccc20917cbcea695168a39b24ccd0e8148854586ad13a26fb0b87c362eb6feac2b5f7dd299f07fdcfac8926f278a73355186817038d7f6d9d7fdd9c299811c5682e2d299bfb61f61264fe02b1f77394cd90218dd802911004f1e8d650e4e1326be7c90972e9e82145dc33c44f7ed6b32ed2c2964df5b1d781d5841ddfd23711ccf0f72c0b6da940e03302c3e8fb9fcdb2f0ceff1a977c94fd0f6fc6148679f898b1686396f8568257b0c119b65b24b8bcb27b64d873dbac06decd26829309d61bf5892fe5de5bb83a005d5943e2698c3ef379cf27012f655d6b4d0686132d011058e0fdab227036d4d1a70edf7790357a8015fa4d3806d0757d9b377bd073c60ac991c2c6bdfff23540d2971ded250d31ace9f04b76bc357bd351773fab30351582f5ef2c4b884ca08319a0fc19ed2ef0a39dd75420818e315644d3bc72fdd7406a8e96f3788cc27d79b26bcf11cf7cc32944b2d7df91be93d3fa307ade5a59144bdba1f226fe1886571c2528a6534f922b718f3b94358e6af07474754615a7639a89836412afd308d22988bf396edd7513da275dc6b8ecdf81475e2ceda0c489962558f38935fdc25b6f1d7fa04f2fd75ba3216f13b2b0209e3e8dba1f7471859793be372cc497ab2702f19a125efedc12ac39770e76657e236c4b4ca07ca28dc4e30a363a9309cfb0df96ed19c5bba868dc18cb9c8c06a4eab1c82ed57a56270efe8e0ef5f0c82ef4573129cccd62f5e3d2d5dd2a09aea18cd2762233cef8a887adbded83d792a810de8486ade8fd666e3326f89d75ab29ed714e8908d9061959dee40abc7b7b3c3ff250c032cb2aa2d7710d12176a0f1ba5be4386382bf477affd36b733f674a2498e50da7cf3656a2bb6b2a17616545c34931389c13930df31a46a613c7f4744c926ea7b0b4cdb6af9ed6c59ce5b8b31eb1ea3295d7ad28ce5746fd3a942bb3f77dbbe1329d71a82636f2dd755c60f9e60adf0ac881abf85efd0b7a99ed6d06544be184a221edd1ec9d89393c61366e16d5c424cabba501e64f7f9356d2b4e3873eae516dba1eebb784cf72b1eb037f4aceba4d499c5ab0401d94566cee9617b5ca59e44ea1d84c9b8c161935683ffba180e29d7af3cd310e89b87109968666217d2b34b1c65f945d130a0026cafb4b93ac43cc7f75c743d79766ec0d8c55fa797da46174b24a7f9b564ed8fbfd5874bc9041dd1a9c08d7ecf085e2efeb33692931900cff0e21e13a3e3a8603fe90c4c21564a686bca5adc0f2f9330c71d5ca386c544162fd24c493b6c5bbf8c1fe207ef367834f5611781b7ed710df5e590a99a39b3d6f97d78c9cbad08843bb21ab69bb74a03cb2089e15f00a7b6d7e7c96baa939ade8bbd8e3cc952ca45a2587252138ab78cee614b39b74442bf02d52619940861b20123a8e82ec450e83de97450ea0dbee040cfbc84b4c0e4aa181394feedd6149f66c1e1190ea83253822045bb461375324b3f825d2fdcef0ade9ffc4158d7b452a1c85d987e3d733fd8a0910ffdc9bf3a8f3bebb0f4be484cf558392f23d7989b0ebf16758c4bcf21b5c147d8012c8378d25b0799444c2ea3a3ac93c7c65bd9c33e1b56c2bb7104875a95a3aca59c16bf1b08ee449bfab912175af36fee0223c70e76927cde320acac1d0c7edc4c900dc2e528178f606fcf400e6ad018a8c330de2b25cc6cc33c9b119f4b342e3096e4c87e03c9342f41b836dadd4006b9fc7d9a9587e40d01be4868ad35274fe91c45586814dee020c56d533fdbbe4e3c702d350715e472fbe7b5e856bc468eed240bbd11882e3d37e6b445fcd11c7d67b9d580089d83d505ef35ca10817bb78b316c087b156323bcb08a45847a3e3be3389ed6522e7d75bc00c2dffc354f98be06a4177b30c9771aac823f0ea72832d17f65e36ae33526e73d949091f479aaba227625f719827964c7c09949c84144f355b1894b94ffb7a9c156a63147508a4cab42a18dd99cd0ff19787f1d25ec1735fe60b608765cfd3c39666c6b847244c233bdcc9290b8d67a32b1d89e6151fab0a2e6bf09f1c8a8424ab0b7f955d2aa6ffffdfb7fa4f0e0d24f12d90f05505712ca5f075c7e12d50d72f23f5df3df67ff1eb17a6b9ff98ae6013a3eeddfb0b4778a5d3a1de223726229ac7a1e80a8d6163d4fcbee462b9d5a97eb13ac85040b2aaacea4bc058735d27db19b30751e20abe4ccf780ae40629df5f81e416ba03177a3346d2a7ec4f656f5475ce7d5713038c0c84778fbad84324fb16a2cf33a8312db5b577d89f7473a03413a908acfee51fea4c3a5f4faa5f46eda8884aa1613e64e95141bfa4dd468572160b57503dcc1f5b38e214c3368941d48fdb6dfc70227802399d4480ef4401d30740d1aa8404dcb70dab5bebd0ebce8248dae06d9ca6563f4cc99cd5a00e9d73235f2e434419bebcc9f0e6e117b512326aa07b77f4127e40ec0d3946269662a428a6ee7e7e56947076647dd1705f81fa72d25516c0d10640b324590d2d569995ed127de7f41028c9d6c29425ef9615c1c0b2845c4f2f640ea824069c61dcd437dcb3259c1658d08ff3cbe3268a162a46c25fb99d92f43bf7a27b0d8ef7cba77d5863748966ff1ca87daf6d39e5437a9741cbbb8e818dc660b6536853fab93c182c53e438df173236823475e7f7dbd7fb6c5ddaed1b520cb5cda05f2abd6068fa48d8872cb9a47936478193a27737da35e0373ec6137e4a92ac40c7fc1cea814f795d4fd44256d204a9340d5c59aceb8b61835a2b46faaf430ac0452f6fd74b5cef193939a8b25896f6f44beab242e50bfd1b470cada17a4e632ac6049304296280f5c994c20641dd59cb4a3e2d6efcbd71aed934da3e8757e832d342f27c550fa31b7c1587c5f74a533bd6b48865f1a4e27e3fb7a12570e2d7ea647a6adb6243ec31afd9e9a2f581a03b31b28b9ade16090ca997c50d7093f22f666d1596f23b0e1ca6d2bfd4f2d55d9d66f9c0234b84a56719657cffae312b081c3534958490faa2a3e82579ceda6da4e47701ca73f39fc50cab1e1ec003babc5f594e071bf44c8008b7de22f500887835f48c04216615abf7fdba63960f52a4c5a18ab0b82e2e371ef3a5ae2faea27779db5ce5f77966ba2cac4641ad6f9b78f96a22ff20984095bc2d29286ecdcf76eb864c31be2d4437e73cd46a35ad0859fed8cf5501dc4e418641babf669590145fd5e0844802e172b922e3b12d95d660f533f4f27ec5b58c087db2b3a9e5811885d666893fc77d237db269baf53ff68f66e08bec0773338ceaec7fa42f9d3fdb3ffadfe94b2789d52f8d95de8952288d55fb1f7d0bfcfb179e2d6978f88fc90a460d162f72c4cc2e8a8e530baeb868cfab00bd4aa9fd62688bc2fc550545e50a4f7a4a7e75c0800101f48233408563df4af17e07512ee58f3b7d2f462dd2faae0749a714a101defe688ac127e6e212ebc6f45fe8d1ae98054766e64237e4f1d64e4b790ed9920da7eeff05a0faf0d3c8be459514527182a6099f5c4e32edc6b917bc826a999f320ea15da99aa335a8252089ae922af5a28a5e24925349bf0d410f6354012d5bee433835dd1fc6ace5a4d06dd4e55e4cdfe06ae9a69a4ab0379f1024ae37c5eca54fd8afc6b32da095455b04535de1f09a22c2683e29bf7c6f4ec18585383f20f5db5dc68fbf6ab05e99b843ee3ed8004bec4408d370555698d846646d9fdebc7f0f16669081207ec3e3b21c887b19b0d04fc861bbe0d0a525d416f386566d603a14f09358cd745482018cacb8158a52997fc93a40c163ba7902e86f06c60d6b9f1eb5b82f461207b46f939f1112519a9d64b4ad7b0a63d42ede698cea361aae3e51d8624fedaacdf97e74da22776b5000478894fdf8b9b86da5701a3ecdc89dd6719c5e4e40b4d717796795908bf9d00a04fd89b7a1ef64fd085063697ad09e368f29ea0546de87797d4ed3ed8ab097520215213427d8fb09002bff3c88adc3f2db7e99e4df8b5ac92dfabc16830c99498ffa4495a07f5025cb341748238b1f4182bd19daa8306962b2c09ca41c4f4d7be2d54079dbb35fe170ba49b970f9691e31110219ca3dde14e3bc9fdf317dca3de389400a3ed5a30ce53e89f2319addd05183b7055098d8fda2d91f99913da73a8c31fcfe0a40743bca4ebe04366b8a87514b0e45db0ed45177b70ccbba5c4d7b7e5c3df76cf247850f7953511daf83ef00abba19774a65761207bfe72cbed3b20cdabe117dd4f512c5ae051ef7948a4d7a81c89f4ebdff9865949e2357718363189e65ef3ff11bb37f47c3fd7ffa8d1173cf3cfa3f7d0121db14933914adcba5517a15632865b1fa95a20927fdbfea20e79fbd27db0c4fd81790c20111f82de41fae962ab70441ae3b73df7096a63fdc90fcdcad0b987c4950244dc82ef3db1ce5a5b805dd9a48412747b3518ede34dc68f86941bafbb652fdfa7e140dfce06dbab76e1a4033f2a261b25c409a02cf9a91752cec23a33051589b333c09b7ed5edb94c7c22e97b7f199f39bd78e55ba2334ecacf2c8f4a395627fbd8f0b5037ecbb62e177a22118aa9d99725bc0749fe043475eb708413dc738908c568fa37e7725b82da58c63bdcf665d55bc1f19c5f95ec3e9af0b32b8ee42a04786c3cf36d0fc698e376219a0381cd39771d545825136b2b7109c0e7b592ebad11357726cc1ef34c16288ea9b4624538bda4c68b9afab444a9fe4f12f9114493ed60d8bee82e839a52c1be0fa0119ba0a662ab737683444ea9a29a205b54223c4d45bdfd00595799d11b055302956984ffdca17fa1dccfd132415bc4ee18861b1ceb95f09ab15e47382f0ae96f066ad55ea8f126a827c58afab43c0c4d9861b91f11e26045f02a7b4d56617dfdcf2713bd65a27c6126c77189883357123501874933a74ce7c52f764772ca9d6271d6eba9c9b682ebcc82c20e16d7a4fd3dc96884f050216e402723cf035d5859f55dd06f8b1958d1d0fd0f36b693ba9d05f23950de8ca4f844d995da1a67cc4485a0e8f48cc988f77d54652f8466b3357543548099e1f15f429fc30a96e6c362fe5635f572daf969e9df1d805d280174d4f2713cdddde53d35baac15d0ec2ca1d6c131df180659cc783c621ced2d19846cc5f9a495af1a9e70075b45262bdcb16dd8703f91c70eb2a316c3dbe12e40dc7f7f0f16435a47962691d81e451de85ba7f068213a2df1b16b0295fa5480e54a208c634b1dc773133c89b5bb32da916acccf8f5b5d925b6a2fb1d2b6fe1763f8d0b51259df6f039a59f51e28df5b2cc87f845e1c6abb8c2e7c985b80c045ab9cb30ee8bb37315ed0aa8e2434364c4b44fcd41f4ae6f96b2ddfbc78ef8192f1d32252f40e6aad846964559b0f16a6541d7f3dca94741e30dd8426f490d93424f751f46ddfc5dbf984e3f522e141feca05f2a556deb79cedcc0e4c8e79c41a7b210643cfe289656252e0ab93406a6175d7e42883cbf39a5d285a38a082269a6c26efb9940fe75db2a195d490a7dc0594951be76b72e2f65e84cca34b57d424fa8cb8617bde38187eff521ade1c1bbf43e820979db600942243027779241c8366f7f62bbd9564ae2175645fb35e280b688ff9a76e57d7ecedbd41aa6bf8f3262de104d7ed881ba586cc3736f9e2c1ddcf4ec1db8117115fa3b25e2dfe94a91a6dc617acc7a05b4b0879686b8d27e4252759953e0730f4b67efbfa9eb4ec32a98c3227dcb3442dc49ae91cdc2d3412cc3b96094ab89b2d2261be70126cffee9add8457bab51c7f8fb0ae08f34aaf8bfeff3fe1f8d6a360512aaf9640ef9642ea5342069f8f79eae33fdeb9b986d8a518472f4dff70947001fb600090138fe3fbc7dc512c64892de03e920a6a398a55f0c373133ebe91d3d3d3d1bb1b1ebe8b5c7be96ae55a90f32bf4cd1420bf6254b9976486c3f5a7931a0f571a947b58752959b1600e62463b449847a4e02019f1fe88922f450064f9213f9e648013333db74f7fedbcffcc6d16faaaccc00ab09a5d991f95937b637b3c9f01f04e0b3f161318a055c77cd40d6ed055fde6a515a4f6b9efcb6b8ad6f9d3621a2e3f6f9b2e36ba23d2b5f1f5c7ea39ba97b1b454e719bcbf3c2af990400c75103a6792c9fb083c5395edf5995547119bad2036bce17087875358a364817aa816edc72180c19861b3b8df2ce94b9f2844cb61bf08961ea16f58bad7f07bdade1e323f9682d467323329a5d3d24250f9b899249fa1bda0ebd8b241f1af03b3ee8fc1a5b51aaaa6a262207f68aac66c400f70d8c182ef52989c975fba02d6f476ca2a33ea0931f7c9c95683cf209fc08b5c485d2eaec9ddea2d9bf0d95389bd4629cfc04580a084cb318d626e817feac83ae5140e8ad53843ec8d6df2899cd2d873872e98c164d4cfe492d35cc65000557904a4904872a775e254c4e4321bb768a17a27936881b40c15ce233e0b6f1ab550f33c16460afef9dc236356c3d5da106453f5c40f99589c8ec6795fda437c25a8f5c33d66280a1efdf1d132020715be375753a8fc576455ff57dfd044a40533f046d9915ba39128eea9c0f80d3627e52f753bd4033e8bbb030bf1107a8fdd63bf7bfcc60ce4bb3d211994cd955db9efa22e2a09df4e0f0fbf74be83c5b70c9f8e18e1c0dc8b46ab81abe53b4152b39226bc2cc242a15edbdadaa6e3cb1b5ceb10cffe90777f5f23b64ed0f08a551c2dfd38cf67fc37b3cce0c2dcebf7c98bfce7dd4690ac9ff0b571da135a0a2e8872089f4f617990c627450cceaab2db9dfa1d5ada4dcf6ed0929d3d4a3e47206d20e27746b161c1c41e473a742663ab79cb92bb7dfdecd9664d69e92c7790158d369c83f70af0023046d1d41d76dfd0ad9ba858f262cd9a5e9a8bac0021daea4bc2a74bb989bdda86ce48c593a86038a605a4de701f8f148cb9f4d5fed5b00855bd5b589eda0c86df25233ee0774d309929265837c31329aa177bafa2925d5dc4d293912f5c231cba135dcc20809179a74b6207396a8286b02f85d83256a32f541598a005fcfa6380447b78fead5482e50863d2d9460db4ad421a4fb049c351ab982f0d2ba7416a6047a7641770a97460cfb9788dca8b864a3344161b1667b3c1a5ef82d5d45808933d2bbcfdbc31c7f27844eea0c2f01df1294499acf3a6259ac28e1a1a3de7d3978b65ea24a9b0e25c391af367c92b911d4b0061158ece570c6e2e899e0bfef48bb63b81adca1348afeb149620159151c9bcf9396ad0427cb8953e8d8f270444ebee5992cc4edd7c0abef8a41c76c89ef72bb9e872df208ac78c27ebfd78d8db55880264c4214d189c2cbd9faca8a84777fc06994b057c9df0e23773b87f827b4441d338fad1622e186267602414f1487c11e6f53f451fe29e8e2bde54e7f8a70e72ee415a514e19b9aba7698b2b17c4685f5885fc185aaa8f71b3aee14f59a0a4d299edb708d90cf87ddb380c3cd851a3438c42f8043320a72d83f6cae7673417a4f7f89d10a220fc3c38d668c34b3c6b07b99ee5215af97ed4f0a791fd2767fbde9a42d714610a2e862b4732b5784dd90ea43188bfd736f47dcb9901ba242c1f9df922c6046927220ee191c1843ea057ee5eabb4c1de96ce36bb78cf00609ddea263e14b0d614a7ce22843873624af63ad0c7e191504cae2d7248326941f82d0a4d1a6f216cc7dd3f39f2c833b144e691a56311e08cd2e801e50bb6ceb96271dacd721c6743a2f9c2b6faeccc00f7bb7b6808524ffd25b72ac48b301c9e16eeb38cdd1605aa539b81f7212958880f159be54ac64dce6e211286f3eed5bd1c0dbd46cc5150318dd7cd59a0ed42ab984ab3df387f10d90f468b38c7c69e9370feba3542febc1f06bb8ea1733fe6e51c8845a6644599ad9bdefea523c7514e36f8b1b73a714bc92afdc6d9cb6515f9a8cab9e2e321e734ee07c51fceec6c380bc8d708993dca2ba42b868dbb81e4df8bc4dab109e70c1721d8cd260e35d962f09cf316c03b41a19374a0eef1896d2650d35765c63b45b3f5fd70888a6998295e069d306a701ad4c974424050b77a02faf931a1849d2b820f2d6c9bbeb51c239713726df3ef81b5ba7d4e6a8449206e99eae01b8c67ad29b46d5265a01d35c8a7f05e4a4d4dbc25e60ee0599613d4136962c9c6abfcdd50ae5bcec7a2a8d2e740645a426207673b845cc1f57a9c8c43ec25edf75a6aa9e802be7050ce5b4ed4ac436390bd5949db2cc8b727d527c5738edf70041dcb0584978c03911981aaa236d971ba849c301d295f6b04178e87a5125cc22c0bf1feae010689dd9e73fdfd63d48b2f45b4bed4b7e2fdc2648fc7317987f02f52640e226ea22bcd0cb2a1761c74c94fd5eb911c3a2ab923f08eeee0c2097c31202402588a0ca1e9f38da55f305c93a552784acffffae712d4d90159bae30e2c38e5ed7cf045102741d3f36bdf8d27071276d19fe243abe05b6f0f5a2fa9542015022f4c18ad3329d539330a00604d72bac1393fcf040a9b9e9c037aa24c845c6bae6f53cbb8cc651cb795b6521fe787ca594fdd0ef8559b76834b9e82ac216a9a7675465ac7873626bf195500c281dddc1ad4f5fbfab927a57fd07a71146d8f1d1c16f66923c1a0668071a9f09071bca96bbf72c73c49639007e844ffc96dec9b0f33eea39fc56171fd2c9b6418c39ec70f6cb8ab8d98b1989ea724fc8edca61e67a3a27e7c15c1f7040aaec768e551b811094e4794a15406583923dfa7377891ca460041a996aea094979b43c3cb7cb6bdc49a8d8ad20067112feea6227029da411edd4c8dd8f07bf80a04182b2c2c5d4bea68c953f33e55c3ca87887f04f98b27f52a83ae31b32c0098111e082eade5d4c4353cfe184085354b99d38a928279e85256bce61ea1f060b071fffa8534c77ae73da2b607b4eacec9d9a196905c0dae3ba8f379de4433968e8585010787ddab5e1e6c902bd219907fc5d54fb488da9d615ee47c20a71581cb63b5f215c97ebfb7b1f9daa6a6b84c6ee92780a40f4e2c001244de8fca25e47d0f528d20efd99a3a1bb171a1b66fa906bc6503c0ea9581258aba22d3e84789d1990d25dfc0a24679ea27c6bec9bd41bc6cf876a6821c730bc58c0e64d51b3eb8fecef936ba7fecc7e95080b5f470f54e7d719def6c33ecee9a3cd1e6339a577ac83d27765268efc6e8190e1ac4ef4358033fa3750533f2add03232f26195b91460c01a5b2484aac76770592e4a6d7667b2381b78e81ff4733560e17f8b86ded3b56728d65c94a293702986b4ff831e4cf745f5e3ac9ef276c5de22ce5e95bd5fec788322405bd94ad36e13d1613e4683b95cb5dcbfcb09082fc106d0ef7780ef75d10c0bba26100f37cf393e945e0d2252fc8fd09f8e01b84a36cba7adea1958e2e80edbebe6fea1db0b09a97989c5de0ce339f6dfd2edddfaff5eb7f7c2e1cb913fb81d7d17d27065bdf826b009c59133fcab973e0932ef3159d1a840084f437dd84f6eade7b6de628ed45bd316452117620d67ebf4d4b343f8b4f14093644ad9f1d7b61b8a05f2eb38aefcdd0cd8369d542003bcd63a04ab100ee13d6a02144d7f69055260e567377b97c9c2d6a5252de7ee67971e1fba5a5ddc381d5a81cf9c1405b279a4f4f0462f81bc7aee4b0189db3d42ef28590c550639888ae7fe15993593b7f5e3f19552f629337552a1969ce460d189d9c23b2cb50bd964261c64c839b11b55bf14b763bf3e4af8e26c56a5d54eb9a50447789eb03e456b50c8fe41f5cd23e3713c04a4d14912c9f9269d991a6110216af09551a1b0227a42374760e9089e19fee6cec60e0675906843fbeb3fc0d551b03ee9e73db5271b31a9dd95882b310bea9615ab25498a8e1dcc7bfc0d8ac2f520ffc6f907eff4ab688e6b5c4e7c4b4226873f0d7b2f6e0ff154e5826732f847fd6a582638bcf8e472a7b296502522950c73683afcb74dd3ab0942463a7a850651774a7edb11d32da6dd6e1184cd043e5da940f7b221eec491413c1958d6699777e911a6dddc6de7a11248044b346111f3188c10cd10d624e90691dddfa8bda3184e2946de3b5893bbb1e3f03297c9b5624943980ee95f41aa5bb3f7b632bd98ca4d28d21839b3aa27b8b58f2ead72079bc28023e7ca3c4c587b40f4c8d43f8834cbe613845f8e0877eb0b8484a1b9e13b4cc39f6652d9780708b1d5d03c44452ee3a780194d290fbd706eaaa6d7cc51ee4ebdcf5cd26416d0f5a49506e20c59b391db19f2f9936956c2ae478085ae87737dcf96c8060f6173ab47b48dea0f502ecd779adc0057a1fedcc95923a59954eff3b336f2ec209d6b592408f45fc177a4a7a0af9abb491f5ac28c1986db89fdd8bd9e9f2b969199a03ddf9ed3561c897cd8217332dc495a5c395369d3c47c26f78f08e592c17efe1e837fcefbadec7a02e91f14d3b5f3bf5717fecffb45ffa32efc936fda51d1e4ff3a57bd4212a1c4fde7fc1f1904914f79b663d3101d87c3e287ac615fb6f6702e1236803038f633df6a8db830efb2073020ba70a56898201cb87820131198628c731fbb15c680efd44eba1ea82b851254a1271658963900e4675411647546dbcd8594cb498261490ab14b19ca7eded3c055cbee18ccbf4effc7a57a12e72016981c0a2d6811c4ca5cd1d3f1c312936e8381570b411f743115d11443bba5c5da18e37e931f08192e1655f916da834d4ab2f0f311f297e3a25a65625e70db31224986f68694f3f76c8563bb3e2caf5a8fff704afa59a312432c2b45465e0bf5fbab9bcc5e5dcdd1e8c491c3dc4ee2765b3578bcdcaf3760e2ecd3b763f3aa3f1c2d1a369dfee2daed4ef1810c97b630d9f74c0f7f49a576d17932ecafa3b080ae76ce94b672730ec91b06d45ca218d6aeb4edfa334ed8f646cd5f6da84510847b546f9bb067790e7cce7d3ed58602ed84b9ebf978bcbeb3dd1e4e7e9f27e8d9c3f92abd14f5fa2705372e68c9897a3f8f6be41ffad26ab0621824f6f59a2d1b975511e19e2ce095a894ab4623c3dc409765d9ab6758e870bb032f69864ebdeac4601f244553825aae00adb5d91353f58bff088120bc2d5290f21bae15d6f3449a600b8c690b0b8bf372e0140a07cd479e349dece9ac397d3da898e64a440f5de019e00892de1fed68fcdc6d499ba2a863fefc22681dc9d952e387b00dcf8d53d3d77dc0fd240b1104574c6091f9f54158736c18b91c95db3ef0c7bdb1120cbba98d107f7e09ded4f65b56ee49732fe17f022b0076c71bd9c211d035b8a63059f94378d6d5af483b9fa3d891dd7dec50a47a74bccfc6849ca98a75dad9ab74c31d06f07df8b312cd0ed4a6d44aab145cd0976d1ff7f0c26b518b2baf0b457951fbc05d49e5485000483e8e6aadd9ef5d085599f1c705ef54762f5088b7e409798bee8ed12c66cdcfa24e68db127f848c73eedcec861701f82b6b8866e8669d3986e1a6bfe9fd89ff06efef2fdfff8fef771ca94d21d1ff9ac55b02e73f7a9ad2d7cf5ba8c6183f4887fd8ce2557117490f122b65fb67757fdee10ba4d64f298a14688b829c4c598a2e09bdf181583593588c2337aa7090f6c4e567200592eca45190181ea1340dd64add8579cacc76f0bee432b7ab66c1dad5f2f0429cf4e1a7b016be40c87bf016b81b871a58b64cf79109552a3c470093ac710ca5a8079f0e374c4b5b84f64ba5a80926d724132429e40012b098d26e187ebb6d0109816e23de349fc1ee3807e55c613f5284e72ce5ab6b28e27ed06afec214f78f34a39c100954c2a03327904b514f1b7ac31edcc2627e140e10a7cc846952a8381e68d45be89cd6d2d30ea02dbed8b79f5592985e9a0f73569a882b0597d60e89ece8abb7dfea5e3e3b9b13deb50411ceb9a5e4d366e889c64d8db878ec03d53ccadadef7777fc99be2529e1ca829dc4ed351fd2b0f4663ca8513b151f174e5601b3dc9a5af0a4e8331560e41183c15579e6453ea8ed98748d8cd750ab413936fbdc878ffc8e34c36d274be528ac542bd9eaa26dbc67047eaafb85b4458eb01370440532bc9d4c730d18dbdea8fed215dd61c43205add8ac9bbe7aa9c6135e3c368e888fe782fc209bec86086b1e5750680bafb6d50bbb123a34cde1db3e9318a40a0db1ff4b321c4d1025f9b53b31e84af810f17bbc023bb6d840ac73938c3405213e5f3c2617a29f55934b339e300df9ec290f49311856f77ba16a34043e649cbf01736924810506ccf8fa993e40f72d195614000bbb91b3ae15c9e43d1645824708e3bd82d20062d87d63dbb1b041863f2df3e5a6ad2ae30af395057817c002be2efa1cb7e84107de67809ee28c06818ec3e23fa0dbb3c62c1d5d27e3033c938b150646480e7a48d90a4a580cbba18f124a2d3c96697c684b953549e127269a6e4590760c1ffc0e6b2da74e217a950b7882933f4233365a5ce2f67df6e3f39f9196aa912ed728a010d6850218668b2ee835fb2f142be7887e17d22375e42be448361ec70f7c3a43fb9c9ce0d4d65fe8141eabf89419c7f0737f9df6aded6f007db8620c6ae4a0b73cb533205a4a94ca3b48585588d30081adfae7d4e43fa85b5223e3b3913d5d0e3d8bc52fc51cc8fa84795f9004686fd8780e2b515712d38169a82d22f43cb123faaa1c329261a35b289f9fbdcd86513d66092b57c450d8472caed5dd463926c426e127cdb3fd5657720d8921600dfb9d0e73b40bc7db08cd0ee75d45391cd128db18b8131c16fcc9ecc4a02208b5350201614a5a17cd5419a7a89a1c164862dba9c7be8c1a41a74af6346da4fa439d3b49d9ede92379165ab9bcbc12e20c7405b8b5f016ed037002b69995d1e3c39e49ca8cd997d670e26cbe966809c8133736a728510e22058404522d40ea228c3da64028e090fd364772c19bdfc8846e2bbf5d9582883c7c80cf5a2ab12a060703b4982ada7a3a3d25b0ed375dd9a15f3c48646934ad1beca10ba1fa78100fa921cd1503baaa69274715b9b73bfe9c785bbd8daac5a20d7f8c3ed5961fc00eadd6a958278ca823be40a809b4ecc82a5ed883752923b67bb80e98b029ac85a92b2792b6bc7afd4593004229cfa512277ab8fdc0809210809a66573e4647fee7cd166357207466018cdff7b733282f06ff06bfec9a3877f7aa6ef3fb13211787f6065df61681f5e914d3a17d6deb0d6de5c7db3b7ea6465d8ce1fb58d0553add3eaa7bd973be8c77699e4ac3f0b58eb951a08eeaaa93f8a0313c19bb22117da79941a9a284a24b33e75c42184262792e246c1346d6cb129cc1ad562e3a2a5085de4513f74ce5a39c9d8253bac23e550645637529ecb9f86738292781c812a548506abce50c99c42b3473547ed0eed492d5b481dad7cb42633d56ddaecbf4e8630e412aa8d1e0d5062a8e29bfb522002f58a38dadd9a9fcba1384f9c2d1fbb9c0ec1ef1468d8afe6d959514c2049a067d6a44a48032ccd2c589dad28de91c09de18b23f393e9ab42f89862f3f6062be5968b33c62bc3d498b6b691e0e8127757cf3132e236f45878d1e2c4602d6bacb9f7f46ba834f22ae916825c399b465594b9b20281c05c270612af5ad1c6186568b57ecf721a48a2b11d335441c765a0bd025b2bedd232c8ed00734559c31c9e75b6dcb68b1f188bc7189fc405bd4282dba7a99c22114eccf6b33680dd4493a8c30135d0cab9cf42bf9d6d1ae4530c15c8151d9aa717bd72f6dc37704cea9728ad70655b0f4bd7b9e18c04c7a6fa0ea246130cb3b8bbe047ffb834c7562594bfeab2407af7b9714b10779d83b2b89a4e3ca71f44a070862fa7227d01921b6381f4bc3915385f796bab0d67f6b1384d7abf55951991ef84074a9d4ee258365beb4f1cdad58f97bd32b9e96b562bc868926ac4a7d914eb233f19601d6b6b32b18824e14629d16701ffa719d94c72328491447a323afcd8ab91ed89c0a453e0ae4b028a21d099034bbb355e625c4e24fa872943ee519da78b21bca9fdb749ea097c5ca17e82af50cd943b162a1cba5ff57e58a5767b5dc0485934521964c74f203cca764413f25ffdfbe1c2765ef107a49562f1ff9f17fb9fdef67fd30f1108f04f8084b81a532209834433a9361c5836e506848ddf48687477d586e5d65cc991687ecc1cfdd87e26d9242087bf549931918eb373dc7de48c7d57c6ed4a933063d21924499714f57dbfcf222e94a60146ecf8b39e2cca547ee98ccfedb814560d3faa1a7d86c39b4bfde6eb99134e063a82b5d624b7e141ed363c9ba0232e6f2b34fba7b648481a2b8e65cb6afd4a906f3e2afbfc5675fd4e949a575c529938532d73d52203c057298f11d90d24047a545e4f7e76da112cad70776f201efb34af34d0f4b39855325002b997b8da5cd61335593e314345a229e3c005626351845f34331b6a1720da2f7cf1e96553d14a5201ed5b38190dce6ff3416726f735d7e419c886f08fb02df7174e2ca5bc21a2ca95bd1d383f709b90e8a3bddf000d31941f196eb5ccab8171c15b0e6daf8d163f1a475e239e6f811a7f0b7cb92cad35cf3460133cca05ff6a6bfc8080751e5160c1790fa997a35d9a6154f732528889bfbbba0bf723b1012826f690d279152163496793e9a4d21d2f99ffaa2b119f77e9fc5a0d2f881d2e7f7aa00b7adb0f35a14cf7c0496af34a950cf892955c96abb479071f3feee772cea202a76de63ff8e8bd42997ae39bbf11cfeb6cd39e3e3737482e542e93b82c231ba766b9311d3d12244fe5824517450da2888f0f63cd1fc673d67354eb4553aa2253566af4848d5b28d47ae9aff7bc14fde46f5ae0c6ecab80a832fc992c818f6e5ba11f6eace9a62d2e8562a59d726c04106b839087097ab13acbd12eb69f57c240055bbce4968c5dd06f483c87a4e625c2cbb9aa500470f15f0e3fa5001568633315ec0974d298f6f44625016ea4192f71178d5594cd8f5cc71b4bc5397373a21e9bc680ae3de94d1676daf16e38b78ffe9d05689bffe0b626e14d6544fdc16d55f66fe5e8b2ccbf81dbfed7da17117a5f487a36eb8a1f84e6d614787d1da7ef043415d477f1260ca2cb8a0a278a591af861c66596f613060fb19e117348ca9578bfde4b8629b94996f9858190c489c76df8c86807a7cf4a816ada809b627494ed15a8c0a4726c342ae324a84745b1704f07802505188a0d650afa70246686895fa34d755fb824123521d60ae3c42b8b7d3d6a7033842491e304dad3acc655140728f9b60b77c1d12eac0f642e8a41c1f312dfeeda2432330d885811d3cfe15fb781e69e122a57a07b0828c37e503e6a94e50a881049a7e3a8f561fa5d969f9797aadc6e6c4080b787fa08b461e901d40577c7c0d7d7caaaff707c07e49a5f67e418933d69601115423556f2360ea5dd784108e2dbc47e0c44e9fc2ed61de66654d5fcc2120bab6383aa551555b09a5ee4fd8d2ef09ccb9a6868dab35814ec525852b8a2ddce24e1d0eaa1f8d795f2ec6d11cc3b166744a8db4f05dfdbf94b77d2ef94cdfd38460ce7ed8b1dc59d9f64ac40aa77bd8b6309e5b2eada31b9983347921717b0ad79681b10741d55ef924f2bdb0f778a5c6331e2f35a1fa00366353b0c2d29f5c4c81bf96cb0910bd0111c39e37c5e97a4f51375800fec2194baaa1e85f1c18733010feda80086ba2f1af2808ce925bedfc41ce68a5717d42ae391eed230bcb7012326a2ba8df3b9b7cbdc78265c43cbb6e555bcac3f316f4716a2c593ff980d67fe668fd2ff2083eebffb2f8ac19922f85520f85f3ad07ffd66a82008a13f30300f2c43118b6da36880628a595070f555ea98a370dcacda8e06f12456208bf5222786202f7a1317f8d88e72b63608303f8c8d1a9ca2723f02ed9f6415bb19306bdacefd0f4d86efdb6fd4a041c32a509caae2a296e5bc754da1b45ccc094cdf91f1641cc34719e10f76c2a09d3cb332fa77c1e1372c5ad1cacf90a3b4c39daa79ac50b718b2437da25f7e7e04ba2ad38f1de4e6c7d54ec68ca2a041e1927bf90bb766cae72ae68ae1eb41df06d91aa5ec5c76ccfab49e8953e12b678124b4c7000ae53219d98202b171638559347a8d582dc9f584588c7b499bc8ad70936cda379d8415b25fdbc9a11d7697c0752c6777f92dad669a690411c82a2c7aea776dd3362138fd606ad1a1095a877e71f312ed1db79f22e13c6a0a510ee409b8cc3a96c9f3075e26233f5a7e4e166859116bd09561703a19148d23a49cdc5734e2c98c2ed10c8e399637f069b60feae7b63c71ead2eda834a8665053a302d2bbd20828b7ef8a8d0829bb9d8a0ac962aece046a0e0a66f0823669ac33c2dd13e182bb3c733ff1d419a84837fd20f0f9e1a7e909189cf95ec1e02879589d8fea0f956a3deef111db696bca55eb9ef9077ab6ee1a04a389d16bf54a24a754764e3559a99a1f59421bd655cb0047b4ff3a5d5fef3f6a9c2b6705b02125d1f5bb56377b3f5d12348d27b30d17c32478a4d08d2d040a7d232374f995c8b6e1a5b72d6d42c69cbbdfa885ad7f87d26fd75c0872619a326d0a13fdb312dfae18cdbe996b8db97e05969e132b9f1a85b2caa1af769bfd7d83c0eddeb2a52dcf42ede4a1a30da7a453713f8b2db0711627d8ec38c0cbe549a7204ba8d089035bff64a9018966cd2aaf6bb2d66c6323df71f8aa0ffb6ca21883ea11adf73844e210f3e0be26dff7fe3a95ea8c20de41a1cb95068785602624b95ce182a44e9388b4939b1e9d2cf4221e7161023c65d00466f0f39f67d218c9463f19ace05689335da245587f7fd89742d39f5938bf9fb539cfad308ce9cbffaf3327feaa2bffa11fcf7a257ac158d1e01b7ae767d99a92748a22d482d2cafdecb6b36bb33ca32076adc01c83e9b9ca57ea2dd9e3d7bf0c201335d42ef6e6841cbcaf88b905a99884c2c8ac61d85e67b195241ae205ea970b3992c1162118796c415321958516e5eb3206f03b931ca070143c2814a429fcc62f79ba7045e1f44403245d1045c3749c34b2b32d81c724299fd77efcacc612b480c755d7039238770e4d6029969024239833579426476c76ceeb0cb39e37ed200993acf7f40f89fac25662f79dbf5aeece380e3d33a515ab5931bef77dd769ee7e113dd48598eba88000ddcc38843d26f59af970b20c5c223a4c11e9de11de78928dc435f98641de00666512fa649f9ecd9958d7eb1d755b356d4cb3f3778eb080b00023dd17c6b09b74b672566b8eaec8d8476e479bee8ec11c509396cd546199c60f4143b6c2ef3ed551e4f64e69993d8389461754f465c4fd939b39324de4f991eb38fda4d815423400b883755ad9109a101e11367f1164e994656f3be18a854d4ff9588c9ea7c102965f62c9fc05d89e9c43ba2ca6acd72b225584ef50eb8096b49ac4cfd860dec73e6a47bfe8dea21ee43887019dab7a9ea224acce6679f4c42e077e3fd6e71a36eaad1e180b4f1fd444aba4353562b752f41fc7d38bbfbb44399667a2f10452ad69a34999210c0e2c6b90eb780d5d5c15e79b5f9b96855b75f63c583ec837c5b7398c5a24b14d8ebe5d069aca3925ddcade70a74bc30bb4be2f7519c55ada9ed02b779b117789387293460c81ce628b02cfb0f9e14d9965c7940da7cde0511f66480fcfd838d5c5f002694f44cfb51256ff32b8805d7711c59a2421473d868d34f37168446312c94efc48d8771b031003709bc7d30b05d240d53de204e95e8484d67143f1eac2d0ae523e073251741b806ff11091bd962acc122eb015b2f5342608c134a33fd564e278ec9c3a4810f4cfa43ef642b9b901d79be92ac2210b043eec7c9e800de101dedba8fcf816be044eb418de96c33270ba5e2212aceae998da720eab9af88e747efd0872ef0e471c1d0fe29478223d1f75c1e38d5a69ecb310e3f8c01f1cd768a02137c22dd0fc6eb96314afc903e5602e17801b26b7ceb13f5bfc0c58c7c604b2b5305ddcdabe8ac7f96ac1e6f5c1d934d702cd27d0a3bdeb6af145a374cc1a8770c32454deab6c69372bee337af8c28a51678767eb69a741e635cf02c6000dc3f9ef78bd4073185eefb5bdfdd320f5759d390e4f98eb5e6ebbcc9bff7dd986286aa9ae0e1e6360c36374dd3a1198d610ca11f367ea123295d2f341d02fdbb5439b825340dd4a9523ebc786aee9197ca437fcac86d106f76806403b5e058575e2a1525844c734437344f9cfdbce2742779352683d9448e9ede735a1706b565788245a8c38b1890e8e29d7d4562ec736ea248712e786d0db1e4c7367fc64af8648562cf3d5bd8b88b2f8ba93100d838d78c1aafaea07a938934c13f408c8d5a42fe8a80f17ee52d0827fb9c87e299d66c76c98ca6f599ad6ba027f0134f0c1830a8c969ac48a0e9830b521264862ea6267d460f574cab33ee0eeb97af4912dca1a1df6ce4d1ca26b4bdbc03051ceecd5a212ad4c16665172654a827dcde22f1814e820b0a9af569cfbc915fd0b48337a2b81475d68f6e9df046452a4375296e6bad14e9476affd5958be3e6f62ee03b20bd64e14d41021300835bd072b6075baac6aa8815d2d18d07e288699600ba686fec1c985feeee74e3d72980a0dbcef94b42dcdb7947e32f160c82a27088f8f6893a5dfc92b583b7ce566758c2b0b1d56f07a59449e13f9293a786578720a6c537e9b6cb3f2c5081cc22f3665bff48d15f5386da702dd01d7d2ba7aa1a076d213cc9178a8ebdb0b2e2f3be077f676f3427bfc645531b499e4da03fba9ed240a6cbbce97ee999e43c0e61cd7ed4de5c863e72c3eefc8121357ef1e42b04171a95b16d4414254a54ca9eb570040e65e9caf95e79b318caa8639974c1dde89e71254e7e9984e9e5407da0959e9c66f29064f231974011599dd663802e56fbeb509a74e7f1b285a53b7f522e6f2ac3c6e3609fcaa57d6561a35b3b78236a7903ed5344728fd35f66e69e8bd8237ba892453dfe06d11d1a0a049317a893a134e625674060a820a5ad6ec759caa3579853d8609e2919b9bca24578009c2620d154948800568bba06a80e4cf88dd17013fc6d98ca3ea2f2290e4ec21560fd82883bc68a7faec1c27a2f91014c7cbf89e62312ff6ecde4579388d137411eeed5501ddc6f33cf7f45f2b7bcfc422115463ef6c86e929eaef4b2ee2ea9d8ef379922beb832ec01033666be78f91512ec66b25d2a938f73004e1c39f3e6eed6f34755381dc0a30b4ade956f134982c206d83a30927fe36738072f4cbbc6833bda1fa920f37b780063879e4666ac26eeee692c740040b0de118009da5bf6a23216a3d736679fa8b5fa32112ed30e0d1493ed4552f83d38ab3f174b6f0e224fc1a39180b120cb5cb77a331de8aa734fa857166a3dd877d7f4922be8270257c77eb4f31ddd4e2909ea1dc109cd54bfc4145acd49870218e970a56241f06792bf72219bb177ef141fc1d62adf4f5b2e73bfecb8bf257fb25e2bee4b03ce56a0fe35cde81d28daa7bfeb0bb3838b2e90248171f7f11709f0e80c65d6fe29de404f4c8c6ab433c6539e33da8127a3660ed78562ac2bdd1fa8988bb0071d4c5ed70409d680115c0b393183014adc1b970d722173ec96a91cab8e4c2e59c9dc68a55b9ecb4168b3f863a8a66328cd692100b7a348e722c27795d10d2a5c91b57415a1b7f31337e895bc0eb4ab806f5abc5a4f066d9a3479f2d8766d612085cfba676932a9908f3db3fa468087eef37166617ee0cbedfe61353cbbbafd7fa78062ec34237a5764c214e66b4bb9b003c20bd81cf7d53f68f5720b0c79e9c5bc0ad1bb260e5eac93ae93e99109dea8df0446afaf05639e79b68d980a3d39689ba7dba07c16ba7b5fd0d723fe0ecc6bee5b3b96d3c28fe5a4ab9db88ec144a298c9940d055410291e733eda89f1783b4b5ec08dce9d980d9a0f6017fda20d0e7f8b8017cfc42131deef5a07a9f880439dd88f96114b65eb04bf444e17d5f8d15eba23152dc93e2164d3d336da5d2ff524b9e5205473bdc3b8c61c9be88c5ac4b46b1f906190ace278767bccd46f25beaaa5653dae42c4afd89732b5adc8684c502f444eb568f64d12b6deef4e6130342c25af982eb9849f68e8c35da337777297b70178ab4fa8050179af70ed36b597ed5d0b1980093617e7b0e669b52323b0be498e7cec79e61d37d408dd4eb448ee901afed8fe7675c169c8d570babe560dd643b4534dfcff90b665d86dda3984a4d24ed5b10889a5bc0809d2df449c12386d863ba8a6f91beec9500d90ff6acdf3eed3778bff0cf8a4918362b8e66a12703e225dd4031df173bcbb72b69c7d3eb3a47d8c92973a9cc66881796a8a7327fd850fb1108e401246fd6912714edec46cf172c58ea22fd49bd14ef543e3fde0f36dfe007982f9eb3b805b0f8d9ca0a78889ed94c6dd2291744e80bb34d61f7ab11c2c680efc636337c96dc8ad1dfcd2df5db962c337061fa7b324d099b22632e7bb6c2b4f9d82448e7939856c52753cfb513c78ba4e8533832ede881ba3407875b7e24f772e0b2095f98f4c44d7a75b753dbcffd00e2c091b284a253afcbc715eb6fdccf0944caa9ad2fb30c0f9d943e512f64dc3bbe2d7d72d0ae1838cf979d6a5d7695d8e68bf0e32aeb59264563771b2a7e9ffea087bf0d433c2e346ba09bb30952f3bbbc279d55342c7bd43c6b36693c33c7603709c98bd8860733f53680227628b1b7ab0eaa7693ada07c6e86ab2aa5d85e033466d6acf23a7b7ad46ccf327c261c1f4d0be501defaf577bf14a56360dcc1d04d885736c1820cc3e54a5f1a75bbfe18823a6313b324fc6b9b8171074483377345fb82f549b99c2fd4f77453a52d54d7b24f0fe6a1d8f2033e8ffb397b2da238e1e7d6351de02e09c9a7a193e62fba5e411c94c00a7c705a0b1b6c4ef15aec55b2f12c46c2a26a073d3bb4fdade111d4476a142838f9409a6381996b2b9962f5f47842bcd20876e26a1e1cca807a2264168a745a31232ccf13a75d99894e66abde642a03151aede7c9fad6ded3ecf8d6a1d6d0f6e2d92baf2ad2c8dd70123024e0b28da58708699df962630b0cd2995ea9e9de1059db1799e2b2c45d8b7d85216b6e347040642eab5988e4ca36b46abe85679b3bc2d947e963566c64134439abe5a9a859f92165f6ba1909145e906f39fdba5d267b45e54730d9f46a1215aabde53ef53b088efecd7d3ac53a5bb42ded7df4749bd9a2c1a73885d8932c0f81ee654878d1719f3c2058488ea22a2aa1154367b837e51a6461de8d37e3f34960a558f2c275a5c89737f47b95e8f70adfdd56547caef75bfa617f4c54a4d5021d61616100f7f4ea179656d44f98dee4c2ca0a0bc12557abeb2ec05a7c5f5df0af85444ea2f7e0dfcd8375303df8f4a533de45e4429feb54aa6009daaa0534de00599da35477877f1e5128068c131a9c5dd7222797a57a448899a74f6ae9cf0719cbf23e6c79ba3494336087c313c454f028c4915fe1804d89c0bab20e2642f59c290e5ead1dcd4b97114e9d8193b36c24d9c106ac6e756469a24722ef4c4c04ba7db0b9e5ebb7fbe5fe7341a4514ae8a3ccbf71981af01b15f42bc307123b4e06b57b5d9aca985300a6b9fb61000551300014bc2034c2787acac1f90d3f280158cf020f6a2613887bb39074c6ba12bfec0be6f32dabcec17e91cce4d1556c4c260b78d7166ee0a20d6c02aefcf8820daac7b0f581b8b98bae81e7ef5706689794372bf9a50a8bb88d572211f5e5b96e045f521ccc25cf539a70df2b5392c85edaa9c5f851e863cd59ffb3c2cb18f8ed21272d340f2681246bdd119e051c4a1867048665d1682d75712f49597ded88d3fe9334f410a8557a81a01b4a1b4dde23389ad8bc5145adbc6deff4019e5abc93b100b2d695f2948b18608b9bc2efc69399ca4313117b44612ee4b12f406fbc8704cb641340fea5b5e40db4b20b0b3ceb5e198eda32c9885f52dddc718ae24f6923571f2b9131b12932c0841ac12e14f2c7061f2120d9e7f3004bc502f326f4ae01754fbfc7fcabcfdb3ade5f1691549ce58d6bbe3c4df8c337a1d2848d19c9f441a51f9829ebacb247a4238484af8d137c9483b7248fe8c1ef65bda19ad9e431be2e81f76eb7ccb8cd97fd7ac6f77a3d8be97c416ac11610ac61be21b1738defa784637284627ff27464fb3834765af7a48032fbfbd37ca9569c626a79c14a7878a671fb102451afe17e8a468fee690351c3ebba2fdb79a4c394fad4b7bce5e14d3f7ad9a64c7aa1756323502ede485e76ed69932e472d2bfb016d0fa947fb42ad0cebb8892d92b656a9135a6e76d5d9b1c333b74741205d6a0613ed4056f50b752468ea9eed8e22d2a48b39e3ade696710dc5580d03b93b7358a32e9147dbdde239a1bb60c5eddebb861fe30e39f0dac3e11c0cfd9c31149f89e726a8ac3af9817614025f802dcdcc91ed9ecfad6eba82992847f5805c4982af4a3e100d8949eff8bae5356915a1f70be03033d001a96f4d36ae2ba619429fe83e6bb504090b83251cc2a734e905b55c5659b542bba72dc313f138fc267914c03a06c8e0c484341e321727a935716d0bb476d8348a22c274071a1f03e4e3bb63bdde41b7450a4a2cd02319fa963bbcb76452decebaa307f9da2999546e00f9d112dc915281bd38d537ee7b4d0d0abb391a166860712fc4cff69e0f709f844658a6463224e8d42fd72036a7dabef09d7ca601a024fd2975980dc49ebb91be456a262d59a2902740b46e88d0e66a798ffb624a3f7457ff75f63e60a4ef37d7b5ea667c95db85665a10df4db7b0f686b3c4140284f8f2998b1adea3c13cb8f65ebf122e350126e2a97621eba044df395e2d504075bcec3c4fd2e9a4a29f5bfa4d127abf262db3d4007e92d5a102f0fea46c92811c7b7e37c8ff998b64161d09ea8acd301ca4317f6b0f2bf43ff08ffff4bcc2ffb437e95f7e311ca6ffd8c71a00db93e9aff263bb4e98393fa96f5db3f52cb563f6448fd9e257a7d4d600f2a0d1b5d969543656eafad8fa0e1fcd48e98c74d9a9083b075483f666d59d5e32073c70afc611c4a570aa4a24ef5d3ac638cfa94c39c769fa432f2ba71db0a826901cb29bb130857258c62374ef8ce0f9209243547460d29d56a6070d8a5a2c2dbed333696e2af4664a8cf0585c97ee550ae1045f54e29f2956c1f0c3c180d33bf80357cdc96d1b09fd483e987580922079be58b752dcd0d6f38d81ccf3d1e5f1259edfd47e230432316b3b24a6525687a2386b4c5201ca409497a8502ea6493bcc52b317d9075d03fb9714c99d9a6a7101ea77456a1fc9c95ee59e3524d5dccd18023f6f660a970b0118ec02279636f3cb11f1a7eb0cec87c68d392d5275f8c5ff328bf33f8cb41fdaac6180159a6af6842d856cc7514ac92bea56103ee8ebc33b48d9432c31f5ca1c855c7fb363e41267be9b12bf2367e1d7cea9a25f7c5378a2f6cec80e27c71aaa9bab19ea1930afc60f5bb1942cb21a4b4dbd687587b169e644cc3b9c6627d06a2471be875444abb168337aacd23a79dd6f9b1fa601ed5212910d2fa454296c98e8b3f66b673f2deb47c841fe1dcc8f49ee50626f34efeeb6b666f7a771d361df9081690d6f4ae9d166daaefbf9fab0b1e5ceafc476919f09f617c1c9bc2d4f4289a9e174a69318ff8bbd37ed5155db1a85ffca4d7dad75b634a2b293fb0150105494be7972f384c602a42d01156f9efffe664e50b159b5eaece69cdc376727b597c06436638e7e8e311822cee9401d672852c643633ecb91585c8c872bc6b0e7d5c791990d79997651642f45c9362716939ae7b591994c862e19a6f626b57748b9cfdfd5cc176bd3338e47226adc1d3e7f9fd3de318af4408f77fb4994cb3a411793fd61c395e1548aea3dc7798369ec1ef6cbf753b40cac549ab81fdafaac7953a4584cb4c56a2b7ea81976b6e8668fa4e69ed812a14339e7ca5bedbc86792f086581e25e53cb76b2b3c7ea848ede656358270a3ee7982456d13cadb56c488e765c34e28761e421a3e96e83b3cd71cc18beb54b1d672a4fc8e586d5dff5ba594ee6ef7b59cbde5772bc562a87f0e70d66bd3b6428dbe25cdecd0c5a62f25a3879e8868f279e56630c9ad29b70e0ed5c7f382e835324f324128a4bf734fe28e6a765f3c9c7be5e603a8d73e80edd78e315e25679620469fa39ca62fb435aae10aa28636abfadc651381895ea863f73a97bdcaf68011feceacfa0884f78b13d8e3f4e732b3f5927cdc36d59af2746369aecb85c9e670ac725d4ce303eb994b250eb5d3d1f0addde63efdb01a1bcd325830f83f5fb76b9a7d603edbc1c2567dd3b059fae4e8e17aabc5fcafbb1134d0fa42605f1e11ccc30ebfc816ca8144f17aa2d7826b63ecc037f324076255363797336aa66bb2794dcf30ef6b161cb533c9855bbd4cac7f898c9d013551bb3c9c4618968e5ce279afbbeca26e1e01d37b5d971e1531c36f3cdc17aed3883f174206c5759e9b2d556c6358b4c516d4b0ce40966ece8f3805932f3f19a4097a42361836493f348920707e6542df46cbdd815432cf83865ae3b1d201bea406e8edbf131e0100a5b1342260c776b23d5c6d6b071cb24c1c5f05c2518738a897c3139209ebcac264b73660c9586b2cb31b1fcdcaf8df32e7b1f7923f75dabd34526ce97e5de75152ae627c8da9cbc6fe50d2e70ef3bef7d9656093adfad36e3b5787a9feb8877da659e2fe3fe3b4684bbc914d1ed735e0f75923a0ca8c0c9dcf54af5e9a3cd7ccae5d00bca291588a23e9e91682ddb73bae485c1fbcc608e1e43e28c3e5c58c9f930a79df1847c5fbdbbf894e44fa64ccf07e3486e56ab52c5f1c82e4f63dc0a54dc0a9d4d7e8a426c783a65ec2041eb8de5cd76a1309a887110ce0387086628172c90e179b260d3ed51c9b875fe397d9f166be4bd24563b6eb93a9f4f53bdf8ace6cb8a38074a990f9a647c965c62e34463ef106ede17c3197f6c1466e4d64b19b30c693e7797437b707ae7b70b659879953629e4c5f8a3e6bd9cdf0c92cffd294b36838127aab3f17be636c2e29d41d7a1657f78c107adcff988fd7c57d82a21695134b6f5913d6f2ae3bd988e4eda0a29d74c53b1d66060079fe594f48fb53d70d6333a9933ca3e9cecb696c14f8e1537e5d6d3b3c74be5ce640f51d2545e968e9a5a2f4c56f0c46c63ca799ae7e79026cb7a6235feb99c1d6be9ac7bcaa1ce58c12fb7a791393b1ff5e1d2abeaed84cb8a91294f9706715c0cf5483b7c06cd3a268413ed6cd48dceb08867cfb284ad0fc3d2fc4ce477759c0c4267251dc628f29e61c9f913d17d79e42ac54249ce04b59e2b15bfb73741b5fd9cce8d4f67f61e06ef9fc38c8cc6eb35118a8caf93a9e293ba15929b45a41fd320c0a8249dd1223a5f1e44c9d87ce0fa16650c46a747f17b9055a444d173bb580ce48debd69b2afcb03ec242a9c938d6714fd90c08c249f4c538aafd9372d0845da633cde771da184692785a44c878f03ec526e6bb9951472dde5b145d06cd187dcf517db4313dd13cb1ee792f7f70c7e45c89f3d4d2364734187cae50c7ac957579308b19b67fafe6c7c55193dea7fafb108fcbed3afbfcacc5c4f8dc3363851910b24e7e9e4357f729e38098e948588c84f764f4298ed5c2289c4f8175270e5efac242e1d98f413e3ff903b9d5dd22669e49eb92a3287a34fb9eee36fad3ba9bd6c5fbdebe77a95ef35d09bb5e68354d25c67b41858c3196f6d1c1d8b19a390b17921c13b9b3a50f8ee256718d6198715207913a72dfd78ba91015f4ec60da73cc9894e31a092dcb34711b1b57a7f1780fbf2547bcbfafb28036cac5803aed45a78a4acb3db0926ee4c807c38a63f783e52434741a9f4159f2f4191d04eea0bb3b7b971e526c31b6b615aa211c6599d1c71c9f8a43ce663172ecb28de1f2e68edad9768e24d9766d9cedfa739e908ee3dbdbe030a20d156bd0e58a69bcf5649cacd180c5c8a5a8648ea8e43c81fb6a254af6804f9298e1ce5ad3f0abcdd1d649665d5a7c1856d41a71936ca22d16eccc6383cd298a16875cb2e948390befb8931d986d99e1538697cebebfc499b051087fbc3c45c7cf73713abfab03f9b488b851ced74dc05a74b814e6d59c09d78922eb6aba70bd454a8e6a55f5f639bf9f2ed77e14e1d319add72c77aaa309820b5b0e611876ad18a3f17619d769c69ddd72bb3f4da7ebb3b71ee63832dad189977cec57abe131dbc6711c1dd7c330d2d8e8d8c8e5781bf0f92c6efca9868f3f912a162cbbd835eb70b9db2ed0049befa7336e74b69322c275460e638b1597e3b2f635b2aeebd59e5fe8aba17d6a6caa50236d873beb2ccd8cb1bd9f655b9e35e92c220e1ca11b3b3dc48aa56eca26ee09a4a57d34de2c1c650443f8d4c05f148c3ef218732d9df4fda4e4b5839bd80e19cda76b963918867e9a8afe367547d4ae8e0579978e562e498a016faa9fb29eebd82697f3d348998fd48a8a95ad7632025f0d515ab591a0ccd6b3a131b1deb742bc23797c58332b7e4859611af839817fa2155513076518aecaad596ea6cd4879b7de79928e27c7f2b4f637ded2db93b2b9a34fbbc01813c1c95f67964b9ec6bbfa880dbc8178aeb968bd3d52ca292b25bec838f62c9894cb7ee0eaf2305efa4dbac8b6efbab565e584b391e6435e8f685a38ef3e687f69d2fb64ea99db5941a8557c4a9bed26b63899dcfa5b895f63fe321192a3c709f53ef77683d330188d950c7db74262771c69fa763a5fadc68bcd68c350d27bb65d63f84aabb0dac59a55321a502d4f194e9150223d98c2f6cd7862fe9fe1295e4a7eda7fe0db9585cd8a6a23d033defd9805f26c30137c7f2b86077e26a8d3f33856c254c5a4e46886873013f2d579453a72be1a20c54608c713ea63985b9377eab46754d3de54d218d7938f6da1660679d861036aba63ce0d6f30b4bf781f8df850f503f124ef76d569bcdc2eac6a5bb2488de6beb7dd9606bf970f8b63e10992bcc1b0dd324af2fdac2aa361a4623bb2f248c2c522e49df57652cdcee46ae1cdcc05fa1e20218e0ae4325acf0b2937348529858ff1473e9ecedf933d4245b6864d72f568e1d26a9f6da22c3ec7b30d637f1c06e1b94cddcd6e62d98577d29ccf6849eb9fe38fc3898d8681154e2aac46769bf36eb6b378949997038df5ca70d60ce743c118ca8bcd1c232c554bc7dc76181223c3d1f7cc2e419564889c839320eebd5185e443bb14576ee34c0f2a9566a7181b8c54693454d45366396a29859cc94d94264150241c0fe232decc4d62ffce590d1f1001399cc70487a62446ef109ff03e31199d7c5042a16ddde5822ead6656b9e9d23e957bcd9a6bc949df9ec47ce5aecea1699aef96846fdff365b2a9844fda2d47bb7722cbfdc01d59a721d9cc28a11e25fbf10985783a46842a1c0634455128f5bd9ceef93f81a7ead61411db4001be1e6d53401c433f7fe33b6249ec556bee3cd3c2033995429e59da74530c0fc5f233d576cb223a6a3a13e951e009ac626fc9951a6d6bbbb476bbd35aab9a7c2fd0d644a2278ba11c33521df3bc6f2cbdc16630ff38581fa7c1617e9c4e8eecd06686b25a98a8795af16e29d70b46fba877b27d3a8b7b94aa33acc8b370c2e67be3cc28f1d85a48a799589f975195e7695546a31db30807c6c8451036aa36d3d5fb10e10b65652ba6c82c44c9fdd016a7bd657bb2c42e1768388b5cc6194583f9d09aa2ea79c6a7ec74bf8827b30f874dd2f27d21ab6b257251951c93d9ba51caf7c1a919bf27babb50160c7d40e5c3164fa9009f09f3039937466c92d651fda4d7b9ea7f0c8335d7cca6f3c4394a7ab82ef3b55bda9a74a81d7e860c96cbc52948f1a964bdaf262b6438d1cefbcf0413b9b170c697c471540d1a03796f6608aee26be1b496a7d354ce2b69eca427f210ae8a7ca0bcafa2c9de943e3ff80d4939cade6136e349e518eed67654d23a7cecc929e15b1c330a1d63f2b91095935b0ff8b2dc106a980db85170aacf35cdb85b7c335fee513ac226f95ef3c85539a98bf7a55b3b813158e7f170a5f8bba53e0edbfc8c3dee7e96790cf034edf094a642897af10df4dbf7cba9f849716be3d251569fcd2a4523b8254a2f2989d7a82bce53142fd1cbdc474e9fb0b7128ca93dc7a0c26fb688b22ed34b2d59cb11294a1a21c8b1aeea0c21cac9ab7ebb77836b2f9ba77e9915fdd0ef85b624e53863583817981b4ddd72a3f9ebebdc33bd46944451aaa66b92820a6a6c5d73a51d6352fb1cbbb74ca1780d87a7f9664ff35d943f9b6fe13604621955e8a5f165ccaa979ffd723dea52a66835075704f89ff8ac7bc3edfee57a2ef1c0e62d1ed8e3c86a99d18d8bd38997c9856d8adf8229fd3c850f3007c803bf07b7e55317e28a798a61fe5e5ff2535fd470fad378e8eff5693f75399bfcbccf5e8c754787d3bb786d71690d563603f41e8bca296ababaef7b29d129b5fa4e0e3fe3622402bfd36dd2a26524b586cba197c98977b19b2eeb3bddc92c743c5b473370b9d6a61445350ffb87506a297c677d32a7a796a997fe4c3ef81851ba181bdb261faf94afc69f2e3974b260249ea2e63057467d1adf41967f667c0d4fce3ea75777fa1f0a703b242453471c4eaf7d2ed959a67cf81a56f454b4948d07982a675914057e3cc2ca5bff89b97632fd426babbbda0ee17c8ecff6609ce90efc7ff140ef153563b9e337f40de4fb63120eebd2e47143510c3f3f52d4827a1a7335ff8e8e8324b587cba1cb9d7e818fcc4c680ebb0140050e01f8983cc378587e07c62a4766762f7fe125fdd1ecd11ba33e73a4a8e61450143379a2bf9d32fc0efd8970cdc9657c01d2e0d7639f0e67241d0399e3031a9f0e9fc696cff977c6962c53ce25533cdb061ab99cde08b3d3c1c2d852e692b33f170a2bd3efbe1ffa723ebc3f591093017da4283c185214737c9a8fbb3bfea1f97c39eebc642c06cfa1627d8c296a6a3d8d4b23d277c67da9432b1c5bdbbfc6bb11a59221e4b54c205014757ec23b5dfc161fd42ff389c5839bda858deb8d65f6bf23fd9ad6de57dbddda9e01b953ce8e14b50c1e698d5da9d237680dbde220bbe5f49dff8aaf7d2de37ceaf1bf69627c3b8fe8359f3fda2c8b0d009f67c1ffa8c1137c2dfbfb63206c04659d2122bfb6915ec3dba9bd40fe1cce286aba068c4679e2a7f3a3f11d78b7f61b6d6522e2a5ecce67eff4a6075fa67870333bf9b55c9e8e5dd5d174c8073de625bc64fde3eff9cef96b786dd4e823991d698a62c640f289c7277819d61fcdf3fe365ca8876f46b6b101f778e4477fd577965ff2abc76fbbcde2277ef59e7a7fd5b7dcbef88ed3eb7d7afcee94f484d7dcd6f98e9ef0753e3e6d83bd8a3bdf7cb6fa724e635a1de12494e730255179e26d5ce006ff8a6f5fbd9edf70a18ee506d6eb3b0039a4534fb88d7a7f7e7e53cb1413c520ceb6419c1d532efc5457817c7653ff65cdbe97f8f758a318d654b9c7bfdcd4fe34fe29dfc9257f4da38bc0d91f527819cf2fdf35bba3512324ff7c1d18b4f07011c0ee3247da4bfd6fcc8f1923538cfb84df10f1c0fc964ff3333fffba3a35318b5ba690bcae9ff61a1f95e3c2602708c04748c3f2330dfbc19fa7e12feb45bec43dea3348fc850674d6425a51d4ec5957c38169f4b7d69c7b0d33f653b210dc029729b0a79ff9de3c89feba1a9b1ddd7a5fcee9b1568af22c3317d15fb78fff3c2fd9548836dc94603fe1ff1e4b082e25fa987fcbfef9723fff997d54cfe74fc4033acf54873ceed9cef5e2efeb653f8399eea6dff9a6cf4ff6f52186517c9217ec36f9d3b8f6250fe3f9ad4f8d8e1645cd73e9a51e642e927f42678763dab37b5ef6b51e4491bcb631db4b8da2a6f913ee1c46dfb21721ee74f08f1f7068f31dddf4f16c4679da8ff9fbfefb74f687cf0c5fc2694162a3fd4200e4250480677a4f701a2c67df87d32b7fd6f7e6c6d2adde75a0980945873c456d3e3b3bf77fffefb71f6f85b3df66d5dbeffff76d13076fbfbfbdfd78139d740b7efdcffffc780ba22aacdddfbc3c1db8799967ff28f6f96eeb55838f3af37e1f54dbb4489c6a5b0eca621f65819be7d5607bd8665539f82d3d6483e3de298aed7e903a876df68feeeab7629f17db7d156d4b3070947de4e05f7f5b3951026f65ed147efad68fb7323a6fdf7ec7d0c98fb734f7b76fbf0f3104fefcef2a82ef620886fe0341ff818e5574f2fb70f23b31fe6d428cf0c90441887f20c4ef08f2f6e32d2affdb8ff66fbf7f3849b9fdf1563670f8e9f6f0f6fb68381e913fdef82c7ffb1dc7506c888eb01f6f621265f1dbefe88fb7151c16c7d1c9e4c79b16f96fbfa30882fc78e36e3fcdfffeefc2f191b7df911f6fb20f3a457ebc29b799d349dcae6388902370997b71f9f6fbe4c71b5545299889b2f5de7e4747183219a2c3e1e4c79b58823b1312c526283ac4ffe7c7dbeabe298a90d818c7c7d7a69735ffcf8f37e6fb4dcdfffeef3aabcbadfff6fb7f213f901fc8fff91f800fe1760f010460f63608f3743b489cccdbba4e920ccabd37f81261066e94bdfd78e3d322df571ba70aef10ae7d38cdbdf6aeeaec836dd5fe96f3bcfbb5722a2f7cfb3dab93e4c79b5239c9f6ba79f04ade3a659eb56db99c8d1280636deb76d8ebe5745b5c7fabdbb27a680d6e3dbcb1cafd1a8cf77fdfbab97fb95838d9287bfbbddad7db1f7f14647019abdcff43e00ef2dfd2dc875de8db7d1941c0a0bfa14348db055cc485f07f358b6e93fe0292ff9f1f6fbe53396fbfbfd90fbe4add14ca8d1122fe9c3eafa309b0eb8e6e43743c9bb8f0c9bae5e9ad5c5b45e46b7977e5f968f7fee4bcdc59f5eac66fabcbb9dbaa1962cbddaab2d2a45e6645e151c5553efcc139156e437e71be37392e775a2d5ecf03d19b3c52a95a5486d8322d422fc8ff5e1e2dcfa8e96af65bea7fcd876fcdae8c7788e0ff1ace8b8eb10932c1ff42ce0ba7fe1fd6fb1fd6fbff27d67b23d11b7be51b9af30d62d786d2d2c78b8acb0485691ba79d8ba1093f970ffc3c39f8261fb8a98ef3331b755311b2637e4e372e5624162e854c50680e979cf9b918ba265ddacaad3f9e130f6e26878e419c796e16c0cf5a61a784e77a7d714208547d9e236b9e158f6d896e7aea72246a33bd79eef2c0eabde73544dba6372fc9a48f6e7b7c0bcd04bf3dfad859a6982c9824583234ee70c9ce61e8c63665d44b89333f97735ba151c87e5331f4302d70312bf0b930e13960fecd020f985e608e73bbb0946e6e331db30d02f19ae18289563bbe3b66e3397d681b220ae71ce40bd560f7b6429f7d530030cd2d530aac5911fae92c58a9b34043e4a5c5d085d7d0859b8988659c4adb906a0057b7a1cf3ec7363e439f6d53c06cb0171cb9036db60addf8c630b098e1c135edda6fe8b3d7ba212a2b250ffeb4687c830896707fb4c0ba98524cd7e77c15387319f17a7d03b393e758d4e780f8910bb01e771e073ec62240847a0d9dba381f585818baa90fae0f76449f5d5c6f2c0c8e11dbca70a11856e06124eaa5620270c086e35fdf419cde353ff70b973b0656aa051e3463d8cc32e5c46668c46dc01a89da31888c9f8b8997d989170d0305c0d0389ddd8606664fed35746c1b026a633e587fe07124805920aad45134a885874d024bb9b649bc88de590076a91658a68c4075c09002c7b000ae2736a7c7cb205fe8dc24f032bde6e772e2e1f299e7da3d063081f739aa5e6228e6665ee073fad9e7a89a09f21ddfd02dcc5b7c0df899b852a47ca19852e63574631bd0444bdcf4baceb30df1c2d6d558fcd0627daee8a2a62549c0737aeda749e3624405f08d9fdba19726a1959e1230478ba3030f0b1300430f131bc7a411265a05501de1d89dadd0efcb86882c53ccbd741558591c6c0d12f522faec707ae93274633574ea18a7e4e1bdd8c5c4bd6df2b5634c0e4e4ae66e2a1f6c85c61d53ce2fbcc14bf5cc3145c4cbe2856d8647171710fe691d316973e4ce8147f0c96189150787236217d316b621e66e43457fe0dd889f0edff9f9f0b04c010f091beb58041647b5f4d8d08c6f24a5cd25b57d047b19021adb5ddc2b3c27a08e718abd860edd88de48481c38061ada9816d829d9747c21bdf1c9e18249e9c09a035c3995fc5cdc796972f4a902b6b9f4c7332806ecfde73f007bbd7039297052b6817d51f9826f563b9e1550372500ee2e9844ce1d73d5a7574003e7fe7cfa78e8003c56c0ba08c43292da36f9856f8a900e5a1e965496e1033a6c6c8345009e5b8670f0530df098c0e2ae7870b670a1f0e6d2c2cef4da82b43784f8d5e2f42a9039801b2401e8f1caf7b9ebb14ae06309e8278270676878cfeede798627e077f281e7c4d237457844fb8bf9c4b649972e1e074bd30a78b06f73f1c0cfe5c631fccc3685f3650f7ab00d64f02e0ee541e01804e6626278e1cdf26d9f932dc7561e7702fc29b28dd3c16f8e01b806b283e700ef16512fd5021ff0044c47baf7025d1756164363962914962100f907e819f2382f25519f6be5494773f7f89424075fa13340fb70afe6c2c13765301ec173f6c1e54e071f83f2f08ab73fa5f914f09a158037849b956addde156b1797936ebe98659c505b017c9bfa5c24ed78de39ff5c4474eaa564d5b503f78fbe29013c4f002f15585d51390aaedf31e533e043ee5c873cc844494dd1e90ff39c2f983849216f003215c804aeaa2d8686a155dd7dc87b7b3044bdf408f8d2e867fbcf37f4de8d5a39e518603fe404aedb10127e7aeae3546d1968b2895adcf3b0f0e03774e3e23ad28d73e351603d53245e7055ddc99602c8b01efc02810901df4cdc94ad6c858a35d69f2d14aa02f2ce65e23bdab0505d51a99fed8d08d708f13692752d3e1efaba091fd11e1351c1520b023e863a53e26652a5cf93a3ad16c0342c1da3c3db88fcf430b27e7827596a49bcdecd229e3d2e7886aa14868a244cab345c8f9c54dff9d342efe938cfed3a79bd4ec5d2c5f57869b4facdd2d08796811e5deef99d6e7eb16d5ab58311607e98ad10575a7a9aa32e1e6d43c400ad027d6dbd9bd52b860f4c2a0f78068d7946189b8c50b8198dfaec315a47b4c74752ee63e1c132d062a11fa30ffd18f1c11d9fe77556961c43fb197fcefdb97c6cf9321f037a5de23a34a92d8c3ddb4a37feec9b708730a0a7b6820af6343ff5ae55df10a0debb4efafdb730f8268c2f734996ba4c789c36b2391d5ba6556dc12362adb6cdf0a267dffac5e9c4c2edc4cb44c0e7462b6578ece6d5c212e0f9dccf5d8cad1ca58fb74097d54337d38f9dbed9d8060a64c345ff4d3cee74d81a403fefebec76e362c885a7eddc39d07df4660965d5f09e8eaff2514e5c4e476ca9ddbbbfd57d911eb2e32f3cc8a0c5c5698122c818b97a2d48fc6ff75a0c5f792db011fa07bc16dddc7fe2b6c086fff15bfcc76ff1ffa2df021268df65313b402f2c2ee6c04c592a48f5b7ff493930eb0b0bd3ebd6fc970f9dca4277dedd40c3c8d49ffb21500de59444dd54eec405954bbac82d141adc0326e7c14d35a0ca1cbc88ae5c5c483af708506380c9ddf0dc652c2db00cbfb10dbdea5c0c01cf8a09502dc1986a4c6a8a26b23c67172e07fb8ca109962691df9ace9d89d69a123e4636cec57437e4d881ee112274817848ed8397a2179578c7cf85c4c6d8069a4d40edc469c24b93cc994b818bfb3514dd5c725c4654a00311316355398262327133b133ef8159709d1b50870917d702df2062dbe45bd132bb78e1e9d5e5dd25431b17d5809ff2f58aa172d016ec371f5f61132dd4128a1e9e43c3ad42d72e2e053e50a3baf5da6952b62abd987873a935913012a8248565103b1becebdc2f7c2ee8e672edbbe619da0673750d96e03932f239b670233a047be5cde39b6b68d6db2b535af0c77c07cd3cee7622e0e33ebe4c2feb24e06984cb253bdb20ceb6b93aa8b3642a6b842a2b48b3dc516d1fac5ebb9c7e866e0293451d5300fb196d15faaa8e00d39fe74ea1dfe25268e34202cc3aa89a1bc3c0c785c287fb7704f03fbb988df8604f95273cb9e0668b5797b929d01df5d816a8d721c41146a0b58616b4860fa49855157d55f2ac2fe8b370a3eb52a023aca2c5ec5a9f25acd6d01b2da2a72a42cc145d16548450f919c9f133766d40faaa0435964a9ed30b00572fa293ed1cac5d3cf3902612b86fb62181bd516d437b82ffd55c87fb0a55ccc24e136026876eeaa3adf9eb1ffc546fdcd6bd0854efca31c573eb4a6ccd05974b2ac7ece8375b01d8fd043ec305df507f3fff51900aaa69ccbf80d72908586f9bb910d16ae776d43d86662c53de397d730ce2a99078a65e78a91ef3337dad47d0043eafbf9aafd4d28812b386a493bc8aa02ccf20ad4bb375d942fab2147a21cfcac0e1c8aac559be1df3124597b2657fcc2fe401d8a7809f218d89841b55d382a5429757174004dd97ed49db8ecf1e5cb0f7e3c37e505a8ff5b5899092ce8231691859e51a3a02dd0f733af470f1e2d28338a3a42c6629b4a12a34de9ac057574fa0b6a77f6ddf0c15d80a912d23f86eebaabced47e1cfc5c4e5ac929feb67bb8323fc6bcd7351d26d564dc88dc6caea46412d9bd323dff082a51e36be417cda73ffb8cee4c6328833748f4ed1d867c973ebe2934a0fd31b401f1b332e3d5c3f7b9c5edb539458726c6ccf85c4c357e47a4a1d57543bb6aab186ac111f1a52091a4b2a5243553c679796e1413e6473c9b97387c0ec22e8c2e5c814f06c3fd56b2fedf8b4b9fa17d25251d811edf20c3a02a6e0f31af8c054a831e425c67001cc2bc7b002a3a12a3ba20eb629ef2e27b960fefdb6ed7e0c8325a62356d39dde66c20ef461a7f1635f913083f87858a6d7fe229e458275d3ba4a407b9ea16a304f65468ab232a9dbd362a2b11a1e9876a923e58bb6ef55a0a2abc003662096a48e017e0313946c7c6618f08c8c59261f98188a7ab8fcd1b9b300de005c4b80ae00e5f25c80ae212fa253cb38413e67e149e66349bd31ecd09d8bc9fa58c49629e08e3124ed942d3d4c1b33295ab8a98f5fda30dd310a9f02fec956b641453c97c035496832d79164bd88e2e0dab72937bea105eb7309d6252a1a31d79bbce0b9aedff6f9787d04a6b11c7a995fb81178defddea18897e94907332043cfb6421d7c536c96d8a9b0527d681bab83036851277378bcc52529cfb1986524658ba7c7c0c5011c04dc812e3f3b6c8f25d89d037518eaa07249e4a56cb355c88565dae112090faea12d2eee5d0dd393befc07a6bb6d9c6064d6129ee29f92652a1e5c852c1d43682c5320003e590d79b214f264a9b39378a60e2696d436a70f976988b8c6b1ed1fcc972d83a599077c242f24dda63b9e06f0e6010f6fb8b665a86809e8398263265b4edf2db122f453f6a3e56f7c60aa2594a96e90dfdcd59c3eec8e51fa63917cfa355c2d86bfcec10638247da3cf885c5de181c0a3b183d2ceedd6571a7770b08b6e9fc7eb63917818bb7ba4eb3bf912d13e3fedadef0a47fe42ab19d0b15d6c5279a95eda0674d9dcbff320b33606fd09f7dfe8b2ba00ff328ac656d0160654dece33b58b279ea30a1f2d3df38ffc63c7439d4f3cb8731be877859b5667201f8529d5e9a3c06698013da56e71b2935d917fe6b90b2ed292167b241f49473ec8db7e39a2d30fe11108b403c05a3b9752e0e14905fbc457e07ddce1a0fe0ce69c83396bac30bfc0d1e626dd3e9cce1b832ebd86aa5c4e023809c68de0da19aa9de3190d6c333c7a80df71a7331f51239ef1ea4584bcf3ec315f4685b750a4ecf20ec0d95efbc24dcb889fe681d04cea45e4051bc083391d5b6204ea72c7279c07f3dc287cdcc2a7c31d4e073ceaa18d00e453d3b9752381a515b911826523978e41ecf96ecf5b9ca36317231206dc9b8b8057c7e0dd8d411f7d4c0ee0fd9b7e415a9c5c782911ba8676830933a997d7bd404307d302c794023bd3dba344530f5d0ef06d3d06b87dc511150d2c0cc2565c25177ca65221ea8dcd8931d8230f03b201d8767c04e9a301b2203c005ed8ca5ea4e13916e1995b5f2d7e02bdca063c7fba357cc0d7812e5e7bb80eec85a365ca39d08f817d0b6c0b5d23048301382454f0283bd5d3d69665ebad29e7ed58c919d8ca7e7bacba00fb2a702261e3806ff7711ee258fd822e52a1db833b58e049e6712ce23054b534f5da31837bd8a4d45d9f4f7c80b1d29677dcf31f0bce8d0e813db85450d44d93e1d3fb0f7d4bc889d650519274997fe87baace585543695a9f058f7d437802fdd8378802f0666126ae245d54b519ab298c103cec8908e0e937c700d81d6d0801e82b3cf31cb4e7806daaab7162f15c67c73374d4663e6981651004a079a06b423f0047a21616263605781215bb4652dbb877a7730099e142fde48ad3502f1122aba5a11eaef329953fe1e7ae0cbcb91f2f0c2abaefafa0f5987db9c777bc5511824587d377f0eff7fb82af3eee757f4d503e6997b00c36723930f76b2808e4e516d6cef72237e19c3928272f99b3addddded35cfcc40bbc802326dce0726c3c7cfe3e85ecbf37c6fc1565b9e453e4d26ce2c860f360a15b9e9e485ec8647f0a1ddf2bf7ca5c470efdc9444eef5153af4daf090da06b8d0dae7aa8b9d422f4dcefc74765c76f085fdc108fa92b4e67eee1862cecf85c4325a7ed7e7bf4643853cd7dae090afdcde6d79317acc0d7418980ae0dd7ec04f91804f89c323ccaf3a0b235ff4c547ddb61d13c20cca2eb027b1630af0088f678f2fe16f3242c0dfe929cf6d000e01bcbced09e81fee45c73ba560a9d341a707ed6efdd109d45f9fe6f7843b8d6db09d9c01fa3cedf1910cf14836c3c4c27504ee917e8ceef4a18b0ef3a7d7dde22cd491d4be8c85eff150bfbde01d330438077da702465dc7bfa7b93e9cb4e8b67f2ff5b53b3d0cac09da20e9b37e2a21e8eca7fa97317cd6639967bdabafc7def310f2d34bb5838705adfef9ac4fb56b6868418a1160db439f828b0d03494b2c68479bc04e82367166f7fd02d9aa1f0292f4f7c13b5ef7e0ba4600bf3e3c9718d005c9b3c390709faefac49d3efcd5fb42e1460fefb6ba480f3ffbef0b818f858585052d5e75bcf7716f78e50e8e5355939e6cce4b388e6c0a8d8bf323fe0ee6d02f08fdad36a7a78e41243643ef5c5c686c4344dc795cf311f52eeca07ddaea1f0c1ff02c0c3f09dd9438f8cc159e09cff4f1e4f6de964b107e3afb295ef5e5d2abb9eb18dbfaf9cef9bdafe98b502aa8b370707e67db946a3e28a07dddc97953458595cc8a1fea8cd5d558e4659d276164772a029d34b74cfdbccce8d23643d46bba6c2ddc3f78e929f61aa2b44cbd86217411b1bafe063a6143235ecac22371808f40b784b0c405829f8bc0aeddf973a88b75e11974e36262e2e157bf3ee01d8985cb072f8b5bdf0bf4ab888487cb89ab80f6240c09b3d3a4f1e0def5c768fde0cb14c5dc883efb8670d75f178a547b5812dbad2fba17de29403bbfdf1f90cd6e2a7f74be8a0f2b65cfb621175e1414fcbcbcf3836c01cf9acec03e827defc9860bee08b07ac8655f3c4edf39865d5c7cdd36d863b6f3b524240cd50073e16f720ff14da106b874f197f00c7d6d07e86e056d4c1a7fbcbed9407cec6360fe7cc0ab08b045b20eef62f778cfa36c405b731feae0cb86a8fc74f892275d61b243dabe6f7c3d02f2d639e60ff2a2db6b80d7b85edb4c6bc329b1c04a3a55ada7f1596ca81cf0360d234bcb140aafa14e2b86543d8e6dac26bef7211850671bc3b133e4a5ff003edb5ded0f089f6533ac2f7ad84567e8cfd186617564cacf01de57a107cfc3a49b0dd5a351615e5df7e143e1171f12a4859d8b113bcb9413376511400f96712a5b5b583fb7fec3598bdf527169fb01e4b06daef285428f9ffc6c2d7eddaf0fe01137096068c99c0f96e62a10d0532d3454c6335eb061daf716cac5cf56904c5030922eb226220bda0efd39ee317cbc98d3b8cdc49145ddeba852ccaab24ece149d7f98d395e78daffa7fb3fa77fc813d60b7733971db50124867600f5cdc0b2c53475c0c9e155e42906317f76b9723c3eebc10fabc9fb35a884fcbe4033b130eae72f169a33b78b699b225e04d5d78660843de006fbb0b616c7da4fcfc9aa90a6d516f2e1c6068d31cd83621b07d006fca1d43287c86de39609fdbf0396027458e418480a7d91c8b58f00ce7df02e3dd4da6f180b66e78154d6ad7b4ef32727f02cb1738ddc9f84816f598304dd466b558d8688816011dbdf3edbed0d13b5a88ed830fe897817cab9f69fa9c899416a117f1373d30edf958fef43cc4836f9c6237f21178869c4a9d6cea67e63e5529ac9d946d96cc133e163e43d5cb68d8e9b45006dcf1ecd636450d35f13fb4589754545754e6954f14e8dc82eea547f2b63681d566240ce7738cc9e1ab2a8a2b66882e77d68bfd44ba8caf765f2ff2efce0ee18ad04bf4c69d22110cd99faf46cb866c6c93be9e1f3c9d33b7e3344b2c392c713904b2c3515eece5b9cb2a7b9e73d5cd19c2f65e0fa5021eda91a7849f259c7646a28dc2b7762643ef6d330efc942d7d431bf39c7cb8ada33b178864d0069e09f04c789751b750eee0dc85abf2639e033a26bbe7a7e5b8873367cb587578271fdc546b79f74ca03544ff906789d2c9e1aff1f9aebae5eab2071defe66355b7d73a4a1ab22e302a2ab27c4491fcbc3db378812717dd65f6808b507f5b4714b0b5e05a5fc0f452ad6b6199adee0374929edc387c9716f89efd74f5bded9ee67aed4749d946e358c4993efad9aebe2bdc3108405f67a8135d2b9b01dc846da2be4ed083e12de49e41317eeec370e75ff972ff38fc2f670f9d1dd3ea20818ff949c70b6eb205dee3fb635ef9c38b33978ee67555d685b5a4753ec5f969f2dc86bed80cb3977e91ebd96d0b8bd67700713ee21974f333f8f6df7f3a5be9f6d3c674846790aa4ded41510fd39b8df262eeb73647cb14cf40bfb4a7c805d692a48baa8e908accb47e05c87f183e586a13a80f3ee1cd4fe0681ba7671ce0da70e87f350e58306cfb1e07da7bff461ce860b1347e0ad747fc48bf81073b1ff01706a97c534cbc88bac04fd7105d51635694d5fcd55e57ad6efecc87f8e8010f0ceb11662fcf5bfeba3d644bb7e5a3916588fb3616af3bdbe8d2e9dab8031277d3d3c132a47b7ae9f9de2efe330956115991bfd2c1da380dc2bcec8d7c1d43eef4b19b9fe6620bc1d492d9e5cce3187838b0b3c5fceabf07f3677d602b437dd74ec9c63558605327e0b7adf452df5abfdeeece2ff9255feffb18db8a1f1b83de6d0dff7afe70e3efb7395c7c981d5caefc9cbf3f77bdb77995abdf710a7d1ecd4fce93ef7061162cdbf3b13f03f7ddafc7bb9beb55cfd3635d91625295153ed828348c1d7865033ffe5d709167904082f18449d9e25f2b836fd53eefabeab6fec9be1efaf8f7c073fa7f0d0d2b3839c6e9660f75f8de56c159fd64bec1a3bf34728c61eb2b3556117ff58db7f8c147f1533ff734f362dfbfd6b31eabe0f6f4a15b259a2f7963fbd74f8fbba425f4e1fb7afd7fd40e79eae7e22ba0aafe3cbec5139861bd8c7e36bf7b7aeafde50f7ece36ee199e55cc00ffdf790cf5482bbf980fc4fd36760da515152958096d690fecddaff7be27cf3b9ff2bfcd768e56817cf13371fad0e7f4dac3bad8e57f93cf8449afe72497383c498bc985ac891ad4dd3559d07648bc452ef183906e803e3f5adeebf7d18754fcf3f2b2c3d1aff618fa95e2bbf845928fa4dcc2c8dac258c4c43a1f5b3f2e8e15364aac4ff5d975be17fbe3d34f911abc6ba749c647f16decb6efe8655cc15cc49d3696f4125780b80d6d5eed8a1767d85ea6d75dcc2ea429e83b61e45dd7e75f144bf0dac6b9f523047fe82cfb7b32f7ee4c03cadcdbf9583f96e0e11cbe1737f04d9bed2e66e1219ee18b3d7f18f7e738f6cdf5fe9c46a25efc03ac9c6c17b074804245b0627c2a875e2a17db548ff988c62db33deff0521df1d224b9a6adcdc495a2d0a197fae74bc905989a4cc1b8ff839796e01a71183a727139efeb616d6a38717023b48797bd920ed9aabed19128ca2cb95234823511569151a84b5ed63755118253342f106654f482474c554dfe5067c95ad6495a8b7d95090a538b59499be98a899c685d23a6ca4c573606d9d84dafa250ebdba97b3ec19715e799a080676dd7f8084d14e56bbaa57c17337c49edec2aeb757bf82d5ef06b5f449706ca47e8ec3277187ba8029e788927d14960632c35f95241a9f28d13e268e8c19eeba5ad5f4a8ec8b3def91429ccab9fe3133cdb80eb8ab7a8af483a2dc9bad03bc313c81e1caefbc54732c5ffdd1596d24376fccdfb5581a56bab4baae26884fc8b2adbb5998ac45f575fa99dfa4f1215d1d17f1215ff93a8f8ff6aa22224d15bb2a2c40aacaafc8b921a625a9135e4969cd41d8e3f24d9a9bd24300e1e2203e16c9035cf84b48658053f07f7f486e7c8da960a4a8b75b14dc042db60428cac2f25f95c9c0fdc5bb2589780063f21705e46541b08df06cfac5554162444bb1cda76fdca85875f121ff5b8978c57780d8dbbb8b087ca604487362717d7a41f2ea92f8e1230f7cbdabd54cf2c53e8924cc483374f1ac7f0739fa181a1987899983b2655f34c5b9747d245ee966ca99fef12072f73bcd4bf52ee93c0a4ae9c602f01ade4d96bee7db08a86479e0941db458707d12d718c2fd65d32641bd00d031b609d8c4b70363c54e1f4a185e9479f8107973b17438f2e97846e2a269735770acc63625ac0b370ce15508e5c4c803561786e06f6efb885753f9e92fd429f6ad77ce91b1afab78326dcc7bdfa5a463185a5697b099f400112593511d9a5cad7ab87be7483286132dfbc973006eb9bc08488c2c260505de0722cdee21b9b79a97e49a202ebc7bd3441c0de2ea9cbde88073b936129f5675ceaf0b8c5bf6b72691be0f3d096236b9e63af78c4c7accacf12958f68a0d40a5a730c7424d19419a9eb0c6d4abaa0481aa1299aaef23352e167e2468d65419f251b3559052a62059246d897fe142459cbcc31b08d0471206de943af4da60a000d39b0e64392d8cc4382ef6d6f60a0074c82bde07a2fc9c7e5d8dac6f5b666114662b62974b5b2e8c44bbb92f81871066bb419ba740cb4f03bbaf78e1758be86d732e89eff8b920f2febfb57f0cce585c63bc71dcf8a8865c29a30477e2684ada3f65a3fe40e9fb5543ff946d2003e2b6b840183c8b2d5e8bae77f20b911f289eb9c7e92e478e1f357a394aaba3a505d4d8e5b72dd0a2684dc3eb365337497f424175e705dfbd519a1cf44de44f4a9329b044ba5ad450664888091b5d01ae9899bb674da3ae0f49dc391d01176ab95d7c1ed5a0f4abecdb93322a498d52424fcd066acae21dacfc6c22d23412efc9fe7aa640b1391c9bdaddc1c03b641407eff38868ad29ad650154cc64cd9ca36e5c4cb56bd1a7ed7247e98c4c5b3b6c8cffddc36867d67436b505d69a03dd85da65e0ddfe7e4c4caf4abe397e712c4c3f4d28e8e3011fd4aab988e3c248d924b3dec923ba9ca80c9a045ece3d4c89f0ba19b89b036d1c6901113170f1656253e73bad4e723b7cae9ec9be211ac7d63c6a565c8b197ea67ef8c0c5753eaf8088bbf2239f35faacb5c7153486c0cc82db67499764d5d905727f7a84c62bc2eb11f266c5d8c3846d2e5a9c292ac84841bc8f319ffe046de42ea9c642e66a777fb3307fa0590b960fd77b5cc6a9b237126eb9e33da15beb6417441a3373ab0b218f6d726deff643e0077aef349529ee19347da903591571be8a426794638b8117f73f0692f6936b9c20d26755249cb1fda5a656d11013b7439bd06fa901d516d422974345291a041c753c24714b951a8888fa81cc28511bae0701dfe2bb382a0c75ad2b6d7a1134950f8e2b66717278906781c3c7806740203e50ce95a0bab77c0d5158a80fa6661476d60311fe917d8a90a9248262a4c05850f362a12f0110fe41cac97e860c9514b45c94b2f7a5617f07549709bc324d7968733c7c0c588ddb57621e08918bbdb2a546da52cc2734006c27d6b0b01f4db32c4ce35a41bbf4913e878764c1101fbd7c25af7aec9b92879f452aded17d6993c95bf6cd726b3245b2e39fbcc6d4fcc2b3d8a1f603dcb54ac6c860f60edbf5fb75bac3371ef98b462a174634bf94202f8d1d50e648202f25e59171415153e24849cc92a72bcee270bf85c7276b15308f6d43108c486490ac7c04fd9c6316082cbf9520bcae3c8b38725504680dffeb560807c5e32346e5feac119c4a12bf470b64d1906ddbb5441019c6b6b9b1eafbac04645c88d42abfa8c5574863624ed24c833565334720de863a3228bb66627d9ee454ff6bec0998d8314303982090a18a4b3ecfee5677ae3a564b38eee121dbaa49b2e308e4bea4bcd4bdb2030c7140e6e0a6c1ea9e6a7c37475e98ba52f49a4e76b5dbffb20fa7ead40a0df122e0e75c387e074007fb4d34580bc6a03e4db43c8a722066d1fddc1a06310671ff0ce4ed75b46fd77878b0e1e899709072fc817eb98dc2b719b40da2561165e4b8b7d78242627146e726a935f537d682b57d8166e9a20df852bb0b53ade7b00ba2980ad9fb2a563dc07a7dfcffbbe0fc0ab04ad0f57580ff4ffe97de8642dc06b12e87ef24f709ed915177877bcb70d946c6b485e6b33b781e6ad8e59f25c5c03fbb03b400576d8cee7c8660bf9307b5fabb9abd5e9622758b0878fe0e16eb4bc8d07f4ca5b200627a25e26005ae802d5212fbd4f24b8d069474fcb205fdce947af0e1414bd2747db7b8254087244af55f44e56bc384cd0a28d8a447c44672e0ee6a8d7f64c4e7c4edff93358737a06746f268385105863a64fdbe06e24911029e9ee9bdd3c6ecf236db16e931c18cb1413994b1a264e387ea65b8a2e6a800fe96dbbc86c83692f34125dda7701490b0b938265345c289a05d602c712149edc283c9cc36dee97f90a6b17975bff0dd5f26fbd3fe7d43f5c1323fa6bdc154f637f03f66607ef1d4c6cd0744bd6c48f6e8e57dc75537906746c0befc123c84710f734b9f062e2e0cfda3def60fad5216922eb212ba1f03034615298087a778f07fc2afdc95ec27d20363adccf44d5e1bc7fbe46413fc28374932b305721762e46a48ee145b0581080a341c41a4c8064639b4b200d5bc669dab50372ea26c3189a6d6d24bd17404f9cf9995e431ea3c989cbb1846dc8ec764e875d80fd02269a3124c73302d099204d79b056f5a970cd15c94754221833a8eb2e7afae28b0399a4c537c27332bb828526607102bee03960f340d82ff41805b27e2dc7c9dc447ab0416975a3b05f3ee7153817a04bd776a747f08cd5d93985a1ea974314ffa33f4f8d5d9182f6e5f304e0cc2fe19d88ac7ec39f4e1ee896ac220fb240f7ac3401fb0af8706d9b61c277fa8e8e0ab4c6d2ac06dfe7c9af7988eec143aee4743de4bae85acf01b74ffdaf245d5f4b48c86a3bf4e0a57d1f5ad74776ebe331804335d8c2bdf24879a323c44a45d89989c2bab5ffce40f0851c934a87b3888b55899badc895726cda1a9f49e59d91166fb559a068dfc7dbeb816672fa6590f642a1676a43e55da0b120035b46d1697e8790fc15ae5dd0240bf166a6a2fe5a9d91b4ccc2a07d5250748689e2abbe299b21023fc709bf71007593d2e548fc554dfc5ba0a1fc94a8f2841b9d8edc157caa2c4cafa1bd4f5d75edb6e6374cb4f1cfd7c0c6560e77b0b8056bb7bae8f540f47ac80d1362b824724c2900786661559bfc0f6bdd27b5650a44f74d83fade8ed17b07cf05ad455ab0e82585031a7908a2bada8b6d20157f6ddf0f9aba04de0afaedf055895945e8828916525e7401a377e35df4f92e004691757aa3ebc2aaafd3df8df793fdbdcdfb9aa891fcd509110be9cfc349c248d4e5e45ac0a556763354f2c0a7922f925bfa815a9dde7d0b906b7d3b10ff463ca33fc2e89264523097a4498ec4db228f3ab031abeb27f8802ccdcac80c728151f8d807b20a3b1550479e22f01b214b836c6b4d3374f7f975a456531d59267e62c562e9187aed4f2f7d08851d51f912d8830c951b382c3658db28325ac7c959cdf4d29d918d6ca0477f1ee742a33f055f0b8a57f04cebaff9fefbb7c06cf0fe4289836d236c99201660a2a321ec5c2e81769d840b890dec012e09ddf92ad828746d9b5ee5626d9d679ebd24d9126bdb94e05aa1fe8b888d6d001d402e2ce3f8b3b9973ce325cf41d85ab650af3022f964b860a438321022f11942bdd440d738b2703359b40c22b431bd31d57ca461face3785c29f27929792888b890797a1489eade0fc5e3e6765c2e3747fbd2b3477be3aad766520ccfdc44abbfd62885be0e60c16f504eb79c223a1390642f3c447b285d2c136437a8935502f7b08c6bdfabcda80dce8c2dbfbc1b734e71844e16161623fd1c333cd5c713b8a2f3e22b6f5ef401bf7caeb6f3e8fbf23e8e8e29bfb0b028feef5e7a700a28da27d32417e95b59d3f8435665ac233fa97ba9da050c9bd0f5debf91b65564af479e7c34e7806ed12dcdb40b327feaefc81409eaff47485bf1ba397840fd6f518c093f08cf609e5db4c57b49854d4996ec8da315829575b10fa25aef612b04d80fed9163de874aef65d131137f24c2357526777500505da77beaa4088e8577eb4e4ee5ad1da4206f0bcb76f93884b45a73fb478d5f3bf76739c5f7d77070f975efb38effc6c52c973646d61da05c74adbf0430b8f83652a843e036db5d657dd06d0f6da52b585a1f1d50f7afc863f128e4d44962945b0b8037704f2aff5bde9a76b01441387f3ffbe9fb3ed77e71adfec17cc3bc8471e56151e2bec34f03e75f1a5d047cbd4cf9773d59b0f1ae0c6832f1da5695d17d9b678d5a5382295b9d8b0f5f9bef0d577e758d7bd73b16104133c4c31690b14f5f75a66b51815d498d564600769d2fd7b5017930241bbc3bba40de24b109e21199ed1592d11361ac4759915a4bf3948adc8d3df4e69f2758cdaa5d125446d78a9a0ffd31035e21fc8504591dfd1c9ef43e4b7f170484c460832fa0732fc23216aa3bf2e44ad9dfadf12a28621283e260138daa6d7553f87a87dd5f43f216aff0951fba743d42e147a8b50db4cc9a10b4f72f406a64fec90087e35240252423c40297046225d97b9a51a449bf370b1e97996b71c5a02ab9f4f43c49f53a3e5a5e4ede3874f517aa32a1364b9a3e0975ebaf746dbb9586c14017e99e55a2a3df3ce6d74d1a4594da9d3120d45951581c4ab2c05ed4a33133b604581f7d759f74cbb4541f4fbbc841a3f442e492a821c4466785ceeeea29c5ecf1f0fcf3673798674eb20861e26451b60314d4f958bc9897b8b007beffa9e2c31f460737aa95f61dc9614dec0c80460097596dbf4947929897ab324dec03912dd97fcfcb48d60809a63dd7ed5ef78b071e1e09bb460dfde0fa1572465773ee823bb7c45118d5c8c4496661bdd022c588f631b60b16d18f2fe9dcefadbcc6feb58454304aee3f66599f74ea39edcca87ea6d7a283381cf360c79b44c7812f0ceb4f0e9ad4d3cb8bdaf032dd3ee0b8ae7a7354dc07c1dc30e2d5c16ec2971fbc2d3ee78b87fd6b6bfe131847dbd525055059608126ef4e9f1d07b0edbc3d29f2aa1765f4c0c24ec74f00da9ffb5b0d13abe7ce191662f73de3064fb85a9766db16d7627cc706e04fde5172cdbe890fbf1a036239f370cf9d0d71557fa5eaf2bfcdb9442e2fa25a5cd6e76da74e5c696d98bfdc2e90646d019972f0fddbee6d36fbf6a86a7e56e3659e2571cdab5eb407b5fd9ea8d7bc11b4e3cb8265db89cde2c4dbaf40dbfb86bb75bd56b6608e6b8ebd219132f428fee5ccf1c63583fec0fa4ab8e1e7bed89bb72eb9b0ca6424dae9e9ab43787ec2efae70a872b4fe8d2376d93af2f5faaec60f86adccb172ebfecc707b485e9c817fd003acc6c53baedcba5840d43745fcdbb8ca5b3373e4ce8faccaad6d3e3e17bedaf30bc96ea5a664202d34fa0a54c745f77937f3506f42c03dc7353af76711df1e63a221b604df0de95e6bd943cda902ef5f3a62d753bb1391d462ad906b1db6a68e8a66cd64609dfd6df6fd3bd7bb1f8efdf57efd27227377e01bddcf505bfed0ce2078c205e765fd9da30e48d07f553847fce375fe03c1adb26b4a0807c04b43859622c80676a1922a218d7353df151615eddbeccdad27d65dff8cc0df733e415afedfa835f037bf738b2da3024b235e9e4612d670b238fb64a142edc3309d0f00ef08e3e4c97989cc0d2fe1c183fbeeec3dd7d2c49bc16871eda27176f133c197fb5cffd3ddc702fc7fabebc6b613559627ee3e2faf10ec6bfdebbf62bb78017f4799de927d66b1912f040b6bec239c8e7af7b4fdce1e89fc7c34759f715ae54300a9fd387400f78b90608f75b04e98d47f6ee5df607ca9ce775fde97dfb999e02fbbea7999b5c120e2e2e551e2e837d05b201b14df1a77a0ae49d9878003401bfbc0bf85677fd12a7bb753cacb995a9ad2c6ff9e94da7ea641371c7933cee84da58523fd0de9f86cb977800de63d0cb49c545667ecd7fee3d87ef0fa9e613bb2b53db97e177cf313274e74fef757dfb07cb38be7ba97eb40c716f193ed08b3217bbe156bfaf2506da9fce8fcf360c792905faccefee9eddefc112eff48b5d0fafe6cff75ec0f40243584adb4e93c656be0bcfee341dc8da17f3853a19908b733deee9697d1c29dc542c7d434e3651feb96c0a0de0b7d7b4a502360c797bfe0286d7bed5e1e7229a7cea00e7995fbfdb7fe69d1f4a5b4c4fc996fbc9b30e872cec84da9cf6be88f2836408677f2e84162e7d2e5378b23e5962b7368ff0b83dd3eff71ef0ae2e75dc3785f0a2eff6e67cd9931b2d5ff6bcc3e50d435ee9b5d593a17e73764cf9e0a5c96d3dd353abc360098c28ebe391d3e73fa608ecc4b3c391d01e71ee654dabf32757dd5e7553f608bf2e3b077a002cf7df6f8f7ae9f1fde984fe2aa388c2851934c2b93feed268232a360c09dfeff577ee8df748e76d748921bdc31346f578b84427dff15d867cdd07808fd17ee5f8010726b77e88f673303feffbb90fc08f53fde8e26201a3ccd47f723f0c14e8f1679f23eb56d7bae7fd8ff69b6ac092b7888b1109d8bff6799f3fe88d3b25a06fc03be787250ef0657295d7ed97c54f8595ad2ab7d7d79fdd93ee13398016aef76e7d00994584de5ccc5d5c3ef7e4f24b18dde1787627978bbebcb87ec6e41b70d3eedafe213cbeeefdbf1d460f3877d5456fb25ce9bd73674f5fe4baf60a67e17cef74ccf33dfdff02c6fdf9f7fd075d7bdf14ca4d7afb6c105cc35587f0e0d7f75d2e89bcfeb80cda469d4d8f07f8fe9d5ef40caf0bbfef22d4e29b5ef87d985ffc3e1dbefcf1fd7ceee3c6df939738fecfee4f05ed6d5c3eb8a90e605edceba02d9e6b1dedf3b3475ef327f8799f6f297f728fd2f6735a4017badebbd383fa32abc777bf82d56b5af8422e0a89cbe9a1877d038eec5ddb3f83e7579ef26fe2bf3f87d14fe07bf17b74be10e873d9fcdd2524cabdf7f5c91c68703d95836759eda91c860ec7c3c9101da2dfa81f31c6271304c59fea47b4c7273f3d9bc3506c888ec6d7b3b9e1e56c0e1d4dc6e33f7236d71dc6bd3c9b9bbc3a9ac34738465e0ed146288a0f711445be533da25bf377aa47dc9afe2d47738fc772df3c0e02575594ffeae0ee8f4ca73be9fbafb7dfdefecff5a8af4586fb93be125cfd2f7f5b6c337f9b79cdefffabd77590bbf5c78793e48370bbdff60f05ffebcd4ba26d56fd16e46f3fdebc3cfb8882f6f76551ed5511075bbffd79251270f97f7a278aff05deafb6a7eaedc7db76bfcff725e8260597bdb9a4ce3e76218d813ef75f3e04ff8fb260906e53d02e2fe2e0b7281b344e9afc76c00079e4f07f8328afab2879fbf196976fed99dee0234ab6f070efc75b99efc124ca0ad07409e6dc1e7bfed79b5b7fc02edca6da96100069b1df96e5e003acb07f233847450ba1ca89b2ed7e904465d5dd6897eced9ba2caaf3f064edb637be145450817db5dfbfd877ee9dc2eb6defda58f11044a3edd184459b5dd674e32d8fa4767ef978fcd92242aaac8bbdd0953a777757d7def647e07bcc74765ed56c9f6f620f589db0578af77e50d7b17fd0594a183de5d61c4e8ee9a40b1def5c39055d283d38940c8fbab41114727806e9997fb5116f47e0e9c3243fbd7ae536e47c3bb3b51e6ec9bfe9d70dbef6db02b21515faf0b88873fc7ed273afba378ffcbd76f9b943a45f91d22fa16a16d5377ebff3324f9cb7665e5439a7c41bca15386dd3f036fefe190a02fcb0214e92441ff9657d4fdcb8fb4ea08fb7a2bdb56d5def1b6fd7b7909f7ab7fabc893a47ffdf8ca7efb916cbd2a89aabbdb659405c9f6238982f06ed4b2293dc0cfb7a7adb7cd0eaf1ed51944d3ebfd6a5b56497eb7ba3a2b9d8f6db8757c881c17cef6513e70b8f6b5b4e56ce09f811b05b79f5579f9dd11680ad48df69f415a275554381068f0c6679d575b1fe83a95e342bacbb655fbff41585545ef27fcdf05bad79b97e977f7002b2cf6396483e0bade5f99725e420075ecf90597eea00e7f05db5371fd31289bac7200fcf67556b5cbe97e0d3c28922e5757603a559e42def7f4a403dcd37da05af5258597c39dbcc80ca07b41810cfeb975dfed2f908aedbcea2cf280e275fd35a8ab0f74747f3d819760bbdf7ebc1db6999fef07419e3859f05bbe0f06a7c14568848e173a18f2bd56459e34288e10bf680dff01d4f5dd761746fa55e37a7fd85e04d017edc2d8fff8bac5b3ecf9a2f12f560c10d0cf4af0976ecbd2097ed6dd1d8a073524a15fb62bf6f9a9f945436c10168e177fd12af233e7278fcba6ec58deaba780d206e5d6abf7db811bf9d1befe29b460d36aef64e547be4fbf6a74c151d0e177da65a0bfff8fbdff6c6e1c49da85e11fc4786fc212c087f381f09e8437274ebc0143c21b121ebffe0992122575f7f4f4eececeecdccb89d0a82596c9cacacaaaab2a75e5fffb2672ecff3e8f8effff9b9bfbe6d0f8fcddfffb26baecfffef8ecf6b1e46f156ffbd8ff7bc5a0fd6e0cda0d8b3ee3cf1e717bff5664bcadee0afe29b962708f6cfc17f1f16ff12bfe0a3ec6c0bf273efecf61577ce1e3173e7ee1e3173e7ee1e3173e7ee1e3173e7ee1e3173e7ee1e3173efe3be2e30764fdd341f2360fc6e0e748f95ee2af45cac81329c32fa4fc42ca2fa4fc42ca2fa4fc42ca2fa4fc42ca2fa4fc42ca2fa4fc42ca2fa4fc5f85941fb8f5af81cbdb7733e87e0e9c3f8afdc3e8f95749927e013dc3c8077a86fe73d1f37f3245d20b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f3df1b3d7f82b17f358ede0a753bf4fff3fb6fd19fcabd636a10ff1dc2e13f2a27fe034cff8139f1ef92ff2358fa9511ff4537fc3775319f57f80713f19d6d17626bdf203fd8166b05a392768a1db10b1c25f1a0398d6025311c748a5d2d394d8d2450e4f373eb9ed31badef398f791b383c3edf9b773645b1f539ebc7e5797d7cffb74415b776ef0c10516503b12b0e02258a614d8231df6502d57d6647ca82872c84b80889b490edbd1cb5bf0a541c894b9448d36726ae9810d75b7d92a06a40fa77b342fc50fb87a1ff3507fbb9e0bb878571e0cff4b0f81fe761ef92bf3ceccbc3fe3778d8cf4bf79f73b1e61bc9afc0777762bd88b7b3902b73817d4baff4eeeae8ee375cf09d08f88dd4ef37cb8031ffb336ded2c6fe716efcf846788c09d9fefa85a8b07a6c194723bab9f8e4cdad27d2b2af5d2aaabf75fb32458e11f724817c77ff9f7ff7d3ba0f399edbc6fbcf3fabf3480f9b03f54df677dddc6415c1a91697afe31161a03edcc6cf03d2f9df9d1ee4b7ccd0b897a4ca6688997bc97ddb965914dc1f0d7e7f03fafdeaefdb1284c1e09f936ae4be2fedc03f6e5f7a88feefd898fe939fd15e1bd37fe7c6f4fb4bfa97b6ab776ef32482f5db16930bdceff2870f9fb9d61fbfd3cbb8ba67b67be468601e791e4cc75ea35bbfb60d04cebcca45c91ca63fb9cf523ddab648eb6627050e3885b00808bc0adc338fdeb699dfe11897ab4f5ce76fbff3ef3926b4e191734267ef72306019c16aea43b61d7365172da86931366d17b66101e5d1ccfffcfe6d4bbc67dfbd6dfbcfbedf32f8de79a029d4b6adaf73f2960703bcb5f1a5efe2e3dfbf5d7e1e7d28be730f9adc6d3e268caacafe9e278122df7269dce6651a428ea8fd7b56735409a1b8f65de173d99fe8e5ce6b3ebc73246a2e39dd8e536f47857fa80dcfb51f191bdf78a87de39d6334a6428800feb9b6ffd1794b4bcfd1cba8b087a82af380b397cffabde7cc79e7c584fcc573c0f29e117341df78f9d1cf794460df11dee756f01db6f05df1610feb27fbfbe97a7be3c3a7d034acd0317ecfb45f88a5e7fcaa0eee398c0683d781e87d7c377ff34b75dfedf86e1baaefaaabe7c4e5cd86b5f75c30c06dfe7432e2c92e70d4c7d1f80747efa78d7cd637af7ead9791d89daf9e2797c0f5d398b33ef925bf0d2bb61398bb5d9751462a2610f3ba2d2447837cb7dbc1876cc0bcdbb3bd7c64a325df6de98b7f8a00768ab8b97dcfaf74b30dcf5557b98acb98b9f37f369251bccb047ad57cf313eb631e9424ae88d6a7c8de73ca417a8710601f0b1cbbf8b0d2de60c6bdffa7aebee9af16c1304bff31d9a847164ec97cbb71b9c9c69094efb0c31748c37cd8fcf1e98f2cfced96692353e41b6cd036026fdfb3037b10bbfa46fa450e83b3539fb317dd4197c0511bdf1512ffe3df1f63e4c532e6ed25ccc85ea080cdf3f7d43ef9c6f61e79a93efd7c34c8afeb6341aba822fae7fe61a4fd634e9e751ef3f20e0d3ee6f9dd26ee3e4d62e6dbbed4c94579d00bbc7bde785124ad1ba4e8d32da6f0c00d86dcb9b3dfc71a2d68edbb3a17b8e21a53c957ee78a664bef4cdcc471d88592b43bb108a9a375f3b1816ca99cb9408c50382098ccadeecc07794e42367d65bfffbafbcf6dfe8e76ed37a552e11ac351648b21ae8b356a98a2680b40f3b78d4331982d701dbb8fbfe2555ee3e8e4245b3f08f32b5cfde6f1835c04aacb7bc4087ba9bce86d07de5b7ff993e52d3046d4303ac7fbe6fd87e6452a6ff99f1dbd43dc33a55b40f08fd66636fedbf43dca3413e6c8625d393338f9ea335ff8cbca79524044ae8de6f5fbfb4f17e9df00ef9a93d217068192fcfb5f5a5cff71c43f21b2c1768e05ddee1edfb875d3ddb44bfc0efa3f1f3b9793f67fcb8dfcf723e6478ca423137d9c1909b92e3f3c6177dff0e84e0c34768771f91b402dd2442811e0546276d86c90ecf1b6172f15d1d8c2ae4d9effb67e7dff5598fbdf92d6fd8bb4f60c35a6c3d28bdf9fc34e6f525704430e6ecd5e2c531aecac277854632c837dd7df4efb9facd2767b1ab97d1b2ef8fdfd4ff6cf372ad96f17d7daace7b5e2f89126639df67ef59d01f5fe8eabbbae853e9fdbc26dff6cb4a1f43dbb60d4b6bbe96bd7f0d314798f18307fae6b73efb9321826ce07d2d4ad4477e3fdf4dd3d0253bdf40f31002c6f891f13ff75cb514b2efdbb0f972f28d24f320a2976bb1f4b9348d29b4f21c76fd38b33cce5afe5b5e36217bf8b1b3765f47a3943dd69394ddfd711773c97ba6fd375d35c9fb77eddddf3f78a52ff2f40bfbd0f39a6d7a5e6f1d33b279ebeb877318f1e2e85556229bc8f3eaeb2dcb7623d4b77390de8695bd468b30f82e0b7acebc4af75c8e6279cf7efef9a5e2b947edb3a8b2539f2f3edb2df19ead3f70bc44a2c42eb8e9e99f683be44ac837848fb5cc0389efccabff1cdffebb2b3c63f952fe6d4f05dee6a725a8e4fffc49d75dd753d70cd7e8f43bc1df1fc5feca3f9d8677bbbf43f0f77ff273ca2bf8fb15fcfd0afe7e057fbf82bf5fc1dfafe0ef57f0f72bf8fb15fcfd0afe7e057fff7d9f673fa0e99f1ff7fdec7b1b7c7a046eaf4d7bbaf6d9ef81eadfa8f30c05ffc7c2147f2bb9d52f858310f01f1808fe670529fee7a4b67ac582fcb7399bdf5af01fb11f7fca1dde6dc7f8b993b997f82b33e7c1c4df94eff03fc7bdbc2eed5e9776af4bbbd7a5ddebd2ee7569f7bab47b5ddabd2eed5e9776af4bbbd7a5dddf1247df01e99f7a5577ebf14fcb0cf02f2165f485945f48f985945f48f985945f48f985945f48f985945f48f985945f48f98594ff4b91f25f9019e0d9eddf2b330006bf3203bcd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dbfd0f30b3dff57a3e7bf2a33c00f04f82979e0cd1cba7f9153f4531b4f62d11df13b2905fe4862510cfe0309af1fa2bf88455f7f4cf25fe09c7ed537fc4beca28de7807954d96b4ca1aae7ea77d643cd5557df1501b962d708b29798d51bcfd53eb3063e59f0eeac88559a868ebaf8ae0ac80598c69cdaf8aeb8ca953dc70edbd91cfe4fd445c79841c1909b1dcf9941ff27aca101c7f61e2c9611ac0da6c30277b6a85a19c2daee42d64f43de2eff74b6d317c3ea5fc4b0fa67eb5cf72dc6fab2c6ee2c5c959f46b05e4675da87147af11cf51a41b771dd6462b3c0410bb9201e4c780c98463c59469ff5f6c60e1b56362097b66198df7ff65bccb18f75d582615502b7ef115702be2b0c9e4bb672a9dfd6c9afb2b3969e83aeb7b178b03e467531780e3a840fbd8e618692b1ab8f31542ebef3cb6dde59c862eeee73f2104201df4d01b9fcc2286addfcc12fb2af66214400727d1fd767d6d42f0cb2f6a33fd7774436acfd36aa882174ec21a67f918db522c698bac9aa02721d975e86e62157de6df3de367bf33fbae5dfdae258e08bbffa49bb77b6430a15beb0fafd2243ec5b5dd577f4d6b37534e2ac7f8815d6bafb677b8d197b88b91238fd63321bbeab4e2184aebef5519f2ac81fe83dcd43eebe97ac020dfc221b2cfaa8b34c6f6c6871e915f61057e51242687f5b8bb7b66cc8ce74078502571cc30abccf8755b0079d215417248f56a9b554fd646f7d6bf3d71861efb2f3ca83e96d7f67b8fb6ceff7840d5155429eab97027bb33ffda693db98fb889b1f0cb6b7bd957e249cd018168c39020e5cb1f4efed7db3fe3372f4aab6f4605df5ee8c7f7776dbc177a3c484c48befa880e9b0772646897a63a665c8fb5af9c2bac7fb63e068c97d8db19f981bad760d21f48d053569055e6fa28a80a385644f9c5a46fc8365f2f4ceacc9bcb143721f8c956165c3efbf7fca40edbf65b24c8ec63e0b38bb0b393c7b32753237bb7bb2bdae02a7961f4c964ff6ccaf6b6149da77963e0fb29f75e58a2d7c2afdbaef645322e4cca050c2cfea883a3525b66d8b3a852e9e83162104de7da8447d6556fc86b9f19d9d30f7ad0f7652cfd10b89bdef019d40897908014354d945c0b1c0dd6fbaca730d7ef621efec8b3f6eef6d1f37a64478acd59dbc105d08a969c8a563046bbb03bd47148a00ef7653a9690459d993f5f38b5ed1d4e73e33a74e8950a86358fbe5cdafc61c9ed80f7649fa8d5df239a75665af11470c1164b361adb7315fe09f981b97e7fa37f6c4cd9682db581f67c9f2c4a98d77f33bc667065dd2f05d16bc8d5f775020707554aec9db789abb5db1b661184926c39f198985f647ac9a6f7e7e88d9bbdf6b4cc72e0287b54e2e59ca05ab59cc2c6a006b1916717081d63401a4fdca727b67f36cde6d43faa2b342faa6bfe4b66ff97cd1bcd977fb85b5f6c96cf9eeb33e74e8bd9da5ed3b2367fa496777e656f376168e5d950e21bdfccefe2ab68bef2cd453f2c64069854bb228f4fe837df723794d16423a7a5ba3d173deac3b7bae5611c5c9f8b48ebeca74af2753e46d5f3fc4cedcd9cf7e9f36face68fb6475bdfb826f7c92fc60e47c9cd78db7763feb8979b2da7ee8e9d17e1ac16a19d5ba755b37d293fd764ac28a00cc4fe778e9c1fcfba371bc279c79f7419dc03df1472354691972f32864bf5f3f846f6bea8d799b22cbc8b5d390d5478912e91042a15b1d81d747e1b36fbdd9e973fd7dc14dcdf70cbc5fe63333185b31193cfba4efdfd007fa4898934d49f8239dfc5b13e3dcdf3f7e7a11f5f642f2d7fdc1048640cfcb26e43f37e4e3f50713af908f57c8c72be4e315f2f10af978857cbc423e5e211faf908f57c8c72be4e315f2f147bcaade9df6bf3fb0e3be0afe271cb2323e5dbbffb9ede93f47c7df947de264eccfa3f5c4903f90d6f326f8bf108a01dd4331f0bf173a7e8562fc2f761adfaee68fc00a9fb32bcfb5bb986e92c8b5d39381b6e1426421ac8e61463cd22cb95fd22cf55e6db721a79751f2efbc90dbfecf29cefae6fab8b6f81d07f4a5e893551886fe4c0784fd81bcc237c95f1ee8e581fe1779a02f4bf45364d7fde5f0fecab6c48e2551657771b5b60d2bbd0c6bfd1cc13a1a72567234c835e2d8dcfffc1954eeee2f74b42079509a46b55a3edab2013f0310aad697c001cf312fa68133b761159f63286d63ce7eb475abcbf969c8ab255595c3e36583a802074d4396187c37ee02072d051a48fc8aed22c892fe9d0e2fc9fa2ca99bebe977bcdd47b9775777e753faf35c1df1c7b9babbe4ff6d4f112f57f7bfdad57daccf0f3f6730b6625168efef5bc073c5da77b591ca982174fd4186e3e52d2a660c1d16f21da48f61f12d7206bd78ae20094673916175f116e29e97595e6e3feb6954c5654ce19f3f7f44727df3399529b9b090a6cd2a89b0283995a169c4eb671fb207df15d398b30bea3d320926d3984ba48fe8b872f25cbda132748a2ae2fe324e65f77ca140e0a0753435cf4810adb2d3b05624b9568168d57a0f62f380b3defb17c35a2f436e6e8d8c1475c626054ac985a91902472f3dadb9c8550947d3fd7b1feeefdfa72869a49bcc02839631f388dc7bab378695f89449869ff9b5472a2306af12c1c0990b796a469f2bd79b1e6408cd9eff5ed0c1cbc03aaad822bcd5f9289f4a593346b098cb1098060e32de7e7e1c7ceff3769132628d2a657c44fbe1b79fb3d8293bff43d78eb590f7e887f731c6b59adf7e96a77fefc1b91aebdfd9416e25fed2e76c147cf1ffbd9eb35fcfd9afe7ecd773f6eb39fbf59cfd7ace7e3d67bf9eb35fcfd9afe7ecd773f67fd765c90d8afe596fdad5586fa76bd0b60fe4f5db00f9bdd05f8b91e1bf03cbdf0b23bf30f20b23bf30f20b23bf30f20b23bf30f20b23bf30f20b23bf30f20b23ffa118f9895bff02acbc5582f1543b8f1fe866aacbe6b6abfd0281dfcf2a3eb13581fc99719a28fa07068adf45ff0d540dee5e919aaff0a5bfb7b7f9e9caff086e92974612a826d120623ab962eb432920d0c2a4d0511ff1621941f610532410705612c2b7cfcbc173a6c4736d20e08845b87fb160cca563542b0395ed2fb72f81995b0fb28708b20b81b7079fb31781d71bdf20c93b252067252657e6be83aebe312576652f11548e61b65fe47c9f48f7b2fbeca3cc833e47ca483484ad24745854e0d031a6483082ac24e6d2365ac82a70e652e06cc483ec29a6c836ccc83c84c029e4ca34acd452e0e336e6925bf9f24346eb2eb7c096636c90bde71649088980e79483c0318977d38d418e7ef6d0c3874c641aef9b444a6e72bdd18970773aa1f590e1630cc7b05cb193e7a88d6fa063544563f85ed75546932969dd424ddd006e63becdc37d2e6c07ed7c575d859bfe5dbb8d2abb10381115b827155416dee68363e137fdd75165973e4502e1721f331c55e53dc04ba6c835847c2086d8c5d7eefa2b02f74ecf92c5ae7eab0386955e46df8feda6cf6fcb8e6146a661b6cf345b490c5bc90446242da034e5fdbd6dd7b075c1046d4b6063d22a45d22c7551b795c4048544038883ce9477fa1b6b218f7a469266592406501e746a4a7ca704829b9d703672b73d5849425848eef45f5c59fa1472d78f05d9e59b2d2981a39661ad9602e78fef638860b2f4a0b2bad33972ece0c376ea4356e24304e4bbe270d38b70a72802db0856db104257e156ee31862e70c0f64107490cd1f25bfab9cb327ea236bb78ae9fca155ac61472f94c1317542ce4ddff3ae387bf1f02071f3c284dc30a2d435e19a41f50eebdd1ea6951454cbe2b028163af87a9919ef45a9cda79379b61c034aeecc17e0f422cf43186d02e84d8c277850f1a2dfe1970f78992d06fc38aed3ed1f7b8d69db6c8365cd067ad52154d00b9d368291402cab997bdd3d6c84b7379a732923292f11d3f8d9d191058db301f765984703c841c91faeffee4c70193895f8b63684c49e0784958e189087d8cc176c54e5ceeb639451501058efe6617f7be2ff29b3c112fb671c502bef141ede9570fdff54e1725303aab17ac6db2fa596708d72ce6a366e967db16158106de68ae1e6b39aaec295cd0de73fd32ccd0f4cd870d770a40e8a1732523da702100cfe9d3a82a7e10108a679fe99ea4dfd0afb4ecb3f73665f71960da0bd9fe2ab0b1a1d9a4a6dbe2f983626c7f152861082a7611f207ad9b40ed47296b9e7a11d87b60e89d5aebeefbb8efda1f225e1c23ce5e62ae2cdf7da94c9170c0957940917de0c44d4c91777ac477dfe873041c56f3e839ba1d5553f26c832f6e7d7df4cfdb779f12d62ae03b6c217044f5b6868ba7ad70c4f05857ffcc5c82a45dd80717fcd08fc58ac79b6e6da6642d90d0345b17041af88e464bc8d03eae90f1639e88b77906e1a87aa79122973b0553adb7beab7cd0c751f8454adee9a49ac4bac977d799bdf8c6cfed3c86ca2ea4c8ec36ae5b7f0ffffdc78ddf2858c30549d26692e4f83d5d592657201466c4c718bfb7b99fdb1483a6a1632521e43d6c8a7fea0815f8b8091cb51178b50961bbf31fe3041fe7017d14b8bb2f5e6eebf77b3bf858ef026f2f214556b77de0d1c7876c1ffe06ff477c9a6615c44d3f96631307cd02d9cf3a7baefdfabd1ff166d71ff3cd3f691b9f73115744eb53e43db85bfae8278daa787540a015f8ee33dd9c79726f6b001842d8066e76153828107248236440a27faca7db9e73eb638939bbf8a0e67b7ce955d9f9069979ae5aea5cb9f88e0a84b0887ed021fa6dc8598de78a750476936b7cad6fc1e51a73767fa7ffa2d0fb5f09c6dc3c4894d00bacbdde6d8a13d3dbd9caffd4fe21db6702d5255ec5aebea5dfce2679cc11cbe9411d477ab53a86bc0df8f6dddf3ce8da92cfb6878f0253beaffddf5b6789efa66d04ebab4c91cbc36f94c07dafa6c83ce0ec3c58c8d6cfc8f6b35f8a16321538158c607d0cb56ffae6bfcc6b1271ec83b6f5d6f767391ffa7b5bbba8fb2e9ff5f46f25773f6b7eabefeff43225a6c53aba859e6d50242d9664ad9278daa061d9e6db1a7d52c07d43a107dee43c1a24a35b3e695bb3e502fad10650c50458c6056dc3a4bfd857eb67e943afe573accf73c3c9bacb39bceb55a28a6fecf3937d590f4acd9b8ff11db67fdf339e678bf263bdffb0fc4d37b5dd85f4f7edc7bc88fea8dfc719fa9fe8e73907f6834af4ae3f3b0d8ddfd5c557bd7ffab2beee87bfd9ceed2cf69481fd62bfcd937eefd7c778abf7764efa3dd9bf1debd735fec926de6de8a76390abb88c3fe4472596344cf066afbaef0228695af6671bb6ad62ea1efef907fdf240e2412ce041492231e55177d3dc77c9fb995ae0ac1fdadc9bdda311ac97a1818eb1ab0d774adc5aefc22cc964e3d6af78b432f2be37dc7d1415ddfdd12faeb1fbd94a5c841fcc3949bcef15215f3ce8757f20df4fedf697d7dfb7f3b64f8f0639c4cedc4906f91b73f8cfaf8f076db95a4a3f9aa74f5fe7efcf088fdf1b647ea7e1a7f68d61115f68797de3b775f5c9dfd761452cbeb11fe40cf9b1eef8efcf655fe4f9f2f92fefa16d58450f3c6136c9fdfcfc6eaf3ff2f56f94988fbdf549fd7bf7f3d27d2fb499c015cb77daf13b8da923ae21348331676b9eab37125574bf7316fb6a7b5c594914fb46f3a9dffb7a5b876974a7957fec2b92819627ae5c635eb9eda93fd0f9cdee92f4eb18ee7bb2e6b96219d68fb625aa1842a72f0257fc4ddfff3bebf027b6ff7e9e0612dd168d1be6f760b1f4dcc73c3c695ab9cffbe3bebecfcb3b9d28f3b63f41366071ece23be8db5892f6ae1786cd2288e862572f1f67eda4bdad7f218bb21ff9da3fca86620edf099470c36cdfcfd50f64fa2a0b0944f50fe7ec03133ff62e2eaa88fe760695ee763a7d63933f58bf3ff197fa1d4ffdd0d73dc77e3b07c454327d232f2170ea3ded8540a556c08b63fc76e7f4e3f5fe3bba74c5e5767ef7bfeaf487f3e51b6f675156053c47bddabc987a90f5c37df4e30c6b2381ab35ca37fa799ffbb3f6933b8f375af24fb2dde755bff90cdb364c2a7da7db4e6257ecdef1964c3dfc82c0dd29d66ffbc67d6f936e98efa62f5849beec79fcb767b47df3217f5cde69a3b324336dff6083846d01b66116acaa1b422b50cccd178121372562e6253fa9a769b66ada0061e8d4977a3f5ce74fec78c3e6ae38dccec10f2afc5f93eb077695071cbb3820703b57af111c8f51a5ddce1d1ff606d980efa0904489aa5da0eecd275aa0ea9aa0c8085931c41c41dfdad05c71f1dce287f3aeddef9eeff4feb77d698c1e7fd0fabc73921e7e9b8c5dbdb9f98f077d3fb148d46fef551af381477fe30c35451501dc7090ef68379cff363efd9b7eca31ccc837bfabae31442cfe9d623fbdf9e0278dffcf6479d8aa58c6371f903da8f67fde5f7ac3d54b58b1bd6f4c9f75ff9b67dbeff77a92f8d6077cd6c31d17f371e9d56a1b3f481dee723d7dd513af7c83332b3bf5b99befb0a993ab97dafb3d27452e5ea57c291b55627eb33fedd35de8ed4cfd5127857d475c03572fe5db79ca416f6bb3f41ce0132df8e3eb710e7adb539ee72cb20a61e529fb8fcba485efaa40e0a06fbafddaae5f118f733273a7921f7c67baedcd4054b14304f96554f84b0801cd6d2c32b59f648a544208ade502241d9670346bb675e3476dfef88c766fe7bbcf48824a5a824afecfbffb8f919faf4955309eeaffdfdb4fff9307bf1385fd7df1f7376314c040e0cf7c34fe03c97dde64ffad576300793d1bbf9e8dffe6cfc6dfafdc8fc7628be96892d4f637dfb4dfeff782b6fff63ff1f63fd3b22dcd0045b3f0c6fd446ac614098f8f8567c15f68cbfab62dd3620f86e5b316a80da615d839c04853bed7f4f3898429c635a4c4d6c3cb7acd1a21e99c3ee50c4923bac2e48e2c44f48e2d25d7183f6e2778c413d8f734fd5c72414a63ab345bfbb2d6f52e081496e5bd582bd3245c18e37a82e9c5cc1ba6113735bdb0ba84b955c88c5596c35abf66060633c81c8e992c132903b91beec00dc2958a6a4df0ae2a8db76ee814cbdc893d75bd70bdbaa8d541634e1383419152324803a286b43d417c1f0f362f8ae5a68e0ee0968674f5ae3763c7c74a90dc5471dd6bbfa4b7e3b77a7b7b80f857e6c2ffad3603071f628ebd7aaed8ca93726b8ba71e75a8676d9694f79366edef7bdaed13e67bc399f6fb3d03b236c3f4868572cfc708a81ce55a4f03885d02e3070f33ff429faaf64ff609936378072a1f976712d0f55287292ba680007db4958d2ac97833ca6752e9225801975e5c19a45b065d92a9ab6832bd22278c846681d39ec2b64ca3924d8d82ad19f2263b39a54acfecd9c36deae962bfdfdfe64e61d8fdfe762eb8899f7e37a09b81ecef39b6fe95b9966fff7b3c6cbe072fe0f443a6e45122792ffa0b3291cc5326cf25530f4acba79eff85b9e36e72dff38111ef8fb14f9bfcf4e0fa6b726b3f909b567e5bee4fac3f5a458c317f3b3cb293e9b06d58aa80e78a8fdc76d09c46f0c1b6bb126280c81a3d87632f924feec3c2a3d46c12053e76f7c2de1bbcc9631221edf304e03c9a82da5076f4a17587e2caac224aa2ee601795ed409e71c452f2b0acc8b69051090fae7667f8fe6a5ecde652b7761c6fb0eb6677055a62bbdd7ad6c4d478c3edc309234b194a777a84bb831d3a2596b5c790068dc60da1cc959966974c9e3e54b44af59303b3e7c427b2f56260ad0374008bb9ed509c2256db5291a7b759ae30ae894fcb4639f5fb644ba71be0b24f920553104f6c375d591fa3f152d7463ba5c5955f4e55e9f4138012cdbcb14c2d2233781d115152342d821c0b61dbad1c321a2c402bed32b92d7b41e99aac74a4dc9c0289d33a1e24855a4d4b2753483ecd3e0c54b41012d2b59d12453aabf84ce9974dc08a246186917f1ad4fe228134e9451e7d6daa621a7bb0d6ab51d230b30b0d6a9544589b2f38a47929c15d1b294e898ab4788653967d7d056b23c0530c1e551d6e6d353d0a7d4e8d6d00c4c2251f0e4cbf406b600f5cdf597343d12420bbe4b0141bd6533c6114645759ba8320b9d5c6f39a0442880a18c25262c53c1e5b1c34870e5499c8276b515b388e155461573351e31842ed2b0c96f682e03abd0e7550ba8e019de9fe9c42623542a9b40d2ffae46ca48b032a865fea2c359c84ab726407ce92c66c0e28dee57b64ca4851060c5dcc956243c9436b8b60d1e28e7dc16b39dee3ddc0fa73b1e82ad75d18cd385754d60c882e140de367f252eff1b1aca20a957c6a604beb925c3790a94bb5d2e65977713bd66632a9241cf9d059ad3d053160394b8d791c1769804f061bc897884d993595a25453820ab36ff79655492c622dfc7444305bc1ad2935d180413938976b0d4d2ac369d08930256187b2d135697597929b60d3c77483349d796efb213169671098018060a9f0849dd41787368519feba2b11ded95aa299937acc6491bd361a4f0ed62608a9b8c5c742772bd0e7056e1f9f340b4d0b35bcdaacbe57c1548bd4a81b5013859675ddb62c74924d65b1a00ac97661b6d13c39c0a46b2a0915ed817e03a6ed1edbc52857b813ef5ad1ea10d356d2cf9e428336d6431609c69bb42f05773c3b81c320007f395e412d88b7f526eed3750f1d0a16969b95604a39b5753be4181213399a89053b978213270d65504643206761506ed30805ac6cbb32eaae1c0e17f0a04ec5b8e18b49868ba640ec0d8d6cec2349061387a03b2c13e05931383bb624c89877e8c1764b77328e4b4733b36b3aac750aaf2ba008f52a293938da56c6564e263a4dae097caab27c3b68e82c5ee1fd650ee653ed2161eb682303d2fe626b85be5bb70341c5e545dc5c377bf15cd46125fb6316f4ea81c4400850d01d69ae0c88c9c6d85754e52e277402516d60fc0b74ad37ba0d330718e8b2b08cd3a52c893dbf39ab7a4ea0eb266b00e09296e0dee3ec94dd9922d853aa02efc80bd679874d5003646f0eada8b3b9ba83030d06b6f9d997383e60e222417c886cd87357d51b3201471c6bcafa1cede123c893809fc084aa2d23722df5ed7c39e5dbf67a204750077717e43c37022d6c6ce558aa813eea3b643b9df8ce3a989c5479b8b56adacd400f60794629ccc71a806b009623cbada30279ae42f836ce6bb161a25615692d19b214e7db3913b1933b5c61c10a46c46677fad84c69754012fd2834335e9e865e092a4019186304b312d1397be46b653869912c91722b28cd743944794b151d92ef4a84340f0c28f94cabd5d7c5eb9cd29d8132389f90b1eabb622bd8d8e1bcd3c742bd0022dd799d0d2d42de0527fe1a60f3889131db345c5c24b5b4f07c55a763bcd12aba01816803f6c772bbadce238a259e192e86a190c136ed587b4b742e3a9078622bcc521440ae211a6a6c679d73f966b627ba8dddb62d6723efc371ba5ac311313b7777eeb77bfbb607e706745c392db1f67b6e2ffdda1e2cfcd21eacbf5321335f82dd0ac57863c5436d33b47053d3c94dd97ba75a385b413322647165fb8a3a72572205a4909d258dd5523bdb70941357f5d1e54fe16840cc79679d59e9201ef1fdd9f717c216d4bd50ce4b84a9ebbaae479f0b2174478cc789b470d52439e560002574a6e10c13b7d3e638d3c691d07185a4832bd213c764565d1d96ac2377008e95942c3a8d25ca1691116bbee007d32204063350cb6f52df6dc992c5abb50b59c38e1a0c2e923d769410321a0a308ffc22776c265692037749975e18ac34019a031d4c8b9824b6a26a420b3667e218f0675c063585d3824b07d36180d0a719610bcc07d2512889a3624b355449f854e53b916ecdae1e52a6594cf22cd1e1a61f5a1c102e34af1cbb3348e783624d503c9f60b8def65707ea6db4bf5e2b240fbb03965305b231b465879d0fcd45d9f103926e478b6107df2e8dddc1113d89d60f88301d7cfe549e680fc8afc5d66847dbaefadadb8d0392f10b3d845bdbbba67c8aa6896f2897d141aed555358cd2970e98e372badef14aa314cb59c0c0b0c3d4d9812e0db4116d8f3a6907e298740594530126c6972433aa4e024025262187033ab74639debf762ae0e035d1d0a3858c4634aab14195807c3947d9944ebd85c803090c356605ba0a046302739289d270ae2010d27ace1155d0748cdadb4e6aea0ce7304e7025cf987c41728dc08b70a0abecc0b0f569d9627c5cc090538d905029c058513312215b9eb7206d3451b2d4214d2c39d9125a3fdb65e76967b6a1a287f9ee58a8f77332ed76da4e306ecb05d5946fcfc9e48fcec9d6f42be764e27979fe3500497fbbb807bf040a58bc389ef8f2bb0b76b97a04a15e7d3d0e67916485f0bcc774b927924c2ab3ad338ea59c5dae6e5b26e63e5333ad0ee6ec22ee62cbd2cb6c5d45da6fa2eca85c0ab8ef7986df5047a543f6d2d52a30cb8221b358237c87a3688176db7105b1e8bc27b13cf31406f16debea91a0131cd564423084921b8908fb28b53b5cdb74eca6e821fda4fb0c348075c477a720e60d4775900857afe03101da638fd59ae7a9ed455f0aea581d3161cf26c398a4023e6d96c96a5cf460f0eda6f6a9cb92f97011e911991f3cd1581dad63cfc47ac55c192c373353a3dc6599026167ed98385f627348612e3dc0411a482e6575fdb58e3dfe782a830243b4ac1002143d6fb061dc596c49a291b84031d3ba1cdba9b43394e3c5695258b1a3e17ae11381d90a7419f3a66c508c2b7020c632951c37c2b621bdf8703523bd65bdd6814c9c28235f8d10736b8d00690c0ab437c3b66bedb3602eb15067034ba14e774213cc3051403c9364eea9831fda6aa9d8ad9fa4265c6fdcde66d976d70f16de984a85db98eb2208084f9a0bed164488261db6b7be9560b88039b05413c2c531480abd589acb5a790425783c5282454f5b1ae2c190923a4e440a4c5499a946687f583ccba1ba8b4e5659110be7958b53a970d20a4b948daf5673c172fc2842a4e674747a72696e05cb33920f2be61e10cf861538ba9e0ed129ba622996c203bb8d9ac88c1a4777554f62f178e170af9ab3156e31a548870ded9d3b4d8c33cc3723ad9237ca66eeef787999fb339514b7e53491dfe165e6477879fa1e2fbfdf197c0aae04f4d2af5830e475e6f9e87bfbfddb9a29ed84f7c8d1e6cebb937cae0f484e1d6a3ad5b5a610a833a75dfd8bce88fd1ec13532d900cce2061792c98f785f6c0adead6259cee9eb2549bdd0d092b82c5931d0cb312852bf28303a007a52250814c330b82150b47042cfa6925a1fcfdcf60c63db2d811ddb2d8a6d58661f9e0496cb1aa64a6758e5da43a514b3b4b683595edb9da85fcd62f6c2dae05547ac2c0239f8cb258eba395d0837617619b18a13d02cc57ad4afb1ea1a7e79d6007b5f4551350df349a1d4b0cf077c27c7919b6fb0d3f9489070e3d10d9ba79b013d1e4e5c1870ab6e3a416740f948efbb18a48735827437e437db13045a62284df641e071ab0e0d829b6ad8391d9c4926ebba8c9116bdb640840d6c4aa95586722ec25cba1d04603e9c7734975eecbabc20009d5c913e1f693ba16c87db256cd63152da05e4ae4b3b55dee341a637284532e0de44b84c4d74a55cbd52145730cb213f0eb0f39517f35339badc55d65d80f18cbad293aba1478ea14706a3aca7cd02807e14f3981c9d6ba569a319282aff02f07a7f30f06e739de6c3a2683bb78690d3a8751e3373c7039ec59e7889d1fd5c0b3424a41cad01f23e1dce6b9ddfc04fa5d28ad5a03e1fe0b951cd1ed27b13cda1d1103889bee36168b8c0c76c59852e80156fc4519036a88bb0b2f8646774b425b1ea4c5633734468236a4e2c90b86d69c6d7a549fa861617d1d424323f58b64ed303e9e09d60f834ef443a2c43f4d91d211a3730af86c3d3b5077a05efb11871f2cdd667e321459c99c3cdc203667f4fe23bfd9ca7ae706ca3ad4426570d77d144bc1aa876ce78cbc53b126af2b12f2547d883005ff401337336374d3b72180b8485230a12ea55f5a7da138d934a502a85a60898301802d916312c764b03dca967791948adca4062f15289631372e959287107a1d9a51810343a4210ca89251d69f4062a5cec900f3bc0c7ca56599ca48a8ef4b575d24ebcb069cad31318721d716059a9f765ae18e53e98427c474d3943971bd2d887db9a56f49d919a4ab88d342423b2a923e65db71c72361bd470baee00b0383a01e97be8952345cf362ed7988ef60cae2cf955df38919aa1d369e277ea122333e8d73bb814b86c48a696f6a3d116810ddf9c8002218f1d76a99cc0b191a0732193da820b4b1c203ea1aea4021207bd7642cecc7683e98125131eaccad695893e68b3615ed95def2a6db71cadcea9392847a96c1a25560163724e24cab429489285bd8becacc02da5a098ba827313bf2c192a5ac5caf5d9b2384497d25c77517218276a6c4948ea0f200c70bb7ea4e25452f32b5ef004b23f5548d5c6663051e31c5ac1b5e2069e3eaaa776d52d6f6411d74216a9ed5a208a12dd2db34c27f0fa826bd1115465343aec219c31232d040f03a63386d31d36eb800ea753ab9e84815371a28401c9a6c3c956416698f1b939e238100f03e268f4024b0017b6073837377e944b4ec9e35785e04560dc82a8c1b2f675f1b9436bcfc8a5d70457ddea76c95bf9e0982750dab3d8c02e66ad0dc430383e5028172f4a7b7739a9a673e63dfcc23070b2e651d3c1035af88eb7d264dc9cf84d4b84bd1434db3d39c1510ea84aa359cd0ef467478e842b64a504c4ef7462277276c1f3b9a11568d68b9599d1470f19cd409ee6e6e4d42979e9142e1fc8d4391d8645bcb4ab244de84cf0bc0762b1395d22d5398521b7c1aed83a258acf27cb192636dbc36e3664799a665c3eb407875b5dd333ab53278a388f38a64e38fc918a087b34f7c7d4ed4a4639d2b24c0d47dfb045094e61a39657293539bf038fe8d42f4d773dd0c480508a74b10f554584b362fbd9c5e37328231caaca91c351cdbbc0891db367c3fc726ae5121d3515d9b71b8b3c5d925c916ada9db9631a2882753dc78cef1e2ee5c904b6493405a7698851a3f2e52a618793ed1d3341ded35d9d6553b011b9437602d04db15a9963cb36c14d2972944022b768178fe04149f661b1f1f13c681c90bc80948c9e93f10c9cc97e5f617ad9f023528f6875e1aba3e7c00194b425ba437dc23a5203d9f83a695c7d5822351ea7e8ad8e7347aa19a679bf6ed9754a002e82a8261d3739342e976144481ddc1367f1105fac765ce529d84e154df4a76cc3150d4868693f6cc4789636e1e818427bc84f1e6aa9f448f5b17bb1e12b0589e056604f5d6f14e3bcf7e873c4e1dc19b723f58c66bb8dd24cea760f6ec545ee08495f0fd64896b9d8763b421133300646f6280ec47e8bef9c0e32826d3feecf5bfa7c3e4c58bb42b27c0146941089dabcca54272e28405f93336bed502ae62b2cf6dc4ba5ae60dac5c94cd925162bfc26500b86864b145a4734e5a95a8d1828385a383427726982031b0c86dc279a6bae30d6ca6dbfeabab2615a68eeb1346f131f17db79eaeb2e554cbab67cba567ba8ab7688d67127b0a39b526e561ad4d733d657e6106c73dead7ca14fe0ab664720e865c331712ceaa4a37e04a4c1d95914e5705c1931cbc1b368c6100bdb4de2ee8da3bbf66b19b7e5b0b4be250197264bd1e25421d63241b3d6069694b5456b44be27f30623f54cc608156a384b00e9fa01143869eff09d300944951e33fd88fadce86d8b15f42f38b2e8e4d50f213d8fb6b81b49f26a605675352fc7d112870a96222f063b1f63a402f7d08ae307ba02718ace93a1ddc731ab5d68a32f36c7350300608e2ac0a877bb8ca6ae07a31cfac1834d3342db64848e5c07f992102a03c7d17e71206c225fecfd0e5d75baa6b04323131ccf9f23820c4bdb2fa8889b614b3f383b48867971cf24f805482e3c7b75dcd5d91ed5be3d8ac4e66c9b171f88f4ae174205b1fc05c02fdbcd26b355e3d217c681003b6c87516db1e4f199d8cede415c0fa5b4ad8ff44c381a723c44a6738e661ba72e301719f6ba07787faa95a8dc03f88849e115b7966de2a11d509acb692bb5696da9a6b5cd8e976a11546f8ecbcbb61e4f426415abbab52f07712cf7d2d99cfddee7ad80f397c3a99dc9d8da07b3165e23a1dd39016a798d151811636ff92eb35393c14af3b2c7077a07c5f3aee42d9e610ac109b543334027bf00b321aeaa5a71763d35a0648e469385b26771abe83a42a73e724d88c1cee72355a13a0c372502146db3a86483054e1132f605de1f0e27a429426e23084797c2027d68d59c87ce61691a328a9a6ca12fbbb0094746c65df44a5e4d505dfd7d309f341e2c986d8fcf598943b5409e758226e25dbee180bd7fd163a2398dec1ebdba9b363ab2269e2f270989d91aca617573d20209df2523240aebde2cc55d3459e9f94235fc40c02e48aecb1a5129ec97907cd264b371005ef2e9315d86f0188d1098639dba1b6c083fc0822a9c1d922562b7420b92f0e8f2a4da1881f6bdce61f385bd107a04f56b433985bddb35ebc0ed0a7a53a030997ba50ace3a783c6fbcd39503e0a4c2732f4ab72c7f156a5ce965eb94f62773225a7a866816a2b31a181b7f8b6e6740b414113b78dddc829ba64ef6c12653e3b3ce0830a0eb9e304142bf76de761a3c8d20762e80f2a83136d916a3f03925f56d07ce5bd5f227da0a7d525853bd9271b15c0e0e5663f4459f45e23c22e79670e92d436827749bee23d6db5e6dcf8be42ecc239a39a5c838578adba3ac2a56151f256eb44875b4ecb6529e0259c86f6b91007678466cf3684f8f73092af59282a3df19eae1b22dcd6b64ac2b00c8218cb3835a6e55ebdcebea45c65d6c39ba545f1565616e8f894354a07952562ea8aaf394843b4744aa0d229c842489974a2ed8d348e98e3939948b0194880aa4b03d20a4aacae611b1f7bbf37a62e4fc08e02ab3c9a40bb5972aad59a5c3a598cc137b5401ae1d3d9bb9b8eac166591b5a865366ace764310338d9993eae9f6c3d75270fc5545d57cad06e16da344b5cf5e29128020ac6b7698a73677bdd51e1c69d160c1570395eb6757746915a42c86dee722bdc6bf9606fc2a985fded429e970853162b2ea22d131db68b4cd633c6634710133aae3e85e22153a5fc6c4019cff367c6e6fc0b79dc9469951e2d8f8d0db9132a5fcf551828cf6bc5c72c83033cb3e3e6dede30895333719fee09766674e51c5c3c2c23413a5af48a30cca6d28b8b67d7aea81d3c1a1659a4df0f021295102b478236134a7b355316e4e942c0631b49747dd9646a63ef7adb9772c10fc486174e27aca7a47070a24d0da9adb758f159d6b2f0b2c944bef3c3b603024e3585eb2ead3d680c2247858c7cb312ab59cfe3b1734b1f0a394f0d1d8518fcc8c1699da5e2755785960b4280eecda121852865da0100750cd749b80618a05980e7663d59577a469b93a7aa9108a0a97b827a661e915dd099dcb66c09c211f5b10641a4ac360174611678b9108e1848d0b0ef4c9a3873cc75ad4eb870c6714bb72fd4e50430627094581e69eae092869b8ea5591f70c39176afa53a61d2791b83076080131feed63cd2b6f0289ee4d3048fcd68382467f41e5ac4462d1594b721b3ce2a7dbb89c8ce2efd3e0908245b0e67c9ec99b243f0f6e8da3d7fb0740badb36267cba293c98792afa4eb8189e366761bed881e49468a329cdebec521d0aa671ca3fdb4df739ef74bf7f654f18bf7f69fef1adfeeea01e7306918a99114b7dd7156d192c87e1fb9721e1e4643d20dca60365053f7521dfba57b85f4094f84c870105d147375bbadf06abb51d1613a78cd01cab4346da279bf9411a7cf565d5d193df5c5cbc2d86a7c614cb91000392528d5375056e86df27af46672ae52c64574adde20e7e32029181bcbdbe5985d0d4f9f6aac9961b20201dabcaac2053bc8e28587b7db789565576767753a596eb3a50e8a81b50781d575b62f193536faf8022e18b77ac4309fb453c7deef74057d2666e97e87844cdfc53efcf04e57daffd29dae18d62ae03973f729162176f832e10f36b85dc1b6b5ab7e6e4f4a288cb4bc0fd182b7130e32b4fccca49ca5158e9d39b3da260a111c50c5c10e78772a2b634838c0a00e8c60441c17d1e361af9966270bbac73654601f03f550b250aef7817f3dc9213c0e320e9fa0d42dd223cd832da1105b0c1ec10d06c32bec6f886d1aec59575634a14c8a9be7b88a19d8ed4fc352665878c8cd489da539581100ee01cb34a8e6dc0f7beee81dbd1ecc7757c999d914bd40988cb17c914841790dd56adb6071065d3087f089d1211a8880880b1c1fe00b7ca57ba760ed79d20973154e59b2eb9968f5502a3f06b27ca42e71272f5744caa29e639a8299c41120ab439a025749cafb83a45eae76911d7668e481feb2223e333558d75e25aa75a20d0882c2121ccb0038ea162fc5cd71ac79aad1e26b10955b4b3c8a43d41c405a0a5a6555f4483bd586ef0236c31a212eb186bd55d54a4cd24ab5f4ac6fe34b940e070c53854405eb554dd2f3d09d98ecdc2d38b198403a0c99a140834ecf658f4f30131a7ddb13d2985cfa6d5ec34475de28ab433612e9c045c6d443e5fb628da42d54ae12375d072cd0f7e6509da6823e777c949df32ac6664fa4f7d806bbee6208ec7704660c984ba7c030410cd95b670cc8a9c0883b9361b2b9a484b06b493816c10c8fb9ab248be36e69a21d48f69edbad3a6c1ef5840948c6ba00ba238b567ccea1098c8c168c804b1687876b0c556822dac07673a6399bca15861ab10598a3bcf216e812b743654f45b5f3099138f5b383681795100305afcd92707bca062e0663a3a597eec6767fb437e5b13e45ac77580e17746e3a35a96d33695b345012fccab55d58ce36215dc973ec4c8759ef6172235df44b68ca46967b8e1bd302451ea2ae8e03482cd794b47aec6474b9da5240b2c528e3d8f9334b47991576812a6d657440cee966d09013694ec570e48e9bd84c690d0e235d3aed56fd20d179b309151e24afd7b64036766f0450d39ccb59348d5ed8f0f1e50ca8b652fa200391a78c703b9e7239d73cd69b3a1acfa662fb3848e35ebc881bc2da6dc9a1e28c9041bd492ebccb7117aea759c3d439ceb25930e72e37fc65aacd554c152c76d52abc2ab0918ef0a6deaf713a4c154fd6e4aa5f70814c30fc3462d7637e460a59439c4dcb01509a2c932461484bcf0ac67042a60853a86d5996c525a1d5699edc4242252435359e30be332dd78e0613cab696247a993fd8aeb72e121666f99128191466b2c0a8fa868bb14b4791ddc10b824e7142b6c01aa2696da994532408f962776a9d9d83af51d85d0f50c63b1a7b82993aa6ca43c3b45beea88583d80d6b408501a9ed26b9f51c1f0a6639adc51458a30cdf4c7a55c4589c57d4c157acfaeac709ac9c8d70b041c23283cb1e4c29d23c53fb2cdae6da591023643b42cc8a17dbb2e0ebe202ab3a79c91dfbc4e633913255b0e50e613e5f90664498b4e28adc37178887ebf004148c8d1139ec1f859026d35d1d962a6cea2bc9ec56e2424346bd9fb69023af4837768700be9c5c1b5448b376905379195114eab495ab927ebb873006409032d44092702b1498f02bb6bb2e8ca1da97eea203203e9f00fbb49b197667ef70dbaa7c6e6335646a6e4b14afcf57a440d0f3299c1b2473f0559d452962995568563f132bb244f49aeed389f02d95ac24686f1378e992d764cdc8fd48a12c6154609ed16b0b4d29011623428ae805d04a6ecbeab0cacdcbc220f0a66f598f6ca81686f60d379aa140f87b255f2feecaa71513f6be8a2fb87e354cb524c57937efd4eeda6e8af980ef961e064c1bca15136d11fea476d7da80fa6b0d0581549af568ce6c878876a675a2da0b5b7f2f5d8ab88987830e48622a203ab0e8733d5d11563f6cb3fadc6c0bbd19370084bbde08a76e74a202de3f43564377d1796398276f44147b2f149e54e548d59a324181ee354fa59d3f87567f11d62e9bd0b177d483df77975db244b4ec99d665a1f2627f4e8d33ddeee8b2c0157813760a8eefb108bf24253aee43e35a18809f9d6c21af04464db3b049ba73b7383419ec6df00c62f3866e820581a66d51d460eacb2e101d58134a9b20b34dc516cf43316a52d4ce138c470e02c45e01cd87a37361e51d4ea9966487f8c52bb6131259cd9c352d31e1aeece7c1784633afda5ac2d2d0941d4470956dce952b8e88740640f3ea9013d02eae346f38c03c3671c693305a2327c83619eb0a28db21423ccddd02691df57ae3e59eb7a1ceceb23764ec9aac1e151990cd53198ca7d87eed323325e5ed4e55caf87cbefe7f949d35122e5992ac17944232897f32336bc9cc9cab7f56f5ba7bca6646b8b384239c08f3b0cfdda7956ea8111c7427fb522d57f4a048e506e876ae74c0e622c3078c69968ac9a5a40709e028cfa28c653f135a2e89300ff9204183187b4cc7ef0dccc5ef2f2974bf7bd2450f5fa15fcee2142a552ca0d2a4a6f53d42c2fa128794b0d697af8a67c1e09d062246961b92c9ec4e1184ee0daed21e17bfb2742605bf6fb72c68dd6fcbd678d95f7bcc9f241ce0df2d8e402ccd33a2fe18c1533374f9e1b425b9a93fcddc27f45ba31637ed26b2beca81e746a5efe3473109d0eaae810cad1b6ddf88162a485b57b877b3db725fa1753eb996c6a4b304a9ca2f02b97466e2ebc415d84d88beafabe28fc26a39b8ce5a70bd591efa6187b439ec4f32621b54f1739732875340e4492b9e9bdcf1745f6b1dbe74cd5e2a94360fb86d3d1490d77efb8847e762a41123d123bf797562d44d54c4c5a122e653571bb2aa4d3a950c54d0712e82a961be1da8af24d0e6f20c69e3b38459aba53824bf340cc1f899b33fe03df8772572f75bea468db72b09d2724c437255a6f73528a050661a0f5ad064bf75fcbe8fe615466616c4177615e253d189f3f4c79f37e566d20503ee43c637109d6640bb77acd0e26c3fcff56c9a33f030c110a40f79d109e99702d9cbd223bb8e242f8922e9ed9d926f9c419aa6f97179284ebebb70a2f337f44002b562812b0d642e4f73b4ad18031a11f635edc517fa36f141fc1e59cdaacd2bfad58ad6aeabb383cf20d943cf6df1c9c15b35cd08d78b562657fb4a4cea8fbe17fd54109596039e06e13a5b1f3d8fafbb29e4a2c8556dd1905791645594f576acf58221c40dab98d761960a35b8cd91e102935929d6ac793b889711da92591d956944d381e327b9e76061faedb2a70d82421beae47fd9bd256556430afeb1bb2f5308db5c305b9c2278768623aa236a2ea5c82ae411006b560f822eadc3eafddac6f942ef47f7cdc5adf945f6b481b8ee99281c33297422ecfc7be5743ede21872b6f08a985566e2ea8bcec39e574cbbccb3ba06f9ae3907d637bc1b78b88e4521f590fffd125462d0c6d1bfbd76cc5b73c267048f003489e36441786045c6c175fe1b80549228c081b53354c2cb370e747a13df556c45eed92608e98031a0108fb1e78f57234f1bd5ce018de98256c02b20cb85fc4e6c373aa91b674317a92c5bc5f6f688aa020370c9f6b5c079d0d32fee62eb3a8fd7d8b0e7e5cd92ffce655855a906bfb582ef9f85144862a85311fcf81e8c7f8f4b9d3680e5c75b8a9727497f82e090229ed840ef34308c3897b2ec67a768e29c2cf9d5f94fbbf85a99aa8fe549fa2a6dabf476a35546b109e88700b15bc8a377b93918a7264bad51e8acc8fd8e37b41483cfdda69bb30f8e3ae531ac85abaacfbc045d04bbbdfe2bd44ddcabf0a88e36f0ff05a3b5cbd54cf40f829305075bf0baf5e292fad01997ffd1ef99cb8ca1e309f67cd6b27be963f701369252e6a27ea567dd1652ca8e3d80bb9508403ff48d3f70877a032b8d48c23732287a0b87144fcb4dd4b394a2441193a3b2543c82698a0a44ae6ebfa5150091e641c0919aae55f970e8556fa302eee7c38935e1202105eef732a6370d69dac9897b741188be36cab9ca0818ce7b675c09e1fa8ee73d15450f8a5a36a32b890c488b5de395ff9465b1d53f5c01720017dac61bbad49cb29f4460501d911ec7a9eb79c1c1ee69d7273877c0e177e54fea0bb23c4e6e96e4539ad0c310e97b017bcef95553d0c4c1de933f2d141fceb2b5073c4f0855951c0601209e4cce9498c17e5fbbec63d1381353b6e559a2b605f3762e28ae118ea3bf3bc95145e075479d3ed72364b45f863ae0a82f05cace86fa0614e35e182e4e196b600ab0046a4394ebdbf133fc1c1d38df1d385154c5a35185e25a559965b3f411b6e4104760c5c71896d8ec7fcb2461b64aae6e2fc4152bdaf54f26452b043334a348ae73bc17e314821cfcaec063638ef08e46d37c8fd5dd156b68155b69e682d03c355b26577724cd74d440946dedc24eea13969665b4d3d79324067440e0447d34db0923fcbbad36a8171a4e7f997f8543c42558dc8e1a3f76e116d2b203ba2e662b348f11bc5ab9a03fcd1e4419d55d51c954225555241d8afcae940035d90272ba160ba8a122fe03cad5d95000e4e31c21a5990972aa15438a2e5dd6a4c2e0778cb7e83c61b07419a3d2e8f7e5fd008b6cdb5610cec1c8c7f40adf5d2e8d3e2f4ebaf8f520ec505e1e00991f3c69bcb58df75a755f28845890644258239b77aa0478324d0918fb4244863f22c62ac5a1d660718b0c763dd615ef2e3ba8311d9d24e819076f3dcccad1a61a0d84a12de1878a731a241068bf3356143ab4ad391444a805742ddcbf96c3b29f19f41acb1ec4b0f5382577c5b7a09434b1281b6aead83493c97e0ccd663c0bf405d4102570076018eb2b49949230e9a7c2ea6d2122cf59e0d446025f4f164dc4e9dfdaa10f79774b9d45c954d76cc3d9ec560d9f1f54dd5931e5606ffc04bc3959cd6035c54d4032f122563b0dde449c99b4ebd119d487f116e27bd0c0a070333ecae96ec46b15461fec436f9dde177274ccf7a0538d48432fcf040041b623a8a0063765093af0a7c49b96ff19dd41300d4a38d0cae79acb341ee47b90a46310e3c8edd186a004c52eab2d610b4e22bdcea8c199f7a2c5acab9029772c691744f336527ca594056a2baa06969a23f939326ae3b14a05c10f0cbabe5a74d516730d5f5d6eb1968059aa861f6a6bbdd07c12bba5656f7221e296bf26665eb069926145fd551c1ab949732fff0609f93eb926a5d28a6c00f323edc463581e927004e4c3d242dd75205351b51f21a701b1edaee524a5de1e54c094e3b17d5452b857dbbef123a025b5d936a58f2d60daa9abdd40296547f414e462e83d35f370bb14ea5a5ab1a0605961de2479cd1494ce5c9ddc795200381e14d9c205958f9d1263a2befba99656f7792fa97d4be010b6c55796550f3bd4f05a98ae3d99a61483f0cf5da38d77c3ec3c95f7fdd8a923da51b96391e121aab9f24a005d935be326d34bf6230b34ec74100b045606a1def277325407e2536302d59014b9d87f51b6896f25e5d7f6bddcebd54d5e3fd9b92612632ce61b26bf51e48702927df359f5071e916356f63b8f3e555f7130919c0cd04b8a5dd47281d76aa49c6e42a2b27fd233e8803862751d7da0927cf13f6763e01d7a11a5809384708d86e50c52741795a50dda1dc22e1d67af751caa03a8e1974e95e61620c91170cf269a3a1a21d2fe19c79c6a807875e8526adc5001504987b2af9d950597d1169ace35a2f5b2db02130b4a568abd65929c9a54081517212b9a408cc999b8a1d805d2c7f44882355a00639f747f4d50a599cd038bfcc4757465dee1acd3e335df04626514606bcf8bcb35d608f6a145222508048db7615a6169bda32d662013f2993580da8dff67de2282d18b413bb5b06e4f0dac73b58205ce3ac31d2c3885b14f3f75dd60c9bf0ae72eefefd5a86faa3bbacf2479e345acf9062fac74d56f011d882e05f6c457996c2957a9b82bd74b2fd88d04abbd1c35276ccbaf1c8c4f7a794a276a657e41f2a4c917141a515a65336df3920f5abb019434db2694a69f70732a3e86f3aac6fd252b0ba408c2d7fce34d6b3ced91d110cd46d405c5c45b82f7b615fba5c9db0a1148d65cf2c2ac79952a5b7472d97e551eca42092eccc0d5906937bb1e531c211dc75f26275d6d3f7b4ea96659c6fac3a5aef454f3a5ac2afa46a271f424f498957a89874a260439f40b9e404283ccda3beae1f36dddbeddd4a5cbaef80038dbd846e1b1949b2cda091a13f45a03fabb2e2dd34718f5e060ca8cf9afcf648e9de31b1140b0957bf5cb778469f75888cab764120f4b15eada40458303f19cf256e2981730719aa8f910be35ba187765b283d09ac9f1bd7e809eba2b65c258950c053e257c108d7363b663f5b1cf79422e7b3c17dc03ce515474c82d459b648f1c49e4fc05de3e27f2ae8954c3dabf6a2ad0f8ea5c9f92a8959ca2e22c7a8db06dbd42debcd4f0e924502036b82c03a57ab8a4dbf2a451bcd90d9f4abc11562bdd80e198cb0fe5dab42d6c4904357c3b8378f10c3dc4b9f29844ddb164d61942d9c0453d95036685dc3b485f18cc989a9239be3eff11b5c558fef41ba9733c8274f279d054fdad6602ec9964d6e8a30aaaf99b0fa97ecda7c6921562b47039ae30b99b48a45e1a30f99e6d34e3b14da1f09fcd79f90ed49052cea67ff7ed91ff2e7da9ff1e7c67f0b4c33e27038ffc9c656cc11891500229ad0e399d69b73ff896d64ec6290bd63e71afc2865ecc553e9772052e4c2c3d7ef04ec9f83612ed86db26bf00bc3f0d2eb75f0b9646149754e03236491e8f2abac942196f9cd1178e226ac31d707bc215102004053284893e84501866581f55d9b70dbddbbc630b39e7fefac1c9edc30a9bebe396c459d1a30baf2d90ff216a1bd038d3b93b336d89ad6adfb04878c0ee72567e5a5993e82168b4106f0dc9c9bd5cf158a59376e3adf6a10e58a7757f34d33b9e3132c3444125fa2a969d7523e535d74237214e5f2db3264476a921815b7d9f5af60f3797838b49cfad5fb51f9eaa2a8a998d437d62cc270c97271832a8660bb72f5ba95b8e75d124d9f0b77041d5645b78692382d09b52e39fca2034f8c0c0c45e03aa5f2da52d462cc09d8351a8c73f23c20ec5619a7789dcedab292dc8a900def5c2cea0261a75a3800e2071992e4745dce0d3afead9ab2164d848ca97a25e83803c2e17306647b899683fc7cad7e79bc75bc114d2f32ef90748164310e7d6855b1baed9e8846611a9dad05a65be0fb6fc822a3c9054d037468d0daf78adb694bf5154fae3463086199182df3bffb096fea3e38f099f3557c4615a53d9fff7eb57af69f725ba13e680c020d62894bc7ee677a6ed6e94687e9b1bd44ff117a2614bc7ff306d570001ce6bf09a114965f396c85b8fb12490dd8cfe80cb29f0500c3f5a23f801d1e3b823229edd8996dd2b6bdbab53397b47817c0e3740916f5c72bb5bc55dbc72e42fddd429af079215c1d8720dadb700483ed1ce4ebae6064d320f7302138ec4a2b73f9e78358c13b5a2808637b5fc7af0bf0f5b8238e8c4edf6015ed50a6c4815d2f4f4e644f67debbed2e9c48450cad7ac07325fb512e3e09cee076645385026d4666415c31ff2b0b7c14e32c10bcac47579191cfa9508633ac93365d86e7d0696366e868213eb1cac87d4f49d0aa551587316765e8cc20565a8f25bad099a2501ec111694fe0ea0b49d8c1cee3879ce210d9ae714be1c50e3a3bfa22e41d9c279865c18b94c0fe566f5a7a37c763667b7a6e3095e5529b55fc657899cabaae4852deb8f51bf0445797bb2bc3bda7b27b84612b74990575ab42e40a4e53b369e33850a109a172bbb5fe843c9a11f1dd87f2bc758c03a6a8de5f85e7cd5b9a8a6b8128a8943681cefef506a339054aec8f7e93f5bc433811e8183dd773750ff98125ed9050cc3a31d862d0d448653bbc3d9ee9de51367cf3217b0ab4469e514c098abd199078a0ac58e3715e922c8f172b4ce7620aa8637f971e9c170e21c5cd93bfe93defc3ff1855294ead7b2d3c7cc2344356c3115465f3b12e0b1ef09685833afb10f93c294c0c6b6c23dcb86eb9ed712c178d521ea892988efb988cd71cc10c4d5bf91c91bda53b3579834b8e963173b15e0e4714560c175828069e7b5b20164c08302331e2fdb65896af3439a2912492997136c7e997205e7af864e86eaa6b3a466ac769f1c883cc3c61a488e77acf1338efd85aaab59fdf9f03f4975891336012e91ae86d07411dbdded5876127fecd1571fc5221a61146e75de860d747b456709d2fc58acd04f527892b1b278ed016b347c588ee6228c38ac62891506af2babd3a42b1018174449b635a78108a28f29b8535ae24670331e8b7c1341a9b5878de93e5263601b878daa7bfc31f76d500ba73b1a715ee819a1724ca49e88146302796871b6427e5398a551740ab5020808ea8df0f781857364dcc4fadbd6a76b0873ef6a322bef9a2c5667e9b74f9a4cc08db24746a753266fcbee640365a4c5f1481c8a1b55ffde171392a8d09604630669d1035ea72b7cf0fed996c8b84001b31138c311636fcce6ae1d72f1d9c1587c455584c144c0dac63ba16f7c8cf1f9eeaeaf6e554da89627aa1a3f721cc62695da76568dd20fa8809b3ccd74d27b34a443282bd5bc9a60d1b09545c73e9da5512c0b75f5e4439ae6711c2619199ab56f67698b2e1c2850fa9bc26e2f1331c1d9a6e52992a21304f2d21d9cdc1a8ba04704a80c28d7b98147a8c7db9306b226b5376cffd573ff8606658e41a225190536b6f4333c25fed6869de010ed82aec478fd997a34bac56d8589a2860ebd008f4dfaff6b213d2f96abc120bd3407d15225241471916ef147c442497fb02f906a1b207604d85d2d31d3f05ef87ce010b8224cd22d98b90ad4fc2b5d2b823f0d46300e22985128233a7e1a572b7b0c955a4d53fc0bcf8adb1de8bb86f2be7782279de73485a2305b1b78fc081df4f18652ca272a01ec4dcd1a346b88a46191a2d90e8d85fc3ac623df9e3bc879ea6783ccd38f4dbd68d21acc4b635a79fc1494be5655a69afc28d002b90a365e1f9353632459f08a05f697dd9575ef8b89966c035e246fc7be25168d7dad5e6b9ab827b405beca8c9b24b3c7b66c8ee43f8b46bfcdc6989b4d1f05d6b73e7d076f1297da491c1cd22948430cfc2e306f189583612f492d35aa187a7c8cca3b70a5116401b74676b801f8f93e4104fb30f5b0ead34c7d4375ba883bfe73ac20bca8b67bf0de625f0fa0c4afd3e4b54b187c05b35f41b1037653dcc637f3783de877357a694e012ea80943cba17b6a70df1475a0aee40845cc42be6abcf4488a134ec85c37abbb9852a37c96b01f965899e723822f5ea84365a6533ed55abcbba902bc5c73a93c44c76fbf8c06eb5fa2194ea5a0b91fc8c3142e668b096294809c89ba0a60ae32db7267f7cb766bdf0808eb1f9a95ac94b63d4c8be495f5a0818a43f148fa31588fec24de7cdb82c63dda3cbb0c82d284279f54593e357ec14d7755a1befc1ee5f409baaea5e78508f3fe5946a0d2d8df0521aaf6d690cd365a560b3abefe6529191c19dfb539d4f285365c03cabf07d856e7d05eeb6e4c1a6141fe9c2318c32b49d8bc470ee01539e4164e4c12654dc4d9670a897054b0e5f9342c52ec62a8195b4f8a9982a9ba26bbbb4495bf190a70307b02f00bc5c0072d1fd56b58c1b63244e573dbe088ed702e03894763996bcd8603006d7b69596fac398f010c6f20df51fe110cc416d4019d65f192fe9d9b53a9e31734e8a9cb692806145532e35571222e3507877b6a80ec5ebdd68dffb5434a8af80ccc243cfb27f2d5715dda3278b95847010e10bca7514e39cd29595fe90e36d59e85896359c8281ad5398d81e78a768607c4b5bd813e0996dea0cc91ac0f84e55b7c75d7c2d7880c66d7fd90d0753087668bb431da7fc7e141022819d1755c5a7979122c94f2d4a063d563fe637a0ca7e938a73b541ad2f7bc5f6e72878d4176d54d6dcb5744e16125cd57ac507bf8658d12280d0d1a89131e57b543f6709ca4681876609ec9dca6595e49c8eb4823120009644fbbc092802b489918f4001e2670e4cd073b1377f4dcaae4a54a7a2b5df5ba65a733104a38fde9fa97042503a7b43313fc0ada1d2048d49965a7f12b35a04a659f5699543e77ccc5d82eb686b407c18bc83ac9ca063b74bc8afea0e26d8e667c7d6c1dbe3f60bde40c8ec8d2504e1302befdb00cab209fbac8f58d3e4420b26081f5a7e9fec2d4b5017603fb0a2243229e908023b42d1f0e25d89ab365055d20eb310a304cdadd85d7f1535cfd0b55822475b58e9ac2099d551fb8c324599460f769a196fd8081655ea3db4026c7d32c3b16ff5b63ac71b684189eff50b6ae679e27bf0227026b2a9e1ddee61f205491694e24af6a827dd791ce1a50dd3858bba062eabb0c004ed1a74221cccfc3e52f0ca645a535426d90a2d7448981b2a1a73117240bbf2b8b93359fdc0a60dcd700a4dadb1b81e518ce4d583f03862197d963d1337d52fbe3e751664b8940dbf3675a79117a9bed326a799a64035d94cdfa12ac3a36b18c343e09c6b94bcf605311d86b9efb7feec5d69e5680f73cae431a333a671e917e4f9eb93258b07b2d45de84a30f3de23178ad6f72292c9074d9b61bab9ca6c34234008492656226ba933ff5cf361877d60b69c14657eb6d3c297b222b45fd955847beaa0804348319f7027fdcec91e99d88c32da75bcd60b7cf5ccd6730236e40ff02a675c6efebd8aaf68d91055edd597bbc69f0939cab41e505df056fef6aff211f35d01a4fd7e9c26fe997f15f823ff2acc3485d830396a0c59a8ec4924f79e487771f8f0ff28895a3204fbf75dcbf007d8e261deb632fd3861260ab50cfe7d34c38a7d549891a1727cc3cbb032bf696a5d4d9d1f47891cc75ee02719824f361e6d0c983f0be373071fb0349e45e93a3f7d4cfa2f0148655a481ab48b9ac3f752d2d5cdb38a5677d4e29a5f09ebdd91b2a9c369cd05a3809660c0fe745e842746741c0649e1f355239db5bbcf607148b5117fb5d7bb79abd95185cc56a2e675294025b0266263862399ce7bb5e62e1066a939a829c624f41002b462b81905f41f42c3d1ea6e257f909697cc74ccc470387b6f5ca4810b305ee53eed1acbeeafa1828d5154dacfb4429d014babc71330ba9f8b374b3ab840c453197fd141f6d3e5cc1b0fd909991ed092cae0ef73c733123e758ec2497d6a415c83b5b546b766c9306f4450f62746a4fa907badf13a215fdc8faa2faaf1521ff07e5e94df54d69828deb5ee1e75bb27028fd156c0ccf74ac78b65b3dbb7fc1bcd95ac98e0d4836aa205d4649b6fe37d92a75f131c7f03b24075a7e0966f5d4261172869631f8484c0c3a9a6effb164db66fb605eb2953f02d26e24b8a89ef15290732f7da049f22631a1402bcf502d149c6d8f1bbe81693167b573b911ae115f05a6653b907cc4886a7f0a07d6829a77f38fc778e579e51b472defcef27d9dc9fb1c8f71fb1c87f0777f3c29723c1118fcf7ff1c8381c0211e5d18f40a7d0196a4cccb24b97c6ec66be8b7c346e0a313f53d148c67dd184ae233edb97382c7da90ca22462b662191faccf0a8df4fa834089ca531639330809e540a443363c7913e5703862b4a08e440b14ffb607a7900c010010bcac1ea9150b0b6ec6607b3c2e5a6211324faf173c879504d2d1c983eb59407dc24c019c9d006b6e4103476df2b7201c5a84b0e20231ace3793e92c099c0b790952330a692b3d2a6673f46d450956bc3f9b4bc893b3f79d0f0d5fa2ce699252d1ed53ec9bc9f977b913715d2eb78881cd4be9545621d1b15f6188d67df86170405b3fe66160e0b088bc5bc981c1211363f0d1025863b85859232c1de70c792e534f3c0e04b32693c8c59df5deae54f1ab28797e20f939b86582de189a6623ad478ec59581f16c0d974e34c2980d67aad59f5dadc64ba6a1acc43ed6f50892468bbd9d778ef7c6a64214faee9f5119fcf334e7a35db5e8e84ce40054622395df56863b2dc4ea42dc378a04031d6a046e2e5be96f28d90c67a646713e37e9a04202b2e666b362984dc07203b13ab29671d3b25befe5cc1c2e0d2bcecc70990411d3e4087cdf3d9b7dae6d2a90b6eb616e4a81403214f0b64417f921b3c8281aef2adc5bbbdfd36568d33536aeae5041f9e67dc3a5b9f5bd716d789ae27d555e9c05d34220d395169a8da7f1611b555d48275c3a2ad3b3e303e6cbdd512cb4fc1225d02b620a31dd7ace0106520e26a3356a7e699b2bfd3527e0a19c37a1e70ef46403a7586b88a48da892c761b44239d37861e0f1ade2200be311235b23ac62aee28aa4e6061b6b1fbac947f82aa22c40219de7e05c326acaa1d152aaabecfcf1599fc27117679804e257f1d0ba5aeaa467c8b0bd4c3ee2af8972cc8c3898b117eaf855e5840b05aeaabd1cf9847b0dc8f8c0f91c4d1b751a4cd2d7c30da25b02b99597cf4c597e15982904582ad62466f210a26eb63dedefb5a9a5550bb8ecd99074a4d7a9108c8464d20ca48299ce58d3c00648a7c4bd36459e48a1b918751cdd89b1caedabacc606e3f4344e9e4562d36ccc5e0d1a42baf5e9d5f2efccc1ab9cdf24c8da9ddb2466b2bef3c8dd9ac12cf9b8a5cf04f2c4c064b2d81af47f85301a8ebdc93b26cc32271fceaf60b65e4bc7d5fafef0558add85198c5596bad6accda05bfc5c21def54defab608fd7cef6673fce77d9222fe1a24047b7f4d379c701c297ad227acf8d8bf42f6d1580a6d98c3925b090abc7da0caca272170d1a060dd1ad79aa9eb05e1e73104e8f343d3dfbfb2175629b723c1b9f35ddef04c772154af5935bee3649566a7f92cfb55f9011406b6da032613c498b48044dc986324d5851422ffda5307fae8c885da3bc8a9172d0819eb55f3009c1897918810e1342638971535008a53c6ac0dacc62b85b04714b69eaa7a7f740e6f5c7de670082ab83863cda0b4e0ab071695588266134f35c083883a016b8c61807ac4bd0eb740abe62946ea840dd82bfc98f4b1201a901fbc5c25cf3870e49cfa2ab42410f2d72dbdd6aae6c0be6569b1d4c2834c7e93538041c996b2beaaa082f5549d06fc9c54f7521795254753925781248cb4cac827fe20889a9dd4fe72bf922be58349d4b6686de7199ed8b9b1deff9c732c0ad32f6bca85b50f2dedc5087b9f9ca963c65c61869e4675b91aa9f619327d46de59134622cbea74a3f1666394da32836c0c0ca73ac204c8abb7dbcab2aeba1dd0b2835b02e25bd22bf2c20aa4bbd8950246636804f0f3aceab5287b238c5792e94e1a82f9b19b0ba1ded9448700ce65318c9bdd6548091391f62ae969b0bd43d4a8ca691bb35cc8542d8ad0db7e6e5873edaf86c30a7c83bb8e2052688166c7ee8e081a54740b31fed0471f95a9120ff9d3d7cda1162cfb215342f6d48e2d5f62bfbc86db376a925d74f75d12bf059582997738c7425669b95e27b0a6a111bc65974524025feaa929ae4b94dcaeff3cef3d08976759d6b59f9a2fee162b703744b0dfb686c80853224f7d4b10530d71e508e5142eda8a2b92a4a3e5f9f6388bd00f3004ab5b92b71a4f47d1a6f55c13e19bc407b81a44e111616097f9d96644e2c0274d13fcea7ad204a67d0850a14bfc6df17ad6346779098aa3b0a54ab6550357292e72f4fad36cdaef273c5851eeca956ff7b05c5e49cec1cf2f4ad1c06273e4c0aa239134855a31303bdddf5845fe78616594504c11cf2f58d0de5d2de30b9cf3084717512df666f9d1340155ac487ae8491b298d0cd0c1d66fa024df8aee6ba07e3005d1d6594db786be2930c32f589f34d6cf57d873a461bc2a7455d25d400746171f63829c14009ac14017162748b42b95c18b075407d8d99fa72f7cb48b04a7763d39b85599e15db76e81454b254fd18591175e0fd4cb74b5688760a6404922de8f5ca2d33ba84fa95e42da24e37d3f038485d7d233fdc18636ee8dc01c17c704990c94b107943eb28428465dfc9a4afdd5529f10a381b1295c547b3073d8b8979dd507a64580afc18b3271a4a53f6e238036d0b3b45d1cc160404007fc522044f072c9f7a2bfe23799a2bea17cafe44aaac4ca87a033bc61e9c79114ec9a131b811f7d510508fefa0565ab7aa259c0a1ffd63f0d7a6fd34749bf1f5772f51fe91fe4cff4cfbf8a56827f167519721ce27df68f1c9f290892f0312251222ce697b1a72aceb61ff973f3937d478419710ae2d5375a2c6d7d6dd7b1a4d695ceea1256b3bf92d8c820b8685dd3a8eea5e70d9217efb1ae12b0d2eb2c15e5c7c75b899b62651e387a9524388016296d24c598327a19e2ed996248b619d78896d8736a6900b4ac7ee42962508d4ac2a5979c4c93c74c956aa6479cb92389031955cd173b94d0187cbfdbcfc53231319d0965cc59f4f40b62ea6035bb7962a227228569716e282d0cb7f546668235af4fb99896694889df786092b52d8e47f69cf55c735c98775a1b9b91d169092486828f799a2d9713fff539314fc3e5790705fb9fe28a55335a911e481d9fab5dc473ba379cc2101518485b95fba30517e724cb48613e618f415795a6a3b8b33f6358c6cdfe686823b5984ebaf11961817aa0815ec67ee13d3623ccf61646baa27d2ba48b246a5c0d0fff83d2aeee76edcbdf8c1b920ec66519802515c35652069d9e8219cfdd681c7521ecb61b8f9ec44d67997e6093317b76f55ba0429d77784fbca24f56825166350f681939f064984d2d77070c1f91c5152172a8136d29bf645cc2f3f265f6b9ab7c40b32c392c773d8cc8a79191d49da8d88b729a9c0e21f2a011733eec4ee4b77ed47a67091a4198f3323e1d347a8cdb67d836e6517ea711262da73c765e7d0453ce3470b33dc1a099103619f3e3de55d47e3bbf724be0288b7a5a29b58e03196277807862dae922881696cd9b208235ec9e6a2bc50d3e70ab8ff1cade73960a0e690e74c57ef36be9635160ca9dc3b97614a091027ea9864932ecdb9bb4e3d5dd980eec69605b47102f7e753a8767b224d225578fe7371e39672cb578db559a2dc8465e30696bc511bbe3ac7c0fffa98b228e9724a7b8b40bf7d7101b391298152df8a7196b71e262faf89e837c6f13e83b2f1fb5371a82240fea815c5486cfc9ea59e6185d4f26150ce919ce19421fd41b87c86d662c798429638bca34d72d6cd67d8c5eb5c17c52a0d8eb2e58a7e14fd73f18a5d40f80b8ef8d3ebfc5752d33f70db602e492d014398d4bb364d6bc95f0bb3087e71e8ff0d66fff0c3409d608b872e04caaecf03774f63b53afd6d491f9cd6829d1c71c637cb124d8eea97e31c4063f6bfcbcfb7504275c650917ed1dfd8c0e95a8edc8dbaaf3bb7eccc9fce4c0c01d4bae0586c3d72ef0eec14375b5c8e866f6178d6235ce0b3d0fba349f2275610a578240038130067e0837011a5826f09ea1a54822a733f4c231eb6ed26f47f05ce87f202ddfd306950bd676b378b86817d1544a0eab2587380b10f0ed443e883b13404e211e8f476abaab70bb58065465cda0b19b0e45594cc53b37983d62f4f701d71c0e2b139dddedbca94498488af60603f598a5a922dc4e25c465a9946f0dc06850d5d0a0572794478748a39b5d7a37e6960ae4ba0e139396338a5f1c50fc54b9073266029996b00a33788ac7dd59300bb49371e728f73110459a9a05a4d7794efac805625230d091d21feaf757815c4c66e7c902d4a77bd6857b2ea6bd9ef7ba315e1a1930470239016fa3c7e718f533a16bff7dab5e5198a3c81eab242b2e8945fe3cd399f759e261ad634dc1cb550c4be4f2b26960f5b1acc84a3df14078278ac5ddd11e923f6941150cd94a1a313d3fa0d7604395a3355319f9d04cb920af08e34bda9da65070d0ba9200874ef798abf8a692570768641037303803641b499116e470b0c9c176164a1b03650d2fe73aace4f11a65e06abf7e432c689c005602c287069ee2ef7d58de4aad9535fffb7111fb3ffa03fed77df8fdd93efc0fabc365083ea66101e7ff2ac1fa0fb7937895ff1c81a097a000c92e34873ca3aef251282b92bba2e6ab5038cf86eb2e87fd28ca8fda669d29e29b4eef919e8a5bf040c5a121674f4d0e843850d5f38f460b5bd372cbb29b12252a801ec8efcc2a10c47116f9099fd389a2a586689160c3031484312f166d1864f18d688a9f297a029a308d1f9492096a45bb7ec772fd2e01f8eae9039fc71611987bd1af18c66a90a16d47411cbcc2ce2641d8cab80812c80101bee38a1fa3094b9c60f9df24e24449be5e0f5831ae3471766221d117a409f92286aadf2ed80a96e8b1526d2519ac5750875769d8a2882b2fb82cdc6fbb26cb8abcfdec0bf014ea12fa3ceb3cf729388bf6013c6e929adee89b0f7db2c6435b1f2de060263fac460ca7ab70192bf32ec44a4ab6013a9a815e6c808c9ccf914fc93ae34e651d4eacf53751a7eb48a066f337a2fd55dbe8eddf04d29cc80b14c34707ba7054fc0767051a7c9e2996c006a7d453166f703338c8e74a21e64e941dea6b7e3d244c805c5ee11b211856024c3726328a2a9458ab4bc71e06f3b28b1a77a70ed8b40a9243ea91d3ba5d03e460a12fa4bed7953cf39121609c0c2e311c1df5bce0a7e2ae26137ab077f0b582faada3b41e05b9cc2101e2725e44eeab15b94d9ef48d340c84c900a1601e33c35195fa1e8fdeef283a3dfccd3f24ce231b95e47106108587402405f7b8d750fdb23cd7a70e4e5c0c6fa774423ede7b734549cc3e36b756dd4cb0e3d3097104dbcc5817b9f149b973f1d4f40f2d8d28f8e668209b8d8f061b6c9a7889eb6e67f956ce39a40de92bd2e775331d28b80d23a6e95d7c982cfc533ad1627d4f69171e6eba2e696d89642e78a6be9b16fd96707dd09da7fee5a92eb1751cd7fb9e26b4b3c5c1a307fd047036d5069eeb3b238fe29cac8c2d9e75c909ea32a2fc521f3ca11f30d0f1b99bdab2e2780918c606bc3e4d3ebf9a507f729ca6b76d807b56c987bd078566e8e8e1a74f83bb0d20578d8a3e467ff20e5ceb7697bab2577a807d65e84b25ce47f4a6c0d3b9d081a233b0945d0c9ddc9da8ad3551f89bac12a7576a20a411c543881766ec24f9bba0653bc958f907f4320ff6327f343d17ae6a7cff467bf9b547ebd78a07b0324f0db2e253969db232b209bf2459f04d92218e17e691bba8306458bb62a6be65a251c43fd5ae98b6f7b830e05d66216f571460d51e3c4e1e1ab757eb226163c35fc38464f87afc196358afaf683b8bdb2b739e70be4e2dca1ab6c62fa94dfb6cdc9eff6578546f6e2febfeddfe407f872d19e2c6dfc25d97b216e02dfc3d4bcf9a07e3a4e67ebfdffc87b3f4fc3fce52a11483aef8ffa576ffceae8ed868f7e0c7a77fa8dcb708ef19231b0622afecdb3b2fac332c34f633a824d444a365d5a04bc3dbeabd684d65fb39f8295d44c41d4e3c83dae44885958049a786b25a89fc3123a703f432a0a491b8ef72fb8755169a163899d3c5f791e8071a19184d3b774b1965608dc08eea6824934d0d0be1f6b49e221514899a085d0a8efa739ee3389d80010479e921ff643558bef01b5b6553d2ccfbbdc64467de31ab217a91fe2b31204d8b0eb84a8c0f951203614383956e95eb5d7ccfed0f8ef041849233ef6976c990511bd9ad8c76df85339837e640fb51f1e361e5f6cc22929dab1204bb4a8ae95444eb4ab746ed067554c3e716b2dbc8195445f66be1c990c45457f5bc4c39e3324eb7c2367721b2038817bc08ab97ab6756b0f92ee265c0d40e951486efa608248d8e21b4acb2b08dc98612180a7b4d8ca82441b9d67d18f8eff32837f4ca57ccacce66bc8e88cca9596ac51efa8f666a4f3e0c87c42f250fa61f0fc5fd3dbb3fb45c130cf035614d5d1959d737d15b4454e22b4e858936523861f421ce5a12ece0ee2054d294ba5aa6933eb6e2c672a86536e3f86401e40cf094e4d02808637bebace3bde2e6683d69bc7acfda417b46d06ff107d43c6648e205cfc36157d483cdd6fa075285bd481d4aaf5b5103bd3a222b168d04500e21f975e1da10bd86dabd19dce0b9c6841fdc2c5bb4af629cc42755b25b8a51ec11bfa88a216cb011acf05650279ca4e89de531bd39c0765683f1daa110e26cdf549867feb75561e59503e99bb24bb3c7528c34bf8e06af84337c22f0160b3b12a366a29bef761473fa4800a5603d635cdf11af67c31ab7510f869e8a59bf159d952b77b62eb7abe48be18bda65ab1877fa34b7c750e8c79d94d65fbbcfa679ba0c2aca998dee3366ad74fbeb420576f460dd1871939d60835c25ec88266ec0b045db3e90bf4e05f7330ddb6c490bf8c8b0fdc78da3b946b53f49e346e16909bf2f7d20692fe6f68bafaa0d01280f951260b99ac9bf73794383bba45c16d590a022260ced9a26278f4b45f84c1a9b124ec3b4719150c942d80ba9f3b3c3d0d71163e21100ba0b6482346cf46ede1f051516f1002b13f9b12e4f6d48b4851dddb50420ec23d32341ca5ac1f607c9a067a19db3e1fbb172ac306e8dbda38fe8f89f748e6f1ff401fe7d2ed6b53c47ca45b93fadd1ea8b86cce554490bb79ff970a08e9a744423726b7f6fed81157ba2cf6f427f000768dca792c476a8b62447c8c00bc453d263c5ce7b049abfee1b0116ce91c665cb20e3ca17fffc4c27c36f887b8641ca00e495bb088761c507c5aac78b5c9a4867a71a6cfcd26749a09d0119670e459317a69b0f8596a640bacb88f809b6dbbe56989313f953df7c3f64ec01dc3c8c9a781adb79f0a39eca78284dd72dbe694c550528f87159a274f87d3199312fe9593de2a61da632dc657851f8d5189f471115f0b6aa126d1ab16043d8a0fa3d1a2e4ab6023ffb6a97f3bd409df0fd3e0705063ffe684df0664ec6d83850d23ea5208c051295eab672d122e1923c9617208c2504054ee840a68307c4ee3c13504ffb9111ffc2888201753b7384e0f738d133848b9c40a843b27c87e34f540ac2d4c1e6b05d05ef828feef8c3ef8ab52bddd3b13e91c744419b2028cb0e6077b0f8787774e08a04ad04d1965f3a83389223d11603423228bc085959e42174eb33d65633bab387bdc38c1c9ff249c13b2513795cba386fe7cd6458f2fd9e4bbe828b0a63db404834a9542dcaa38b928e70675984dd324c1e32492215717f635c0b329c650cf086461f3e3013be1eb1b376be384e6d46a8c064d81e16856fdc8208cd79dc243a25f3d30a929704c732abd229cc0061502debd4508d57c0a18754a71903d73dbff5c5fc19cc07b9c664529076d081394ceac0dce6b733cbba9cfe64cb9dd77865573595d71a292433e4f93bdee3ae1b72374bd0d1ce01dd90976c2aac182f5c22828406f8566be49c811cf8ee709c0d586b9a024c30870fbd1e6e5cf8d3397bb29501f8857f6270fdaad07a5e33768f96a88bf4e58f2d76cdb3ecd112a58480e441c4b728a984672c405d876e95ecb673e09d112e8e7b9c5b5b1dec6ea77c8a5a249f56217f2bdd5145d796e69cd24b64e7308a75d549846fcc940b234aa3369b1f7c9af4e73ffaf2b0285f15c7bd9a44e7dc8aa9518e6c4297dd8c2701b657252204ddca068e08b1f574eb211f9d380b20d387e00e737a795192afcca08e694be928a5fc746019e81c61b165b12f9131be9ab9e764a69b9e358c65981bde3039d180d08d8c903f52fe748a1cb352f9849d55a26f06c640bc18bf7a32037b7718b7f0ec2b6e8a254c67d5a813eff0e94c28def43559cb23dbeb1d129a9f7c82f25c7b79699528ed33e527a2348e4fe5d2b33c825dde4014de206d875b49dbd75531298bcff5b83d13e2cddfa26115053a5dc5b41d9d0713db493797b13cf1dd90bdf700d03a89d2bf7b3ce9c554568a008d7e19e1c3b6c2f1f9ff587b6b25ead56549f0816488c91433b33cc112334b4f3ff1ef03776e47c7cceedbc7598614cbd357955999f995d3c2ece624461f1176c29ade742e47e1999b224a40bb822efceacf9e832a8d3705835f4bf632deb897ba49b22fe3960a14322afa76cde08ff83935c61a57b466229651c4322215d3125da1f18b087ebeb6c3a89a83f079ea76854ca28b5b0b1ef5fa4a05410f0aec5835716420fdb693c3011d3abd0d702be417d1fb1540d39aab88f3f0903a2dac28c76f79a8848fad67fe3ef7719a7ba37341639dc94244a22dbbc5734d8c8f8b2727c95e59add1c74f9e37f5cbead7a6f762403dc41724cff0bbc776319be22faa3034b0e59e560db897f4ac0eb2b86a7f9289ce9a75a83e67a3f07b66b49a2ad36af5ea870a3ceb291123e48060430325549457a94cdf02bc0d3807740b60bd39ae006144acfa1163a377bb24fa6326ee152e20273410cab6cb5e836d5e71904564482b59b0ecd189caabd6a1d70f844226f3c01459d15b8fb11429ae9708874c659aa55e075b2e16a7f6b4a3bb3f93ed25e5fd84b184a1533087131017a4e7fe2a84d71e995ef170ef4fac40395ebe792a4779e1161bd60c55822fbde147691e36ffd4a7060ef7ce8101944180ffcb63d2610f61e0bd53330c77fb7f6fc71df4b73c2609f2fcdd1d89ffdb2c95fdf7b2545d2ef59713a95f29ab4d82ba7c8ec04712e1bd2f0d671a98573ea54331b9ff6f8f4b484058e6b835ad60d7ec6d502844e8b6846572976186bc5b009b6d368aeca6b4f272dde4269a15e32ca948401714fdeeca37d79ea73939bb3653efa340cf14b06cc9aa926d0b2830e30628d04631363252899321237b2272b58dd5bc09313e73f93e543b1789831b76d45b3320ca6adcec7ec516acf8a721fc268dea962cb02e3d32c20933af9932a8769b1a61219d00a282089852399f2e1722ed981d6100c9700ebbc1f86debbffc3e04b8c0cd9cc4cc5dc34892908e60f45271a3a25d93aab564d0112f925a419f0185a44ee190a6d41bc40f3809a8fedc976a273806e71ca1ec919a06a83905d9d7284e30a86983ef1c2b3d5528883e87572d823d14a560d70c1e0d4e8ec66ae0854ea50be96302091b2b43695eb1c9f4905bff40c6dfa00242a71e7b8ccae60ab55c003820cb8d929b924b4976658f26da9adc8ba2378e5b7f231712eb05e851ec2f21a097e0ef61bcb77a8589013aa5c41e96dbdfb6e3e9092848663b95868082cc1b3eae6c3acb586ef2d816393ee90ec29af210cf19736d14867018a54b7b8cf373e6d114fff918ded0bf0c86a441379f9c87745930244fed1f64c3275e57f4bd2b523a4babe5cb4a4c7340526a5418bba6f487c1c6a4ef1641d2e83c64f43450fd9db96bb906a6ac371f6edb3dc31e6f91989f1e56c55696bb83102915011979b9842ecc5753bc198ad62309b9d30af878f94b81e0e76f1223c32c30534ad0d3974e46bc699efdb48f735993b075431c27da3979e7729154d9aefe9824791c1b9d17a34fe831d1c883a3b9040b47016ffbc0a55b7d1796cdf1e6097cd53500a7d32e59ef4bef18da4f93e7e3dbb23ef18ceef1499ad43505098d169c7c0f3f9af1df9c6081f3393623999ee6159a1dfee0a1de324a3a5a9484ec5df3b68da1a34526430966b3970f6f5b4f874a9b6207fa9dc7e6cdac4e70f00a1a827a18881e360030bce0cf0c1b7f4d20a82bb728303965e882e6975cbf62d48435852676d20e8e02332434bcccdf3b5723ef71a8454fe521f534660a4794c34754d3273fcaac9ca59d6e41b3d425d68a8b4cb0f72bdafcfa47cdbb53514440476118f1cfcfdff0d5097fef8ecfbf6a1e24b605eabe49644281ac5e8514bea5340c05645e790437f9e81a59840f0e429fe5f8e7dd7fe9a95b986ed17388a24cc8b959f7b9b93b7532b74db8acf9c24484023ba22267b0cc3d30c71cd9520e5c70fa681ca23715e73c282f344a863a30f2f6952f290af01714d0fb3db2a96632ba3c26630ae138f59153374cdff53d30015c8cf8c9ddab679294181a0e787e38a5c1608abfa00a03f28c72755d8750d1a27121d038d9a3588a74c51a65018153ec69833241f7653dbfa623f81e5987ba65b18258783ef453a4ad60d937c748bfddc8c0d951961091e5294e98ef84469afa28aa550c62f177b8a04a3851a4a40c2ceaa7db7b805dc1c1c422a5ba37dbb44b0017a46767ac58c901d839ce4f4f3870010d071295801b3865fead512c439743b5554ab85219ba74a21175cac7b80147a404ad7b5427679b471bde0b89f41032cddb770a7979ba3bcda4b7bf66e4f8b2e566b99967ff3b0d56be5c9dab6ce7441bdb7d3ef63d06a8a72dc39b52d56dfc3bae7e2aec9c5f007187e529c5dddaa518f3183f29ebd8707b922c1c92ca57f62e3f6d3d49674d68298278865224c13f89cc299cfe51c5da12688480f0d9bc66095175d2377f296f56d66f6fa6201b0e9890b6f399ca7274cbb9e8565bf9f27e35c2e0b25ecfd5d9d443ae17c3f25f5e64f0fba3271dfa02a47731c4a73cdb02720970cbbae9385e53bc362a2535b55ae98d892279e4b3974e91c4e6bca7dd384e915619fd6d65baa5077875cdecddfec07bba06135fbfa2685023929535b5bcc6b13d9540e54fa02cf9a27efd171a67da7dca9a246e73b921c8c916ee62a6648eaaa1ab69ec998312ffc4c92c0fa53c154a563a2d68af60133a5c1c5aa9862a68b7ee6c087aa02cd784f09f24da39b7ed8b870cdf906ae632d06517fe909182d82a3ee058f49cea6e15b9e43341b79c7e0314958b4a03857554f493fc4c4fd2606d2e615c38b9e1a2bd46070bd1ca1336520adee54ae711b9581426cfb6cc1c4dc7e0319e156ef50ee6a4fc451a51e34a79d57c1b254601bffd3904313a3edabf69235180a28830c911b8be32b52f92e28bd0fb1477e40fd5f8c2942e7108abeb393cd3166d1475b804f98c03cef352566e48236e007a19bd93b46621c996c44f39ac68c98326b197f60787284a55129af3cba7c500604879ce8c75651fa457b4a3dfd308937f1582f4931029fb7c3bfa6551daecaf1ffa592439b37d3120a64073572487a7d24bd64e86528060a3b131d2394dc3c1e40fef792c00153110569e92394605ebada14f7341a905ef95a9ddb2c3e9b39c4ce1c4074bd43b80531d68eebdb8c3a3aff0932cd0568d3a1f7bd0c58fe49bdf433a05a70be8d368f555b099a76d951d7379d1db4397c3e6d79380f854ca939439a9d741919b2f80cca429743b5353941ba49a4d0e07b27b8adb2235aa4ad86c45249f1e9113423a2726cec182473939c0b327f8a1d10b211d7c3579aa84b5252e1344bc5b4507bb3f90c962e7e2859f8e03010c1e2085dffbd4bcd6cc4e577b53b546bf91581d2465fcf22ed7bffb7008682fcce0681610a896b8d764e87cf753e0e6da039e162e22ad50a447f54d766ea3e42720b695a88f23645956d2a9e398e2703849c9ae42a508bd8fe27ca9d9d08e687e03ebcdb7ba7a761fb65025bfbe239bef9b640f3b30fb716d1586eb2d212bb7a31e1172322105fa401ed22ed1ea2892e21d24760d8cc1e938e858ae50defeabb7352bfeb2d2563b0c6360c6dfdb3b49fd1ff4b6ffa587c5ea5446f0904faef893cca190ff5b26a2ec05d1be3b2678405a4464af5598451266b46095577731a33102c7efa988172c7c30357324f0f4644820521fc5ae6a061c74a16415c8e3c1dcb9ae8a2001908e690a8c0f8a892ddd7115b2d616efe77bf6ea2f750971bd4ff79fa749ba574ef049534a3d4bfa5e18e2b9a885e4731efabd842e349826a023073456191ce7746f4615e0f25d6be8c925cfa64f9da766edcf0a01a26a359ce23753092440c488b471e05d0c25c609796f72492f31fcbe5670ca1dd8c7592ac27957fc5b2ab1e2f5c6086419c82b9c9f8574e7db313ef26ef84e0e6e361b7d57be759e0999a1cc15680772ad8073e6d38f6c71d3c850183ada5083f3044ca2dbd34a6c29886120c72d8b6d7975d88b66342cd3f01710a5bbeef403a47a39020b5aacab0b2de943665a56ef617b74aac6a448102ac6e7cd5754fdd61ac09be3d8a602f8e8864536f72d5252769a88920d357864e0eb145dcc3e980cedbff89b7d1ce6e2068cc330e9adfc2dfe66fe9ff037843ef2483c53e159f231e4730447d2ff65af7830c07f7d4b578a32ac0ede1688f1f4ca85026b0e8de1d56a9beaa622dff19ec2c3f895c19e430738d53cc8ca52b03f9ee6bb7bf21bafa84227d9ce2950c6e91a634abf456e4f753a2464a242a752c2715f9877446af4582e861d08230bd7798ccac36e01db8dc559bc66d7586dee864ec88c46761a4a50c0d463c802041491db7e3e785fd1d2d40f5b3ee055628f36a33a498c9a4389a391bfb57752c78a0fbbd03b8b6c01f7189cdfede82aaca832bbee079bad72e8bf415c1f0332c1b0018c7daebf18613af8378983991924928f57352d0a6d749384191a9d02910a4b2d5ac5647fe170586cfd4d5db8f6be3be5f3a0ff9915d1441eef74a60a03ed62a071dd56f9d7cd998219518ce6d292b2b91f662f41e62f107bb5a36c860c69c4168884208847b786220f97593b4f4e904b470f29e29e217e525bcfba480b5b36bf8fbd0eac22ecf896be896086bfb22cb4a50281cf080ca3ef7f2fcbc23bffe3bae4a3ec7ff3664c6198878f198b366689ef4ff00a3638c3768b049757768f0c7b6e9bd5c0bbd9447032c17aa33ef1a5dc7b0b5707a02b6b483c8dd1673eeff924e0a5ac2aadc9c070a22500020bbc7f5504ce862afad4e1fb0eb2420ff0877e138e017455dde6cd1ef49cb14272a4b071ef75be0648fab2a3bda42186351d7ec98eb7666f3aeaee6715a6a642b0fe9d65099109743003943fa3dd057eb4f39a0a24d031c68a689a57aed70da4e668398fc728dc9727bbf61cf1cc379c42247bfd1de93b39ad0fa3e7ad9545b1b41d2a6fe28f6178c55182623af524b912f7b84359e3a8064f475767fce2744c3371904ce2751a413a05b19ee3d65d37a17dd2658ccbfe1d78e4c5d20e4a9c685982359f58d32fbcf5d6f107faf472bd351af236210b0be2e9d3a8aba18b2bbc9cf4bd6121be5c3d1188d794f0f2e79660cdb973b02bf31b615b6202e5136d241e57b0d1994c7886fdb66ccf28de4545e3c658e6643420558f4576a9d6b33a71f07774a8864776a13f6052989bc5eac7a5abba55125c4319a5ed44669cf1510f5b7bdb07af255121bc090d5bd1fbcddc664cf03beb5653dae39c1211b20d32b2bcc91578f7f6787ee4a18065965544afe31a242ed41e364a7d870c7156e8ef5efb6d6e67ece944931ca1b4f9e6cbd4566c6543ed2ca8b868262712837360be6348d5c278fe5a11259ba8ef2d306dabe5b7b365396f2dc6ac7b8ca674e9493396d3bd4da70aedd6eeb67d2752ae1504c7de5aaeab8c1f3cc15ae1f9232afc16be43dfa66a5a439711f962288978747b24634f4e1a4f9885b7710931edd785f220bb4fddb4ad38e1cca9975b6c87baefe231ddaf78c0ded0b3ae93526516af120464179939a787ed713ff52452ef204cc60d0e9bb41abcee6238a45cffe7998640df3c84c8443313bb909e5de2284b1d45c3800ab0bdd2e6ea10f31cdf73d1f5e4d9b90163177f4e2fb58d2e96484e53b764e58ff5eac3a564828ee8fcc08d7ecf085e2efeb33692931900cff0e21e13a3e3a8603fe90c4c21564a686bca5adc0f2f9330c71d5ca386c544162fd24c493b6c5bbf8c1fe207ef367834f5611781b7ed710df5e590f9357366adf3fbf092975b110877e46fd86ede2a0d2c8324867f019cda5e9f27afa94a2a7a2ff62af2244b29178962c9494d28de32ba872de5dc1209fd0a549b64502284c9068ca0a2bb1043a1f7a4d341a937f882033df312d202937fc598a074bd5b537c9a05876738a0ca4c098214ed1a4dd4c92cfd0876b570f515bcb5fc4158d7b452a1c85d987e3d733fd8a0910ffdc97595c79d75587a5f24a67aac9c97916bcc4d875f893ac6a5e790dae023ec0096413ce9ad834c222697d151d6c963e3adec619f0d2be1dd388243a5ca51d6524e8bdf0d0477a24dd5aec485d65ccf5d60e4d8c14e92cf5b46413918fab89d381980db452a10cfde809f1ec0bc15409171a6415c96cb9879263936837e56683cc18de9109c6752887e63b0ad951a60e5f3383b154b0d04bd416ea8382d45e71f49fccb30b0c95d80c17ed54cd7977cd42c300d3fceebe8c577cfab708d18cd5d1a68371a43707cda6f8de87f73c4b1d55e25164022760f94d73cff50848b5dbc590be0c3582b999d650452aca3d171df99c4f63291f3ab2d608696af3155fe22f8b7a0bb5986cb38fdc823f0aa72832d17f65e36ae32526e73d949091f479aeb474fc4bee2304f2c99f812283909299e6ab63028739ff6d5382bd4c628ea10483fd3fac1e8ce6c7e88bf3c8c97f60a9efb325f003b2c7b9e1eb63433c63d22611ad9e14e4e59683c1bfdd391685ef1f1f783cb0afc670f454292d5853fb04bc5f4fffcdceabff7d04012df02095f5510c7520a5f771cde0275fd3252ff3d63ff577ffdc234f71fd3156c62d4bd7b7fe108ffe974a8b7c88d8988e67128ba4263d81815bf2fb9586e55aa5fac0e321490ac2aabfa1230565cd7c976c6ec4194b8822fd3339e02b941caf75720b985eec085de8c91f4295babec8daaceb9ef6a62809181f0ee51157b8864df42f4790635a6a5b6f60efb936e0e9466223f02abeafc439d49e7ab49f5cba81d15512934cc872c3d2ae897b4dba850ce62e10aaa87f9630b479c62d8263188ea71bb8d1f4e044f20a79308f09d2860fa00285a959080fbb661756b1d7add5910491bbc8dd3d45f8d2999b31ad4a1736ee4cb658828c3973719de3cfca2fe848c1ae8de1dbd841f107b438e9189a518298aa9bb9fda8a12ce8eac2f1aee2b505f4ebaca0238da00689624aba0c52ab3b25da2ef9c1e0225d94a98b2e4ddb22218589690abe985cc0195c480338c9bfa867bb684d3020bfa71ea3c6ea268a16224accbed94a4fadc8bee3538de2f9ff6618dd1259afd73a0f6bdb6e5940fe95d062def3a06361a83d94ea14de9e7f260b04c91e37c5fc8d808d2d49dbaded7fb6c5ddaed1b520cb5cda05f2abd6068fa48d8872cb9a47936478193a27737da35a01e1fe3093f254956a0636a877ae0535ed713b5909534412a4d035716abea62d8a0d28a91fe734801b8e8e5ed7a89eb3d2327075516cbd29e7e495d56a87ca1eb71c4d00aaae634a6624c3049902206589f4c296c10d49db5ace4d3e2c6df1be79a4da3ed7378852e332d24cf57f530bac15771587caf34b5634d8b58164f7e5c5dbb0d2d8113bffe4ea6a7b62d36c41ef39a9d2e5a1f08ba1323bba8e96d91c0906a59dc003729ff62d6566129bfe3c0612afd4b2d5fddd569960f3cb244587a9651c6f7ef0ab382c05143534908a92f3a8a5e92e7acdc464aea0b509e9bff2c6658f5f0001ed0e5fd9fe574b041cf048870eb2d520f80885743cf48106256b17a5fdd1db37c90222d0ebf088babe272e3315faaeae27ef42e6f9babd49f67a6cbc26a14d4fab68997af26f20f820954c9db9282e2d6fc6cb76ec814e3db427473ce43ad56d38a90e58ffdfc2b80db29c83048f7d7fc2524c5ff2a7042248170b95c91f1d8964a6bb0fa197a79ffc7b58c087db2b3a9e5811885d666893fc77d237db269bad53fee1fcdc017d90fe66618d5d9ff16bf74fedefda3ff3b7ee924b1faa5b1d23b510aa5b16aff636e817fffaa674b1a1efe63b2825181c58b1c31b38ba2e354822b2edaf32a40af526abf18daa2307f505054aef0a4a7e457050c1810402f38035438f6ad14ef7710e552d6dce97b316a91d6773d483aa5080df0f647530c3e3117975837a6d7a147bb62161c99990bdd90c75b3b2de539644b369cbaffa780ea43ad917d8b2a29a4e2044d133eb99c64da8d732f7805d532b5320ea1fd5335476b504b40125d2555ea4515bd4824e727d51b821ec6a8025ab6dc87706aba3f8c59cb49a1dba8cbbd98bec155d24d353fc1de7c4290b8de14b3973e61ff379e6d01ad2cda2298ea0a87d7141146f349f9e57b730a2e2cc4f901a9dfee327efcfd06eb95893be4ee830db0c44e84300d576585896d44d6f6e9cdbb7eb030830c04f11b1e97e540dccb80856a2187ed82439796505bcc1b5ab581e950c04f6235d351090630b2e256284a65ae93758082c774f304d0df0c8c1bd63e3d6a715f8c240e68df263f2324a2343bc9685bf714c6a85dbcd318d56d345c7da2b0c59eda559bf3fde8b445eed6a0008e1029fbf17371db4ae1347c9a913bade338bd9c8068af2ff2ce2a2117f3a11508fa136f43dfc9fa11a0c6d2f4a03d6d1e53d40b8cbc0ff3fa9ca6db15612fa5042a42684eb0f7130056ae3d88adc2f2dbea4cf2ef45fdc92dfabc16830c99498ffa4495a07f5025cb341748238b1f4182bd19daa8306962b2c09ca41c4f4d7be2554079dbb3ffc3e1749372e1f2d33c62220432947bbc29c6793fbf63fa947bc61381147caa4619ca7d12e56334bba1a3026f0ba030b1aba3d91f99913da72a8c31fcfe0a40743bca4ebe04362b8a87514b0e45db0ed45177b70ccbba5c4d7b7e5c3df76cf247850f7953511daf82ef007f5533ee94caec240e7ecf597ca76519b47d23faa8eb258a5d0b3cee29159bf40291b54ebdffc8324acf91abb8c1310ccfb2f7dff11bb37fad86fbfff51b23e69e79f47ff705846c534ce650b42e9746e9558ca194c5ea578a269cf4ffc241ce3f674fb6199eb02f20850322f05bc835ae962ab70441ae3b73df7096a63fdc90d4eed6054cbe242892266497f96d8ef252dc826e45a4a093a3d928476f1a6e34fcb420dd7d5ba97e7d3f8a067ef036dd5b370da01979d130592e204d8167c5c83a16f691519828accd199e84db76af6dca636197cbdbf8ccf9cd6bc72add111a76567964fad14ab1bfdec705a81bf65db1509f6808866a67a6dc1630dd27f8d091572d4250cf310e24a355e3a8df5d096e4b29e358efb359f72bde8f8ce27cafe0b4ee820caeba10e891e1f0b30d346bcdf1462c03148763fa32fe759160948dec2d04a7c35e968b6ef4c43f39b6e0779a603144f54d2392a9456d26b4dcd75522a54ff2b84e2445928f75c3a2bb207a4e29cb06b86a204357c14ce5f6068d86485d3345b4a0526884987aeb1bbae0675e67046c3f98147f984fd5e50bd50773d782a482d7291c312c56395797b0fa837c4e10ded512deacb54afd51424d900feb7575089838db702332dec384e04be094b6caece29b5b3e6ec75aebc45882ed0e0373b0266e040a836e5287ce994faa9eec8e25d5faa4c34d977313cd8517990524bc4def699adb12f1a940c0825c408e07bea6aaf0b35fb7017e6c6563c703f4fc5ada4e2af4d7486503baf213615366ff50533e62242d87472466ccc7bbdf4652f8466b3357fc2a90123c3f2ae853a831a96a6c362fe5635f572dff2d3d3be3b10ba4012f9a9e4e269abbbda7a6b75483bb1c84953bd8263ae201cb388f078d439ca5a3318d98759a495af1a9e70075b45262bdcb16dd8703f91c70eb2a316c35be12e40dc7f7f0f16435a47962691581e451de85ba7f068213a2df1b16b029df4f911ca844118c6962b9ef62669037b7625b522d5899f1ab6bb34b6c45f73b56dec2ed6a8d0b51259df6f039a5da28f1c67a59e643fca270e3555ce1f3e4425c0602addc6518f7c5d9b98a760554f1a1213262daa7e2207ad7374bd9eefd6347fc8c970e9992172073556c23cba22cd878b5b2a0ab79eed4a3a0f1066ca1b7a48649a1a7aa0fa36efeae3aa6d38f940bc5073ba84ea55fdb7a9e33373039f23967d0a92c04198f3f8aa5fd1217855c1a03d38b2e3f21449e7a4ea974e1a82282489af961b7fd4c20ffbaed2f195d490a7dc0594951be76b72a2f65e84cca34b57d424fa8cb8617bde38187eff521ade1c1bbf43e820979db600942243027779241c8366f7f62bbd9564aa20e7f45fb35e280b688ff9af6cffbfc9cb7a9354ceb8f3262de104d7ed881aa586cc3736f9e2c1ddcf4ec1db8117115fa3b25e2fa74a54853ee303d66fd07b4b0879686b8d27e4252559953e0730f4b67eff5d475a76115cc6191be651a21ee24d7c866e1e92096e15c30ca5544f9d3261be70126cffee9add8457bab50c7f84b02f85b1c55fc9fcf79ff8ba39a4d81846a3e99433e994b290d481afe754fd799fef94fcc36c5284239fa6f3de108e0c316202100c70c2db5705ff28c6987d409e29517435a1f977a547b2853b96901604e32468744a8e72410f0b1415f14a1873278929cc8b7404a9899d9a6bb777b3f8b1b47bfa9b27203ac26946647c6b66e6c6f6693e13f08c067e3c312140bb9ee9a81bcdb4bfe77abe5cf7a5af3e4b7c56b03eb7408111db72f90dd40139d59f9faf00a1addccbcdb280b8adb3c9e17ec6612001c470d98e6b162c20e16e7787d675552c565e8ca0eac395f20e4d5d528db305ba806ba71cb653064186eec347e77aecc952fe4b2d3804f0253b7a85f6c6d1ff4b6464f8014a3b518cd8dc8687ef590943e6c2e4a26196c683bf41e927e68c8eff8a0f36b62c599aaaab9881cd82bb29a9100dc373062b4d4a724a6d71d808ebc1d89898efa804e41f87156aaf1c827f023d412174aabb37ffa8be6d81b2a710ea92538f909b01412986631ac43d02ffc59075da380d05ba7087d90a3bf713a9b5b0171e4d2192d9a9afc93596a54c8000aae209591080e55debc4a989c45427eed142fc4f36c1037808285c4e7c0ede057ab1e668ac9c05edf3b856d6ad4faba420d8a7e788062ff5291d9cf2ab7a537c65a9f5c73d66280a1efdf1d132020f55ae3f574ba48c476455ff57d83144a41533f046d9915ba39528eeadc0f80b3727e32ef53fd5033e8bbb4b0a01107a8fdd6bb08bedc60ce4bb3b211994cd953db9efa62e2a0ddece0f0dbb653bac8175c326cdc95e30199560d57a3778ab7722547644d999944a5b2bdb755d58d27b1d63991e17fe8c15dbdd887acfd81501a25fcbd99d1fe1f388fc799a3e5f92f1de65fcf03d46d4a29f817ae3a226b404531884012e99d2f3619c4e8a084d55747f2be43ab5b49b99ddb1732a6a947c9e30ca41d4ee8d62c383cc238e04e85cc756e390b4f6ebfbd9b2dc9ac7da5488a12b0a6d3906d70af0023021d1d41d76dfd4ad9ba858f262cd9a3e9b8bac0121daef47755e8763137bb51f9c819b3740c0714c3b49acd0360f348cb9f4d5fed5b08455bd5b5a9e3a2c86df25233ee0774d3299291bf06f912643423fff4f4534aabb99b327224ea856396436bb88511522e32e97c41e63c5551d604f0bb067fa8c9d4076529027c3d9be2121cdd3eaa5f23854019ceb45082e328718790de1372d668140ac24bebd2599812eaf905dd19fc331238b844e446c5251fa5098aca35df93d1f0a36fe92a024cdd91de03de19e6e43b217452677809f996a04cd27cd611cb1345890e1df5efcbc5f3f51255da7429198e03b5e1d3dc8ba1863588d0622f97331657cf85e07d47da1ba3d5e00ea551f48f4d530bc8abf0d8029eb41c253c594e9c22d7918723768badc8652169bf065e034f0c3b664b038fdbf5226a914760c5130efabd6e1cacc542346552a28c4f145ece36505624bafb03cee294bd7efced3272b7734870424bdc31f3d86a11126d68eaa410f4c44914eec936c51f159c822ede5be1f6a70877de425e71461181a9a96b87291bcbe754548ff8155ea88afaf6d071a7a8d754644ac9dc466b8c7c01ec9d251c6d1ed4a0e1217e211c917158c0c1e170b55708d27b064b82561079183e6e3463ac993586ddcb74ff54f17ad9fea490f7211dcfee4d376b893386104517e39d5bb932ea864c1fa244ec9f7b3b92ce83bc08154a2ef89674017392944371cfe1d018323f0c2a4fdf65eac866075fbb65843748e8562f0da090b5a624731721c2991353f2d7853e0e8f8572f21c9143d2490ba36f5168d2784b613beefe2990479e8925368f3c1bcb106794460fa9407074ce13cbd36996e3381b122d16b6d567770638fbeea121cc7cd54e6f55481661387c2dda6719bb2d0a54a73607ef4352b0081f2a362f949c9bdcdd42240ce7bdab7b391a7a8d84a3a0721aaf9bb340c783563193e6a071ff10d90f46cba4c0c69e9370feba3542fe7c1b833dd7d0399b7939176291295d5166eba6b77fe9d87595930d6df656276ef9b14abf71ce72596531aa72a10478c4b98df741c987333b1bcd02f23542ee8cf20ae98ae1e05e2805f722b14e62c205c3c50876b3a94b4d8e183ee7bc85f04e50e8241da8777c629b0bd4f455b9f14ef16c7d360e51090d33e5cba013460d6e83bab94e0808ea554f483f361349d8b922f8d0c28e1958cb31720521d70eff1e58ab3be7a4c69804e296a90e81c1f8d69a41db265506da51837c0aefa5d4d4c45b62e102be65b9613d9126966ebccadf0de579bff9581455fa5c88cc7e90d8c1f90e215778bd3e27e3107b49fbbdfeb44cf480403828f7fd4dd4ac436398bff98f7658906f4faa4fcbe71cbfe1083b960b093f1d0722374255451db2e3740939613a56bed6082f1c8f7e4a7809b32c24fbbb861824767bc1f5b7cda817ff13d1fa52df8a0f4a933d1ed7e45d22b848913988a489af2c37c886da71d0233f55af4772e8a8f48ec13bbec30b27f0c580901860293282a62f30967ec1704d967ec2f3f383af7f2e419d5d90a53beec0c253dece075f04711234bdb8f6dd780a206517fd293fb40abff5f6a1f5927e0aa442e08509a375a63f75ce8d120058939c6e702ece3385a2a627e7909e281321d79aebdbcc322e7319c76da5ad2cc0f9a172d75377427ed5a6dde0d2a7246b889aa65d9d91d60da08d296e461580686037af0675fdbe6cefa4f40f5a2f8ea29db183a3d2391d241cd41c302e151e728e3775cdfeed982f690cf2009d183c85837df361267d6c5b1c96d4cfb2498631ec45f2c086b73a889988d9794a827d140ef5b81b15f7e3ab08812f50703dc62b8fc28d48703aa20c3f658095330e027a8317e9d7082028d5d215fee4e5e6d0e8329f6dff61cd46c55988b3889f7453197a14ed228f6e664662043d7c85028c951696ad3fea68c953f33f55c37e0f91d8046927937afdc2ae31f33c0498111e082eabe5ccc4353cf9184085354b99b38a92c279e83256bce61ea1f07070f0e0b2239a63fdf31e51c7075a75e7e4fc507f905c0d9e37a8f379de4433fe5c0b8b420e8eba57bd7cd82057a433a0e04a2a5bb488da9b615ee402a0a015812b12b50a14c979bfb771f8daa1a6e497de922d8064004e2c001244d18fca25147d0f528d20eff99ab91bb17191b66f9906bcbf0680d52b077f28ea894ca31f3f8cce1d28fd0616357ea77e62ec9bde1bc4cb46e0e42ac831b750cee84056bd1180ab7dceb7d1fdb51fa74301d6d2a3d53ff5c573bfb3cdb1bb6b8a549bcf785ee9a1f0ddc4cda0bd1be367386810bf0f610d839cd615cc28b652cbc9388055e65280016b1c9110aa1e9fc165b928b5d9ddc9e21ce0a16dc8f63460e1ed4543efe9da73146b2e4ad149f827467460430fa607a2fa71564ff9bbe26c31e7accade2f4eb24131a0ad6ca569b789e8309fa0e1fc5bb522b87f13105d8203a09f7d80ef75d10c0b7a26900c37cfb901945d0d2252bc4de84fc7005c259bbfa7adea195892f88edaebe6fe9adb0b29a9f9a9c5de0ce3bbcedf9adb7bf5fffddcde8f86af40fe703bfa2ea5e1ca7bf14d61134a6277f8b7973e0d73ff3159d1a84008cf227dd84f6eade7b6de128ed45bd31145a110120d67ebecd4f343f8b4f140d374cad8d16edb0dc542f9755d4ffe6e066c9b4e2a91015e6b1d82550887f01e35018aa6bfac0229b00af29bbd7fe9c2d63f4b5ace3dc82f3d3974b5bab8713ab4129f39290e65f3c8e8e18d5f0279f522904212777a84de51b21caa1c7211152f822b366ba668ebc7e72be5d767ccd449a5fae324178b4fcc11de61a93dc82173e12023ce4dbcb8b233dc4982faf8c117e7b02aad76ca2da538c2f384f5295a83428e0dd5378f8cc7f1109046a7692c179b74e66a8c4184a8c1574e45c28ae829dd1ca1a523786e049b371b3b18d661aa0daddd7f80a7a3607dd2cf7b6a4f3e6252bb2b31f7c32ca85b56ac9624293e76b0e8f1372c4bcf87821be71fbcd3afb239ae7139f12d8d9802fe34ecbdb83dc233950b9fc9e01ff5ab6199e0f0f2937f3b95b7842a1199649843d3e1f6364daf260839e9ea151ac6dd29056d474cb79875bb45100e130674a502ddcb46b89bc406f1e4e0afcebaa2cb8e28ebe66e3b0f95406258a2098b98c770846886b026493788fcfe46ed1dc568ca30f2dec19adc8d1d8797f9975e2b963684e992c11566ba35fb6f2bd38ba9dc84228db13bab7a8a5bfbe8d12a77b0190cb872a1ccc384b507448f4c6d43a4f96b3e41b00b44b8db4020240c2d8cc0651afe34d3cac13b4048ac86e6212af6982003cc78ca78e8850b5335fd668e0b6fea03e69226b384ae27ab341067c89a8dbdce904f5ba65909bb1e0116ba1e2ef43d5f62073c84cdab1ed131aa3fa05c9aef2cbd01ae4283b993f346ca72a9dee7676de4d9453acfb24810e8bf92ef485f415fb5f0d23eb28419330caf13fbb17bfda0502c23374167be7db7ad3812f9b043e664b893b4a472a79f4313f399de3611c93f06b3833d01ff91f75bd9f504b23f14d3738abf5717fee77ed1ffaa0bffe49b4e5c36c5bf9fab7e298950eafd33ff4786611c50bee33a344427d1b004116b3897a33d9c87440d200caef3ccb75a231ecc7bec010c882e5c191aa508072e3ec8c404a618e3dc275e8531e03bb593ae87ea4aa10455eaa905fe7e050014675c116475c6dbcd4594c7498261490ab14b39ca7efed3c055cbee18ccbf6effe7a37a52f72016981c4a2d6c11c4ca3dd1d7f1c312d36e8381578bc000f43015d11443bba5c5da18e37e531b840c0f8bab628b9cc1212559b00384b40b5c54ab5c2c4a6e3b4624cdd1de900afe9ead686cd787e555eb091e4ec93e6b54128865a5d8286aa17eedbac99dd5d35c8d4e5d392a9c3469b75583c7cbfb7a0326ce3e7b3bb6a8fac3d5e261d3e92fa9bdee141fc8f0680b9303dff4f197546a0f9d27c3f93a0a0be96ae74c69fb6dee21f9c3809a4b9cc0da95b55d7f2629dbdea869d7865a8661b4c7f5b6097b5e14c0e7dee7536d28d04e98b79e8fcfeb3bdbedd114f4458a9e3d5cacd24b516f705270e381969caaf7f37846f1a12fad862b8641625faff9b271791513dec902fe0f950ad56864981be8dfefd7ab6754ea70bb032f69466ebdeac4e01c24455382fa5b015a6bf327a1ea17b7098120fc2d5690df375c2bac17a934c11698d0161695e7e5c219140d5a803c593639d35973fa7a5009cdfd103df280678063487a6ddad5f8b9dbd2364351d7b483326c5dc9dd32c346d886e7c6a9e9eb3ee46cc94204c113535864ec3e8c6a8e8d628fa30a2700fe7c37568a6137b511a21dfcc09bdaec65e59eacf053de165801703adec8178e80aec13385c92a1ec2b7ae7e45daf91cc58eecee638762d5a7937d3626e4cc54acd3ce5ea51bee3080efc39f956876a036a5565aa5f082be7cfbb887175e8b5a3c795d28ca8fdb07ee7e548184258014e3a8d69af3dea550fd72feb8e09dcaef058af0963c217fd1bd319ec5bcb12dea84b62d0d46c838e7cecb6f7811807fdd35443374b3ce1cc370d3dfd4fec4ff80f6f72fddffcffb3b89d5a694e87f67f196d0fd2f4f53f606450bd5181384d9b09f71b22ade22e9616a656cffac9eed1f81406afd94a14889b628c8c994a5e892d01b1f88553389253872a30a07694ff2fb0ca444d29d344a12c36394a6c15aa9bba8c898d909df975ce676d52c58bb5a1e5e88933e820cd6a21788781fde426fe35003cb97e93e72a1ca84e7086192358ee127eae1a7c30dd3d216a1d9991437e1e499648aa4a51c42029650da0dc36fb72d2021d06dcc9be633381de7a29c27ec4786f09ca57c750dc59c0dada61d6578706439e54648a812069dbba1fc13f5aca137ecc12d2ce147e10071ca4c992683cae38146bd85ce69fdf9da01b4e59704ceb34a12d34bf361ce4a13733fc1a3b543223bfaea9db7ba97cfc9e794f72c41840b6ef9f15933f444e36546523ece816a3e656def6bdf5ffa66b854a4076a0ab7db7454ffca83d19872e9c66c5c3edd6f708c9ee4b25705a7c1182b97200c9e4a2a5f722875c79c43249ce63a05da4dc8b75e64bc7fe471261b693a5f29c312a15e4f55931d63b863d52eef1611d67ac00d01d0d44a32f5314a7563affa637b488f35c7088857af628aeeb92a7758cde4301a3aa63fde8f71822f7398611c799d01a0eeec0d6a37766494c9bf13363b46110875e7836c07425c2d0cb43933eb41f81af8f0b00b3cf2db41a8689cc3330a2535553e3f1aa697529f45339b3309f1ed290d493f1951f876b76b310a34649eb48c606163890401c5f183843a49fe20175d190604709abba153cee339144d874502e7a483bd1262d0dfd07a67778300634cc1dbc74b4d3a15e63707ea2950006065f23df4af1f21449f395e823b0a301a06bbcf987ea3ae885970b5341b66261927168a8c0df09cb41192b40cf0580f239e54743bd9ecb28430778a2a3242fe991979d62158f236d85c569b4dfc2295ea1633bf1cfdc85c59a9f32bd8b7db4f4e7e865aaa44e73725800634a890403459f7a19d6ebc502cfe61f89fc88d97502cf160183bdcd998f40f6eb2734353997f3048fd373188fb9fe026ff9f336f6bf8c3b6218871aa9f8579bf533205a4a94ce3e7080bb11a5118368153079c86f40b6bc57c7e7226aaa1c7b1f93fd1a6189ba84795f900468683878092b515712d3c169a82b22f477f3ffca8860ea79878d4c826e1ef7363974d58c349d68a153510cafd6defa21e93e4107293e2dbfea91ebb03e196b600f8cea53edf21e2ef8365444eafa3be8a6c96688c5d028c297e63ce64561200599c820289a0280d15a82ed2d44b020d26336cf1e5de430fa6d5a0fb1d33d2412acdb9a6edf4f4fe781359b6bab95cec020a0c74b4e415e0067d43b09296d9e3c19343ce89dadc3970e770b2dc6e06c8193873b7265708210e82055424469d308e73ac4d27e098f0284b77d792d12b886924b9db804d845ff818b9a15e74f5032818dc4e9260ebe9e8a8ec96a36c5db766c57cb1a1d1b452b4af3284cee63410405f92231a6a47d54c922e6e6b0bce9e6c2edac5d661d512b9461b7766850942a8f7aa550a93290fef882b016e3a310b96b623d94849eedced02a62f0e69226f49cae1adbc1dbf9fce821110e3944d89dcad3e7223a48420a49896cfb19bff63e78b36abb1373002c368c1dfcbc908c27f40aff9278f1efea999beffc4ca44e8ffc1ca81cbd001bc229b742eacb361adb379fae66cd5c9cab0533c6a9b08a65a6795adbd9737e8c77699e4ac3f0b58eb951a0adeaaa936c581a9e04ff95008ed3c4a0d4d943f24b73e75c42184262792e246c1341d6c7128cc1ad572e3e2a58c3ce4513f74ce5b39cdd9253fac23e350645637529e7fb686738292fa1c812a548586abce50e99c41b34f3547ed0ded492d5b441dad7cb42633d56dd6ec762743187209d5468f06283154f9cdfd4f2042f58a39dadb1adbe3509c27ce964f3c4e87e0770a35ccae79765614134853e8ff61efbd7a25479274c1ff92afac196a55c07d2019d42aa8c56231a00a6a1d9417f3df17e764a9aeccaece9e9eb90f8b5b4045923c74377373b3cfcce9c2ce51155f7ce263496ac2ca6886d18af8ce08ef1c996d4cfbcaf99bc91777adb042aab92865dc2248f461a92b110e776175b40c23436e41dfd3433039c19f8b12ab8e35b92b2a09dd9778f07e266f55a5c8f2f8327d9ec01c3b0262f735a395de4bd06c3ecf69d39158651ba67bf90d9782d60c2cb5b88a5327d51dcce545097378da58525d4f9eaf4f2ea3df22e7b732092eb7aa70b248d811db8e6a0736034da2360794402d651e0b3d57b6aa905bd615209335681c2e74cfd86d5dc03e2e2fa2308399ad5d2c99c78ad3631c1bcac30f2b95d78dfc68fc27fde4920c9be540ba5fbb09d2abc7f54b8c38f3e817f95e35c2363c210285537cda64f1f6914cef73a47d18438e3f5eee5cabdd96de2c4e93ee735624467834fc09257623722c9bcee52d74f5ec45d3fa32b8e1ae66d34f6992aa84b35a64f3266f09606d73a952210f45fe4029c16301efa9eae9487212849144b2311a7c5ab39eae31cf2483efcc530c0a01d0181d4b3b255e605c46c4da8dc95de6528dab0901bc28edbd88ca06dc5caedcbc2753d590d926cabf35efd57ac12bb1ea7d077acaa491974e368f01847bc90a6942fa75fd7e30b18d9b7f84b46224fc9f9b8bfd936dff9df5103e0f3f79888f5e7d42c4811fab0655071dcb265c87b0d115f295e6cc6a371daa23da22fde8535b7b2f4f83ac6290c32faa489950c3d9316a6e72c4ee3de556b98a993e6e7492a40b8abaefe76d123b4ad30023348fad1c4cca909fc9888f753fe566099f8a12debafd30a6f2cae62d23ec14b479732e496ec1fdd2a91e6c8cf6b8b4ccd0e86dea24224924dba62529e525429e712aecf99c95f9de506a9c715161a254318d590d75009fc52c4224c71711e8541e5afcb492866069993b5a1d71d9b3bac48ea6cfc978c51dc5936b812bd56e9e61956603d3bd4834616c38472c2c0cf19d66465d697c447d06173e5c6c229871c2a36d0dc7bdce7975d669cce05cc61c9f1d5911de3ba88bf58263532e0e887865f25a779ce73b5540b4e1da2e808ae8f2930c96527a28bebec34b062d9785e64f1a472e3d1a0f9eea9f13bc3b2cad56e7d06103dc4bf9e352e7e80401737b87be09672da4ecb6baabbafe3aa69e420cfc5a95953f4e91f54121b6ba84ce5e21d217743a1876221ed1947a973213d17614f6b356f19c58e1e2a9f91aafd56d5712f270749ca85497f892004f34e3dd74e43a6be0f7937b3a9c3d29c06619d9137eb76e2e0fad7e8f778f6765baa8679b190b24e50a978a5c9a92955db25c9ff42e09929bbcc38283a23a9147ef1b638d27f6e0ccf3fd9a779a5264893213bd252cdc44a1da4d9eadeb26e82dddc3045746fbf289578a9f83c93fc2c392e993eb4bbaaaf35da65871a56c0b01845227a46e802eac4c33b489acf3123150c626373e447de5b50312b62e2e1f22e166dc2b977970f22e0edf441fe5697d3164ecf435521fd6e440451eaec4112f70078d1494cdde998657a68273c662872d36f43e5dbae2154fecb0e24db72d37fddc72d0323ec7b606e10e45487d8c6d15f687ced16599ff86b1edf7bf7d11817b07a46bb18e704368660ebedb9651720d40f582da265af84e705841e604214d7c2f48b9d4549f7ce722e6d963364939e2c32bd782610a6e90a4c7c440486c47fdd2dd64b882c36d26c06b5880836234946d6528c7c4a2af542ae544a845052177361b804519e8f2056572fa6d8bcc0813cf4a1dca36774824ac02ace6fbe1214fd67e2afec110a248f603680da312bdc2c847c9ab9eb81d0e577e3e216392750a1ea7e870e62a9698a1438417313cedc7e554d0d852fccbe1e916028aa0ede49bea25e9058488a8d151587b307d4dd3d3cd0a45aa17d627c0c3453d045ab0e40d94397744c0dd96f2ac3d717c05a4f2318fc8bb8fd7b88205940f9448ceea281057fd0221e851c7d6a92372e33591663307a328c61d1458f07a2fd06b5604057c0d17723d7b0738b7698e553469592cf4573128285c560f7b1071687651fc6e0a697497107ed826a787a8d30ef9a3b5b28b6ec4e72619ebfbdd63f8c3dad95e581f8384e5c8eb9a8ffc3d0552f16aea3ede992d43e20be7b1a53a690be0350d558ee291bc2c2f5829728e84f091955a07bd6156b582c014135708ddfe917616b2031a82235b948df314d75eac74f01b3b09b97cbd4e99f1c0933300176d281f869a3bec329f8ce8293aaed8e8c6d7439950b3887aba4982e0583a8c1888d7a16fe7b1ecc6f2608239302d4b9a85ddfc1af336642e980ff2736f38f3836b94fe8933e8fe9e5f14fc2d41f03d47f05fbf037ddf6628df0fa08f18f8014c5d1e097525ab806c08a99f73e55e68982d73dca858b60a3d482c4726f342360c412ef42076f0b46c79ab2d10609e181b563845655e085a4fd1cc57c367e6a41edb271a77f7bd1ea84e83ba99a338f58af25292b2da31f8c27430db373c5bc2e3be0f4eb9876fd80efc7a708d97de5e130e5f415e0b66b6051ca5be9de135f62fd4c9bbf4ad9ce133db6e029de5e1c97652f5e44a3b657a8157a160cadcec826b2379640ae608c1e542f702592a25af5cfa1eb561de62fb85cf9c0992d01a012894496468f132c4469519a461ef56c26b8af733c022dc8deb58aaf9836493b66a442c97bcd28adfeadb6a62b88ca4f428eea9560d2309210299f9494bbca6aeea2a0087274c4d1a344073d74e4e56a0adedb443c86fef9242e43772fa5c6abea7c1f5ba8744865e383dedd457d33c52a13dc5e064d0291a4748293ef6b0c7e3119dc211ec332cabe0cda84fd4cb2c69e094a95951b1530cbfa47a19a457b9e2516e5d650be11376d9640592844c1909d4e8644c7ff0eaa0b2760f376788f3ce748eedf0a0365f419ae10981e713df0c97c7e0d473730647c9b7d978a8765289dae2ee23641b754eb8d7bca6de1bdd6a67f6fddec0e8f975892427bfac8caad242316eb28016ac794d1d1cd2de65376db93ea97e7cd93380750989cef73e3be9756b22afaa0f325d702188fd530c9cc844a0c0d35342932e91acab8778d5854548987db40b35b1e5f32db7cb3ee6bc941b86441bfc403fcdd8b35e8c6a1dcc3e475c3b0353cb092f8feaf9e2954177e954eb75f9bed35c454d9bae895af149870b4e899becdc269b63fd280cb0d170809b4983464126ff42070eacbd8da53a241c55b3d8f7c19cd3850d3ddb7ebcdaa04d078ad1a916515b9743440e31dedc5d65ebdaee9bfcda42e861a3d0ee889dcd423013905c26737e5c2671485af141f7761ab8e103716002dc24d00046f0f6ce735019d1426f097cc1b51ca59a480bb0763db13b8186af67e13c9fe6629f87cc308627fd4f9f39f12baefcfefd78d45e82ebf72f1abc0277bb4d4b95e34696f992976ba91d9d7a742cf6c1c88855ca30c7605aa63c5eca215afddd5e0c201125544fd662071cbcce88b1f88910077ccfcc4150ef5bbe14241ae039ea1513d993fe122218f95efcea85bc4c342f2e87d181e716670085a3e09b42419ac20f7c97861d97654e8b5540d47841d00ddb4e422b5d62b88fe3e2bcacd34b4b2c4673b89f35cd27896de5d018162311895382d93259ae32c462c7ac4c31f3bc92061231d1bc36ef2d5277508becba3ef69a3b528e43b754ae85d728ebf7755df33036cf90eeca5cc83494478066646cc2eae3724e3d389e3a2e166c260f35f71d1c789cf6c43e78ba4e1e0066a6227aa6b7968ea95096f31136cb6b58986a7d1c19c202fc04f4749bebdd6ad0e9cc99b5d13b0263bd332b5c34a7f7479f1ad474a472d3d09f081ab02ffc68130d450e7713a7d1d599b07740599b7adcdbb8912393581a4fa98c925b8c1c3e407d807bb3762de97c15c03dc26617824c8d3cad75c3ef11bf68c92312c2f3ac309f7d4c91683c7d6c8db72e992643d2ca19115f846753738716b41247675f61eecd9e4a435fe85aa32e64db6f1dda6665db04919fedc574e9819ddef8719ab7a35ba83bbb60c49fad5f12b59c94548f1d72dededc839ebcd5218abed862f54120af39a95431d5f9ce862515726cb7a2f3fdc579c65d2745eebc1a6bec4c0f7c54f9bdd88c92c79145f69e55f8aac2d9055d4b6e772453f5e0696d9dca228cd4a4dea04b6a163d6a62a1e70695e87c8dc526191e61e3c6ab224ddf43da6d1683876d90222d3c62fd50e6dd05242d119efb4c98edc5e03cb61f7918a9a288bccb3ea8c4f111057ad8c7a16447a788dd87de011100d759345c902f7654d922b69fac7940a80dd7e597c677f52c66a32f1179b300f8127521d9aa89cc4cc1049b015b0e7d8c104cd57b4349c6b6cb8e898df87e7b0eca694d9493e970b9188eccbf259ec0bbf591c56045b8807b55caa3bf724f04075a080ed3661938997701f16765b30d75daba59893d5bdceeb607b96b85438e8e3a61885d811edf65fec02be5a5b2e744f4fd09df7054a2be8a1c083741e3b564b69e5fc603283a63da015c37b8798cbcd17c8c80f95e185f3227a6896acb53f0289b4dd8d86f381dc692a71f3174aad73c9b8fbc921b668e02b862622a6b15b6b0aa19f7182db860592fd3b76b6949a342c63e8e3cc60015c37957bf5f40f5d6ddd6ad5beba942cae5d863146c30d75cdcb21bc7e379a70b222b8532db788481d503a3cbda0ec1a484508e186f431391a110cf1b829ee9aabed5c1df78d4792952683ed9c0315cfd116ad563548270815b3405a0157ff9b9b9e1819c9b44c3545df50eb3a7bb6c6788ae0625d35a2092e2d58e734ce1e6a8cc1049d418b16103edbf874c556aa9e8ebb0116d4a182b42ab5b30c9ecfe96dc122259a1c866e7c843ca7c948d88a818ac4713f62af7b613f32d4e555e0b814c89db9c0edb60e27619cd1f17175a17a5d16c9f7643714f53559bbbef4d800a9eb8ff02c3a924b1bc01064ca988011299325f19c59f5d8d72cd1b385aaeec3d6409d34a83dd6d11ba705f92dad70d94335a257f09662af1a3203a1225c29e6a3e7618e469dfb7a8bb94ede3cc64edf64923bc5efc0375a0d1a39f03908aa156896992697a3d50ea31b75b6e7adab8089907480e58daa15f4204cf20d470bd591e2b93695602156c4a5e87d6b7ac1b3136614ae0bd3929d7ae755ba9530a12be82d7951297a9baa7c28b870718b0f206c2fd295864e135d20c96f6e3e5a46584cb131dbce07937892c23b24db0f197ee4a09b00cd961b0d5fcc87be0cd3f2343f20a4f9f51975357cad76c702eccbde5736a255ddee88993daef35e7b2a2019e5b6b5517b44667facabb3a151dab636fa51e049eade771d75cc3b509d818a3b23ea80c39ad8cc5c7159922626f9d37ef2f505468a60935101fbe12a6d0b4dd072063cdb7cbccb245ef7a45c5ec5da2deee8667225466499f0cae58faea0699c9f258120c1e7ad26f7c2a349a45b779ca5b3c73e1378dbe17503087666905cc79b052bf5824f07c5d923ad3a8915e2f68b173f1560ca387926765ada68a1e3378a08b4032e5011e261176321ae7bd1b2b2361c7c68b4e419e5740d31cdd8653d42a7b61a76e8078e864863c482fc00061a184f23820c01cb41c50d141f2a947ce858037632ffafbd5ee842f4ae949cc2eb0503ab9d3f6ebb6329c08c7372fdb6efa6829167323d76a1df40127518c4efcb15c0aa059789665aef6ac25f71c5824844aec1a8d20d904edbac84998ddcdb66f577424add3781862fa746ebc3ed48b49bfcc58dc64fbe83a3f381f9b879beb150ecd9023870c74756d38af68e80c161097ce56f90dbfaad14739fa622eb41aae40b9c8931b6b4005ec2c74522566176771c87747f8130de118006d8537ab3d21a82db3a559f28c2ebd2262f5adc3bd1ddfa8a3ec3aa7e65be56a6cee4671705792dfe72418a8bbe7847db4e467a1b713638f7abd76eb7a9144b4fbc14c78ced26e42b228f95b3cbb624170562bf01315b042658289785f943f2359d7494bb1e671df5cf08577c2f32d94725b4e6bb6e2cf2c2f9ea55720ce4576d359cc56d78fc5e1cb4daf38db133bf23747568d0f69c2e94d3ceed13e5039f3415c8314832e59b96580272ca75f6faa80ce05989b072be6c15aa9ed40448d8fd8cae43438a00c348ff2e0d6880c18086667efb86392d3234e4b814ab978c7a58c1dfa17ab70e9664ee6e3dd956138924138178490d3bdfe2efa6290e609211d9a3c7005a4d5fe1931fd1d3b393ccf84a353cf52887377945cbaf7d8a2ab463586c0b9ad4a277ec50361dceb8de415f158db8585d989dbfcfbb978c4503f9ccbad3d3c05a76ea2ab427d0f014ea6b4b31a00dc21ad8e8f6d55b4a79b23b0cb6e9c93c3b513b0e0cbd1e279d03c32261ac5ede18154b5ee7a659c67a04505f6765dc4ca726b2e04cf8d5ab707c83d81ade9dbfa918e75e542d15d53f2518764235372ae8f0482ce32e20b8f47aabecbf3c220752e1a02b75bd66716a83ec1a7daf1f4d69f8e0fbf9f818176c7fca65a8f0879295988f16464b69cb05d7005feba2e9515cabcd213dc15a31a4d5c23a9c5c2bb13531a1219471bdc7debdd94de218b99bb8462e30132149c0df68371170bc90eb179d5aa5cc75b5e68679499e1e454242ce4a02b9887f28e27eda58e8d56dd824f88582ded701931f1da90914abbc6ea4c450bae7c9ebc6e20d0f8ea3a82649fa6e7ab6b588c87c9203b5c1bb30c311eed09b28d6d7d44ae6ed1ad4ff5d46587b6e10297e5f5dbadef269cf67b0d2b45671e643d84f4a31db30b4c9b143b7a2111ab505c17df17542787012b9de88d827b0cb1fa6416ae3cb9d83d06d227ec9acf75580ff0b8e0a71991306cbc389a85ce1488a66401856c9dac345bf6b8ee37b7696c7e2587d4a1528b212e58a4ce97f1c4bad20b4120f3216931df594cd1f6aab78f9c050b4da06fb115a395cac6d37dc2c6e53f01e3c23316370116df6a4906df826b54431d37f20e11dac42c43d03c4b84b030e03eb0c508ce293323f479705379d505cb745c903ccf5495832a4f99dd1acd20a96e36f69371238659f6c8c475acd8764331bc658e4c1abaa376d5c6e1fad1936bd171e9804f4cb2e1063d3bcba6aedbfa0622df16d398a213b7c9fa196b0fdccb0844cca8a52dd2140fec84de5037609c233a4c6db0d126ef38d793ecd73cad0ab18c3be145afb46599048d9ca57b3dd6e16378f85c30c4e502a3049a311d20253b8a63d05859c5d253c9d26a11fb2db5757611912c8f2cb833127701286285626bd94bff552f92e917e7c170af979c2f970eea236bbcb2323d5bd4a8b72238071cef0d137d000ff3d91eed9417b68e716f86ae02fc65112cc8305c26b7855ed6f39321a82d323053c4efbaea18a74354783166b4cd598f948a71473d573314da443535bd357fecf2257bc3dbfb38b7560d298e7f3a6549fbb84342d2a66ba4f10cf78b173ad9377d0f1ce6dc02ab4dd8276b162d3c8d90207fd59d96bed5f52ae11ed47aaae72938be419a638191ab5f12c56ac9fb0cf0974ab003573ec0aef0a93344463e4f8619d38362db70da9198706396d7150f85af40bd759e695b5b6b92beefb92b55b4de1fec9ebd5ea49e39c1c06388cfa50b4b772152dbe3ce4626e827233d53c3b12092ba4e12c5a5b133e7eb0c43e658a96087485c5ab210c9157560968f1a1e2dee1d8c1e4abf47d942165e90d2521af292954e5262f7831141fe021f35a7ed87c3a497203f09261d2e55a402a5359db3bc3aded6eeb14d864863f3baa6dd9b1e0e239d54781386003be3e924d0b50808377c1fdb03e04d2443510515d11743a7b83b642a6462ee8157fd798be04b36a5896b0ae1511cd0f392c3e7c5df47fda2a26d3eaec20bdaf740856ac9d32116e43a700c97b663c98b7af2c315ef58f1c20270ca94d77ee460295c97c67bfb44221bd1baf0f37880a53f9cf8702723de84e4446ff3502860015a8a09546e07998d2dbf8e06bf5d22977518275438ddf7498a775371890033368f5493a70732a6e9ded874364920a5c00a071b8829e03b17fac70cfb6c42f8e69e36301128db4871f06cae6856380cbf690c1c6f45254a36d66165ad2153159e2279a442ccd3f5898df5a3bc9a67e69d3b44ea85889ef2f8ecbba102ef5e46ef223821a1e124503de6a97ae96302c034779c0c2023320680bceb077a100d67d1d9cfee09c500eb9ae09b1ac918e2ae3420edbe7c09777afbe37615afc6c69ea1c464e19e2f4c2af17853e78eefa0156c008e747abc052aef6e697d6171264d05b7e7b3f0d1262e0e56f40a0516700b7f0944d816dbbc108f82e2602e3ecfc280db561ee258729346c9fb9b424f734cdba719ec7af7584e725003e3cdc49068ce2bf260019be2fb11816149d06b53999c5d94674f7d47497b8b2afae6a959bc00bfe90a0b8dafb7ffae22e34065e5e52e6ba375f050e38d84f99039cf942bef44079bdc10dc071e8f54161888d02232b323a7b5035ae59e2458c40b0f3e2e5a8d2f5f2d9a20c7d3e692e0b02ee29478c6af837b6f82f094ebd0d1fa97c018d810ea604cf56013f0d9698127ef93ec79bb80a960be71105a53819aab1d7d7697db61beaf671a9254946695635c0f9af0ba7b40c501eb539269fd97f6c60c4963e535246d3e203cb51fe077d1b9537c0a2e7cede61528a945befbcb21f0d669a611b71e453b6fd131efe764d8b79f98b009f873902d4864effd75cb411fbf03a1dd1e74687938d4376a7326803c7aeb59dd899a6f4262bafe4cb878aa726be7c761abe25e8286a7e6aa1d51c2f3bc4ecbf64eba21f1a87bba8ab73b3ce9691952f182e6850d4129bf42695ad5b38e9b0c35cdf409d42da4bceb0baa2558c30d6c12d5f995d881e9a47b99be5778e4d6d0f7c55d4961a2eec85779410d091a9a6b39bd8054c9648c78ad3a4554421156c240e68c1c562953e8d25633b976e04c587e38c7aae2ef7e856c786ee160f4bb764c19ea910adbc22bac3278befacef9470ed634338696b39d87b2683266a01cd502d24be43d45f480b08b0d7ac5e7252b49330fdca70f07a98e764879a892beef11cd10da40b769adc64890eb2c61131ea58a17a86692c22a2fb439eb22d81097c30ff2810258c300291c1b90fa808cc98e4b5598eb1c2d6d3609c390309c8ec67b1fb91fcd7bdeaf4eb3040a8a4dd02519fa901abc3525525ab6b2a13b695f2989940f0079d222dc90628e5d38d556ceb50f150a3b191ae4a86f7217f418ad35ebe0360ef4a048f4b88bd1a19df64ea836a5bee023be0d1d4049fa96cb20ed883573426d0995549cd258263780a89d00a18dd9744fe7c2e4b66bf6f66eacb5c348cfabf67dd68c682f961d4d553f3aaa6662ad056789210008e17aa40eaabba70a3fc0b975db9970a801301057b172490345fac8f0d704f954f390ecf38c1b8d94b56d49ee41448fcba02596eac05b341b9407aea7980e129061e7f3001f5fcf4532f2860435d962180e52991fcac30afd13f3c75fe7bc823fe54dfa6dbe180e92cf7cac3eb09ca976c94fb669f891f3e2f2d0544b4b132b6237f43d9a8fd92ed4d9875ca8772c76e8e585159b3632efb787a6a4b8859a64bf082b03149d7647c5192e32035c707df53d888bc1f02a90ac75e808e35cfb6548194ed337ba9b196d83f96b00c92e3d181393299b655c4273b7101edf44fc16640d1834bb96e84e85c21a4bf27b730d9a1b72ad1a623d784f8e43b70a8570bc27c8d1d3105e7ef7c4419fd31af80667d5ce2c0b09bc507a337307c57e7cde916626b8aecedb1501a9eba1d3e9898fc7a2b40bc193b1515a01311492d2e5f95662a202503a225fc40be5229ab48234315a813dd1d9b79e711e1f89a1e43ba0dc7ba8b4a114afafcc35bbf835362386c0e7951afcee4000063bc08625d5787144746b1a037b817e60768dbc1a7c7f3c5393f36e8cb44eda286180e5abd7e8f24b0259b62d17a29b9735cfdfd0dd06879fb06fa1c0943db565727e8eb69e899c712d7274f59c89ef2ba7085e7e0fc1865a2b23d99c14a9a866cc46a0a5c038eb4f6cc612324f4b2c31b4bcd66cc6a2990d318e60186d5f2d91d8be4f5216cccaa48df0340b737b685e5d3d3115a8a782082d7822c597cc06b136aacf7af492a23cf90c7c5c9d7133f11188ec8166cd5197e6e83c556e785b07a4636af530c4e45da7eaaa79d97cb291e98c97c836a197f2d61dc2f1b84c674c09896e37861deb18949c3b73f030b4b65820f123d41a2a89e95c104befd7c1f1986cb3290c2d56dd1523ae529b2c7b44d851584a577dfcece3065a97117087dcd8c22c380ebcbed206950089cd8ebaf64bbf6d16aa1e6d1f67276ad99fe25a3dac7a5b4431031f6dba2f1a70d65a19f51695be3cf3f6b20734a994a7ea85f17207e48ed86b81fa70c10bbc4a98e47e677a935d1c30e18e0aa3d9b5d971d7c4a44bb1356007d8d639a824725debc263bf790346138d58133256d519443c9a272a5c07c90579d4f449f2b0295a7b0a3ee06f974649c0627b03a0dbade9bc133c972e240212bab26343b21b3e602d6edc9433839f724b65de867070cf3e2b306bd21c23d7f2ac6d99862a434b4ff23549a776cd729bfb13e2b3a80837f0332375287d8f5d50f6fd4c0c6dfcb2341d62a6b56596e24dd61548acee53bec53e3d169d5550b0d9e6726a4f742a0ef2754ad17846a797a1b1ed6f54301054238eb63438a2d8314d10cc62cf447004b8f73ef9f1820005883b00bb7228569a40a12d8c097ab74674b79f9de59cfa34a9baf6a2d90b99d48f9df6acb2ddef9247a2fb053d991eed553756b2103177a9cc29106a566e43c6eb0ede57b1e0ce98657b7c5cc27ab620ff6efa682451921be093d9029ea21201aff554a2bc14d007aa020134f4f843cd1911e1f31034cd2401c907a814fab0a6c2bbb0512fa27bd82b70d0a690a0616f90d33889347158a3130b01bbe72843dd58eedcf956fdc1549b0943cad739a4e903849ecc4e3f8f823c4a116210135706056bcca0f7c808bbd2b5eb50a3badf1dc29d2d3eaad40e65b6f6a6b4900f30e762e295c4b5793183bb1900222352c0db7a7530246d5dd2d4615a9982cc90020afb892a22d06400dfbf3b586af427691a2720f95076364396db680e2078d5500fc88fef71c37c9ad941a64c86d4d4dd9c3d626eb6572c2bd707531a864ff234bcd9b1c4aeb202027cc01d1947a39c8fa95177ef129b90140de8408a3e68f90c6d5602c9dabe747d7551b48ed79344a3d245a32a798e675d21d8790e02d8c1db33caf8a65208ca68cb4a2a13bce461b15421eca654a12f0e6710cd717e008fc9848015d71b51d3effb7cf8d3fc96b4377e97ce3a825747de568a3f939accf6ea09a8182f1f97c311e9a6d948145892946a580c9e805ca80e36646f8f9a6c957c6d7236ca4fb09b9773e89e2098192e4f02437a292ac0c16615c5afac7cb1be24d7c20c38c2bba359c3088aed10eee73b00a607717a3ab49adcf51622108ccb797dd0f9b1c56062f26c2771ce52514d11053275bcc587683eee4cb6d62614f6babbded9d013d7e64fa1a064c6f00cedb11fc7bb62e975a3a22bbf57fed8acdbcf9c7d1b04255f8b9308f9fbf0312d7b6f05250e1311da0f2dc00f15f36b6f9fcbcb6c71e56493a7fbf43901ca627ee8846dc7d670ee6cc0253bb04a746b2761081890ee9e213fb789d49954a7bb71c6949cb7bcc4cff25dcc0f2998131ea84a60c606ba264d13af0c2ef7e9dec9693faae8a75afb475f9608d3f53c6bc092b61b56f07ca17e017301e7b3440b94c39bb618568a2715b49f69ba3ddfd52b7a5593b3d16deba399f304713ce97c95acb7fc74764f69069fbbe6e3710541d7655e8ddb68093c102a04c28139bc768918762d2f120646d8279e616684a790de8bfd128fee7e1b521f79cf032ec15987937073cc750f271e5980b774a88767010f1fc0d0762dcc619e37a30be685231d0ec46d9f9eef2af57326d8a1b027149550808e980dd29d8229991521a51274cd15d5918517384a670eda5f63b79a9306cb5c45866109fec76237e25f8eddbc5fd6fbfe9eefd2fd6dbf2b1e6faab7b14c170013537101692df51e348217f2956ad92d3e2605bb274efa6e37044182d3056b974801537d28f5c4f27b184b4840ade40655511486688c90ef932497cf5c723800e843c906ab0a32e76224ef7a8dd25db0fc60845e9c6090e94b102db84aae9c8305fa9ceb5d11773f6de2a6df7b4425a3e20d7b90c84461fd92d0878189b180d0642a5c412a870dd3c4f1087543610677bccd524727491e17e54eb0818b5cb0a6735766526467c2a580d09ae10c89e18c328ee6eedbb06250eeba96136fefba64fd79c43ecd996b2457d59b31a1b41b284f55053e13cae759d7ea3e5a315b3bb702a0c9b073c53aa00f4eb6ee3cd750aeba1c3c27b5b33ee67b3a6fc005ed53ad456294b7ab1422b6d214e92d7195d939b6eff66a9aa93d4d6cae9b2da3bc3c3433af6bf4c1b3fe2688e7565310aa1422c47182e904045968edd60fe29daec5723e1ee69d99d8884244c37659f75a741d3b86a26ddbfa30b1aaf684fab8ec952c4a79e4db2b7f78283943ef5689e2a9b9cc4a6b0a15ee106979f02271c7dd54a33e67576d24181ab96eb9476fdba62fb2eaeb587c5e3133b9b5d7a08939f44340c60b3f14b210b2438def22ee078d5f2193e6877688660a1d79af2be32b62c0393c67c05c9d389fc8b8d0b44e7fa156d9dbd32e4ee85a7a9802b707817f3e8cbce8538269b656b19b9ed0539a364a397467db1f7de439dae3493812e1be99d629bc332873b782593786ca7530792ca022a050da8696516ce3741963a2aa2ff3114767f8cd6cf8ee6095be16e1fa7c5c840344804cb32d75aca7993f332d5b683b6cd8b32903122fcfdc1ca2943ec9663b1030038d7b136bb33818e71c564b9e0651b89590498517ea6a3ba9e557af0e05e047856077620c5d2fdb245856b99b179b6b21bb748f2c2cf80977dfedd95fc5b38d449b2ef2c2924d24d73aa53b3251d996316bc0132b09d2196020aaf0e6203cbf7848ba4eaa4fe2c9311630142682eade1bd952e4d23b0264be620af6802a8bce3eb7b0fde07a62f99fc194aca7e7f8bf90bb728a05c3bd149697d3175fda3cc82b795e18d52ef38afbb8c9d6a97a17b1ba23acf66a5046fdd6e9c41e75109a9e4a4552cc0b1b230a60ce8573c3f8f9b648d4ef5ec5e40e01bd3708c83c1aeebee4806373152008b972f3d238eda6799fa456a8d1bb58056883c73c2b8a3590177b578f29532cfb89208d5677e3c2bfd71aab5da4a1df198da7480d0142d6589bc0db6f35e34315064aa8426185d66a539aac31f01c6e555ee46b241f12d02d1053c71e428dee11a196be0ccf7a68ef967f72f16b07ab7bedd3674345f1949d5e32d71aebcfe46b3f851a2ba38a7a231bd43cef866f2219e6a415f4846cadf80b933025c06cf5292178e47a3d291658851341e22f5cd3c14e874177792ac692116f68c4e2d5d0d32b79ec2ed30f678b80846b1198e39e4394b8ab5589a148395707c1504582edda3ea5105f0031bae4122f694c6a7111ee69846da01ccf66c486a917a34c5e916a2abb4617ff4e7b2d3ed7c58b24af3bfde234463dd5ef2a0c4320b2d00218b5eef95666365d8906c087312f53223a31fae2196523ba853ce14f3d2521e55d6125cb300cccfcd89e6ee99fd053b7080d280ee00f7d3de2508192c0bf7f208f58d7666f53bc79afdae98755c99c16b3d784ed9336f75ea34df5e1f95cedd765a6084e5cd0ba5b175bbc464d739adefb1a17858d288ba554cc6e396b6b65390fb40c7c82d26b8f5e27b84bc7833a042ce630db9d42383c75395ded4de5bcd7d6d8f1791b0bcc6c03328d434509e312dc9cd392916a9dbcb1dd5afd1ec7febdd644c3a9151810290409f5fbf9d0010c9227478f9dd0e054c34a5f9e7a2e519cd996a0a970c5d7299710352861d103766f5eee85c7a2b614ff4a84ae5f01d5764da74e619726e9c1bc9c1500cf8b043a3f551d956377d8de0bb4674a9457a49d1eafa00de9e87067d61cddfc8595a678f10fa94b0ecbafcc7534d335f6ac7d4b641e02354d3dcb1e7d5811a0533a8451debdcc1d6288a472a31a7e106ff00a20e0e221d4454de534edc7a3b7c7b74526fd49ef953e8da003e835b584d6fc929f3493384bc23d49ea9d046911272e1dedaf857ee0792472449504d4ac1ace996ea0bcae4fdcad065024ca73bb37964b0bf429690bccd608352e5e46eb2bb54d80966e491980e6d862ba93379a4f565ff7672c683aaf63fba1a7fd2f7aca3295c57c2707faeff9cb99f69bc0edebba7458f079feed78b8a8c1acc658b2c7fca6f30c235bac36e6d0397fd6b67ed0f4be5d83fa99b3c5b07d9bd5bcceb46bdab03c5cb15bdff539dcb0bbefd5fb4bd9f2b75a9edfd4cbe9ec9feafdd5b62ce7e039e19397cfbdd1ccef7ba3e5df8a8bdfda6bcd580ce37abe6739b0e2b6d16f7ba59380da725158a25099be2f876ff81dbee1575dff1ebf537ae15014bcabac6f7fa5f9fec3feecefb6c7d56c8675c78f3bfce3c7f836f6feecee7fd89e5fd70387bfaf07ce44faad0dec95a26c970df61487c60fc994fd9685d7070f9f18f86372d3bea9c2d0b96fd630ff585df6377531d8e3efae87feb13ae36faae4a9bf5fe71fd658ff62878fbf59af6d6811a8c7dc47dc133123c33cf4bfad5bb3d89ed17f640f3f972234f499a73b648d28e8360fb5ab6cb0bbecd771d3afed3bffc667c1246fd6fcc7ade93d1886b9fed47f10e3aeca8fb4cf16fd3e0afd35e7ed3d47f0354584360ee55677fe8afe4313614ae52c9961a4cfbd32ee37f41348fb57e87b6877e7a2fffe9bf80ffed0ed0ab7421f4a447fcbc5ae89427bff6b59b10f23729ed907a88a51c4301f177f965566fe0bbcfee2d37fb535fd6fce76a82409e5970f3a8fe6e357fd93bdbf195e108f1f8837a01fa7892742cad2c7936138593a184665bea1a94b3f12e340dd96a176958ae73fd0478e57aebd013f5441843ef4b1fb56c6d8fa233276457a88ffb07fe1bbf6c70a4746c2397730cc75960cc351dfd85fe3603f627fc6679bbb5fe92b9f36f8d7b4cffd867af2c3e7e41f36fec0bea16ddfe38fd0b6a2d01eadd0b8e300ae53d1bf14fedc2344586db1bb734999a2c1ff9bfca1dfe547ce2915a740f66018b4c418863bbee1276d8eff123f7f49575ab98843c7cfc0fa6819e6117d439785ac1fa1fbdd18da11852dfec77a47302e5d7d622d572a0cc3dcdfe89d6ffc100efabff2d31a7bdac7538cfa5714fe318ff4f76d0dd08bc68cf90fbfb3f207c368e59f6d4dd05deb076c0dfe4d078542f49bfc7bb8f6d73e2e67fefcdfa30b7e781fd1f771fe880501013f705ef8f861c06fe41bc53f4e0312ea4f5f1718d03f1e237d5fdec99695f68cf10cf3303f80c6f9064fa523f811797f1dbfb1d16040592f34b9f03771d39fbe651a7b3ac4dd3ff6cb0f327513cfffc4c18cfbaebc6cfff53f93e7fcfbf27abaf5abe30f966138f2c3f319c737f20aa2ffea3eef1f960bf3a79c915fd706fcad1ee5f57f579ee5efe2d59f73bbf1ed377805f4d97f572eb7bfc8e3f4fd7efa73de29eb1bbd168be447e284bfde8fcfc61f7dd5fef26d7ed0ff922792750994fef4e79f5b129d6fb04d2cd3f2ff44eeabeff387a92e695f9fe7f5ed1f7ec867bed16d38fbd7f97b44a1d139017ec7017e27a13de5bdef7ef8e7b4cfbf7b66df77f5efcf67147f9ea9f2b7fa3786debfac7fce8fec25ffbe8daa65b2ecfde76d2bfd9ad7ec6f6c34a8e87ffd1c1878ca50e34376bff2c8667dfe03fc7124f440c4f9338748f6c19ff60d7fe1fcdf774e4d2ba051a874df3f3fedfbfae81c6a2050d0873e7edab0fdad0de7e5bf6ec37f795ee477758f99cb2e57bd8f9875b27486e1bf8dd5d08fa1d1ffe89973df9799305b1184461fb7fdc778fa5bdc93bafabfef8ccd5fec36fb4b9efe7c568af3adcf54ebffbe7efce7b1e4f9863cecb97ef4e7e7cf9f8f10d42cf6187f68fcf397fdf9cff4a37bdf33947dc43c0fff13e3be1de766ed8fc7657f4f667edaff484e9fbfd3af7f5ac3687ce32f84a2fb9775ed2f314c968b9c218e8861a4d1fa6e1c14aadd3f11b37fd28cf9bfc5b2bf8e83185af69ee1d75b8f611ee337bab3133f345efcd49d5fe4dffe49879e3f129bfe796ec6f9a63f2460f9713bfb2fcf197e574e2a8d108baa7c9897527e6066f68d9c408dff71397def7bd68ff126b05fe3ae9de12886ad648679cebf8c73ffd7fffaf2d39729598ae1fde5e7fffde5d9965f7efef2e5a72f46d2171f57fff99f3f7d29eb77b5a5ff9e8d3d988eeb38fcdbb48c4d91bdc1d736643f83efa29fbae45dace03a2df550a6e3f806abf77b02ffbddf07f05892692a16b04ff662f8b75feefe7d5ac6a958de75b17e90ad87d7f8f16f5ebc93bafb7c347c65e0ef96fae9cb5adfc5979f1198fae94b3fe6c5979f3104fabcfc8f77fd59168110f8df20f8df60d285a99f31ea679cfc770a27518a8260f4df20fc6708faf2d3977afd8fbc5ebefcfc4abab5f8e9cb7a7d927f14fb979f098c24e89fbec8c3f8e5671481118cc4e99fbe185d3db45f7e867ffaa27f92455198a27efae2d5f9979f6108827efa22fe7e19fec77f4c490e7df919fae98b9d7f540afdf4c5f99d73b66bbfb6038368e2e376ccdaf5cbcfd44f5f9877dd7f70e214d9979f610281280cc630eaa72fc6faf184a2118482618cfacf9fbee87ffb2a0cd10889a2e46faffedae6fffce90bf7e3af86fff11fdbb0ad45fee5e7ff07fa09fa09fa7ffff3431baa62f914d087ccbe80d5d81760970c5991265d07ae4b06fea5ba80693d7cf9e98bdc4fe3f27e26efea6fd4edeb1f1f63f6f5a99b2c65f1fe7a6d8fe32f577af2ceaa2f3f0f5bd7fdf4c579275df15be77dded945b28ec3d777c551a8bb0f1dfbfaf657b2bfdd3e8ae9b76bb758df7f7afbe3d19f4ae863be7dd0fbdf5f7ee1fd2f1bfbc96c3d7cf9f9bd6cc54fff55917d36431ff3ff92b8cbf1dffb31ffacc22f96b5fe140cfcef30f669d9d367237e35fb7fc4c52f9df42f1bfc7ffef4254fdec9979fbfc47ffa4ee987cafa0c2a2897d8dbaca98f31dd915ef82f788dff8a91db573cffead3f49afebeaffb0defe15fca53b7d6449bfe3bd6be7f9d73d32f0cd11afd1df5dda60dd39431d36fbee1bfc8d3945ef45fcced5187d6789bf1db5c20fcbb2f7299cd703044eba72a2bc7ff497cb679e6a1f3ffdee77f8dc1bfbff61be84228f27f107509f8bf11753f59ffbfb0fb7f61f7ff3fb0fbbb81fe0eadf2c58a7980375f97d0b2c7afa12d574e611c9c4d8ac09d2cd9bb2c757b1eca65dafba8ccc770da1b9f502c4bec95225317a156c595939788dd2d4b469586ec1a3bbfd7278bc69e0e769504f82d8b7cf999ce0a393b59fc435da2527d84f8b2486fb2601c5f8fe6661fa948c331f7073e9bb18cfe502ebbf0afeffc812f2b648ff4ebb4ede7f020ff3ae5d144a1d1a95c576a1c8b2662d7241c7bc5a10d673d7ecb923dc60e0b7f426f6f5419e295291295b95875b2f831ece3cbec63c885f8ad568eaa7ce9a52bd24d141c651c565d847e754f5c391951f0ee64c980b3defb285fe51c5b3abd80440e73ea0eebdafcbb943f6425fe3ef5197398ca751fb236a02854205932ba6c88bbac66d714313edec1654981d39a2db59a7ee73d8ecad2af7282eb14a1217350e0b46736aefb6c4bf3ebd0f1d73ab38b1d73c93efe507795f65619853e947eb8a50f9905e75a382c1a85769388fe2d8bf19ed56c9388c216231ff7742f4bc69e874af39586dd69e5a4c4357ba7a87f4588574608dd7efcedb7325f65fbcbbd57e648b7a61c5bffa2234714e4552efaed575dfb68033ea57d567e0cb93f862a5acd2a39c756a964ecb2481ff1a71ed95d34f8438c7ceac991a20a248b0cac3f183862a63bbdd8eaf777fc4b168d2aad3f6956b9647f860131c74e71cd6e71e0b771607df49d975eec950758998bfe9d4b7a997ef6f1a74c3e9f471cb6a761bce5170bc5a101451ffd56eb8d2c7cb6b18c077f8b10a6b4a053e1ca49c9b9fc9625a58b3e87aefe16ffd64ea3fbd00bbbf34d0ba61ddbcb150fb69d2060ca38c0912454f6b487bb74b0cabc17ae2410ea54f43e782c2391bd13d1ff90e11da1ca9449962a5f1fbaccae516074b284ed5aff614fd5155d6c5d382cfed137b2648c7170aeb2a434b2184fa9e8fd6d39d1de23e4dd6535fe119acc29526db14877b2944fb958964540c359cd5e71904f196a5f85357585c4eed9607ddb0e176e53c458e250de9280da939e1ed3dede636bea22a4da654ef9e7cb3a72f96cb0f255535bd40b7722290dd7b365c47cda6323f30a9c04679b04f8f01b1e89bf7de62fa3c19f52d1be6551d8649e7e380e3ba58130c40edba7a8fc8badff8e231f761e896c992155978a479921c695842cc4f51fefe8bfd467955a18951f63faeffcdfc8e2579e64f12354fbe83be6abbe5cac9307f8f6f778cd067fcb2e164a44efab4e5d7fc001b1db3e7034fa18ca8bc294f6fec50dfefd51d72fb6f66bbb9aacf7bfda9628d4291a77ffa84d1f74ff56a6769789e75e04dd161fa3ea8bd5945d7fc4967cfaa8e757597c3e137f29e3fc817ff4138bcb24c0a1f4a3bce4df9f9f20fe013fb1e81fa948e332072332a79751707ed83694f5dda75d67175be741b7c6cc1f64fb471f25765bded3bffa02956b3ff1ec2b5f61f5d557857a19f5fe9aa2d92a4bec1a07c21d3b9f5871e7a1d2fdc15e3fcb4582efb822f347bb2c7391faaa3f92b2e7a1dd7dc5c9af7ef30fedffb0df3845bd32467ce897beba52d4873ee8151f7a889c6b8ae69ff817fdfab9eb03633efae437fb359aacef8e9c99fa0fbff829ef0fb9054af76bdfb93dfd51e727bf792fac79f0d59fa9f5e47cd20b7542adc7321e943dfde5bd8fe799e4431ac7de7168951167fb5e7b969fed17bb0fff8144c109c7ce87afa25f3edf59214c11dc57fcc73fda95871f38c22e69cf7cca23fde5798408db1f659887ca2a8b0a6efebdfeaff53241b05f7c40f7e16bda38fc6c771d3b0cf5479d4a7be11dbb58f98baf1b53342bb39e86f35fe870bd8f65227de51ceb7bff1f7b6fd6a4a8b23580fe952ff6eb3e711a50ba8bfb269460a25202920c274edc60b01049945d8e1871fffb8d1c4050abaaf7d4fd9deff850dda2490e2b57ae79adcc8f92ae2cdfa20caf5117424af71af801c5dc60da12b8e232729d545765cf52f27482695f712c3b674333707fefedcd8aac91e02dc821d4a7931e24ea9b2f60fc02a937d8a440e10150f4e74810b9c015b909b4c45873be261aec278a748cf0f9ce9ab639ee6b3c4a3691a0ee423bcfba6775e940552e03f3bd330557a1f69482ccdc24c2f2e0bb7c39b641faaa30b9e0fdb992fe947483e9d673a4c165b48647c62f57e4b93e53ecbc06aed939f798ae5cedf598d1b53c704f28d11c36c6df6a6e2c0eebe327d644dca25662798efbc6355aacd4fbdbb5d8de3d2d56c0caedefd662d9dcdf516385fe438f7de8b1ff797a2c399e6d1576782016b99eb1c12c636273bbbffdcfdcacc0f054fa02dc13959588078495cbccd2973a825424a364895540ab90f8a8c02a2456b3071b131adad896f17758053b440511c3b158b28b7a3a62ea3266477ca24915d0eab19cd477932a70e10eb38ab8eaa7403550cde6e7b9e4d88ea1b644fb3cf4c84d3819164902acf67ad606cf35f4a6692248555851d1d777ad3c242292b88c14b98c8ae010173c9d3326fb231d05825a051a51b756514f16b108168ecc34ea25fbc0d3cfa1868e936c90422c060dd5b995c95bcc5ea3b581a8288b45dc666e580ca422832be681c7c4ef616d9195a7f5bb13457649ff589c7b06fba932d8e0b678bf41dec0261bcfb74445011abf5cd8f23eea99541c61eb0d0ab40d6c19d1a836330db13a2748bb18c3d7155701de57a6ead0b9347def812213b12d725511685246c4ee0cab98c6211ee51753c1b0b5579e3906c7cd8aa802dac53a9cf492dea4a8d72912cb74a4a115566b036f7a980fd1b3e58873cbe6aac96a40fb50e13ed2e03926ea9aca879e8ef7138b8ccb7844e0bcf48b1302da6999505c5a063d1d61368c4553bcd6a4a79709d9bf2386ff3912022ec17b6adfe0498d9b14afeab9d93216fdafdb1e301c088e28baec54b2ee54203573756ec3e916a8890e87cb1984660a39d57672f5050e91ea54f2ccc9e4e739270e6d68e9734e9c83a1a481a1fae292f3b5d3e7b9b9051a2c315ce34cc6ea621578c619903381c8be61b51d28f23c709d1bf8078554917349f6d53806ae5106055a61184545c2fb6e8280961c9202561135371d034fdf859e71a6a6256a1e8934b40b3d767ed7530cbb77e0d31f836af0f7d31f9bdb11514cf901b4cee6f07a69047b26cf134d256274acc80a3111b54d10044f75147bb08c0b9883217c81992cf89e7e7ef968be263d2376aeba2694c09ce355a070d4f4e231115ff053df96c7d6709b869ab4a3380be898753455a16edb637ec00ff03ea560c8551eb79ccd1d279dd854bd66a6d04390c9d4ebb202ebb892cb686d70be7bdae2f3d4199ff4c3cb30872f1e279950c563ca24c22672b19aa59fc1485ec63d039f154cf308ce5073a0ecce6db9176a70df367bcda92788f6ad0cd2c016d7938cbc9b07aece0797fd2893918122cddf82113c070c8ee48faa5a860903758ea499a35af399cdfb8106b3c48dd3095c56892bfe168c92e3cbdaaa7c573c1315e999cf13553a53f38bb9ad4d70332fdfc63d788e35b80f9e7971a2a97930d251dc9b4a2fcf83e37440c79e3baa6b39e2abc3ed7447956cb31aec80166c7d37267428d0d0d977754c874996093159605559a35eb1b86074da9bfec0b3549641264740e1bf62f5e7760d20f5ecc137424bdcfe58c90669e8faa95b0d76413638049eb5aabd7a78feedb6743ffae944809c5f314fde5a5fe13e8222bfee2bd387041f0f93a2e92f032a97be10bc817bdc1e28833d9ea73d940ccb7eda53cfa158f9151803452e427333a67d4fd3393f4de39e8c7c0115a18b3f63b50eabc2fd142896e07b20f5049e8f7bd62bd07454abe85125232c2b10be3cd2f9c0263ca5f0dd13a1737e0fad1301ed676eb08c46067a3996b9efe9bdd0ed4b41a16e63c1f9a6147c191549af6ea330b33a2830fd5477813bc88086c89a4c1e8d20875ec6599e367d7b5695b84efa72dee27519b6238e60b52981c6faa5bf7f7b396e5230b496f13a29a30cffce3eaf782e5e43c4608679e839b00787c433aa89702afd02f603777a08f15984d286b83b3454004d157c176d299e1ed3a887e1a0f74262da0896c4dc55a8ab90c83083c35c43595ca8d5c296c6be172c27dcf210b90edbfb69ea0810b5f97fa04121704f244267423cba2734298c43644bdbd0d52bdfd3458c4f7e259d7c5b3af9f3e1c9380f0e9e80f68106fb9362c945ee91f68fe7ab6ed389b74941668d4d18c88ca661bcb9c2c30bae2d944136c1e7392363a285065713a15c2685fa4ae91b48bdf9969a70d2cdc5a4a935a694f65812283e86abaf80660e01c621f33bfacca469030f0ecf6d78b0e9dc2e7d1539834350b27dfef6722c512ca8abeb73dde12f999c80e7d6fa1a3882faacaeb18c1d094fbbb880b549b0fbce15cf9ab9f26f64ff5d96dd83e9975b5681cd53180c36749e4550ded09cb9fe4acf33b8a61f2b6aa2370ed128c0f25d1915bb33e68ffaf380c9a35867186239654f7192f1ae2c3903adc645d974f25802997904e986f6ab894c3e24265da207e0b5fa24fadc49e31eda913e7b53fc7e2fd488fc8ce7bcc17376547d54c331d09ed83e9cce3357dec6d560176926c6493c6e46d6ae0ce81ccf7c1a78cb638ce99d763a836cf01528f17e9c71bf02f5b89964653cb6cd75fd0ec6d956fb322ab61978dea47af5b41f67713ac3345883c24410f9483bdee03c9ee7cc0639850fc31d0d621a75d546c7fca922b4c91e64ba2adb56a5a793cada86aef806d89e539c93f348109182bf1b199856e7f8dd992b1f13c14ac9f717f942f235ab8c0b6a526c60a23c111703dd0b7e190a4e1a7ac46cb68d46791a7b701969986ec31ce3768323733ef505025b638a6a7c1e147ad61a5b3388a93016306fc0ba1dc8c8f9a864ea7e5199bb40e32aa0a91c502e7d51fcc4721531953f2fdc04d3752c8befe31ec4fac2d1f7ac0d968fb17e8b750be888baab601cd277be67a67e010baacbaafb85676de858e88c75e504eb3dae39c6fbaa6b8618f430dd6ee33cc1b1fd9d7351e86c0f3ab0e8a175aca95ca80c76130fee432fedc2a61874fabca1038a5f50dad1a53f3e999bbcc4fae0c4e6f9a840fd9bf7affa36b993ecf08669420b5cf5fd3c1faa73879765384caffb26f0c4f271e28a25a6cdfad0989ad0983b43d5b1153dbdda1303c333a98e29d63ba88b02f7b53c038de873583785f31cf9c47d8b650945ce68068c93faae28e2338f654d6207d0249eb8430798260df2c845fba01777640ecc3322229f34384de4123df3e9196ae13a28069b1bfc5c6dd37894e463779075fb2b6598ab77f7b8435b6d3d1d339ceec0bfddef1dba7abdd7ed3511fee4605e65f08946dc3812289ad00042cb7d81ceb7e69b64ce1ae193750625d5bbd95e036588db653ee66923907a0ac86fc78131a579493c56770ba072bf794abef61590ceec4116154f7778f714d3e66540e9df666ae764efa242e2baf28abc8c2bf99c90cc56b562faf93c124ecbb84067f03c3c4e187c497f24927a2bf9a36413bac686b8aa5d4aefdaf4d7ad064ba0511d9cd095cbbb9416f3c78dcbf753cfc6b43b49c1339782423c5cc3bc915914ab9617af655b3a268119e15d784ff2d0d3f7becb23a01eefc2df53f41474e494db361887305e5ef604f74ff682d14e339d40396572d0ead29f8c88fc7a33bf1bdca90257657c06cbf3720c328be091c54244c81ec163d691876a19e64faf9be22c9191e66d1e4bde0344beadf14ee9639c23b6535d1834e377cf5c1b4e4e76d9bfbbf25a470ec36b223a48712b9f9a1c3f7c57fe72fbb772ac722b77b5e5d82e0d917e8b0be7100b29953f6fe529ba864ad6cd9cc3ba3db12944423f351de4133ddac37a12d189d741db2eb09e5e6c4ac48e78d987f8d8ec41b3460cbf363c27029605a573a848649f1a79a2230f7ff4be5e46d9d5bb541669e167fb7d3d4d8465e90b29c52b467baff706d81d383ecf1df346e70c5c63135583ccf2f42aea81afa00373621724f6d6408345e88a2850e455d4d3abc035b86894ef4136f8555f11fd94857f8014a80922613985784894069e08286d3cb9bcb7d010079e87efe2559b2fdd9b3b14546ae73b6fbab6260dee930255912012bb3a18059856327b2a3a038dccef1c78e61ea425d1af199ff7e6bc3eb554e3753e54e13c3780058144a27c0b03cba41bdf83e7c95ade06de928f2b96b5d34b0e7171cae34adcfa1edc63de1b67e2b4f94cc2cb642e2e54212059525322971258f674118c0cacd7ae921191c58ab890763414cf4071afb1eb63da81fc9e7588d739b5bd10bb8a21c63d0b45366e2f11377b50a02a267bd71e83dac127052f44997c4e5cbdd31fe63dbe20ed6301e501b545b7c2fd74a2e7b7fbc3bc392aac5766ab78a52e76ab8cb3b404a36dc70eb2c034eb7988f711ef7b8b37d4b8a3932a12f5bec41a5c856e50d6b6ee00efb1ca6c2d48ca7ccf40782ee0c2f7b8c4d3f718976a7b0950e4a61d3e7753a263cabdebe78b0e04f244c0f30729987358175933bccba363974605f86c8d1222834f2a719714fdbb34a981c98aa37d5fe87a86f96d78dc5cf10bb6d718af7b701f285487b3735d35e160f7f29c9f8d6ab0c1b4cd11a4adefe9655c0d4e53459ac79a5af955deb521b84466fb46c65e7377ed07e4b755a37f10f84caafebe96c36a99a13dc780840449051861bcdf2d63e20f332f3a54eb8ceaa35db30faf3618bf9ae42cac22415cf99e85a242e548b88e7bda525d9885246a438adf6659b77dc57c38f0a69bb12d7fbbb1b351fceaae4f6b85478c403af1a6a9ce9ff67a355803254e670a7d6f6cd776b65252d25231a1a17a9ca53b2bfe7ddc23611b722f50f2cc1f7465543357e7169486360457736a68deb746feafa63fe30fef81ba1859285a1bc41e8fcf19de83a817df0b1fcda35eb28f3469c9fc8534bce826c341fccd27e151240489d9b4f915f16d16ea16d326166eb68cb4d321c1b4cd3388de4243f5a88d148c9a8c45a28bc623fd1016983e4eebf05b4c9b36a1ab978922af42bccf346c14eb4959e88a4b4cd3024de57ce2c3f929305e5d781ac067eb8257d9d33ef2824e66e63bb0bc83d38cc767960173d1f3f84075727de6704e86657466dbbd23a3b3b3900787049f5f85d0ad76c6e16d564a512ee30c5ce4c0a26563f9d3f3300e897bcaa32ce1880fb930196f6a6768de54abdb87855a4d941b7c2c1365b09f647d26d3121ed0a1d95437e5dd394a5e9d1c9a731eda73e59e4d14cbdc3a8c8ba374599bae3a43093af9f110ba4f878faae94d953e3f59f977f69363d93f745f6bfed7d143b47219235845cf5c168e2c2e1e4dbf4e2aa90a3cb9f11fdcf899e938d544408749cf5a62de11da77f6f2cc328c6ee7bc637326b0edcaa18314103df284c01069ce99cb6636a07aa622bf055e5e87227e039a75b8ac83f905320bb7213e01a02c3bd95563bb0367168608be010dcb98ea1b78de7e6be1ccd977a70cefac43543894760f75d9e1e0ab354436e3c31fe373a7cae1b4de0346bb413e87c10be425d782ba32e70d156403098ca8cfe20e9ed4b2cbf00a1789fcf6920db0ae45d67a07a675d5a6b1ef51d907cb242dbe71f8deb3005afa53637b5bddccb5e9c72ed4cad1542e7cbeb6b335b6ab5ee88af87c9d894cd454b8c2b849da646d99a005c34b08b1c20b6094ac03cffcd496fbc7e15ffb1e981e436590341112c468c185b790ef407bcc863edcf1b9b0330fe716d45f4c87d91447a7a7db3672ad330cefda451adf2d8505b51d109ccf80c2cfde836ffbfd1bdf0adb4f126eac703b4227149e8f0558cdec3b73bfb439fa9e71c6f265f0ccd5b0364d68cc2127d99642ed0a84fe28209d384f441ebcc19b77e018b8a75b1cd00c3e2e8e3f1c07fc1e5e431707e8773f1107182c26eebb70bdc68fe23bf080852473bbc433509c0d6af8418783f63c570d6bbeb9b7d73b2a9bdfd221905de181eb5fc3ecaebfe5afdb43751b513a9af9aef14663f1986f63487c862cee40ea45c5e9e0bb66f7bcb46c6fb5fdcc24d524a6d26732188dd310bd7a6fac660c8bc963173b4dad0b5985548161edf338a6710febd9c6a6b1dfe3f9ab09d69589bc1b145215b92ad6a911fe1c9034249a36c26c9cab8e5df243badeb631d2ca0f33575e2ddca4f13f5ce8fb650eb50d93c1a5a1e7a0eb77edeabc7663777c26368fea1d7f72071786e984fac7fe0cdc579f8fd7996b23e7c11cda662ecd2d1ba4335b26b103f774e0ebbf1a1781c2a5268927445b8a7f94075faa3e76abab52fb645b0ebdfebba239edbf4a26957c42f774d18718bed36a28d377e69b5edb4bb3d0ed535ba93bcd40631ba7f801b2fca69fee99b9b3ef1fcb59d7d5505bf2d0a522c987b491fead807a899962699a6df8de5fff1fd5436efaa96d05835d7b1edf451394fe7e92bd37bfee796afd6daeec9c34ee99f82a8698feaf6265707d563e990fc17d1abbc6cbf69c2b5593a7670fefdde77bdfe2e7cca6fcd374e76c9a5ab59d4983fd4483fb5860b1cb3fc966d24a3baae3f04c2797c69663384476772cdd5971f982abe307c9b9c1f2fcd74957becf5ecdf2f7f34b86a31fed31b12be59df8450964e6c617a4bd2fa89c27301b5b3b2e4ed567760e9fe1b0996fad7ffc9614dc1ebf1b14680db2fc3236ed3bbb1b5730327a218d25ade30ab8a892bd46afb8e3c38ed770cf6276c99922b613c55ab13effa25882fb3acea51f3dfd43beecefe3b91d9f06e1b917ff583b96e0ca0fdf8a1bf84e9dad13b37015cff0c19e5f8dfb3e8e7de77adf3f23592bfe8154d00dca407352df1e64247dbeb0967161958b02e620937bbe47fd1d7101b9b8402829ead870636adbf2322e129292ee7b264d451f90b8ff435c6cf133172a7216f5ac4d5b0ea369ade221caf8165ed6fe5f5ae5f4728e0cc352a5a9ed88aac7a9b6c51359b25edff39c1335db89537d38c8eed088e7b963bdce87e8c58292ece4c95c494bcfc955d31942dbe34e3274c4677b08ed992b5541d5aa2e436d3bfb964df06ee571252d89afad898f700cc352ea1443ab13330c541267b86315d6d81e7e172df8dc1691c931e175193face74e620fe79826d6f12450c23ac6c4b1ea6a3abbc43d71a1c31f8211dc06b02e41610d5bfe29491feddec727e2db20ebca177c629b50362da8b77c78bad48243b35f20b306e0efadb6531cd6c77fc69f15db695ad5698a5fbf723fb2c2d957f1afabb543a7fe4e9222fff591a4f84852fccf4c522407f492a868aaba3ab77f5042432edb96c35d12939863fc2ac16ede4a00d3880319336657da0365293b9c5f8211a95752014dda076639707268d0e42b9e06120ad2be2ecd16f5401a5d12c558f21929237f9e64031a044f03675ee6bca59b9c533b6c59bf16a92942931e61de4ac42be34aee453dfd8dd5a259069a5536093f1adad74612527f87ad3d2ee0daf7749660621ce211aa4237d9248a8c954414af8d4de80df640919d507352131ada25d192d6ac699206eb39d6b590ec6e0298c9cacab592cfb6400df018c4593acdfa47a02c71db31c383ec923406ca1796084983b94950031f0b4e13984d1c2a1aecfb023c260a715aaeb0f21f6968191506aad7cc8497eba4b414a864ce3b2c184582ce612180d50f392e6c92ec749de8b74c0674cd75df44c9bf38997a492fde37e5f40a529eb495ec89851f439d23439dccc17e7ad51774c52d49e41bb592c5345d041a4986287d81d6d48834b547f14d5dc705ac13a8f0fa7b718138bcb79341bd37c621585ba49cf62d2e313ca6f8d72496d2e09eabb69ab4079adae011c8d53918a239c8642cd0ea4e754c21871c7b2841a8c89e0975db7444c776e01c0c251b0c8dd93cb7743844b3399aa673ce4f4d470ceafe6c0ebd58ca310d5cc485e46cc17e4c13a9527c864297ec2b0a94abe4decbde34b56a1a5c6f25f8449aba0f7a7019084e1a089210783a351692ba56ac2cba20921a3881226f43972f1376eee3630dcbfbf09aa4ecf71f947858afef47d0cc497dc699d10ea8ac0e970a8f60a82fa991b6a9edd1c167a780a7c44515a6b39623ba24806c3dfddaecf91f486c2474a299d33b098e359d6f14d2c10e68e47a1f56fbe692583725c920ed7a63324b78b2ca386dd6de1822e0d0001e079fede1533ab1693d18cc437441daeb5441475151d7be59226a6c908811ec52378dc1ada96b645de6cc140833571d935bbe3a43153a9cf3de583ddf455c4dff81b6430b92842cbd913a3dcc2810b822adfd7435c69c971da71aec482266a1ee02cf42f17adad4736b25f093042ea0060618259bc0edb70d0d54996ace0075ea4e8a784febe3d05a630dfe68888b05b80db22349426fceaa00b9ab84516902972cb173b0734922689927bdc1d764a42fa3b5416a9bcd5c8bf37a06a9cf95282752bb26f080b4b04fe7c4338e78ed332fdffaae95c7053cc767ae3f7d1e1caf61f1572466fe5059a6c14d1d0502e65bea3652e89a588017e37b83b5a9c42ca99f246bd50a9c6242ebd95625d5e4963342f395e41065f1d86406b248088acefe8cb07c71a2359c5a35b912928027f59435fb5d711af806aec802462fe7c05fe7a43f9a74ffce7c30ee34f341055000ba3e1b96638079450cd41250f44394818b71cfb97b6651033792d03940943ed03a55b48040b08c34b8c7f250900d68322931320e32dd21462704b28134b30719c8061b0217456781e190fc6fa9ba0e7307d1f6901890741b94973dab0d240ea671c4e98ccf09099273cda62e51cbb9c58a44107993d4e68b7a660a3258c36e6e73c8f478fd59b7413a9b7329c800e67398469c43011d9dc230e3a296b358b0579ddc362209ae94862bc73412c45560b3a21898260aea6a610ff67ea17240c33c90ec1b2d02d06eab88abc8352ff4a640c4e81c7a0687f78fc21ac64d622e2f1de3c2a1fd66320992fbb41d4d64410b0d9d13e5b2275e731e8d57bc9e4961ec0205609cdf469fb71bbfac8db7d0936d9f97abc0dc8c4d8c1f94676c95b424b4d782ba3de7f557939386d69c3b36fba9923a60e748382df19e86aec8052441e1d8aa85466a465691c0a5b1269d6301111e813f274db100eb3c51e41ea9b7498a9a880756e4e11c7816ad7337280718e768fdc563230bcce69c34b3e5391caa365464d7744eba35541ddb915ef0f998cd399258461263308c5bbcf70ececc42ae2489114a4aeb124ed8ff6008abb890aa97ac93e4c0126e58509c86f64d8db76ecdc63d78ee17d3ba2fb5a929c7781b71d6b503e8313f2f19fd2d69cd34221b5e05a663f8f34c16c1fc8a06c75307e44d0103da07730a86ae784e30ed64b2de246bbfdb1f3378a078ad1fe274337ec9a5373ba7c9a32c01b38ce9596cc303799a5e46e844135f0bd80fec06b6655420ee7be18a752d467b0fa43e23a9dba76e43b71b98de9d77b70f4cab74a70d574c33ffb3f781f15a8cd71296fdac77705e599535bc19eda54192b4266153a79706995319730bb47c8ff543e63cc57ad82ad1a48ad66d54bb757ba97c5444c28914eb011971ec6693cb7858aebc046168061faf755abf9404a9135ada4d22a8cf293b4f937433eec847f79c09366cf151fa9d6e96ba95c92f73bec32bee38129c6c36e73290c9eba887e708f7c1d042890657c990d41f1e62d95b59932208aa3b84cf34b09b43266722f6bdc7e671f93d73c62f34c141f13d03591aaa941c6960087d1b1a0ea64390b6cb3c1a485b9f91ac6ecf8291c6be60a693ac3fb61d1faf858ca5db409ad980cce132f77abefa4bd4b3a8fd6640e9376ccfb9480e4d52447b8dabf266ecef80bdc7e0bd22490d0ef42dc77865736c70372aac2196b1fd5e0b1ee9e62bc13dc72ae35c3c2443bae70ca61f3948910597aac9134728520a9204daf90e607a55bcb397641fc41924fb89e690ccfbfd35eaf0489ce89e560a912dae22412c4237ce48a1200c4757cc1d92fca8e68186c819f6ddd3336b87f9d4858729b24a7524d80a9e17cf6008f784c638168a34550c5c4b5d8ce4250bae1f93243345d280a26399899ca9d8267512cbc89b4a201b20dd1d125977dc9217ef386310c537310ed7c18e14992085094009b4a6a6e918e63ce6f52f568e461ed7820d2fcf67b6fae1efc02673c1b2f43e607204507ca6e794ee1cd60e94e4b53d4f479d4abaf3e1ef08e3cca7f046860a2ff8c3f801f4ad3977c50b60ec1708ef2ba6c3fbc05b22c0e41dc8ebb2a3caaa43de07d2c73404c6c4c1854e8d83ab96b56e836d6ffa9f9a10be98dc527556fc212eda3634d6c7fad2c775f0c6dc55cba8a191d60c72e274cea9438f87f6fce706818fad5cb219ce7291b043d17a2a4ded2391f7230dede23347f1d619a6b6f3fd78db3833d1e9d300edb12d0fe7d560c3828c750beb323694c18a934003571630a912bc19cef9e4653e94644b95686d581b2a4a9637f2a6e52d39722523a9774f64936da4493da0a97ca26198592591bd47792bc8d0ba4952b9c10d2623b3624f3b5f807ba2ef0f1a599bd89f69924d726e821a291f66b0b8046a5359b47186360e6e920ca3a12cf4cc14e3992fec68e23fd6930bb4f73d5d64f5edf75d3d06b69ccea5ec644e3a6e2584e333721540d5e88b34880a34eddb015375d0ad0e2f8e573b576d9d05128dcd4dc982453be3d5f23c0b7eb12d28cf20d4a76d99be33de3bfb7b997793a481feea6488b1f9e7e1640a121f69d65eef9994772b037445a7d007892ded202d26775f82e3a86d87e0df57a0c06b18d50926a552274c6a528f16788458c7dc35d7b0615ebade665ebad1151be409e655c2a92432f23347ee8b98b8524692b114995dc1cdede705e42628417e6e6c4317ee93e7ba0fbd0cb2c16682f54165b0717ba4d0e03ee0b9af2f393acfd7701b0da5ca72f96332ca377a056f02af753b2e8142ed35dffffe25281bbf3fb6f37451e90b25cd7592e4e8eaab484344af337b3a0ab03ea0a165349aa6335bde075ebc8b049d26bfaa7582adf8127826592b917f39a30a5c2c0358a5ef1edf9bfb162831ba0dc076d6e379032309a0fe5831f3cce5449428e2bcae63ed685219ad2dc377c56520c0ca9b6fbe3a025c259e5e262364c685c445827188948104d41d99dfdddf554b8c3598bcac4a271a4d4fd3d536d54709f20bb65f8a7809da1c92829e783d3778a457c754af6ee8c87a6c33d8aeb956520d91cbae02711b9b170dc6cd6adade0ebc95b5d015cb98dee770751e6ecf4c83db595edb88546adf213a6e43eb2f368fbf23e0a8b6cdfd0541475df9f9267868663bbf29e9a6e1b5cc1ea2ba430701057e28dbe9f600756de84ecbde68a926822366c34640e159723b0d32bba1eff61f08e2f9484eb741678c56023e5ed775f00e028af31be16f43683bb964cf87d0b59c633ab51b5d90d8251a7d09eb2658fea4050f98cc45dff53863660d1d696a32bd63500e707b66ab4af54cbe6747439d67dba1450c88bfb7ad9318131bcaaf4e3e6dd95fd91c478dedee10f7ccfb36ce8e9dcddc024ddafbf4ce158c63dbc04d967e2f4f2785be4c14a2ab515b350d9e6db51dec7d81cf1b3be8f13bec91646c31f33d3323851db423e67fd4f6064f4df143af47e6fffd764edaef2a72bfb35f3cef74f335167665acea2b07bf3fa86d29f2d1f7e0b9f6ab5e6cd01837ae6ce9bc2c4368a8b470555d1871b08e843eb5f9deb1d5333f56b37791d0cf48728767205a9ca8bdd796eae4bc3ecf55c7c27a906376df23b29899ea4e07ef100de0431c502405285075903e7308ae5baa6efead016ae5a6f8e7a9401fc7a7d58deaf0b4fed7de0f0d4f7bfaebc2d3e8d41fe1698ff0b4ff43e169f5f9bc44a7cd9ea57e44bc38b02269132b2e9bdafd23c83087300e84039cb90c424b9bccd36c76ee8f672dabf242e3b758e307c5924b4683af93bad4edf5e597bc3c9bdb4fdc6435d84f1550bff7753132ca99ad935b489a12e9ebf84c238b9eaae9f3e034e197c65c3530b7dbf936cf4a328b2bac41e1f75fd6ec37e71201d1eeb30e31be8a5a32e71c773094fe71b2ea4438dd9f7f6f790e94fa378ead43ecc78299cdb0b6f47cda458285a24bf4d7afacefa789c01f020d6e610363a2a53dc59a5a618d69c6b4ad999654510f1e6dd7fc958cb966b7bc0941e5bb3ca2e57d4472e3db4c91d67121f1f110e597f7d52ad150e1bb0687fb887b724522a55cfd10f5cc1d9660e3b585e28c5c048fb59aa789d07d8749c94f177ce8579395b99f3e1f0f4977fe78cd55e09e9689868400b21483335ddba487a55face1d1b2c9edb5f982b49b14b0ef938827e769225c7ea36dbb736add267377beb3d105e65302f3e1cee144d9510d30e7cda749eff23bed9f94e3fcd561f00143631bf560debe3dea655502a85a2618b6e749dfa37db09b833c7a51fc2c573fbebd303ba6b66a390e29eda2ee62ed84668a54df6c44a37c560c56a38e75abd9139a36280af59508b3d5f0346325c526ebee1a097e75f77f7f6f4f3f6853eff1391ee95852dcf9c2e990b8e6ae7dab55abfd79b21aeea70a3f9f63ad8f5bce60a77f0ae389dbba65edce9c7d9646197800c3880f04d46937adfafdc96af834c1daaa27979106ab89276f133729a3ac059be64cd496d056fb75271ae857628d991f2f74e232873d299784cf1ed612ce0d4c6a1ab162a99828cec4fa16c45fa7733cbf7be3b2db13e71ff6c3f99ebe0e3cf3837eb0169a207cb6583f4d09ae49416f9d6bc672205e0fb1fccc1074ac8cebcf14e9fbdad730bcd0fb3db9e0b8a7d308cc42e29391cc27c34fc658eb88a4ba10cd5c3c249e754c3c4bbdf097866674f19ed2d53cf088b682f9913877d5bdef262872296d61eb6fb7699f999bf767ed94e0e7d38586129e20325c4f0a8a1f444bdf33bcbfa153753fefd3dd3b38ef5a8894d2d730cc108acfc783ef6178064bbf67e9c17327ddb84d87f345afb9f57345e90b5f5ce8cb05f75fe7776875dddf081d83b9788c04ee69d223378e75d7323256780f6605dad16b018e8758300e9d76cf47cccf48e459e08aab4583cfddef43179e296fbc6aeff0cba850d7344adcbcb7cf1dba7777acefe7971456780e3dfd90787207c69fee9d47a341313d6ad1bd5d22c06ca6484b82ab85ba4ada7c98d0f55b9c233ca3defb5edec6d13f8f87cfa7ee5cd61fe10abf22b7ce794beebd3560b8473d9979dd8e171ad9faaede9f8970775d7f76dfde9573089fe89c19f1c2a30ae99028fc995c5742788385e2debb720e86db856764d6b777f9e19abb91236afee80b123e53e456d89922b1e7fb6782c1a10b3342076a3989d2e316eda5bc6ddda169c76804d7a1dbbfa2437f1aae1fe111796fe2d69e1036afd51fa25fb4af86af8bd24c916e78379b4f5d1e9478d06757251d666dabe8eab654c34c4b0ebe7bba79af3e7791a06e67843fa9ab5050d718c703415a46cf77fa5224d2be910394163d6cdd04dd9d7ff7b7f6bb9847deece3bb7bdbc5dfba6c1829cbee06655c388dbcf4c199c6fdb3c886848f0bf576be642c84690d1f68f01edc9e42575c45239807f3fe6fe3ece937486f4ca6652de6c743ebf73bfb51f7edfc3ace36873122e7f3f3779f5bbfb5f93b9b53e02ddffb8de190b14d5c0bcdb2cd6f134ecd68995f831bb3d20c3345bab4b98647ebb7abbda7726811940196fd68647f874f367b72e10d6c7fc58637b21b746b3e483cf8b180b8a8a777f82095bd8c92446a75e869e79c9ea3423dc6c2f2908ca64f13e18aa6931b53c539a397a92388cb98dc9c6a9d678a444a4eb7db279ebe9d15972b4cc81c1afe14935b9a230d65717b5c85a751305867c4efb7fa8bdbe35d9d73163193cfd6a4a4c1d34460d1321d7a8de591bb7d3c35d7755ce1c04cbbf4c3aea879bfefdb3e9e263d22bf9e438f78277eef7eec885cdfb30e5101318ccbaefc71ad8bf258c63f279ab40fbc6947e76470e2e3e2f8eb4dc447331eb9c17b1bbafa79e2b6fab2ffe49e14f42a1f7c169aef5a7d4c7ac6def7e473a849dc454f3a1eeec2a88be36d99fc296ccb609e8e220d2e63e13be0a676dafe213c6ef67efed361d4c5b902d574e7a9a6274eeb9d46ce6ecb0be82ecee2f9966d7929ee9eff4f60dc9efff1c06e5fbeb41fc12a7a1689dd2d3e6f0e740d4ffb663f0b7420d704ada7ad71cd1df39e3d4d7af8fd767f77e055d37b9675113c8bc443fcbb604efa6ee1cb1fdecfdb3e5af4ddbe87e3bf777f229794eee6224124ba62d8955d299ea3c6ee645cd19a3f43cf5b74cbf9b37b44af0fc3b255f35d470e6af3ac16ddfd105677cfc20774b80adc13f23de37be068b7dbfe293c6fae90fa49f4f77d18dd872fa335caea7868ca293ff7c77fa36771fb167fec55c40d1a8f22f1c3518fa2c0f7bff59ffa7c9fff138e45eafaf9c4af28357ec57eed57e4bf3e7dfbf647fc8acc9178d7aff874cfadd8fbda13a4da01f895e77bfd1ecf73ff596ec56b97e277bab2f0d32edb7ce674fc23d3615eca7ffdf2cf5ffeddb829293274bd945bfcf43fc9a25cac93c53aaefe9fff69759d6ea2fdeb6b88365f968bb745dba1f9af5f62942dd6bb7fa69b5ffef14bbc59bf6629fd5c2f8a3e9579ba48e8c7e688e0c77fb7bca1ffc2efef16a7dd2ffff865f1f6b679dbe26e0afcd89a4b11bee5113961b8cfb70f7fc4ff66ebf44bb12870bb4d99a7ffccd65faab040ff3c08f8786cc83f5fb2cd7e97a15ffef1cb66fb0bf5477e79cdd0823826fff1cb76f38627b1dde113bdc573a62edb7ffd12ed5f491751b55b6c09008af26db1dd7e79c52b6c7f919eb39242681766ebc5db17946d77ec0bbae4f8ad2a779be6c39790f6481fe2ac5c92c5b2e7a4fd63b20d2f0f8bb8fb9808a2c84b375f7cc9d6bbc5db3a445f16c9317c4bb6d7cd10caca5d165fbe591661eba979fd2d5c270c78d73f6df7d10e2d2e3f14897879c0efb59ee27eeba1bd80ed32e43b4f82f8b5f32cf242ebf96ac81d6ac1e9247252f7e94b9967278c6eeb789364ebb4f5f14bb85df3ede728dc2ebef63bdf64ebf0ad6a7fb35cb47bfbb2da9243dd3c97040fdfc7ed9b73f647f1fed3d72f9b5484e5f67b0ed1771db445112d92df73243f6db7dd25e44cde39bccb70bb64ff7d89dfe21e39d0f5b2f0890c51dafe2a2ef7edc7d762c70e76f3d57ab1dbbd85f1a2fddd664bf6abfd55b941a8fd7cfdcadbe2152de21dca769dafb7d93a458b5794a5cbcea8db6a1b637abe382de2c5fa70efa7fd9aa069f3fd6eb1dda14d6775fbf5367c5d2c17614290a3a66cafdb2b0a475f2b2865c3ff7d89b2f4f271b7ad3fb3035a607183fef7a5d8a35d56860468e48bdff69bdd22c192ce2e8cc8b95b2f76f45f22f5b43e927f6ae8365fd6d367df615258be6d0819c4cffbb786286fb604408c3cdfa1d20ceae453ba3895cd872fdb6abd0b31fcdef6eb1d5d0efbf425262ca97e6a8019ee3605a17d37bf30c0dd7c8f45ab36a7883764276b9e81652fc290f17f97eed9fe62ae48e7b55f673116bc9a4f5ff6bb57fe6bf7f9893ce2edfee51fbf1c16eb64f3f625dda0709dfe73f3967e397da999c6328c97a1c07d5fab72832abec7899fb426ffe1d3f5bded6a42fa51e3fddb615133a00fda2df3e4f5e316b7bce783c69fac182360b2dee2bf62b1dd86e97bdd75503cdd9323f469bbf26d73aa3e69287c5996619c7fd02a4bd6e13b3f6fab2d2379f77ec527edcb7611efdf165fa22cc9def6ef428b34ddbd85ebedebe6adf8a8518da3b8c3ef69b7c6fdfdfb2aeaed5f8de8f8ff623277253436dffdfb2a32ee5ff765b7cb91c72f623ef6ef47fcdc27f17358136d62e768c4e1dfa8157f2908703f2c08199288cc9fa81b7fe31ebaf143377ee8c60fddf8a11b3f74e3876efcd08d1fbaf143377ee8c60fddf8a11bffb7e9c65461fdc10af2975578083fd692498b9fab25f38d96dc7b68c90f2df9a1253fb4e48796fcd0921f5af2434b7e68c90f2df9a1253fb4e48796fc5fa42553adf567a8ca5f6a14d87eac345f9afd5ccd59683467e1a1393f34e787e6fcd09c1f9af343737e68ce0fcdf9a1393f34e787e6fcd09c1f9af37f9be6dc52627fae0efd45419b7da2b2c74159a22c0e8986f1b95bfae3576badfb89effdc012cadf7a7f5d096532f3dfa36d3f0a283f0a28ff4712a14fa8c0a5dc725366cc962fe5f8d6d36f4a5a9691271fe2b599b232af7ca2a1eda468958ecc5be5698f97f69f957a9bd4652db8e692f5dfdf47412e3d6a950e73f6755918b3900ec9f00ff5dd94219c14ea3e2a248e95d0da9b055c46abed58c96556aa2a51f03c4c4f3e461aaa2fd11ec72398e167a0195bdf33ce75295fab29d528caf148de866e7331e33752666b24f37e712afd4a3ed34bd0a769524865a0c83bdf45fbb15a5f20b34b80a656416f5a82d19696d550efc373b2d6f9285bd2d2bfad52c25773defbc26919f7a6dbbadf97239e0f47caff99431df96e7f0c14f998b8fa16cfcb6a953f76c885f5e27aa2c8f384966cf9158c20b9ac885e7e9c5ee639d25132825594356dbfbeacad03a497613dfb9e81da634faacd6fb424ca26b535b88c46d60668c626708db7f8484a8dfc0606ecffa15c059ec5c7052d3532ce9ef09c0764dfbaf0bd94405e9dea796c410ddf733f0dd95863254f174776f15001b9c4d3d9c5563a020af76bb32e76c1d258d1abc025971aa1b837cd26e43276751b57cb635c485960e765fb1da034734ec11ac3d912c1eaf2fbab2da36864207221849262bc12823fd277712a93c2c95e8e75791659aa2fb65a1c5be55d9afd1964736edb69cf2ec7919afd59737f7309164ad6de16dbcdfe2d5e7ce21bb834fbb9be81fec337f0f00d3c7c030fdfc0c337f0f00d3c7c030fdfc0c337f0f00d3c7c030fdfc0c337f0df6996bb28a63fda2dd08cfc256c99ffcab74db978db659f29d4efbc536bd73de147ba00c4bfce058027fef0003c3c00ff9749cd7b07fe62f50795dc5cb8d0b24c9fc1f0e6f288bff30a573c75cc533e2645a4c54f33eb0962ff897f24cb3ecc7a0fb3dec3acf730eb3dcc7a0fb3dec3acf730eb3dcc7a0fb3dec3acf730ebfdf7e9da441dfd81c63c3cdefffa9252584b16848796fcd0921f5af2434b7e68c90f2df9a1253fb4e48796fcd0921f5af2434b7e68c9ff955af20f2f29d50cfa1f54528a68cebd47dac843737e68ce0fcdf9a1393f34e787e6fcd09c1f9af343737e68ce0fcdf9a139fff76ace3fa7a4d49de1bf3865b97853c2eda22e2883f7ff3bea497df05ead6ff3dcd38f4a25219a76ffaf4b25a1537f24933c9249fecf13a08f28c01faa25b50f3c730fa1aedfd4652a4a3e2a1087ff8f35c4051ed8fb9e5c4e9085e29ef94d29d02ed6a42a51e4435cc4fb98d57c0ad6fa3272612feae96f934247be2b9e2745b0f47bd6215ee77bdf15f751cf6235974439f1ac4322a02a70bfbbcf43d433f78906cf89d2aa13d5d4b2c2bf5b4ee019dcefaa63b526ebdafb8284fbee278ad8a92f05e9785ee0ea6ab40ecab890f6910bf7c9f3761cbafc31eae91cd0a42aa8c4337baf880b751778c9212eb67bbf900e8982e76a70937582fc4c5c451a42d1dadc93be551dc578deb82f4de582f9f7f51b8e2c2e56443bf0541ef76db922177a96f89d6bdf2423eb3841786cf910ad0d74797f73197f6490fa5b7e45f725d4d49ddfd309bce6aecaf9c212c5b97a8e0558258ab88c7b068ad796136a6a670f62baef2bb69e8deff2abb82070357ccf5a851aace2aaff1b1edb546ff773cc6a7905de349dd9f277d7d352b2419a0830b35c51083dfd10153c863beee3763f15d1361d7138e7f8576728d950c96f6b89a9b4ae9629a8e7c0b98c4f7184d5111bca6ddc2675bbe20209be6721a0625cb36cbc26a8c15dac9d9689e6a40416cf5b5aef8bb4313bf5be581d328243ed5a5d63254f136d5945bde40c86b0ef0bf0d8d434a3f5a2f058c74810cf8103f78986b8c5fcd4aa1376d97ff0cce1becab8122b82ab05ee6fb98c8a048d074d1daa1b7c9bace543dc333751017b4085b66da7d9a4d7ae3f06cab1d9aa7175f587cf7530ca37a058a2483b1d40965f6a8155f8aca8e7b8caebf574706cdc9affa44850a2127ce563ce38049ab3f9685cfa270abe7be2033b2d278a8c620f2e23d53a8c9fc171aae4655d7f8be29ece416db94c9465d5c0d416d78167299160896325df028dd60483dad306e44b753e3ccd409637f5dc5ecdcda7d97c543e583c4cf10f53fcc314ff30c53f4cf10f53fcc314ff30c53f4cf10f53fcc314ff30c5ff6fb584fd7fff3f000000ffff010000ffff82d367794bf60f00`))) diff --git a/tarfs/tarfs.go b/tarfs/tarfs.go deleted file mode 100644 index 96d43f22..00000000 --- a/tarfs/tarfs.go +++ /dev/null @@ -1,224 +0,0 @@ -package tarfs - -import ( - "archive/tar" - "bytes" - "io" - "io/fs" - "path" - "sort" - "strings" - "sync" - "time" -) - -// FS is a tar-backed fs.FS -// adapted from testing/fstest.MapFS -type FS map[string]*file - -// file can be any file within the FS -type file struct { - Data []byte - Mode fs.FileMode - ModTime time.Time - Sys interface{} -} - -var _ fs.FS = FS(nil) -var _ fs.File = (*openFile)(nil) - -// New tar FS from a reader attached to a tarball. -func New(r io.Reader) (FS, error) { - mapfs := make(map[string]*file) - - tr := tar.NewReader(r) - for { - header, err := tr.Next() - if err == io.EOF { - return mapfs, nil - } - if err != nil { - return mapfs, err - } - - // Create the file entry in the memory FS - mapfs[header.Name] = &file{ - Mode: header.FileInfo().Mode(), - ModTime: header.FileInfo().ModTime(), - Sys: header.FileInfo().Sys, - } - - // Done if directory - if header.FileInfo().IsDir() { - continue - } - - // Copy over the data as well - buf := bytes.Buffer{} - if _, err = buf.ReadFrom(tr); err != nil { - return mapfs, err - } - mapfs[header.Name].Data = buf.Bytes() - } -} - -func (fsys FS) Open(name string) (fs.File, error) { - if !fs.ValidPath(name) { - return nil, &fs.PathError{Op: "open", Path: name, Err: fs.ErrNotExist} - } - f := fsys[name] - if f != nil && f.Mode&fs.ModeDir == 0 { - // Ordinary file - return &openFile{fileInfo{path.Base(name), f}, name, 0}, nil - } - - // Directory, possibly synthesized. - // Note that file can be nil here: the map need not contain explicit parent directories for all its files. - // But file can also be non-nil, in case the user wants to set metadata for the directory explicitly. - // Either way, we need to construct the list of children of this directory. - list := []fileInfo{} - elem := "" - need := make(map[string]bool) - if name == "." { - elem = "." - for fname, f := range fsys { - i := strings.Index(fname, "/") - if i < 0 { - list = append(list, fileInfo{fname, f}) - } else { - need[fname[:i]] = true - } - } - } else { - elem = name[strings.LastIndex(name, "/")+1:] - prefix := name + "/" - for fname, f := range fsys { - if strings.HasPrefix(fname, prefix) { - felem := fname[len(prefix):] - i := strings.Index(felem, "/") - if i < 0 { - list = append(list, fileInfo{felem, f}) - } else { - need[fname[len(prefix):len(prefix)+i]] = true - } - } - } - // If the directory name is not in the map, - // and there are no children of the name in the map, - // then the directory is treated as not existing. - if f == nil && len(list) == 0 && len(need) == 0 { - return nil, &fs.PathError{Op: "open", Path: name, Err: fs.ErrNotExist} - } - } - for _, fi := range list { - delete(need, fi.name) - } - for name := range need { - list = append(list, fileInfo{name, &file{Mode: fs.ModeDir}}) - } - sort.Slice(list, func(i, j int) bool { - return list[i].name < list[j].name - }) - - if f == nil { - f = &file{Mode: fs.ModeDir} - } - return &dir{fileInfo{elem, f}, name, list, 0, sync.Mutex{}}, nil -} - -// dir represents a directory in the FS -type dir struct { - fileInfo - path string - entries []fileInfo - offset int - sync.Mutex -} - -func (d *dir) Stat() (fs.FileInfo, error) { return &d.fileInfo, nil } -func (d *dir) Close() error { return nil } -func (d *dir) Read(b []byte) (int, error) { - return 0, &fs.PathError{Op: "read", Path: d.path, Err: fs.ErrInvalid} -} -func (d *dir) ReadDir(count int) (entries []fs.DirEntry, err error) { - d.Lock() - defer d.Unlock() - n := len(d.entries) - d.offset - if count > 0 && n > count { - n = count - } - if n == 0 && count > 0 { - return nil, io.EOF - } - list := make([]fs.DirEntry, n) - for i := range list { - list[i] = &d.entries[d.offset+i] - } - d.offset += n - return list, nil -} - -// fileInfo wraps files with metadata -type fileInfo struct { - name string - f *file -} - -func (i *fileInfo) Name() string { return i.name } -func (i *fileInfo) Size() int64 { return int64(len(i.f.Data)) } -func (i *fileInfo) Mode() fs.FileMode { return i.f.Mode } -func (i *fileInfo) Type() fs.FileMode { return i.f.Mode.Type() } -func (i *fileInfo) ModTime() time.Time { return i.f.ModTime } -func (i *fileInfo) IsDir() bool { return i.f.Mode&fs.ModeDir != 0 } -func (i *fileInfo) Sys() interface{} { return i.f.Sys } -func (i *fileInfo) Info() (fs.FileInfo, error) { return i, nil } - -// openFile decorates a fileInfo with accessors to the underlying data for use -// by Open -type openFile struct { - fileInfo - path string - offset int64 -} - -func (f *openFile) Stat() (fs.FileInfo, error) { return &f.fileInfo, nil } -func (f *openFile) Close() error { return nil } - -func (f *openFile) Read(b []byte) (int, error) { - if f.offset >= int64(len(f.f.Data)) { - return 0, io.EOF - } - if f.offset < 0 { - return 0, &fs.PathError{Op: "read", Path: f.path, Err: fs.ErrInvalid} - } - n := copy(b, f.f.Data[f.offset:]) - f.offset += int64(n) - return n, nil -} - -func (f *openFile) Seek(offset int64, whence int) (int64, error) { - switch whence { - case 0: - // offset += 0 - case 1: - offset += f.offset - case 2: - offset += int64(len(f.f.Data)) - } - if offset < 0 || offset > int64(len(f.f.Data)) { - return 0, &fs.PathError{Op: "seek", Path: f.path, Err: fs.ErrInvalid} - } - f.offset = offset - return offset, nil -} - -func (f *openFile) ReadAt(b []byte, offset int64) (int, error) { - if offset < 0 || offset > int64(len(f.f.Data)) { - return 0, &fs.PathError{Op: "read", Path: f.path, Err: fs.ErrInvalid} - } - n := copy(b, f.f.Data[offset:]) - if n < len(b) { - return n, io.EOF - } - return n, nil -} diff --git a/tarfs/tarfs_test.go b/tarfs/tarfs_test.go deleted file mode 100644 index e2dfcfa9..00000000 --- a/tarfs/tarfs_test.go +++ /dev/null @@ -1,62 +0,0 @@ -package tarfs - -import ( - "os" - "testing" - "testing/fstest" -) - -// TestEmpty ensures that an empty TarFS behaves itself. -func TestEmpty(t *testing.T) { - f, err := os.Open("testdata/empty.tar") - if err != nil { - t.Fatal(err) - } - defer f.Close() - - tfs, err := New(f) - if err != nil { - t.Fatal(err) - } - - if err := fstest.TestFS(tfs); err != nil { - t.Fatal(err) - } -} - -// TestFile ensures that a reader of a single file tarball proffers that file. -func TestSingle(t *testing.T) { - f, err := os.Open("testdata/single.tar") - if err != nil { - t.Fatal(err) - } - defer f.Close() - - tfs, err := New(f) - if err != nil { - t.Fatal(err) - } - - if err := fstest.TestFS(tfs, "single.txt"); err != nil { - t.Fatal(err) - } -} - -// TestIsNotExist ensures that a request to read a file or directory which does not -// exist returns the appropriate error. -func TestIsNotExist(t *testing.T) { - f, err := os.Open("testdata/empty.tar") - if err != nil { - t.Fatal(err) - } - defer f.Close() - - tfs, err := New(f) - if err != nil { - t.Fatal(err) - } - - if err := fstest.TestFS(tfs, "invalid"); err == nil { - t.Fatalf("did not receive expected error testing for a missing file") - } -} diff --git a/tarfs/testdata/empty.tar b/tarfs/testdata/empty.tar deleted file mode 100644 index 06d7405020018ddf3cacee90fd4af10487da3d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 ScmZQz7zLvtFd70QH3R?z00031 diff --git a/tarfs/testdata/single.tar b/tarfs/testdata/single.tar deleted file mode 100644 index fdf794aa252eface4b41e256395bc33cf88d3aae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1536 zcmXTU%uCNn)hnqeVW1f>FfcGPF;QRu(&lESVA{Y4!Uqb0fr6olfsvV^p`j^I!obkj z#N3oY!GLBiLNd6txFoR%=(Log)NCLFCjcr-OT#J40P-9VKs*PcN5N 1 -} - -func (t *templateWriter) writeCustom(repositoriesPath, runtime, template, dest string) (err error) { - if repositoriesPath == "" { - return ErrRepositoriesNotDefined - } - if !repositoryExists(repositoriesPath, template) { - return ErrRepositoryNotFound - } - cc := strings.Split(template, "/") - if len(cc) < 2 { - return ErrTemplateMissingRepository - } - repositoriesFS := os.DirFS(repositoriesPath) - - runtimePath := cc[0] + "/" + runtime - _, err = fs.Stat(repositoriesFS, runtimePath) - if errors.Is(err, fs.ErrNotExist) { - return ErrRuntimeNotFound - } - - templatePath := runtimePath + "/" + cc[1] - _, err = fs.Stat(repositoriesFS, templatePath) - if errors.Is(err, fs.ErrNotExist) { - return ErrTemplateNotFound - } - - // ex: /home/alice/.config/func/repositories/boson/go/http - // Note that the FS instance returned by os.DirFS uses forward slashes - // internally, so source paths do not use the os path separator due to - // that breaking Windows. - src := cc[0] + "/" + runtime + "/" + cc[1] - return t.cp(src, dest, repositoriesFS) -} - -func (t *templateWriter) writeEmbedded(runtime, template, dest string) error { - runtimePath := "templates/" + runtime // embedded FS alwas uses '/' - _, err := fs.Stat(t.templates, runtimePath) - if errors.Is(err, fs.ErrNotExist) { - return ErrRuntimeNotFound - } - - templatePath := "templates/" + runtime + "/" + template // always '/' in embedded fs - _, err = fs.Stat(t.templates, templatePath) - if errors.Is(err, fs.ErrNotExist) { - return ErrTemplateNotFound - } - - return t.cp(templatePath, dest, t.templates) -} - -func repositoryExists(repositories, template string) bool { - cc := strings.Split(template, "/") - _, err := fs.Stat(os.DirFS(repositories), cc[0]) - return err == nil -} - -func (t *templateWriter) cp(src, dest string, files fs.FS) error { - node, err := fs.Stat(files, src) - if err != nil { - return err - } - if node.IsDir() { - return t.copyNode(src, dest, files) - } else { - return t.copyLeaf(src, dest, files) - } -} - -func (t *templateWriter) copyNode(src, dest string, files fs.FS) error { - node, err := fs.Stat(files, src) - if err != nil { - return err - } - - mode := node.Mode() - - err = os.MkdirAll(dest, mode) - if err != nil { - return err - } - - children, err := readDir(src, files) - if err != nil { - return err - } - for _, child := range children { - // NOTE: instances of fs.FS use forward slashes, - // even on Windows. - childSrc := src + "/" + child.Name() - childDest := filepath.Join(dest, child.Name()) - if err = t.cp(childSrc, childDest, files); err != nil { - return err - } - } - return nil -} - -func readDir(src string, files fs.FS) ([]fs.DirEntry, error) { - f, err := files.Open(src) +func readDir(src string, accessor fileAccessor) ([]os.FileInfo, error) { + f, err := accessor.Open(src) if err != nil { return nil, err } - defer f.Close() - - fi, err := f.Stat() + list, err := f.Readdir(-1) + f.Close() if err != nil { return nil, err } - - if !fi.IsDir() { - return nil, fmt.Errorf("%v must be a directory", fi.Name()) - } - list, err := f.(fs.ReadDirFile).ReadDir(-1) - if err != nil { - return nil, err - } - sort.Slice(list, func(i, j int) bool { return list[i].Name() < list[j].Name() }) return list, nil } -func (t *templateWriter) copyLeaf(src, dest string, files fs.FS) (err error) { - srcFile, err := files.Open(src) +func copyLeaf(src, dest string, accessor fileAccessor) (err error) { + srcFile, err := accessor.Open(src) if err != nil { return } defer srcFile.Close() - srcFileInfo, err := fs.Stat(files, src) + srcFileInfo, err := accessor.Stat(src) if err != nil { return } - // Use the original's mode unless a nonzero mode was explicitly provided. - mode := srcFileInfo.Mode() - - destFile, err := os.OpenFile(dest, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode) + destFile, err := os.OpenFile(dest, os.O_RDWR|os.O_CREATE|os.O_TRUNC, srcFileInfo.Mode()) if err != nil { return } diff --git a/templates/README.md b/templates/README.md index 64970567..2fe89a01 100644 --- a/templates/README.md +++ b/templates/README.md @@ -1,4 +1,24 @@ # Templates -This templates directory is embedded entirely into any resultant binaries -using the go:embed directive introduced in Go 1.16 +## Packaging + +When updates are made to these templates, they must be packaged (serialized as +a Go struture) by running `make`, and checking in the resultant `pkged.go` file. + +## How it works + +running `make` in turn installs the `pkger` binary, which can be installed via: +`go get github.com/markbates/pkger/cmd/pkger` +Make then invokes `pkger` before `go build`. + +The resulting `pkged.go` file includes the contents of the templates directory, +encoded as a Go strucutres which is then makde available in code using an API +similar to the standard library's `os` package. + +## Rationale + +Until such time as embedding static assets in binaries is included in the +base `go build` functionality (see https://github.com/golang/go/issues/35950) +a third-party tool is required and pkger provides an API very similar +to the `os` package. + diff --git a/templates/go/events/go.sum b/templates/go/events/go.sum deleted file mode 100644 index f7aa91d9..00000000 --- a/templates/go/events/go.sum +++ /dev/null @@ -1,118 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/v2 v2.3.1 h1:QRTu0yRA4FbznjRSds0/4Hy6cVYpWV2wInlNJSHWAtw= -github.com/cloudevents/sdk-go/v2 v2.3.1/go.mod h1:4fO2UjPMYYR1/7KPJQCwTPb0lFA8zYuitkUpAZFSY1Q= -github.com/cloudevents/sdk-go/v2 v2.4.0 h1:IkzAOizTvn+M13KWDLFOiTb44YBuwAvbenzSg43bWM4= -github.com/cloudevents/sdk-go/v2 v2.4.0/go.mod h1:MZiMwmAh5tGj+fPFvtHv9hKurKqXtdB9haJYMJ/7GJY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3 h1:YPkqC67at8FYaadspW/6uE0COsBxS2656RLEr8Bppgk= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac h1:+2b6iGRJe3hvV/yVXrd41yVEjxuFHxasJqDhkIjS4gk= -github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h1:Frd2bnT3w5FB5q49ENTfVlztJES+1k/7lyWX2+9gq/M= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.2 h1:uqH7bpe+ERSiDa34FDOF7RikN6RzXgduUF8yarlZp94= -github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/templates/go/http/go.sum b/templates/go/http/go.sum deleted file mode 100644 index 18eb0c3c..00000000 --- a/templates/go/http/go.sum +++ /dev/null @@ -1,86 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/v2 v2.3.1/go.mod h1:4fO2UjPMYYR1/7KPJQCwTPb0lFA8zYuitkUpAZFSY1Q= -github.com/cloudevents/sdk-go/v2 v2.4.0 h1:IkzAOizTvn+M13KWDLFOiTb44YBuwAvbenzSg43bWM4= -github.com/cloudevents/sdk-go/v2 v2.4.0/go.mod h1:MZiMwmAh5tGj+fPFvtHv9hKurKqXtdB9haJYMJ/7GJY= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h1:Frd2bnT3w5FB5q49ENTfVlztJES+1k/7lyWX2+9gq/M= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.10.2/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/templates/test/http/rtAtplDefault.txt b/templates/test/http/rtAtplDefault.txt deleted file mode 100644 index 095ad2b0..00000000 --- a/templates/test/http/rtAtplDefault.txt +++ /dev/null @@ -1,2 +0,0 @@ -Runtime A -Template HTTP (Default) diff --git a/templates/test/tpla/rtAtplA.txt b/templates/test/tpla/rtAtplA.txt deleted file mode 100644 index 02afcc19..00000000 --- a/templates/test/tpla/rtAtplA.txt +++ /dev/null @@ -1,2 +0,0 @@ -Runtime A -Template A diff --git a/templates/test/tplb/executable.sh b/templates/test/tplb/executable.sh deleted file mode 100755 index 7c942ee6..00000000 --- a/templates/test/tplb/executable.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -echo "example executable script provided by a template" diff --git a/templates/test/tplb/rtAtplB.txt b/templates/test/tplb/rtAtplB.txt deleted file mode 100644 index d3179e87..00000000 --- a/templates/test/tplb/rtAtplB.txt +++ /dev/null @@ -1,2 +0,0 @@ -Runtime A -Template B diff --git a/templates_test.go b/templates_test.go index a4abbd79..668cf71c 100644 --- a/templates_test.go +++ b/templates_test.go @@ -3,186 +3,75 @@ package function import ( - "errors" "os" "path/filepath" "runtime" "testing" ) -// TestRuntime consists of a specially designed templates directory -// used exclusively for embedded template write tests. -const TestRuntime = "test" - -// TestWriteEmbedded ensures that embedded templates are copied. -func TestWriteEmbedded(t *testing.T) { - // create test directory - root := "testdata/testWriteEmbedded" - defer using(t, root)() - - // write out a template - w := templateWriter{} - err := w.Write(TestRuntime, "tpla", root) +// TestTemplatesEmbeddedFileMode ensures that files from the embedded templates are +// written with the same mode from whence they came +func TestTemplatesEmbeddedFileMode(t *testing.T) { + var path = "testdata/example.com/www" + err := os.MkdirAll(path, 0744) if err != nil { + panic(err) + } + defer os.RemoveAll(path) + + client := New() + function := Function{Root: path, Runtime: "quarkus", Trigger: "events"} + if err := client.Create(function); err != nil { t.Fatal(err) } - // Assert file exists as expected - _, err = os.Stat(filepath.Join(root, "rtAtplA.txt")) + // The file mode of the embedded mvnw should be -rwxr-xr-x + // See source file at: templates/quarkus/events/mvnw + // Assert mode is preserved + sourceMode := os.FileMode(0755) + dest, err := os.Stat(filepath.Join(path, "mvnw")) if err != nil { t.Fatal(err) } + if runtime.GOOS != "windows" { + if dest.Mode() != sourceMode { + t.Fatalf("The dest mode should be %v but was %v", sourceMode, dest.Mode()) + } + } } -// TestWriteCustom ensures that a template from a filesystem source (ie. custom -// provider on disk) can be specified as the source for a template. -func TestWriteCustom(t *testing.T) { - // Create test directory - root := "testdata/testWriteFilesystem" - defer using(t, root)() +// TestTemplatesExtensibleFileMode ensures that files from a file-system +// derived template is written with mode retained. +func TestTemplatesExtensibleFileMode(t *testing.T) { + var ( + path = "testdata/example.com/www" + template = "boson-experimental/http" + templates = "testdata/templates" + ) + err := os.MkdirAll(path, 0744) + if err != nil { + panic(err) + } + defer os.RemoveAll(path) - // Writer which includes reference to custom repositories location - w := templateWriter{repositories: "testdata/repositories"} - // template, in form [provider]/[template], on disk the template is - // located at testdata/repositories/[provider]/[runtime]/[template] - tpl := "customProvider/tpla" - err := w.Write(TestRuntime, tpl, root) + client := New(WithTemplates(templates)) + function := Function{Root: path, Runtime: "quarkus", Trigger: template} + if err := client.Create(function); err != nil { + t.Fatal(err) + } + + // Assert mode is preserved + source, err := os.Stat(filepath.Join("testdata/templates/boson-experimental/quarkus/http/mvnw")) if err != nil { t.Fatal(err) } - - // Assert file exists as expected - _, err = os.Stat(filepath.Join(root, "customtpl.txt")) + dest, err := os.Stat(filepath.Join(path, "mvnw")) if err != nil { t.Fatal(err) } -} - -// TestWriteDefault ensures that the default template is used when not specified. -func TestWriteDefault(t *testing.T) { - // create test directory - root := "testdata/testWriteDefault" - defer using(t, root)() - - // write out a template - w := templateWriter{} - err := w.Write(TestRuntime, "", root) - if err != nil { - t.Fatal(err) - } - - // Assert file exists as expected - _, err = os.Stat(filepath.Join(root, "rtAtplDefault.txt")) - if err != nil { - t.Fatal(err) - } -} - -// TestWriteInvalid ensures that specifying unrecgognized runtime/template errors -func TestWriteInvalid(t *testing.T) { - // create test directory - root := "testdata/testWriteInvalid" - defer using(t, root)() - - w := templateWriter{} - var err error // should be populated with the correct error type - - // Test for error writing an invalid runtime - // (the http template - err = w.Write("invalid", DefaultTemplate, root) - if !errors.Is(err, ErrRuntimeNotFound) { - t.Fatalf("Expected ErrRuntimeNotFound, got %T", err) - } - - // Test for error writing an invalid template - err = w.Write(TestRuntime, "invalid", root) - if !errors.Is(err, ErrTemplateNotFound) { - t.Fatalf("Expected ErrTemplateNotFound, got %T", err) - } -} - -// TestWriteModeEmbedded ensures that templates written from the embedded -// templates retain their mode. -func TestWriteModeEmbedded(t *testing.T) { - if runtime.GOOS == "windows" { - return - // not applicable - } - - // set up test directory - var err error - root := "testdata/testWriteModeEmbedded" - defer using(t, root)() - - // Write the embedded template that contains an executable script - w := templateWriter{} - err = w.Write(TestRuntime, "tplb", root) - if err != nil { - t.Fatal(err) - } - - // Verify file mode was preserved - file, err := os.Stat(filepath.Join(root, "executable.sh")) - if err != nil { - t.Fatal(err) - } - if file.Mode() != os.FileMode(0755) { - t.Fatalf("The embedded executable's mode should be 0755 but was %v", file.Mode()) - } -} - -// TestWriteModeCustom ensures that templates written from custom templates -// retain their mode. -func TestWriteModeCustom(t *testing.T) { - if runtime.GOOS == "windows" { - return // not applicable - } - - // test directories - var err error - root := "testdata/testWriteModeCustom" - defer using(t, root)() - - // Write executable from custom repo - w := templateWriter{repositories: "testdata/repositories"} - err = w.Write(TestRuntime, "customProvider/tplb", root) - if err != nil { - t.Fatal(err) - } - - // Verify custom file mode was preserved. - file, err := os.Stat(filepath.Join(root, "executable.sh")) - if err != nil { - t.Fatal(err) - } - if file.Mode() != os.FileMode(0755) { - t.Fatalf("The custom executable file's mode should be 0755 but was %v", file.Mode()) - } -} - -// Helpers -// ------- - -// using the given directory (creating it) returns a closure which removes the -// directory, intended to be run in a defer statement. -func using(t *testing.T, root string) func() { - t.Helper() - mkdir(t, root) - return func() { - rm(t, root) - } -} - -func mkdir(t *testing.T, dir string) { - t.Helper() - if err := os.MkdirAll(dir, 0700); err != nil { - t.Fatal(err) - } -} - -func rm(t *testing.T, dir string) { - t.Helper() - if err := os.RemoveAll(dir); err != nil { - t.Fatal(err) + if runtime.GOOS != "windows" { + if dest.Mode() != source.Mode() { + t.Fatalf("The dest mode should be %v but was %v", source.Mode(), dest.Mode()) + } } } diff --git a/testdata/repositories/customProvider/test/tpla/customtpl.txt b/testdata/repositories/customProvider/test/tpla/customtpl.txt deleted file mode 100644 index fd0805a3..00000000 --- a/testdata/repositories/customProvider/test/tpla/customtpl.txt +++ /dev/null @@ -1,3 +0,0 @@ -Custom Provider -Runtime A -Template A diff --git a/testdata/repositories/customProvider/test/tplb/executable.sh b/testdata/repositories/customProvider/test/tplb/executable.sh deleted file mode 100755 index 7c942ee6..00000000 --- a/testdata/repositories/customProvider/test/tplb/executable.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env bash -echo "example executable script provided by a template" diff --git a/testdata/repositories/customProvider/node/json/index.js b/testdata/templates/boson-experimental/node/json/index.js similarity index 100% rename from testdata/repositories/customProvider/node/json/index.js rename to testdata/templates/boson-experimental/node/json/index.js diff --git a/testdata/repositories/customProvider/node/json/json.js b/testdata/templates/boson-experimental/node/json/json.js similarity index 100% rename from testdata/repositories/customProvider/node/json/json.js rename to testdata/templates/boson-experimental/node/json/json.js diff --git a/testdata/repositories/customProvider/quarkus/http/mvnw b/testdata/templates/boson-experimental/quarkus/http/mvnw similarity index 100% rename from testdata/repositories/customProvider/quarkus/http/mvnw rename to testdata/templates/boson-experimental/quarkus/http/mvnw