From 97add1c3d519e4bec8cd22bf296710930bb46ccd Mon Sep 17 00:00:00 2001 From: Elliot Saba Date: Sun, 9 Dec 2018 13:57:44 -0800 Subject: [PATCH 01/41] Use `JL_AArch64_crc` instead of `HWCAP_CRC32` (#30324) Closes https://github.com/JuliaLang/julia/issues/26458 (cherry picked from commit bd21aa75eb4c0e56ef870f6bffea3281c724cbb1) --- src/crc32c.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/crc32c.c b/src/crc32c.c index f9100a22abe93..9ad1991d3c804 100644 --- a/src/crc32c.c +++ b/src/crc32c.c @@ -43,6 +43,7 @@ #include "julia.h" #include "julia_internal.h" +#include "processor.h" #ifdef _CPU_AARCH64_ # include @@ -333,7 +334,7 @@ JL_DLLEXPORT uint32_t jl_crc32c(uint32_t crc, const char *buf, size_t len) # else static crc32c_func_t crc32c_dispatch(unsigned long hwcap) { - if (hwcap & HWCAP_CRC32) + if (hwcap & (1 << JL_AArch64_crc)) return crc32c_armv8; return jl_crc32c_sw; } From 9d63c0f23c9f978c7f2e79212016dcd2b598f2cf Mon Sep 17 00:00:00 2001 From: Rafael Fourquet Date: Tue, 11 Dec 2018 23:39:17 +0100 Subject: [PATCH 02/41] fix bug with max_values in union! (#30315) (cherry picked from commit f49cb42fb06492765f6320f3161e8363be5b7ada) --- base/abstractset.jl | 6 ++++-- test/sets.jl | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/base/abstractset.jl b/base/abstractset.jl index 100383a126a1d..03038ff6364da 100644 --- a/base/abstractset.jl +++ b/base/abstractset.jl @@ -67,9 +67,11 @@ function union!(s::AbstractSet, sets...) end max_values(::Type) = typemax(Int) -max_values(T::Type{<:Union{Nothing,BitIntegerSmall}}) = 1 << (8*sizeof(T)) -max_values(T::Union) = max(max_values(T.a), max_values(T.b)) +max_values(T::Union{map(X -> Type{X}, BitIntegerSmall_types)...}) = 1 << (8*sizeof(T)) +# saturated addition to prevent overflow with typemax(Int) +max_values(T::Union) = max(max_values(T.a), max_values(T.b), max_values(T.a) + max_values(T.b)) max_values(::Type{Bool}) = 2 +max_values(::Type{Nothing}) = 1 function union!(s::AbstractSet{T}, itr) where T haslength(itr) && sizehint!(s, length(s) + length(itr)) diff --git a/test/sets.jl b/test/sets.jl index daddf0bc7bb8b..594c1f0f89087 100644 --- a/test/sets.jl +++ b/test/sets.jl @@ -613,6 +613,27 @@ end end end +@testset "optimized union! with max_values" begin + # issue #30315 + T = Union{Nothing, Bool} + @test Base.max_values(T) == 3 + d = Set{T}() + union!(d, (nothing, true, false)) + @test length(d) == 3 + @test d == Set((nothing, true, false)) + @test nothing in d + @test true in d + @test false in d + + for X = (Int8, Int16, Int32, Int64) + @test Base.max_values(Union{Nothing, X}) == (sizeof(X) < sizeof(Int) ? + 2^(8*sizeof(X)) + 1 : + typemax(Int)) + end + # this does not account for non-empty intersections of the unioned types + @test Base.max_values(Union{Int8,Int16}) == 2^8 + 2^16 +end + struct OpenInterval{T} lower::T upper::T From 7e8d9b2c347a1f15662e0997a817b2fafe884f28 Mon Sep 17 00:00:00 2001 From: Fabian Gans Date: Fri, 14 Dec 2018 10:41:51 +0100 Subject: [PATCH 03/41] fix reinterpret for 0-dimensional arrays (#30376) (cherry picked from commit c3799003d769c434a2507ec472aa3f80f6c39317) --- base/reinterpretarray.jl | 4 +++- test/reinterpretarray.jl | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/base/reinterpretarray.jl b/base/reinterpretarray.jl index 2ea21ec981b56..8d7a175d8252d 100644 --- a/base/reinterpretarray.jl +++ b/base/reinterpretarray.jl @@ -33,8 +33,8 @@ struct ReinterpretArray{T,N,S,A<:AbstractArray{S, N}} <: AbstractArray{T, N} isbitstype(T) || throwbits(S, T, T) isbitstype(S) || throwbits(S, T, S) (N != 0 || sizeof(T) == sizeof(S)) || throwsize0(S, T) - ax1 = axes(a)[1] if N != 0 && sizeof(S) != sizeof(T) + ax1 = axes(a)[1] dim = length(ax1) rem(dim*sizeof(S),sizeof(T)) == 0 || thrownonint(S, T, dim) first(ax1) == 1 || throwaxes1(S, T, ax1) @@ -74,6 +74,7 @@ function size(a::ReinterpretArray{T,N,S} where {N}) where {T,S} size1 = div(psize[1]*sizeof(S), sizeof(T)) tuple(size1, tail(psize)...) end +size(a::ReinterpretArray{T,0}) where {T} = () function axes(a::ReinterpretArray{T,N,S} where {N}) where {T,S} paxs = axes(a.parent) @@ -81,6 +82,7 @@ function axes(a::ReinterpretArray{T,N,S} where {N}) where {T,S} size1 = div(l*sizeof(S), sizeof(T)) tuple(oftype(paxs[1], f:f+size1-1), tail(paxs)...) end +axes(a::ReinterpretArray{T,0}) where {T} = () elsize(::Type{<:ReinterpretArray{T}}) where {T} = sizeof(T) unsafe_convert(::Type{Ptr{T}}, a::ReinterpretArray{T,N,S} where N) where {T,S} = Ptr{T}(unsafe_convert(Ptr{S},a.parent)) diff --git a/test/reinterpretarray.jl b/test/reinterpretarray.jl index bdb588433dba9..589106f87ab1a 100644 --- a/test/reinterpretarray.jl +++ b/test/reinterpretarray.jl @@ -160,3 +160,12 @@ let a = [0.1 0.2; 0.3 0.4], at = reshape([(i,i+1) for i = 1:2:8], 2, 2) r = reinterpret(Int, vt) @test r == OffsetArray(reshape(1:8, 2, 2, 2), (0, offsetvt...)) end + +# Test 0-dimensional Arrays +A = zeros(UInt32) +B = reinterpret(Int32,A) +@test size(B) == () +@test axes(B) == () +B[] = Int32(5) +@test B[] === Int32(5) +@test A[] === UInt32(5) From 0073e42fbcef6bbb4bfde72dfcd93917de8b6f5e Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Sun, 16 Dec 2018 21:09:56 -0500 Subject: [PATCH 04/41] stacktrace: prevent OOB-error in sysimage lookup (#30369) Previously, with a multi-versioned system image, there might be additional entries at the end of the clone list that do not correspond to an actual method (such as jlplt thunks). Also some code cleanup for clarity. fix #28648 (cherry picked from commit e51a7075d74e86274d694b9b9f5e475b57c05439) --- src/debuginfo.cpp | 3 ++- src/staticdata.c | 1 + stdlib/Profile/src/Profile.jl | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/debuginfo.cpp b/src/debuginfo.cpp index 15c33f86524cd..06664623dc7f5 100644 --- a/src/debuginfo.cpp +++ b/src/debuginfo.cpp @@ -1101,7 +1101,8 @@ static int jl_getDylibFunctionInfo(jl_frame_t **frames, size_t pointer, int skip for (size_t i = 0; i < sysimg_fptrs.nclones; i++) { if (diff == sysimg_fptrs.clone_offsets[i]) { uint32_t idx = sysimg_fptrs.clone_idxs[i] & jl_sysimg_val_mask; - frame0->linfo = sysimg_fvars_linfo[idx]; + if (idx < sysimg_fvars_n) // items after this were cloned but not referenced directly by a method (such as our ccall PLT thunks) + frame0->linfo = sysimg_fvars_linfo[idx]; break; } } diff --git a/src/staticdata.c b/src/staticdata.c index 0f1aa9d1356ae..85496b6d07ed3 100644 --- a/src/staticdata.c +++ b/src/staticdata.c @@ -1015,6 +1015,7 @@ static void jl_update_all_fptrs(jl_serializer_state *s) for (i = 0; i < sysimg_fvars_max; i++) { uintptr_t val = (uintptr_t)&linfos[i]; uint32_t offset = load_uint32(&val); + linfos[i] = NULL; if (offset != 0) { int specfunc = 1; if (offset & ((uintptr_t)1 << (8 * sizeof(uint32_t) - 1))) { diff --git a/stdlib/Profile/src/Profile.jl b/stdlib/Profile/src/Profile.jl index 5cb34e132942f..8ae9542c2c2f4 100644 --- a/stdlib/Profile/src/Profile.jl +++ b/stdlib/Profile/src/Profile.jl @@ -514,6 +514,7 @@ function tree!(root::StackFrameTree{T}, all::Vector{UInt64}, lidict::Union{LineI # jump forward to the end of the inlining chain # avoiding an extra (slow) lookup of `ip` in `lidict` # and an extra chain of them in `down` + # note that we may even have this === parent (if we're ignoring this frame ip) this = builder_value[fastkey] let this = this while this !== parent @@ -532,8 +533,7 @@ function tree!(root::StackFrameTree{T}, all::Vector{UInt64}, lidict::Union{LineI frame = (frames isa Vector ? frames[i] : frames) !C && frame.from_c && continue key = (T === UInt64 ? ip : frame) - down = parent.down - this = get!(down, key) do + this = get!(parent.down, key) do return StackFrameTree{T}() end this.frame = frame From 4148b76322977e185233d5c3b4b353ee06d1e2c5 Mon Sep 17 00:00:00 2001 From: Dominique Date: Wed, 19 Dec 2018 20:42:28 -0500 Subject: [PATCH 05/41] generalize sparse matrix slicing to integer types (#30319) (cherry picked from commit 072ad7db4a0bdfa141713ae59dbf6b0706302481) --- stdlib/SparseArrays/src/sparsematrix.jl | 4 ++-- stdlib/SparseArrays/test/sparse.jl | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/stdlib/SparseArrays/src/sparsematrix.jl b/stdlib/SparseArrays/src/sparsematrix.jl index 02c975168c6ec..ff288017571d1 100644 --- a/stdlib/SparseArrays/src/sparsematrix.jl +++ b/stdlib/SparseArrays/src/sparsematrix.jl @@ -1968,8 +1968,8 @@ function getindex_cols(A::SparseMatrixCSC{Tv,Ti}, J::AbstractVector) where {Tv,T return SparseMatrixCSC(m, nJ, colptrS, rowvalS, nzvalS) end -getindex_traverse_col(::AbstractUnitRange, lo::Int, hi::Int) = lo:hi -getindex_traverse_col(I::StepRange, lo::Int, hi::Int) = step(I) > 0 ? (lo:1:hi) : (hi:-1:lo) +getindex_traverse_col(::AbstractUnitRange, lo::Integer, hi::Integer) = lo:hi +getindex_traverse_col(I::StepRange, lo::Integer, hi::Integer) = step(I) > 0 ? (lo:1:hi) : (hi:-1:lo) function getindex(A::SparseMatrixCSC{Tv,Ti}, I::AbstractRange, J::AbstractVector) where {Tv,Ti<:Integer} @assert !has_offset_axes(A, I, J) diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index 416cbffac27cf..79290cfc6433c 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -709,6 +709,8 @@ end @test ss116[:,:] == copy(ss116) + @test convert(SparseMatrixCSC{Float32,Int32}, sd116)[2:5,:] == convert(SparseMatrixCSC{Float32,Int32}, sd116[2:5,:]) + # range indexing @test Array(ss116[i,:]) == aa116[i,:] @test Array(ss116[:,j]) == aa116[:,j] From bca2f420ad3a1331622a44872fd8f4b5fa96a366 Mon Sep 17 00:00:00 2001 From: Andreas Noack Date: Wed, 2 Jan 2019 21:06:42 +0100 Subject: [PATCH 06/41] Add custom deserialize method for UmfpackLU to avoid memory leak (#30425) Fixes #15450 (cherry picked from commit 356ceeee0170e41ac109abc0841d394f5472c5e7) --- stdlib/SuiteSparse/Project.toml | 5 +++-- stdlib/SuiteSparse/src/umfpack.jl | 18 ++++++++++++++++++ stdlib/SuiteSparse/test/umfpack.jl | 13 +++++++++++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/stdlib/SuiteSparse/Project.toml b/stdlib/SuiteSparse/Project.toml index 8ea21106262c4..a851e081a383e 100644 --- a/stdlib/SuiteSparse/Project.toml +++ b/stdlib/SuiteSparse/Project.toml @@ -4,13 +4,14 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [deps] Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [extras] -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] test = ["Test", "Random", "DelimitedFiles", "Serialization"] diff --git a/stdlib/SuiteSparse/src/umfpack.jl b/stdlib/SuiteSparse/src/umfpack.jl index a8eb90ed379c4..23c0708fb72d8 100644 --- a/stdlib/SuiteSparse/src/umfpack.jl +++ b/stdlib/SuiteSparse/src/umfpack.jl @@ -11,6 +11,8 @@ import LinearAlgebra: Factorization, det, lu, ldiv! using SparseArrays import SparseArrays: nnz +import Serialization: AbstractSerializer, deserialize + import ..increment, ..increment!, ..decrement, ..decrement! include("umfpack_h.jl") @@ -192,6 +194,22 @@ function show(io::IO, F::UmfpackLU) F.numeric != C_NULL && print(io, '\n', F.numeric) end +function deserialize(s::AbstractSerializer, t::Type{UmfpackLU{Tv,Ti}}) where {Tv,Ti} + symbolic = deserialize(s) + numeric = deserialize(s) + m = deserialize(s) + n = deserialize(s) + colptr = deserialize(s) + rowval = deserialize(s) + nzval = deserialize(s) + status = deserialize(s) + obj = UmfpackLU{Tv,Ti}(symbolic, numeric, m, n, colptr, rowval, nzval, status) + + finalizer(umfpack_free_symbolic, obj) + + return obj +end + ## Wrappers for UMFPACK functions # generate the name of the C function according to the value and integer types diff --git a/stdlib/SuiteSparse/test/umfpack.jl b/stdlib/SuiteSparse/test/umfpack.jl index 1683f21aa4aab..12ce4c9bddac4 100644 --- a/stdlib/SuiteSparse/test/umfpack.jl +++ b/stdlib/SuiteSparse/test/umfpack.jl @@ -1,6 +1,7 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license using SuiteSparse: increment! +using Serialization using LinearAlgebra: Adjoint, Transpose, SingularException @testset "UMFPACK wrappers" begin @@ -176,4 +177,16 @@ using LinearAlgebra: Adjoint, Transpose, SingularException end end + @testset "deserialization" begin + A = sprandn(10, 10, 0.4) + F1 = lu(A) + b = IOBuffer() + serialize(b, F1) + seekstart(b) + F2 = deserialize(b) + for nm in (:colptr, :m, :n, :nzval, :rowval, :status) + @test getfield(F1, nm) == getfield(F2, nm) + end + end + end From 7786f7856c6eb3b1b986208d5b3dbe13fd4b8bff Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Thu, 3 Jan 2019 18:09:38 -0500 Subject: [PATCH 07/41] fix `lambda-optimize-vars!` with complex assignment RHSs (#30564) fixes #30563 (cherry picked from commit 84a83ab8219e48c2ed466fe5c76b3de74039c158) --- src/julia-syntax.scm | 4 +++- test/compiler/compiler.jl | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 5d9e99a9627d9..7b1a15c559103 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -2998,7 +2998,9 @@ f(x) = yt(x) (kill)) (cdr e))) (else - (mark-used e) + (if (eq? (car e) '=) + (visit (caddr e)) + (mark-used e)) (if (and (or (eq? (car e) '=) (and (eq? (car e) 'method) (length> e 2))) (has? unused (cadr e))) diff --git a/test/compiler/compiler.jl b/test/compiler/compiler.jl index 01b7000a6a68a..16e3eaf39f874 100644 --- a/test/compiler/compiler.jl +++ b/test/compiler/compiler.jl @@ -1822,6 +1822,15 @@ function g15276() end @test g15276() isa Vector{Int} +function inbounds_30563() + local y + @inbounds for i in 1:10 + y = (m->2i)(0) + end + return y +end +@test Base.return_types(inbounds_30563, ()) == Any[Int] + # issue #27316 - inference shouldn't hang on these f27316(::Vector) = nothing f27316(::Any) = f27316(Any[][1]), f27316(Any[][1]) From 2dc20f78af2bb5137087855d01188ffaa389bf3a Mon Sep 17 00:00:00 2001 From: "Viral B. Shah" Date: Fri, 4 Jan 2019 00:05:38 -0500 Subject: [PATCH 08/41] Add the scaled identity matrix to a random matrix to avoid getting a singular matrix (#30576) Fix #30572 (cherry picked from commit 4d8a968a87d7edd4586ee901dffa4eaa6856b966) --- stdlib/SuiteSparse/test/umfpack.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stdlib/SuiteSparse/test/umfpack.jl b/stdlib/SuiteSparse/test/umfpack.jl index 12ce4c9bddac4..356c0cf3fa4e7 100644 --- a/stdlib/SuiteSparse/test/umfpack.jl +++ b/stdlib/SuiteSparse/test/umfpack.jl @@ -178,7 +178,7 @@ using LinearAlgebra: Adjoint, Transpose, SingularException end @testset "deserialization" begin - A = sprandn(10, 10, 0.4) + A = 10*I + sprandn(10, 10, 0.4) F1 = lu(A) b = IOBuffer() serialize(b, F1) From b6b74132a8c311be54c7d0ee2ccf03fd29cb5451 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Fri, 11 Jan 2019 16:24:04 -0500 Subject: [PATCH 09/41] SHA,tests: cleanup tempdir (#30655) (cherry picked from commit 1daf145b72bc645d0ad04978a422210749998e73) --- stdlib/SHA/test/runtests.jl | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/stdlib/SHA/test/runtests.jl b/stdlib/SHA/test/runtests.jl index 63a333bdf779d..ce0d2b68fdbac 100644 --- a/stdlib/SHA/test/runtests.jl +++ b/stdlib/SHA/test/runtests.jl @@ -9,7 +9,8 @@ const VERBOSE = false lorem = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." so_many_as_array = repeat([0x61], 1000000) so_many_as_tuple = ntuple((i) -> 0x61, 1000000) -file = ".sha" # Subject to change +tempdir = mktempdir() +file = joinpath(tempdir, ".sha") fIO = open(file, "w") write(fIO, '\0') close(fIO) @@ -274,16 +275,24 @@ end # test error if eltype of input is not UInt8 for f in sha_funcs global nerrors + data = UInt32[0x23467, 0x324775] try - f(UInt32[0x23467, 0x324775]) - warn("Non-UInt8 Arrays should fail") - nerrors += 1 - catch + f(data) + catch ex + if ex isa MethodError && + ex.f === f && + ex.args === (data,) + continue + end + rethrow() end + warn("Non-UInt8 Arrays should fail") + nerrors += 1 end # Clean up the I/O mess rm(file) +rm(tempdir) if nerrors == 0 VERBOSE && println("ALL OK") From 083bc82ce33baffbbcbce9c1eb22562046cd9cc1 Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Sat, 19 Jan 2019 09:31:09 +0100 Subject: [PATCH 10/41] Handle :error and :invalid expressions gracefully in REPL helpmode, (#30754) fixes #22013, fixes #24871, fixes #26933, fixes #29282, fixes #29361, fixes #30348 and fixes #30506. (cherry picked from commit b8c0ec8a0a2d12533edea72749b37e6089a9d163) --- stdlib/REPL/src/docview.jl | 4 ++-- stdlib/REPL/test/repl.jl | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/stdlib/REPL/src/docview.jl b/stdlib/REPL/src/docview.jl index ebb2dcbd70d0d..1a2944cba985b 100644 --- a/stdlib/REPL/src/docview.jl +++ b/stdlib/REPL/src/docview.jl @@ -21,13 +21,13 @@ helpmode(line::AbstractString) = helpmode(stdout, line) function _helpmode(io::IO, line::AbstractString) line = strip(line) + x = Meta.parse(line, raise = false, depwarn = false) expr = - if haskey(keywords, Symbol(line)) + if haskey(keywords, Symbol(line)) || isexpr(x, :error) || isexpr(x, :invalid) # Docs for keywords must be treated separately since trying to parse a single # keyword such as `function` would throw a parse error due to the missing `end`. Symbol(line) else - x = Meta.parse(line, raise = false, depwarn = false) # Retrieving docs for macros requires us to make a distinction between the text # `@macroname` and `@macroname()`. These both parse the same, but are used by # the docsystem to return different results. The first returns all documentation diff --git a/stdlib/REPL/test/repl.jl b/stdlib/REPL/test/repl.jl index 2a290eb2ec3d3..9404d16d25f2b 100644 --- a/stdlib/REPL/test/repl.jl +++ b/stdlib/REPL/test/repl.jl @@ -972,6 +972,12 @@ for (line, expr) in Pair[ @test Base.eval(REPL._helpmode(buf, line)) isa Union{Markdown.MD,Nothing} end +# PR 30754, Issues #22013, #24871, #26933, #29282, #29361, #30348 +for line in ["′", "abstract", "type", "|=", ".="] + @test occursin("No documentation found.", + sprint(show, Base.eval(REPL._helpmode(IOBuffer(), line))::Union{Markdown.MD,Nothing})) +end + # PR #27562 fake_repl() do stdin_write, stdout_read, repl repltask = @async begin From 48f6ea7b2d33589cbdddcedb5b4bb4b3c216018c Mon Sep 17 00:00:00 2001 From: cormullion Date: Tue, 22 Jan 2019 09:20:00 +0000 Subject: [PATCH 11/41] update macOS icons to be less transparent (#30773) (cherry picked from commit 7ed251c017f18762d11fbb00ce50c8d2829003a5) --- contrib/mac/app/julia.icns | Bin 122007 -> 226356 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/contrib/mac/app/julia.icns b/contrib/mac/app/julia.icns index 691f1be5d1cfa2e7bf65ca6acccaa6003dc5da3b..16358e19db453d52f378df617c82ebc498aca153 100644 GIT binary patch literal 226356 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

#{?#9MC-qztQKi*}Ek?VOSTuyI#09=)ls z^K7cZ>7KTEXP~JY`kDnOsLyi_nzh{R&S;GWEP>GMw(0xmN zNd|?F0g~x{4d=Y{--~tt>uYl+U*wL0=3POFA<#BJYeZmvZC`Eh{-TcFck&O^5-syH zo_{#N-R8mODtQBbC_?UozpDsGOn;5qC*jcNR}d?hLI7yXw@+|^bHO$Whx^bYbVAOQ z{p7x>NO?*2z<~SmUOn##%V5&nhP!AL{YpyGygg8eCiqCZiy_h%fOE+4UP6kJe`# z&W(qrB06bxEGu2VBhSyx$~Ci|(bw_uy;U3t9jUqJ@knx6l0uV*knVNiHQV-5Yq6t> zu^Od0-q%AEP-@RSHp|VmM9j&A>ETi#^0^uIQwG0^tfk>sz#HKxlpw0o}ruN%< z<__xbdP#P7rMSDwu|$7V3dJWQ*p9U+0)l#LwWL*S#T^qWxBdh^e_3SMtc*{m0x9?>C#{RdgC?e=cklP;52s>&!VE%fcra140JP?&NN9-P7CrL}Mu(at*quFWc zNCriRpUG$LJi^C7<*3lEz0ZVqPawh*T zqXPcNp#cBGsPvsmzWrZ}N(}IS7?lrFo4!=4{j5N7>#1-2N(H702h|{zDaJAz`&I~K zlR(Uo#03Ek?2t;hX8+Bb$b9BjdTkvwHi(_EswBJz0+e=XK?uM=s5p$m2$LN`0RI2+N#G0K zKI7|Z$RUF;>rfxR?LI8)Ncp+EMft@ckM5L#mQKtpJ2<5CVQv1mF*JljFtE13Y11*7y;#;2h(`Ue*d(6ynhNl*re(#@Rxsh z*PTgT!+AEmTKp2wQ2W{WDkj35yK{T$&i`x`HgF0TwnPTGCpKM($j~z}*ld=uci+t! zHhCeOg~YDVMyi4Fe6~jGO^pn<5ic^SAb9IM-*h=p{6N6DcbK3sEzxsjc>fEiF!=RT z`hDRU7qhmF%sah;1~Q4&&J~x{OE!+Fpvh1u79ceTnTS$6`NF z7#ctZ-5|y)QKa_=bYYr4Wr;-$m|;HkI#syFJm1^9ap$2GMK4hpfyHbc-m(yiR#uCO z;NJo98u>zMf#l+du`XYCI3iPlJH%H+yBa#kwvQG?XX8c-J}O2tixL2W6IrpK6)%toos|`=7tf4Dw6^I6&-S zlbp}scGC~7YQUSE5TfyEBX07pb|E5|>912+*wFaaYE_L<>n+y~T9(eYan6=r5>gaE zcP+_vE#ixASUtP`Uf4L1w>DbsHl6<3J2H`{@(yZNl_beQFcDnLE+d)`6GBgJu@=r8 zLe}eTdX*PpITCFoF4)P(sGz}orRnP=3s-vJT#|C&(2Ja)NuJ3QwnsMV@ay1=;|JEX zjBk^;Jp-2598BoDzq;Ct?yw286MHXU^;M_gk=b|*d<+j<&r}CDKN^y?x+TIv37^%( zIFSQjDCk`(_ph9Jw@1rK|8my+k$NJWee}#j=P^pjsKZW?`PD$CHq4h*3lOLVT?mO7j4CJl~y(BS2p6$pR;H%$v zb>}(rg4V9d2fTber_tC%vpyHzFB*X(0T%4*AItPuE2O5^E(neF3<1s!iFyC_W*npc zkt$~92~YZ~isnkcW~dOT$wc{WH$apKr!Wy#OQ|`JjbntF47W|F=SAB~r^ zu0V6@(YkcznZkf8YqkV5LjNkn@Gtm@T}f~aHa4on*DV2#;i~R_<*>EeOc(ohwyJnu zR)|0dfGXtrC`m0AvlaEhwtk35_vUv8-GSLe=i)SFcVAfI-)()wE)nqTk|TPG3+!xBZ@n`SC)DrwBFm5E` zet(;GWfLKY8GXp22Xn_bJ)ZkugnjM>vb zJRnvkCtWe|SS~#2b~rFqp4W8F=F(b6Iivq+oCV<dgrMj(JS1S` zuf1A}?}nZ;e;epMC#4hHIaNc&X0^N;Xb>m1aMDe{49mdY4uZ0*`E=97`~G@%I(aQF+`Nl)rHbN)hv^H~@q4bX_mZ3=SM%JlSHcYh665@H!%PtH7bgWj8) zDEiryJn6DuP+218Ac#?l$xtD~e^Ch$$2v}`dLAII@_W(wPYUUOQbMzNZ}aRkcp1(( zJA)=qPgLc7Okc)|kT!qcq{_74H3UaZep>nv))oElWYgh7r2tdKAkgltA-k4!$$JZh zzj`7_mnsLpy|Kc$Em2A@E4`T%oi#X>T)K9P{lfW*m{qxB<2~A1>Z#I6F^;yRq7S{8 z|4wSs$yzk?H&_|RWF%HiKa@4i_acguRrIL%THa0WBvgI;Jd-Y3Z42H!6)mbRpOkMWC*wpw&mBloqt1R|#j~(9$OVW7nbS z|CXLKp?v(-%fMUD4|ZQL&91iS`QXq+R{B3oJ>MgCe$MY;I)N-;QkxW_^v*^9K?!U8 z*Bs774iui+N#?3@&bW+HUt9P3t5s4J?|Sr{ajV=Hl2vLuO&#@RiwGvprrfihmG#9$ z`PA-Y7!dP5v}VD4@n!|h@BHZ%b=ayy3ksbCFalUaeXGCnA0nJ>=G!tw0}$<^1~y6G;XRvI%U zEJ)IWEx_-;^(x_q@o=i%)Ds4=|r*PLUSLv+mYTkx`YKN+`yG9WIc=B^l51p)m%t&XS#v8rA&$j=^tRt zfZU@2wKIyjxHn1O*?Ce2eQ61SnCu`UOae0>*Iu48)neZ=G$EKeX+o)w6_vaclmJ`a z7I3q`JVPaha^j4mgZqYa5fZpc?B>_9{N?fnLtAZ^AHQGOs}|oyH#t9DteL%kq77M; zSJrLNh35IQRqLNU>yT3Cw&z!(y#<+At+vrC*1r?4K)Y;FG%cJoTFXpr#*$%EAjk!s zsz~r_&JsOtynU?jMGTtu4)xo16qxx_W;v;?xw%a4iQD9gQltIfx{STX9?lnv49*m?$^?SY2a{% z#bFSr(}aYsq3+&BK{f+Hf`oq=AZ63*gLumT%{TpB&Ky^+_58oHA%T{)f zF*iyv`K@xT`pFme(@+N^#GTx%mD6hCLJ2|zNgW8Lx`}*bBM6UMwSl2rBYpt_<$Qp_ zM6R40`$b(;3<8X|P#tg%0|9TM1%V&L;+;ozfIG(aU@=1X##6;k!Xfj6rY9#jd23X3 zrn~W=2MRHp@Y;X9Il#0Lq8wEpB6b9M9#9Tyo(VuuzW<8Y&!Rxh_hDs&be+7L@qiJ|{e zE2jqI2BG#k#!ima@T6gJS_pP}SQ#co|L{avx|Kh#yRWC_yU6+xX+XlKGpS!AHquk^ zE`R(QM5hI9CB9-(%=HS1#`0qJ)1gf;zSiDXzS$OlM&Cl;+8D1ytDcVv9hO%tPC7*9 za(qWEHk++|)W9N@E~Y@7quJ*gSseMFSljV&g@K$vo)QOy<+|A?!%O;%g<9!PW=e#Jo{9hKNE?iyl&v2(!lV)DT{@# z69ZMKRMyXA?<~~y{VT34$5V7Qcap5Tcxg!CNPvq6ID@L67d{>?1(NVKdh@II=tK5H>)q>^SF=b98^ zyL7v%;s}!s5yM;tTTuY|#0xc&Nk;*nsd_}HGyz18Wvze-1t@w3ZR^JtlQw6QUtdhIQTR+mIV z|L#6y2_Oi8etAl&Z&B^)!ix>THy4v#NB42Q%^O!Xb?LUTB5;`b5j3l!j0A-wx_q*_ z%-03isk36Fw2FyHqKXrBNm-aTUPmTB{pS-0kzuD2Q#~GEly-K#xwpE`D!jB!?rC+x zA%L$Ym96e(fR`Qywx-tJseT_$YJl7^sAIZ;+-~=St4u&GS5do$yCh?+O?-t5nEw#R zIuk%)`-yt0>rwuFeBvwtvvJ4`*J*g`U+X%sj#*BcZrb?)vjr;9OiWix?F|#c8*e_bvtcH^vtcNoaLoD-7zClz&xTu6!*--G&NO0C z3YZAAGl)P=VGi24Tv!)*LoM961%T2ak2(?%)=zu2J(*c;BeQK^K>E$8rTC`6OTt4z z(iV%Nzr_at$9+Evh_ccSa(gO~O^ObOuNa`@*8Cf>(VEE(T~3Jzo8m@9oP zK>Bo6GdNWesW#xIMhzG)@T1uIsKWCx`ZXiFXq8*gf=w{bzfnQ^2Q6JuZxX@LF|)t? zWzOwo9(*eJBPP4BD}Y{s)$qfoiY8?ha7i`8jiOM>Q8V}0o)AQu^uH- zZ@9+7+(-Ro{yr}I{MM?dz^XuSqI1mx*k{a~7LYGmI}`n~-(KKv-{-5{KoKwY<1LhQ zwIgKgbZ%ByQwloiz8XUW)Es+;yI$a=QRvalOp&8sdSkV%Wc*Aph-_MJbn2h^u=~0( zy4!y_cwV|-f|9O2KUls(ik@>}SVv;79TjVWE!9XnlsQFeHBUGnPxdiBg$rA%7!1)~ z|3~l$BBfK;_?Ug}-4;N1wuBfxgXklHOgGn?E{r{|W>i16VK!_v)FDfg*(q>dQh^up zd;$oVkXwB?MI8u#(yg-Z@LF{}yh`v+gqYi5SSoUYKcge{w@`o5&OJnFEN7GK*O4by z41e~PogMPqQt~ek!{z+gcSlp`NN|C0X_;ZdJMq~h;Q3jSU9Ss$2IOkv=4JsT% zY|vzTQ^7GU7FNyHTxCkki}Vpb0G@ZJsJ9A4x|G9@3p9}$X($t&e^!6F6sP@dYr%S1 zj{UZx5^!Ui(0|7ltt^DzczBlC&ht-VJW1AzkB>K2noCbtTi1M!OKY8cOQ8V^2>uw= zo#S>b_h!!bGH8MkSO6YCoRp3B!xWtVp5MR}0r)J45lM*GxM`n8M0X)8*h%p6E3G z;t(|oc@IXNp3fsLZ_BE$x2uVqP53!MNZv;EH?SBQrQz#&^6i7TgYaDjUZ=`>MpBmT zGDc^btL>}+W{^|V38d=0cw_%kke!mZ#iO$uI|WmFogRZjI4^gf5&w`~`fa@Nu#J2xU z`b8<2IpFeBn|O6QET7V*1T|e66;#*qD>jxu(&F#eVooIuArE(Ze|6?v8Y4Eh$fU=; zPWz7xebtitduI{eBHk+SYnR&Y8i#e9t&V6g9BhW35(Zk|qFTy@SFq2f-284bVgW~T z?UB1z^)K`6e9zHxk~fC=649&Rw9~K0mCc?RQsJS^^X3&AXvUWCBb}rY6vnS$pV!~? z=>Yl7jkyMtH!{sCm`*$4Ar_TXILle5R!Sp$Rr6+smFar<(OU-8ynsG|PPXsvS+`xI zA@})4WtMGkP8wYAV7#|-pHy#zqfJeEjwf1~ja~yTeA#l8QKu_{pO%cDE*H`5jC zFV@UP^f)Fx^WFAh@Q1Ob8TBQ0othCKRIyuiBIF245du}{jPfHge_d?Hlj!*x_U};H zScS_KZI+_(CsEV#x`oT$^&T&T;eiGE_sD$7wp<<7wHqYzMGR-;V14swye+Bg)OvRA z=ZOJ1DWN=XkOxic*3mWoaq77hWJ>G!!Tr(d*a}V^e=Ip2PX$u})<6-$AOTgNmZIkG zzq54pWFyS}--Eeh;@MM0l2M@vG z|BxHLT{xCW1xOH%)VENmq{z9JPT>j?_y?DNV@ZnkAtu;#$zaHd^bO43^BYG3J)lo` zl)#lERG#zl2vbbYsuPfyd4^G!-M9ZP4Q(a%FehJ47dU0>ze_-|`fS+mhd%GI(qMUD zPd?@+bJ^L~?nE@q1|3lf-+=K>95>L5PheZC%7-PH zF?`dgM@h7U{Z26q+r3q#)k4i2-P^iBW8HD2qpsdRbbAa!q0CY6n%R+u;AMJwZ%D{h z-f+(0^RC@>zhKv;zIT<(;U1o?1s3gpg)p~WZi^zY`4DCWUOFz)2ya9SGheXqT`W&& zEs24c5cP#~M1i&l+_X+gW8)kMd}klogvq`pfu^U^l>L07AIOM``tPw* zvv^8cA8SsS9s2MfKRcIQR^>bCF9dfT|094o;$q3Vqj`GYcpq&mvtv2$X;v`&_t2>o5>7D-hezfX}{gI7C00J~3a$clnfDKBeO@GQOK4e@7C>gW&_y z^Rn2!{PN0k@JCP5{`4>^d-1O*cj7%y24ve4=FrqNQz>rrH)6Wz1IOuu7(zDmP$*Nn z+ld>b7>5aw3H4mvvLW%5Y>vz_)c)T4IkJ=ZyZ?vjjz+8Hsl9yV`w=$SlO4fZ7;>W? z4m0XD9ByxQsgU z%Yxm$;nM~es~$bq5WUR&KATGzL1P$!Kto{q*>ZSnhQ|dlUe7L&K$NZ+d~t+~V9OVU zhuOf7&GlhU8!0OEn!Ko2$bH98RaN4laqM0-Lq}nrjIo=^Qg&I(%uEiSM@@NzFIyS!=LuY!1=S>>UMN4-(a_* z(_%led2h#Uv$sq1&5r2^7x&eoE7$3B(9~42ZVbt4W7(j1cWQzck_RbDhxOW1B(5MI z_@Qw=okxg|-sasew(`HOHTCb=&DySu5OHe1{52iNo(^Iu((@Okft>yIw+M~2Mu;M1 zu9p!0d1l(}g$QJ|N4;70UkP++g^dNSmV`it^>@2vA#EC<#@g3)oWmyyXAplU zU;QazNHfaZjDlQzsI%rnfUW$g_gcwYZ6%iZD_NrPD7JB@*=-xV(V=M9o(bko0xfYb zXp+M!(CFHS1tjAyW(yK=u5iZxhJ}&8+nB0w+=*wmWcshFoD#{d{hhHzfZI5-Ecq8lD@^#Ky8XrLbcrkDgz?uuRcb(% zzV{rl&v-K)+KYw4aH`b|{MP*Ef5|B3yuytjB~i7GHI$y|_U>Qy+3m*l0_%0C{GSb; z*Chz=_ySo931NYOkcTE|iI-_E}cH&bgdZA~G1+?(*QEfl!q)#WW{qx*t zViF(O#p=U`>*bcj%R7RD=V%ub7xoId_5p~aO)US7Eq#&>QMq5eVW|k=#cjXhGNFYq1HU`V;s3XLOZ$RmdL-1zCKfmf&=N%Xqz*+&bbQ#o8yBqS|C{|-sLJH;tgUWMrIZxnQDNQ=49{S48J0b_ogkA?7 z=L0{yA|R$K6#JhLT)xW{lnr`?$KgB>M4F6X;gBlMo!$a4;l|bBq{xOnE?|>dAC%6qjy)eBBqvN-GMM^|=J-TlWr3%6CRhghrx%~J9_~)u+ToC&i=VJa8!nUNTT_Kv$;2G!^ zh41NXs#=_#eiAP=cMKy$^R3dXTD@s-IS2iffdIg06!$AQjRl8)%Wm_%@z>tZj4x0z z`k(cVF_s#VAKJ6*;sk08?|k6KOr*f#T!K8PnabUX*Wth&m^n~9a-ZciU6VSV~h3{brq*QaeHmP0PVMuOqE7AT300VP05ny zlw}M8Gvr<3vCszLoYf3G)0-3Z{*P4>xX2mU6Zx2StnDsj?h!bCR-4B+SK%gvpBf_L`e|7o)Wc+0A9fV^PmU&!AU>MF5-6RyvHZ`&$LR$?)3~KfB z`z~86HjsmZg^+0Aj^k_cFMs*p7@HmUOUFrBwl4u9!D@KZFSU~xFGMCbWLBJ^1SP+hT8U`7FIrC2aXzh6B)7pVX$dj*N3h2f)o_EEokwT3CD z=LW$_h_Ca*`jr4(NsFDzJ_!ecd0!pufsuLI{ulNsxBECG!ZKg99cNptb1$j`oD)e8 zTF1jhj4V@QF)MM_tGiNhw)(|#cwscX|9qaQX46@J+kD!h0B=V(q&Hv1TeI1xU|OUA z+@GH6*YNOf{ESLZdq3^c?ErOcE^x7qx+!^0qid!@^yU;f5XQ?*;m%;koimLkbP zAQlPTuLRuwr`A6s7fKSzTW+b7BK?>kLXl6NiZKO^8x_+c%~GS+GU+Xb*mv(){??zW z$X$^IZNzsgD%%zC2062hEt`fnU#7h`l0#x^8I@uDSIuAvl8`$ zTXosuivCmf6kLSpu@f_#oq-MWqiFx?^?iulL=JWUkPyw76#0EtTZs`J;`YU3$LF-x zW{=KjKZ(9EdqhdI^Q+Yl&buhtU2;igE4ZPohAD)7ClbobL==wW_v5$l|5{%zWKR8T zRj^#|b=`nx`^|eze0rsiwVF2pp90BK$ql^1x6Hd!5$Rl_TzALgu-l;s-B;1`vvtM^ zU!Wo4s3ed2${k+|ywLsvPdi{gU&9NlhEx$mIlV~6gffkMJx@3GenW6Ug#1{fe*^z$ zIKr$FFb9bcxH<)=j=o%U{%fsh&03e#%d=8p+GpIN@?iRY{_dME!6PkI--j$-cB!H6USA1um`7Ci}=?sXknkNM5RT4RJExdG^7q_zh4uk1J^uY@xbR%*w$?${{6j`s2sx$zFAVt4mo`A zcL@q5{~+RXx7_tK48faZkzVqe%@+;~21Mnk2E5&=57c#l(ucb}8v@Pdq}tsry8@zn zINXH6uvFb2qN(HvoxKVr&kKV%vl~a(Q`AlRW7oCK^w&$Trf7j_vQ)Pn>k4fm?^_-I z_QyH?9*ihIO*eaUwLY5C?Hr&T~A*?Ldp^- z^dA0$v7P>TuIt{8S@natB0Nm~G&K>h?1v`9-q+X=5*I_}>vF|msqYc^gORRGLBx!du8;Ge75;$38t#%&XI9PLR`A( z@a}1;^3=n@=+w*BpsEP8J`smB&#gBnp=M4UBZ}n$Aq@-Hk5K$LX#LjnNnODZAQ7!gh)WlEy^y~SkX*GM6 zh6G^xXBhgCMQH{Z3Y=ZzxO}U<`y2WI0AM%qUyf%5 zz*m?p(TFxEZ(hYOY-1h4v`7Q4$3|6syCq%!=Gs}P=t2{Ito^=pJ1ucjciK61#XfZ~ zwWu=BJtY)_0XvC(MWB1Xr=OwPLX9M-b8(|=&iP>-v;K;Bcg zhI(?odJN<58?Xuy9QAW#v#gZt6{h;`iXsS7eswa+5Xj?O|0LI zh+e43K5HHD4@==W*2tEXQlo!IxPwCfPsK7W~*SCLNjF}S2bvK*Znd#1#lA@n`F z<;(XY%#nT{<=SfK#SD#LdhikBy7cVbQINAvSO zovKK+0p2JZRsoaKS7YJSL;|=7{o8qR*Pz}%sz&uA(xhdK36Bv25IB`LD9&4=Wi@nu zBGiviPp%o$&8~T%7EK4cOl@$uLEJwZ&Z8Ju7D>mS;XHJ11;MWs&Sow_%iahk= z>BmR)5tv+(UxLW>520A{ncuYImlP;xK-jjPbY&GB6D>wNi5MC?5UoVOna>fNgRJe; z=!*wmHsQ1NN_cYyG8)v4^e{vx&DbcdRl@RHV-*oKT7Mc-gR_^$pq{6DN%4(G)H0_* z#1?lsk}h;CXV^Rifg66RvyDiI5f9+M6i=pKmihRVdvn#hEk%7^wcPUT_c%&dnUd_> z{vx5pmkC6Cp<4HwbnB?;O7adryni)1uu+D4|I9ePn|(nmU){@AR4|41fqWO*MlDG9@O>xrG&?MsQ`v8jj_=tBj$at6 zP=W%&3u3ZmCUP>jWu3CB0JsC`o;MZEWyW5cHOvGhzX%30;tF^5Ywi=^Nw`iB<7D|y z$0s>U?;8hWbsS{^$pa4rk3K)C3(X|BM{SX0a|H!@^jaie=V*a2} z0K6K0i5I`yYQDlnPQlP+2UzuK($|KUK!EFG&bXEQyCFnGM(ONT1+}}MHJWH~BE2qc zKj4vViu;zm2(3(=bt3#Gl48-v~uDh%Ru=SaL#t}1AW07J>O&1njHm1^3cW1nW% zIIUkjU^5$Z(thQ#ot*)k!2IqNqB%k353h*x>O4E8{j@V!{y_0^{lFfDfgLg8U)7nK zvM7uN`e!%vXm6{qWS&Xn9@}Ps0{Xww0JvrOd3r1yt!mskuKUZnd;XB`63vvV@;y0h zMIc?v0Q5TG??|Zl-UC$xNS*qYnJlHuKw=2Ro8R*t#F&`L?yzV`y9E>!3L%(Bv__SL zKF>CM0>jKr zEC~VFqP)92dY{1C7+ygHobsnbu)Z^lB9KT}rIfJ!d90C!9Ls*V(xO60n@0;#0i5Nd z{Ej1>0~Ws_fT8xu18t7ZFc-^3Y1Jxil^obb8m1rDfx8f=X%?&H1%A!v($Z-fGT;UE z>eEG260K*l4c{Ozrw8$4)zL)sCAvgRpbz`1$LDf``FEzk-?44hLyJ`sDPi!YORS+6 z)YAEk*4&Hvn1C%Q#b%ARcL|F2KBwVUfK6ks5M>jMfI&o6LIv+ch@>k-v*PL+uiNP` zsNPV+iTWr%wp6)ovr2+_7cs6O!b)`!1SO7DBp`)={R#7A5DTqlhc8m=k4b*s;vCRY z9+Fa#&m5vD3V1;FNnD&{*|mdWPKSh<&)LvHJw6%_MtELVzh{`V96tl`;<4$15(tOi z@G7W8v@9Bm2u(4-f>-w0q_)E-DuV1r6=)tr#XWPg9|TY~q9+RWGu%wc1E#2IDmt93 z+4KM~t_nTpTl*%13|VuDuUHTV)VI>8cz2!3RtU=Cp%QPqEHoC8)u}`4&8-3^&3?RR>tZV))?4at4E)MCOm`K(dG3!Cz$? zEX4q;1-U?T!SwO1CPVw`C)*`6W28ekZ=u^_E zH?U>;ViQ_%^-i&)4pYVb=)`-aDr)S)Q)kB#yC>PG^&d0fMtlvv{aRg3QI@uh2s~&n zw|>~bDilQV4=YR056I3j=K-)?{9#M6aVu^Q;e0?RRI)KClYmMV_e-HsC=Vh45Jnh@*x&i+@n ziWjjMXlFz+&6>7=He91GOitjLfbFT*sVdO#xGFT*BF~B3U>yUhv!69N--FHUD*W~r z9y1M;@hMJ?%YO)1P?7+ObgE?INpsQIbbJTxX-QQKT?|$+n{Q> z$SyuWOM5TtH;i0*5gsjM=O`4dyMR`~qm}Ism_;@z*lg(kvH+cDw^A(W!nN*z z!dyQZX(pvUN`tCvBXm&5w2H*&>)BmL<%u_x!9$vp+zch3stpL-et*fKQa=id&RD!F z#|1K4#c^NROxi0CRe~Go?fQ&LbI(J;0F8mJS=*bS9CPPx&sLFMd{xLx`5_75=uD~` zsDD7>FU{ln!;6V&Ue732#7+*MWKXJSMbN0tB+ugKE*6>nwlQ^qS#`+83-Yokn66XuBd!q~*cJ9aW)bdukr9ftSp zrp_CxT1Moohx&-0pWbGmMccma0m0E_RhHvU@4x2T^}~Ksi{>5_HuVp!JSXb#83{ZY ziPAudLv|{3@h>xSA)? z-eUCAt4+ctX>`9?4o?*-bi?UwHb=&gB6_+%n${AIXL&ubS)SCFs1QqD!yCs1UZ@=qExkw@d`TOsfxdj~XaVM$?Iypae<-zjZ#rJ4UqBEO*Sd)y$t6lx-8> zY59Js6zdEsCR+WY5+TojGjW9(xPN5G=5Aa^rpW<7^$NjZ8pld+;r$MHNk-N{%qoR3 zEVz%WJQ8nT;M7~B67f#vhSqZ<>0_t%UHdj-jFIBYtHQ3RB?s>j>GuQ(&DuxNouPmT zEw9!}e5I!@QpCc~#Xi9~XSKpf${aLy?|2&ri_rl%IFz@kaw97_tjM%AchM>+KOoLbg~ z%Ku6^^2aNky7vcUEjA~SFNpx}gE?BsMnOhVmRqD?!ghHhdMmm5!cICEM4NZ>! zSI3?#UjfAJ!1(}6)nsv8k=u614RIuP;8Q}azePVTUgNA@Xbx=@@1YWB!UhWuX$J2# z4Jo;l#~*-J^9pvC-)BR=%a9>UpYRVGAvcZo39j0Cl)7BX2KJZA-h-NB*b{s2sDc3J zJLlisFr{BF}&EgyazFlm515Z0{GzNB_g+L<)s;QFLEPt ziiwX~FazdXGR0y=C=Yv%@BP1f9`tC^oX2+MTcT{w@@|$t&aX1w#+n7jJqk@)Zsm36 zr0C~Or~kQFd86(!{sd7-XaQ=+q(F*cCVdVZ0zRrx^oeDoLfQ5nWyi7ay3) zE|$bQ?Xd<~x@czZC+ux(`&E3^Q`>*Y;uUD=5Lc(wIGKyt6Cl{{;_6a^3K2CD?=Fsb z)dOC0ca3gz?f%QbOT=oJ;EV>x4#^Fsdo`azi??g`{C$4aq#vzh*PvITT6WZm=#BB3 z1>@5-b~#1w&ANW8V=GcApWk#5+hRl_GwuiH*)p}JI43m#mAWo83m27pw3)7tiDPof>X!<@Pk8^@QmYQ@RC#XkOwQEG-^G!Y z;~a(QnLXdXB4yHbLx#w1v9*UQXFpzI51o z;_x>@f$s&{MQv)hgu{Y2=9AxOwwWlG<+d(6@4OD979gl2BO>X_H~hzxpS{|e+R$H? zJ58XUt!#pqN2siaK1yeDQGFKQ5ug*@5HM}AF^0&U~{v&-*^h9mylO1510z8pK*Y$dcHIGKa!yJg*as#n2mJ(eBbN;3(ifrQZ^ zO3AEdhH*94jV%_X=-k2{7fy_lY3Y<>6o2;3H-a<1(y$vI&(=GHGm+c3pBDH7b5^O0 zRu^<=NBPon>!_a17t{tz;HqXB81}APAF$effP)s_PQP^3cnA zWAI1-?=S0J-f`8kdvfKjP0G@C1pUEMmMI8UO69b`-5XHTLz{@qhe`Lfj1jTc5DcqY zgo6g7gb|?k=hu^WG7U>YDMq|A)2J@i5tF_E5@gPO*LD6H+J|bQrAiJ21${Ix{Rxb` zIp5DwcoB6G3a$GXh9O2-U)?v5yX?O)PcZ4L?-41D>f@EVP6)o^3Z1)XS0hp7pWW1p zMLt&KB7qQP2vMnjyx5-@Tjb^5by0A&yyVBUUEvXb z)N%OUw{Scbdx|V?JYA-+6TTQB1h`MS!jF2!#PB&XTT65WPSivh0opNDg{PPMBle-8 zDMx2ZMHgrpY0t#YI#m#V?kUJ;3P&A*9gi2h5Z~q;9Sp)EB$zv^sqV`yKGcrxB*Cpa zNohAi#tQHp?FqKiafc-xc}^$(Xj`#lb`n&4>n>Xu*b-^}t3S3Hp3dB0>~_?bwQPo| zKN^H58H2~%#1W1=3Dy(J#52KvF`tiaGx=r4{79U;PS>5ri8byajNAe`&Hwa05m1DOGPT^6Oj7zzS zn{k;VsqR*89KnU!e&F=g_8Ikp-d`t`PvUm_6AR_dm*YvleMm6%6o)@7E|F9HJg*9( z*JEP(Y6n+*IgSoo_<2hdEATUi;LNue@k!dZO(gNAGTBB!@7(zQSBsd=S!~_tGPf2|oqohQ~=M-CMO21kR+?Zq*dS{;D*xlE1Y{`(= za{WPt4h{Wv0L&Po7?M74wfqu?+Pm74|MpQ~^;(n`XOlmEe)CGz!IibZRKCeQ0~=9T z9gNV`jCFR9_gE$g3PUTZC<;^K?ql9~H*IQVY6;00qRl2-wU)jEVXGS+;gEEd!w4LCE1+M<0)J z!9eI{tf`APr8@|70(|pz6>v&tm}k$1Hd6VJ^;&$g|`aUwji*B)YV9X4y^=?#O2FWd+oi^0_Ri~B8M!L{R@FldPRriwt*VwjJm2UjXQRkkY)39*;5?x{x zfr_U&Gp5{-YUP!DPF+5{GmGV{$?L za6{}lgEmefk)v0~(F^F-XOsMAqM?6I7?PtB(7bMwM&4C2#BH@=HWtRw`@D3TeP3(HPv4|%{7y7wrymIxjx{epWd7II^9eEjfoKY ziy+`(WgLVhl@P3z4asO6f0S#-W*YNW<9i!^fPt^cE}W+Df^zPj6yLVnYNS1U<4;BZ zuZyH?B@0bRVMRF&C0uQ>LiW4q#<6cTj%1xZQ=rfMJ3aWv_A8y*AP4b?< z*^{e(z$ZY=kp#6MY&2oZq9V|pGHC=RuUq5$%9>rFt1!e?OJe{e!H54h+f@2)>wJHB zLOkF6JKI%A+pF%0v+p zq9rJ~t>A%NIZo(F|1#=a`+Kv0x^};fC;0YW0qN4XxG6!-leRAp9A%~71cM;Tr>gXs zCacbL?PnEq`jPHGVI)CjUWA_%hY9>?^xepRs!IzuMkEe+kJ?;hoov))@6aJ6J&K1mpXKUV( zC%lbyXuhZ7Dtg9g$P$irR@%KrrRvk-+mS@AV_nMUr$*$13Gy|bZ{cIQ z3aC@s6eosUc;?Yp_9h_}<}^sQc>XqoAnLT>4Zpo3p8jy!tyUkg!q}7YNI6^90(8a& zER4sK@T2ohirKb-h37Qgu3Pmrjv9Js#nil-rOh@=>m9NDo$NQuNhB&3cHk}>?x^mB z1m8nHS6>eTpY)^8KlOYk2v#m%TYM%uH$na9Bc-JZhu7^%+kpW({peKm&bt!E7g&L@ z2jHfUHh26D-}=mGlN|fy9HV~guZVhgC47FrTX?b;p0uvza}`iinfhl0^i0%5VOx?9 zS354=lDl+6|2V}Jb3zuIiF-`_Y8%r!`G$x~wamQkC70JE1WpMWNpshGH5V_Sf-z03 zxUu{x`7Tvp_eV#55O96>DHf%SSM%YUCh){Wvbl);d&7mVwKPI*XIrK&hlP7#1nO%I z#(pY^6JI|tzvy7RG62l1bFv;70Zif7-kK9Z#LFQi_xi_^nA zM1BE*F#EhG7U-ZL5X8tmbBsV*;%`<4aH&RQHi*}8=j+Hur~d|SyRm>DGC$9@qGN12 zM>re;eEVvZyL2sq(KbbYqYSk?hwsNJKx?ky{SF_e z+^~Nx_P_k_+=h?BcqQ;UgJrJfI2vZM)sRzQ; z17YfcF!ex~dLT?a5T+goQxAlx2g1|?Vd{Y}^+1?VYuz zK$vgJrJfI2vZM)sRzQ;17YfcF!ex~dLT?a z5T+goQxAlx2g1|?Vd{Y}^+1?VYuzK$vgJrJfI2vZM)sRzQ;17V6Bj0?g52ExTV{7)udztLAPa6NjM)0q#8Yl^%z&=)RwIfqlMnu1 zkow+T`qu|8dPiO}kpsQO%#`+~Z20gxyj0vG!`vXcMWG(B_`ewTXRce-)BJBQD6-o#i#lRosW8BKF;L zNM5t7VBm-W2AX43JvyD^pjD6tQOTQ(?dIe^rc*p+73CSxq~!m%d% zvJ(q{G?GMf4#GeT(Lm5Zo8Ol)Hcqp_uSR*^V>!OPb%DqS>wQD~@;ODn;OEZ5V9CHnXM8hT^ssJk?XG>X- zHx_#vB8gr^ObF-pyrOHeiPZbz%OBL8j?c%;wW%|XJO#dpg{Wrw;_?#Wnqh%e-@Ffk zIg0t+&J>>_&H@PTEG6(udg$U{`h=N)(MJ_A@jpod)Z1S8XFc|I==k=5Gkjlp3Vn+C zcT|;2`XvO3x~}yCM2K}vDxF>k@&=Vr2T^rVrC%I1Zlkq({ehiad!SZz6Llw$Y$T&P zU4SpKj`Pykmtv@>%$Jh|?j4RE)^`1bt{C#^-`+9pBSJLC1li=XIaK5kQoMwHNK&sG zOag<`;|m`Upst_Zqisysi#^yo7b8E{-ZT>4|>Fp4gs%XAx=et!AM zwt*YqSx7waEYSZG_wf+VOV{livXTBVNetA(1ffJFOU@EUA5f!3#Zy7~;b^q~RzlID zVp6~^N>1s~9WDtJT7Uy(e?ox;^Tv8T(cs$CzP3z&xcLQ<+@?pV3JC)YX!0@hiX1{2 z+_7#OWweQYa_dBSWLLSEVIO|=diVx&y}rFY44CD!CfTWltA!->Tuz)eI!*n18`jkx z1Ar)o1JL0iPV4Fnl`5bDL;p?Psv}>*lBu(`paKQTtt5Ky+we}YSz_)2$m%NA`#!Tg z2kor3EyRFdO)npns0xUo@(b!4MA)xLAUZ@k-@Q8L(j&z{QwTww6Yt(9_>b?jaLZ_V zgBksZOk`+{h!DCmyJwe%&1+(%6Q*F4|J_%89u4?6^fVs5plb#p!*gQ1ik@^OJQuqX zYVeUD3<`*Vk%qqg)P{Go>OkG-(`5+R>d2MNJou+*x7vf)Oj0I0yE&1cWm=*-hYo~W zVPw_c*ZY_x%jR2N61Rv6LL=uhxkX>>BNE24Kt03}FoVu}G@&-y(Cm@Y*7Gscom#Oz zaIh@=DWD!mEIbb}J#{p-=1 z?VX36Xxy*GS9ZllVFVdq9mT%UQkg4k(@v{4nNyJ$?E{8rTeb#`(WExWcQ66+$KXuJ zY=FF>F?j^yqP&E9$&B@dWzc56jgS>vZ;Vg%^-1$S?&SIR%%HO}; zZj#Cpy-q2jAn}FTV6|t4`axF0u8cI$E8q~Z55I!MM8{Io?eq8V6Wa2*$&nsDKPqs* zrW%@LjYlOxZ#Airu^AM3j9%iKSIMI5k0`enMAo8IE}oBhpc`K8YBBm$C|!tZ z-KVp6D{+^2K6Citl1@ZrL?`((oHfob_?L0eM`t(12o0IZB%e>_gxJN>`lGA?9gAY{ z(;s!GR8E@yJ_o-EkYn@q{Qw_7Ca5nr3qN zr9x5Hs(32$$;jt#62w^RE_*sr^)db+7YAZHFYdb)j>RcWNn~+Mf92D1+#ZeieHL^`)NpSl@1X z(7#;gU4gUXOgU>L6Vb-6T`2Ypzhp-E6(GS<3`^Njjc4A@EkldMxY9p6~iVX;R zlON)G{;Z<&t;m<$rWs@7p|E&FZuu|EI^&PD8O$YSRkeNoX-^ytiOGMSNK`$U6}-rv z=V?aM$1v{zwu*=90ju!f`PT4rf8Y|4x6*|TXQM2Ae*Uuoe|8(8%QeHRfo=E5JcbBE7)0&XLxu=UBzVBdnRQeQ7 zVB52$36seghe?DPVV|Q3$n1(GGPv8yQ5YPM)z4W4SCpZLUs}9JD?Z_vlD{6utoX3r zgq9es5)JeIw`EZu#ndGM0@N#v9jlLeRysD@x$)wW3e1QikqJ%XsujwGjc&1k#F|7I zNkT$*3GPRWLf_F>z6`2cTY-C{a6~oA3NJ-}s)M{eDeelX{&~B;hJK-Y{D7Vrt`Bh+ z8xvki&2pFv+c7 z&n~!JX)x=$j8jatj)6UbTLzm{y8y}Aph+4{q#ufBJ0yEAPjj**b|oda+-01TMJpM8E# zsf>@CvO==(sN<(ji=_Z!JfZ4Ou}p=R#xT?KXqY}xCPrqN5i=V-I1;&d(i-RW!{LL} zkqGK*f61%Ax(q2cZtHfd;JKr}ctjLDBuvht#Mj3rML~!njpx<^1%fk2KR;X38;Pxc zO}SqZ?m4_VZ+~hj;|B9)ZF_|9nJ@gwvL+`}XPDe4D{$cLVlI=v?%FN+b;0GJhProt@)V=?{oH$z>eEDz8ea>x zdUU>23aq$sj9@}S%^YD?r@v`?+OO*AQ^7i{#Fg|N8~|Y>AE6wu5prn5n@x=+4(TbU zgsARM6hQTtLp({m`4tO>y->&U#P?E$q9L7y6N`*m&QN*t?4|mBp&O zZ@$Frw2=J_RFH6gwr1=CGuhcDIHaCf=I6OKP8!@aR=-yH^tinV?M#D*#koQZ^B~hm zl4!D9RKi||lvddQo4Jb7BnY1Ep&|82X2jd=(vAZ8mf3-%RAT$mfcV&1*XB_QxEB&^ zjBG5p9WYXBeHrr0n2EqZEywbbCU*;W@Fk~D(dme>3$H$Zqnq0D+BZZKA)qoU1CAjx zPyQXFO=^CzS~wB?n!bxTu7esx3b?3TRS{(17P6gK@sdIsj_GXddRCos!D5s6ugL^f z#Fk2L;*wrC2iI|gvL7jffmKUM{5z^=_P?q4pXQdyrBWe4Ap2ZfJ4cdGgXMkB$KN72mKIzoFZqhc;^W&4=GeRu>r#=dNZj@-aHy7l-w2+lZ6r>p z9gJQ)yHAfG>q%O>dry}KU+kleSXj+JAI0aiHA9GUdV)7B?S%JO)1EFAt+O&0UkWaV zRe9IO6G{9fDi}RtqzGqGPsW97XRSj5-^+`~-gx&T^l}$d^ePpvDX;0^xC{XV~k&6DCnJ-GNSB5YT1zba?^KjYqW?qe)3N#M{vG*~_Ur5(&vDRO!y0oO zBOF7P@0o{9Xf7Us`;Z9c`H z7Uz%VkkgtSx(#z8eW9^DHR=u*e4;waOyzo5J2bM`_P6sQyL-Nt9w=XYaHX|Ss$5Ve zwEML&6N$E^bss@~Kc(#>eXy_^S}{cE;p4U`*^yv4k}3>-DoCYT^K3G(nYevxnT<~s z>(5m}yd7W>^z-6&=W0C7>3~)}8|I6SW-AfbPWhK)TlCwVaGTr#8Jq||>q#shon6mM zSqoI5@}DF^hI}(;YaHdNUBw;Bf0kCuL5@5X}wT4tTld z%q>WK#Q{>N5Vk2lJ#S5_A&AkRHTYQiNB$G%U+k*@g72@p`dSV8I|Q!jp`xJT<40GU zVJfTgYijRk0Y)IQ`NIhzErp|&_g%c#^qs^F!a&ZD`Fp(WT0eo*dtJlP!#J`0+YX$` zMTDm#aNw6%!B8e+&!cw0xaB6Rm9<2v2Af4H+iIL1SpTQA;5)M8f*xz0hSc+J| z6+<3bZF(8&_Jnw^9KPlsx#35WZHdZ^QOhk9wFJADMc10v{`TNB^qu@vZp}>%$(2F{ zk$M)%Rypu zu%{3xmDMM7q_$Ydz9^O4!Xh>M>!hPfv(|jXh4vR_4MT0|bAK|^1o_xi&mgkivGp%h zQ#KdVb2;{6JtS%0_|M-x<(46y~(!U#W5S4m#+TsQyy?XjIqukl5l#XgmoLe(0B-dW>29eF91(7YwhTwFB z0nhVgAlA=rt_Do^$6il`bU$9)wC4`dK!p*>;5R6vhq`qSuEN05t^JICWBM$Y#Vz2b z?{6O+x?eh3Qar|JV(1iL;HCwQ_vV&08Id#CEpmOp$s1B(kr0&xJ^NSqp)+9eH31E5 zT74}LT@0RTFGSp~9`d_u3{f|J_4x?40p~`@>BsSHHatZ;m~n;%{)VjWm7KHpsH`AuEdlp=8?4i<~@ z>I`ym*1ALjZ>O?qOeuV&4C+Gbw@t%atC&UyqLtZ6sSPUJLktp%4_Ix7|pT#^7|&iAwF_Vc6&S9Zt*a?bf0waE_k;9w7CUK zEMs=jht9X12Y992DT9Vkvd*0APR^ip+!dn~!Ara|TDQ5{wx(gL)E(~C@xfylWdZVl zN%6kcN+m+=jBh%MW++957)3XtVLAWyBKhc(G^`IfV=ac4h_`=V7J18e^;Lbt9+qX` zR?c+4tDUKpdK}o%%mLq)IbzZvwn9feYgy*^2g6x28e`qOddR=6UO z#4xJ(&u`1Mbe#zuG}BwI|C#*cG=<=Mse7-&ssOFQlm)EHN1p6snWU10-dHR zqlmBH%|?%I3qURhJm0fSNcD8%ME%aR+rw17vpi!V8=!REgh4p+)q&|>vAm++Z!H;C z75Ar6@K;x4V$}9 z<2B0SkCnI?!~EtfK5=0iG*479O>}-& zXWKZxOs0a6gT}R(-IUykb$-V}UtHtljSw%iNk`ltZO(A1M;F|jXf`V%%kk3=91sNBSK|%x<@UHbrG$*g3YTT=oy-X z62;4}GfpZk%arT-LkQwv&fwg#(A9bU{ThA@Nt&3pHxaDc4BB-0k|6JY5y_Fkm9;bY z#UsgWGlp7aBF?}m*bKwo2bA|MV}{r3rvyFPHyMq>57gPt!pD!%H+D&YilIzxbKCHD zb?&=TQ6K8wsyMnrKD&>l+1;%+Lsui6PH-hlp9C;56QP9nl={A#vw@~CUZ#qW?GzCv zvjIDk45%HoO?5b|t#Zkcu=F8zjKs}JRyg0z$&is1hpCgbe7kx9$(4Z3mtz6P6Uso; ziK4u_-tTmJHo6#00yPW4HeQbl(lE$dXLX|+{pQX^C zcJrdaq?sx;QGMhL+&n0AWaRwUH=;zsG6%fsEYgVRqhWDaleKz=%6c3VU$Xx+ zGLgm4xsszymFnV0s^*fwbl<{LK);{$DyH(Gda5SZmISCCoNM^lWP;9aVYwXL24JiX zsQfg%%`Ayhp&;%PS_;q>=a~+b`9T+^x#1X>VAx?#Bfb+Uo2m_ zr9vxGbE!xIl_1oDhN!OdYJt-iea8Vtp7vH<;-nC2<=`+(HkT}z~xl{z-0M#l05>KEs ze7x5#@H~&@jm&KC#u8UrT*S}$zbnAEzJ znBW4o46SI3fAj zis_PRf1a}@ zq`}iKVEb>M-rpa|?V3t2zkYLm*KEjM!hXdKsr`yt80(Gk=`zp_F=8*i?JZdpL0kvw zc2j@=0E(E4gmdos%>vG6l{c#|xdQ1&0P`nX6P|QXX2a254iQ6n=Y!eMaPifgQ z*imZp>vaEW(r09^ZpNuU8_Sk*AYQGniwV9+bZoF7*et`~8x{a2{P-wjnfj~?CRN+*X(0fkZ$H6HbohlmwNeF@%wj&h!x3)QT5bCYSk~f%>nY$6 zQ0sB~XLCNe)yD%59_pyA#e8PI6!$L#^~|SAGs`tMW^!pU`P_Swh87BN-@kJ8!|L9! zGY|?k6z2D3jr_wxFUBSOm@y9!9X9hdB9qr(rg%BvS231gckoasftF#}eA0#?xAx9dvTtDM|P|hxN2A{Y>_AYRHRZ z_&4X69pkqB`KBhqLU}w`oUzWrI~ic+fw7YdTd+5v*C0W_65b`|-eu;p*Sjd2Nd%G} zl%j~rt6IR2>@*Rvq=*=a>p)@uB>yxx8qQTAlzs;fBY6 zbr!Ak#{_jePqoU>QMENI;JN$o^KhRhxur4!x@1zEY&q_qe>K-p0j)P8pTa+Ucc`Nx z(JFNNr|Xfv`dg(Nj^tz|vwNpf060d6xc6uRRJZ7Y9$rt?<1E|zMzs8INdJcw8!^sO zwE>joT0ObB7!=SL;|zD8udj>i@h2bqIhR0@F+u{2;ER-ao^aMaNth1!qO{Vl?xs6E zNP@~DuC>2bfG!elF{?sps@*WzOR@<|=ncFQDzIy68MwtkT4^Z^i5h`~*(=wp=)ZoW6HzF9G~zf88uJ=rdv1n3ZNYaHwfLxns_r?<5@2*=eC2vJReT}Jk$Qr%uPX$w02{v6drFT* zG=_Z`bvq1DGewuo#0UPEwm#*J~X+e^wIglLW?BM43*& zlM{#nh~F^xHLgqhSbZ5zOz#h#0^c_Sbf-?lR;<9e+r)Z1VWa}hc-2kBc~SnOq+~ZR zaDld&KC?0wLO8nnxIQPXG;%ZPs{pv#=ozD`1(P_)nlQSa-A-@5-nV7iS?$6C>$$+Tof^sI zdRybpuDSd#oVukLbiA%wZoPX)){P#(q>L0U?igR9~B`w16353wU)- zi$N^=uR-nF_*|0^{`b^3X3^iq8WVbqYI0q8=jSSep3p;;eZKU!>?<(dBL4`RQZ6~r zB=g9cn4wfkF`OjB8M>;HRu44tO|Ps&JMPBMd~U|6?DR7M6(jP3H%~K6Yu{Q=@O7R) zIj8a`_YDpJzd;=hfHGDpY8BmbHamdz0k(Ax{8zu~#RXYQ)N1fLnELC#s(_vv`A9~W zWpXUof10`pH}YQjlJ_r)6#@&ON_O!@kt7|HNQY67&KcoMQQ#~_B^gyIuNjzFHUwU~ zWN0qDWT2mO?_G5>^EI^BLaqbVZ|e9Q%^EN|o6s$RC+a;D>uAozcC3W8T>$8kDHNd*nff$|9DDLO%u2 zZod2*s1ko2Ae%KpF4!T&hl;p^{zcr}tfGJ9p}|uGj=4qeg`+lbYv<90;WjL4&%lkR z@4jylN7u93xj(M2%*E43f8pYCrve6`7BLzAc2BYCg<=~A1dN04g~d697(l#$Kc@yp z@MQkxDXs_qlK=e?UWm*a(t?6#Kc9%6hEebEqFmo|l)*kjvpkhA6ZBTn>^mvr1i?%5 z-NW00Qzz-N83GJY=D=z*D@8!1C1TuW5> z^JC8@r>7^i1W!zft-f`nU+k{-KlPQk36AVKdTB(Q4+CMM#;taQUrB<%hf7y`#+}qQ zWe3)PUwT>^T#@!&DhcBfpx>6n3??$LoHBclaUHpp;8B@FUqrj-eFc@P=m9FBh0_a2 z*D$~*0IKW$kG0eih~jy2p9V?9JG)KFmD!}x(nrJ5fNIwYs1)4B?vD97!; z%F}nG#FdONU`GOZh6j`CBw}bxr*>+ZTkkn(0V`L38*2nG?V8uD8Jue;PvPcd#OO=M zD#Jzk_43|T;n$>`$v@xbt#e%P6|z{jK9g#)=30WkpPE)$=nkvfHPcOVu1k9LFQ4Yi zi)b!I2RWz`r3z!ql)oR zyEpUswQ7k_Ul0=jxk{YqB-?>fB!ISa__k!`)#9S}28+=i`b9k;+iXd+dguxxQ#_Nz zPg*_%j+)G_`MsK)ad6j%vh#?qp?wx|CKV_P-6z8lQw-}!iMK6IAD?L|TpC;D-VU4yaM4A$wk?oM=%Kf)G8{u_)h1Bn3&qVrw zZ099>TU#$o3v(MrVDeoap1i&*k79g1O~j`Ww)0O~(}A8I|5a1b*E_3Ae1-5SJ)d#y zEQ3fN;~f7u-b$DbNREToid%q`3nodJ7IJ(m_n_&UNcR5bH1r^MKZGUSLm6p^7hzm`}nR@EkNHe$%F7Cy_ggP62>CcX9PhcEdf#D%Isp z_nO8!NZQ6;OK89&VpM77_0?drH1xcr#8GZEhqDjFh~C6`b#0hx68?MBG^rv0%%ljL zPqMbPazRP#gGMCH6N+apM=R*i4F*(b3(FQrPQnTJ%SIi@m~kVP{nQOo%}P;@yQTqX z02y5I40mJw3^krls(oqg!r58tMCE__j>c z$D{pU`W=H2JXShAeHH4#PQ^D(o$rR;igWhrDkndGvw(`SG$3rdO@<@cpL*>7N~QLe z1Iw`|{mtf^^;yHEKp`kWM6)O}O=AVza(Q1-lSvz&h1w6j!Pp(!EqqdF_$gSrf27e) z9uU`{h#0RoKv%Gy5D>g_o9JC2B`Jv)1KHEtA$ETeZwJAoFp(5}pbYnySfrW<_=^K= zWQe)n?=Xn1g5Yy{PrW*8pUqrY;39jo3rf;2L!|qEG%`fL07gd3k-YW7Bhra74``%0 zFpnr*eVe)beNXVEKz-b6n1n-44ZVVJEMKkXpQhej!Ugb83>_QCR+5T_= z#dDUI#Yp+PZ?$h3cC18_91_@l>;J_Vs9xLbxQOGguBg5&gcUtt7Xg&Sva%qXk$pnW z?~khR$)-Lj#}&@F{fcGIM z*ZIW9>#Fr2zCRsyY%pxLUW4@(-?P!Ph_XK^dM=jJ??H6z_Tm(CeCvnX#{KMen)9W# zOO`VM*D-KBl&9jWy?Q?ZS@fRsceq%;A{Mx#vF=V#3Hm=worPOeUD)o2VJHFVZlt88 zkw&^}0BHpQ>6B(@K~fPAr9ry8JETjxJ7wscIP;$CobUSnf!TYnz1Moyx}V>DPY8uu z(8)YgE3V6<`j}i4^}jdEQDzrhsIK7;5$Y16k99Mj%xB+865C^78&Lk2GI#UOvoAfwsE$7uL_zoJ^gJSA~<~e#dwymBPWYt`EPZU$|`&id~ae?!;bS!k@*C*J9$hYVJ^_H=P=C^-=)llLTWA!x`Zc%CVCBve%6dJno8;$;% z0K*Mh;R?H`FLYI(oQnZ*s~*5SA~mN=Q7+`Y-3VX%e&?M`eZ^jiHJS=a>p^Yo0K^Q# z|B*DjV(Ylukk6H$qE3cG{GAoBe=JF;YeF+|m~vi)=4G*U9fXHyAo#2%E!$zjt(T&m zoZG(Y26I*B0S|p$f3VO}zk$Bz;R8(NP(qCT<`q_l`*D?I#m2KEVf%t}fpdZspPo+s zFily@J`%YXAKtC*6BcXUQj;LrtVub;WMA|sEckQd?f6K!Jw&xptH!$jC!(P$(=V|r z#~o1odx+M{8Lewdb6VMF8+9eT1|HKmr8lm-vCKo zOyyup)@a<5;uOej;&X|>KAOdJ&L0i~Uj8bF`J`aY>GMffDsjGu(IEWzH~r%>Ns%Xx-UAmB@!=~p8#=TQG(>A=mI&=#v)_Q+% zV6jrqxzL>zQAX7>91`Qe8yFfkK=df=&j0?Iy_mN+9plr0ep^uqRZ!hnL61HV-`d&X zzp4#K@U%Hp2Ax3br{yUdAc}Cuzcjp-Pgsd(PC`AzaTY|F&w-v7Vwm z#SX3?6sgg!`ro_85vo(o?v62<%$^2c=HlpdrA4sGs&Q+D0lNSYw7NM|Td0t@_NUDs z`p{(}nGXhtUp`WHafolrgC!NP9fm~mye9Z{BE#CZj^#Q97AtMk{!vPB@DKlg5QhIx zqv*~Pvi1d*-#Gjv()%z~^W?d)&ZW{riW2-k#xzM_h&VS_`n?ZoH=Iv*2@&Ws9UpML zX3!mIL-pYiwvL0P6Wd84f}uA4(Vn+)D!^e9v8|KOT4$xCNFw>}mT6;w6*N7yX-rc7 zhgcEW2(&Az2DGR*Wr(k;7T2#NULB2kPo}tW>+WcF?Uq#2!uhe4H@xrmw4GhSQt5oC zPY3ndsSVO?M{#KX1C0VcD|eO0KGN;4heXuhdfy;XZSe6BM%k5+`Htg93naM)%%jm# zUau@zm;TRqu)V~_Q7Jj^ThD5-^iW>``B7pCZT9J2b= zwYt|Ofz74Sf}t1k%MM$4foV1eOhbKVW@-@_4KW_Q9G`t&n4P-&}!s5@SE|J(ZdwrnGzuso@v z|K2hg0dj6VYs-#hiWl`s)Q|qMk-Am4y6{$p=Ta1dfABxzur8slw#?@1Rn>+nS$t#Q4a`>n1K)Vjade4rU8X|Ni&|K83AeBsE}hW%mro z_gm;9`-BAM=BMIJ=O_1%nnp+-48Mvg^4eq{f7Mm$PwRlZtLWI?k|3ZBN1>01|7s^v z!UmrkTNYc)AYj_aiZh5f(yO9%IcEg-((r6)f(~M1pLbuGk@g zfVMa>Cif`O_I@y&eZSWgE8IYKrx3^lZxUbP5Ze==q=w}ksakS!5P5}kaS`EN5a!Pi zE=7RKJg=3u+;Nz!cCL};S=M_YbhKNh-K)osVN%*Yx7xPs49m&~FLI!Z}d5?aAu#HrX zzYG=uM|~TmkO?Tu)PIxRYi7mP9P+vQ<-(XH<@a{S252T3n4hYsnpJ1=Z}}4wUNm`5 z(_#@@3fr%LX!&G>ncdAfI*?BDuF-y8B)Ddop%SmhbK^PXJ^s&)6Nq}n8RZ2Ep^Jyk zz=EOf_%o5M z@S`8?3Bgt%GPC4h7*B-}3w4#Yk*z<0LjK(^te5*SL|UT^cx)1rog-+Zm^G=@gRsEsiL(cgFV3MY$%XYaNt z0??L3iXp?Akr>#|@?H|=%5{$Q$6Is;05?px10GI)Kg6_JbnZr5IM?$1!m%`XAbaRN z*#5Oqe(qQbIDy^jftnI^7M4pbrDElS{6~$i_fT-G*BH;MLFUlg|8S9x4L-*-6xfV1 ztxOVxB|6d}iSUM7XU~}r^~Tb)W{5YiF-t`*o|-dMB0w8gZuq_Qp|a9t(2fPe{Xxu0 zdjggY?Bl035@|MX-Gfn1$lbwt3KvPoaMfIL$IF2%h{HN;TQ^!|1ABX<2x@V$s2_kB z$wv7kEVNJpg5Ah;a=&T`~x0;y_bfjeQ;f#D$02BJAXoM=z$}3rYb5` zYBo$(&wJwiYujy#1^gNll9PK+N4_ODW%AKsfv>WL|E+GvzuvXfYFhoi)cV!28CWhR z1C-m;cm^B~Fb`lu+`HgeWh3EsqN}wYtha2Gs2eXwY0TBV1D{nln{c?hbRTG%=>49H ztW-th!5b_>%A#x>8Qa>>yUat|VNqYz*n*93tYabL|G9dn}>< zb2!>f?f%Bc(1CY=VRUHRp-a)xNf{<?W{_R7Lq?m-p08{3Ib!dLNVQ=Bs>$@0O zT*p80`Ry){XogLqEE=>wP$yJ$!EF+jO$Do^1%gboO41F&fn${8Y1FIdggjoBR*!O# zM(1LVk1P1zlyX3K015hyq%nx~Sq*xCIB%?6!QwzFIsY}$sdt7J{{yg!AV-UlUrQ}Q zK5xWTC2t!4f%?7!2h4hTU6>d$tm)*a&3_vQ8L1 z;rE;nvz;3JWQ4!j@DsH7s>{du=MApO<-sF<-MRRGdf^aXqM|Dw>ao0gMtqrI4_YEzw$p^svozS4=~C}Gk~_?L!@-@XNk<*;i#77(sPTBWH7S$OZojsy zPQSKj;hNCE6dL&7QGW7nP|pVtDrm?Mtit--BBtb;MWc*;=gW4au{Z-rv|mbzgAj8k zEOeUk$A&)Ui{y5ji*GUOHe4$dxzvNY9d@s_keCD&v%2l;cVD`ipU?@U;y11;M^&h} zli5S}QH`pp!2PkWpbTtolaAsdSmwgOIEBk^g&+H_2qTEv+313yV9KnbMP`JkSlGC3U6#tZz@H; zq-uo=->Bo;XCJzNT%&9BrHmf%#GFdLPe5>q$#nkSnZx8^(z1m#C8YJRFt*n)CG$b# zzdrW9pf-;(_v!VT9j$1K1joc>uf0oonD{%=@$kl5E6N|^y@*p%4S>FGNN`}vSel`t zZ{<}@2Y2Jr`(QR)=^Di}J}SJC`yjmR(X?_{V~__-Z$hp2`+CX>gKI07BqRqU#X@jqYc;9S>4^^XMw0?GrbzmZig%S*b}r ze}2qR!jQz@1nOOtK~?aC#Bufp=p|opMWp}d^|hwyqH()R^GBb5ZP#$h)FP(US4!?; zQ5#L$HFk{GG6`=o2qJU+Rh|Ymya?i@ZaPgjSYpwmGKdz}NIeYC61dLZjB2Gznc!>7 z9!QX_1riz5;ZA2Cyd&j!Un`p2tkG|KK|gz&XP*k`eJE@fRZNB}tl zlDco?bu^x1Y!j$kNjHHI(iQ21k_B_ubCdOL{P5tq))RYa@s*^qKV8vaA17a@tL;r>> zQn{rjG6xd5y@6h{H6a!~pV@8;$9-FYKB@>*C28JY+xS&D^elFYz#_h0yYDiP$?!%$ zh;OmuSR^@kFu+%nQ28Jo@c*&^_|M&_Y&B_!l)%&EPKueqFOYxg9Wzi^DofO(pglJ@z_cfD05i;8PmH%GzmIc!YjLBOTF z;=iCU&FB_#k!MKBeMO}E^3QC^*EQc!(#7uQ?gnT(+^raOva5mP+dme`Ym11U<2IxS zP3Vk7Y&@5%2NBxl;9P@+BVt0oi1xZ1N(Um}6?8BJov$27Ej_<+`urNj23(kaS7jjC z5U0dgkC;3E7IvWdHBGO_hK~fo9?{Crctaoio|1Whpm*#rRV*56tne;}Sc&rl$>*!w_X+1Lo>y?9))qfWW1-HQquYU_TEG%2k*m6HqFq_WT4Ji{t&5%HY=~d zd zQrPS|Xd#_2_lwMRNc-{0U(x%W>}!EIoa~52r1sZ@E_^vFc<1){l?`h5rILC8E%*eT z`Mt*KdP*y%(gpIIFN-~of87a%OH5vd2azN>1F8SMG)k}@E7g5R*5Ff2c^M_mIrl!uKor9tN1CBzrQ+sk-dxa z=c@|CPqf8nRspg>Je7l%9jAp?AGng3m{9vNVxS*#d!R1ty*CESqWZhPqD5vB>!~`& z8nzISO#tBe*M57Q2?mI>5S~$HFjPBx)shww4|2jT_kX%O_{i4`EYe@6xF0y0t7bk} zbN;qjmjF6mLAUBuJvvlJNlJ(>za|1EUWqFO;GooLzR<19oy_V(Xw_rd_84MMvEsmc z=0b|X;^W{~XYz|*I?waRjdLsLakv&Tf}wmOMd|FbF0Mc$zAkH}9)hZVdL&lP&n)n- zdx@QUi~05Pdy1rgXtcTgaL{yv8nhj8>Dm>`jz#UOOA4UfsxYlDCiFS+*(|I`q>zFh zj%mU8)`ESHCilm?c5kdNVHM{yc6$VTaQN@Z&g+8>wH)uRzrsNN#z0zAen{O%g`geS zO?zIWw<`-o91{ExzqS^cC8Jk^;9$$_8_11s-WoUSK6~#R?(Vu0SDT-3UR&AG_B_6S zEmP$R!cUFnL|~AA+*b^<%Od#P*>PDI+rL8?&Kepdj6Z7g`s4y@Qp}HPbvYPFGX8cu zlYnBYo?f;C@6w#@L*N!0U-N2stQNz83;ILvp(|cLqPZraQ1lt?A7jZVSWOc zYMtRfXeaD;@ARyP=0l!}qJLWQ_I>n|rC7DLieBejBU|P*n~kfC z3|~NZey6Dr4-P#$THhyTx^{g?;3}Bza@=?!_9|)P#lx?Mwix@o7hoHgV5cLQ_b(Wg zaopK^%)w-p?Uzxw!GC9fd;C{;?Sn9#fX#CKeGFZgojnW^7xSCZ5YB@;6EnnahG+QW zFRmIz>NNMz_e+dq)-49)CwQ){9Rn z*9bvv$;M)s_M53r0MOMFezg!FW_Tem{3O+}ufD(@c$9u)cf3&t?BJ!0OVb5~Q3B<} zB+K)*n6NSOl~iOg9DqG%p*(BP{-lOD;Tu@rytpTQ%#J-n;B+MXj+LA(vGlxfW`D;D zU+8>pG3$hc-3;p)+zM<_w4s9!dkYe?$4Az$W0tAg9=H2R!F;{iXlnnmO z3D+rnZpPBgz0Yrf=^#T-vxx~M0pM;trDnLi1ZcRcb1!DDvaX<==6Lc9=zKwhJ79FyxM19j`Qf7Q+*&4 zGV3g4Ki^De@4~V5G_sz9s2rCCQ&I7wQQaWAS@!PkxCk%ya_{SE0{sQ~PQR za9@zLl^-kq-k7sA_)U*}&%c{IT!jMG;8Uc}4=o3yQ4_z$oUBe$$F4rR7#~?e`Q3^} zCy1Jc%*Z^r?_tALtViTOO7?yef#5_irM2m)!nM# z4|x%dT1Aj_Ko1W*NNT-Ea`GvMBYYsz)kKa>xNdnUVk17r(g1#gL+EK`hjp~h49Lw- zdB?~9+SqXKT?TV6w1Fqd>-^7GxkHnjv3ThPu>Teb6h0WBJUjf-vZPS(=YDKx>p?w< z<@CP?%RyGbDw@9jWHpAA7;{6=;^q%#aD&z~_{| z5nUjH@|~6C1+7fl#1w`zz=gJ*fLD2=>2OHqp}|@&E|m#b#*0{gm1P8bW_F)tSh6jo zMlEI5DvBU!=q$f&d;DU%=PIrFL3WtXYAEk7Tj0HJXwT-K9D9r$c=*2%q5=IM=`1qh z0@2ApWJ2gJu?x9xG5NMbnM~+TW&~Z1zk)XLZK)h>8()?H0SW3e}>?>z~S-t+B2_FXHTs ztTB9bIHQ7ZV!Aee&7l|{W)LM)I0>@fqTb6D#x9MiltV;GM_YyioaxfXe$QweUzXV8 z-ThS6e4*)6n55|PP2;m0%CfRa#U2DO@(ZTtM6MgSoQ8|Y8NvjPu=EGn5$>Uk?9l>- z8bU^5H%mO&P8+sPm}5uL5$c@E7_Wkj7(p%Iv49R3iU?|wN>n5Kc_{36}mPh%- zN~bUf?Q65W0~o^YFW>Dhd<=Ms5vafgP66XiX$4o%m0l!;F#;e2GhLs1s~^8|bq4et zE1Z1I?|-caXm)S8O!Ph5MaIV8_ybqkU`L4Ey)g=tfB2dlcz*uV&KP9#_9cJJ$V z42Z&jozqSY*c$rzBokNgLlV;~U|wa~FvJ%N6q@PA!4_K*fq^E@%73PIKRes^wW}E= zl*|a?sm5v4;&^8O&ZlZ4gYw@k+?*fYRld3~OJUKb0!^vF5oq8aB5S_KJN?-#n`ysU z(Se=YHM(HGEsPA>#doLNyLAO&1uUk(=JkihOgY$)UDaEpyxvE_%v~I_t23zP71u!3 z7BCx^bIwNUG2X|uu4_ZE#pd>2{DK|%+^2|RjRpxGEOodac;y*ajd=b^W_FX{TjwH% z!S-d-j@rf-E|=E z9K6FckaHmM1D2Nh?ljFNDaNAw;i>QwRbr6sR?^`y)9_5=TN5Qh9VGzeva~HIte^pH zAP09abPuARzbDgty5HnAMz%d1pG4*AxxHFcwh6)FTpNf%g;%if9S4`+hriT!OoO^@ zyJ|WT$^pWRy`MgTms)>+@*;$?l`yh{INh(gI9Ss7T26|()HuxxXT?Ix(jdr1Mr;>u z-=1ENFblZNcG`=e4&#g1R?Agzb$}?M(@c*Ny6ym4K`|G_baY;-AEEC3ma?pzGGgRl zzDJ$UV))0{XjcEIis;D>&-cS_6H=^$V=zv69y@|c`8~-Ekz%9SHp?+&wdf?h9CX8t z-TMde`nfDkC{Z?)!(RaJ=9hMh>zcMilFNQ+`*Eg>SWoQSIRCwbkg7T){ZPH5_83~& zD)YwG+z?sIQ|)+Ce8DeP3D78rz;I`xHG)LOYHYxIpjk~!Uljy1R90{SJ82KAcx7k# z#J^x4Y?8ppYpPPf3mL&4x3@_Zw$jp^(V;m`xIfBbNT^@#`oFv9S;DUCYs&IiXvL}p zUrcb0m&UqE4P3#Yej^fMB_{!zcTrz0q2GC}5820~)+9{-l_InhNcdsf#cu;x|8~S{ z0<_{K^-2u++K&ryS4?IX=7HVlMO_ZLP%@W+U5KxE$(;Di*STQ#Tc^FPPtui-b;A5G zt&fbwG3r~Fo|9WyXp487cPv0NMXtkdBDv-rABLr5T4Z8`(xd1?9oG@?fl#Ans?=4_ z&D8i#Iue3WI;o8rQpGzlEqIt$w9jrZD==4NE8JfRzN(1y%Z{F=qb|CsKz{faq ztv*hTpxr-KdW~I5*w|%>k2TUzbmvyOsZ?P1a-EhGcl4WdSfZ-KB`Rr&-?Q;z-_AtH z2(!fJv|q5hn0~w1>fu2%;Edd!pJeHIcj!0vi8hPGRfg*+w$Dpkhp8Fcw|9plB`RC^Sn|=j0i0*^W*5PDEi_XLBR8{VLYUH0Ao>0xnpQBOV z7KsV_WHX-o7L>v_EMYrX%PvWOdL7Hswqi$JrOF9?k*9t=x~i10;a$E`L}4!NW&0I`O+Nzj*yCFG%Z><$=Dn`sq&;eDv5~=6)SiQgaZdbAlX{$RHW zXEOn{n=Z|~lq=K!A@YK#N2^{_(K4Gmp)eTnxbu!~B#9+-628@S{TO`15F5;tJIp{4 zqH!j`1sNZf88(``tXD|70#>k%pMs^Tk5uHVNrv<=s(c$63_DvN(NCW7RN2U5*wdgf zo*8C`HZ?ZIvu$k=@F?NIztkN71p9|sOmyV=;)YoitYDdEev>LqJ$KyB1QTHvM)bVF z?yQ435o*g9!<)8JYvy!M?_VDJo9oddZ00sZD}w2KhF-YH0P@Crrq*OS>?Q+Ts#Eve zGp~k9`z-t`MbReM|Tl>3|#=&I#$_Pn}&oIJvpC{2sH| zzH1#LT-%F@v?R2y=#}Y4L<}ayB#A#niynU$iNF_y=>}KcSk13!KYEJUKUCv&<6|7H z6OP(+S++mc1c)jKihhkAk3r+0xVskD5@Rvt~uYCHeO2ir^&mHa`2{lsB^<_wt6 z@|%HDq;z5^*Qnu-BL%3tf2jZMMHHw?ZgeGL&NedatbGm-FNK{BMrC5E7WE3xHfL8q zVim34%tGsV>evjN=2l$WDCrT1S6|+AeHDBt40togmkcRU=7!UlaSP?1jWLS@-(&H& zmX&{U>2anP&=ump8paQ6RST6 zQ&Q4AWzGIQl!{R#%fulLSBKJVI$wMt1n|f{P+_BiTPzkk0`8+@7gsoQgU3tmr0?qj z!#`>s8S!*IfcQ8NSRUEW(7Ia)Z-yZ=++ydw4oS&ff+J?iq)b*$#d)7x=ndV&Urgr(XvIEOu?Bi#9yRKKj<@2{hFtrX0 zVSt=YV;FS{F1-a1youp?F}cu%gFe^3JyHRfGCD#C#UUo_56ipWJ_PJ=A%iPnSIb|L zxkY(>i76(3w-5qhg9*W3o<7p5N?B0!mC@+GW_#OnTEwaZDWx@w4?^y6#W&xR9p>Gp zrN~rX?v2PiL8bo@Q!@cfWzp;WX{6y?OARu)QLYy>XuZ+6^_d_@ z)F(@p=9jGL`3Qp~d>11t0oofpfu~#7ie>iriiSGlrGE3J&*#PUR|9N-%J8AApu*f2 zVebh-QePX#_Zsna9u%D{)0kK{JZ-PIii@Aa7|@I%AZLviaItPX)iY!Gsg4TAkVlB!PZL3HX+g1K}N zBr9Q%A>77U0l?2{T>t!^{cSAY6^oVD(g`Rua zMXAfBwQ2$B0%X7)4Q#YCu9;WHbUuChR+bId6cwdv`&T!uNFc8fg>c>@s&M(J#T>u{ zk+pTYva=R!X$AzH)I{V1^f`xV7J_Sh!5lQgzl>jc)L~R3;*!a?V0(~l)|=M^eLGyO zGpph3N}sjAcDn$p)dS9`z-ygr_pyucngN2DB{zW_Vn--`Y%r`lkvp#up1;rz-(R@5 zxcDq)0(PT|X3Z);e6;gwlHxPu_XA2~rM01th`~=pc;;c~#pcx-rk@^~Hkzd$h}p8= z^9licG6cIK0x~-Z?f;ss(>!J^Nmm{hnae^YF8 zzyeyDN0?$7<2-KKI)!t*&wa8ksei)u;!w#bR4Uy+0sAPzGQmTz!1_)}@`9N1TJha= zWZ7g(zKwYlxx$}F0Dq9%4Az!4+{e`% zK1i#QgVs`Ng3C~5p4^zYID+C9f_FT-Q~EVuQN$wN@_cM$BLk|HqoI-4hplp#`XZkY zxZCEK^sh`$=k;2)*+Y&a^?2NY#VlKj$J&gd@`>ykR+mF^W(DHHLw$SCb;joGN%W|r z!C8b5$lQ!aAGH4x8_lKRdg^2Gem``)ag$x!R-$w=z!?gmvcp5mOZm!HBieR zBJs%(K@)xU-O$_Jo12A7qQOaCx%Q;@5@j@JMKS>gwI9w!{-(d%tCc{{xpyqq%w&fw z-9a;F28O!?f9Y&Dq~89WGcs7)r+!zj^_g+V$Xyh^+gvIW36?LUSV|`c%xC&tVklPd zIVs%m1vEw;HD9f{SAX(F#?7383c`0tV_HOe-RC%+TMv)w0?H(i)obqm%7O)L2@rCx zICwo99@BbECLTl`dOE5uFRmt782^Nzv33Cl9B)B6tYT>z}re$8aKp)ds{Q?X-wLNj4AEpQ?bTw)PK=ANj}meb(b&JHBR&;Qcx( z0SQ6!xx+8tiYN?izI)+$d@|)mnq%1yIZ;)RU`L0%pR!Q&$>>gx_#x5mAJVc>gQAI=hztS?*lqV% zA$QvK(}yiOim{cjiC3qKgzNB9RhJWc1u=ljGVA?u>xM&N3p z+R}Ddp`!?S9fPw=4}0n_(+alK###M4KIttLzIlk`zP%YMdIY7tAL}W;hxg|7bIRc` z!150bgrYmyDdnKNeR+MW?^=4SmWKwj=(M3_;EHP2C0}K?%7}2ZiDATlM!ZbGK1m%J z;BKaJHioiAKH$6)JnEXB?eE7U_$LFfNdYHFlXUI=c*5YSa^^v?@vr`|$q6TLH8aFX zya%OD5tuSy^^jTP@#0>p*>^faX^W3b5+8zdBh)*}{bF0YqH%*;AAN@tg(a2T*sK~e zFxAA!7>@(fK5-2JW6?*97~FXk)QALG0p&6$1=frU$k3}AnVPZG6iP7ir7#6sn+(vF z3qa3q9#-#Xd4vm0GY6es7$bK}7gZ-$=Ax zdp4t9TM2jb2*`^&GUxnW#1*FuL4Xyk<7N(z^-PtIF+_@tJva$~Y_|A<(OR*-B$xoq zaL&>mdyUOgG-AG~vI+vbCnsOu@Mm-cem*(gphWcSWM3(13P`4_v6FOjFs*2}Mg+*x z8bm7L=Gqib4a?rGzvC-I>6X6kyel6zHFIBU)RN#>h46c_R>aqMLvLnRz$+Mwe*M=JL;kT~0m$(9Dq+E^@Rx@_~ zheK>8Y;H^3c;hy=?_>mLY7kS_`mTT4QJ|K*1{%bYIp*4@cYpkC!cpF~B}{BuIvwzD zg2VeY%W(EF?!O!)K-pnFv(?{pnTX9u(&|SexuNxvZ;_w+1=_y@@X+>voN0vb9-+4# zXndueL#)B%J64X+M7K3)NbD?wimvTVl_Py}t+7;UNgsAJ+lU!COJ3^-!Y;reZk=-b z`TNo063KNBG(c0Xx7Q)7MZI+8wmh+W*h~Gf-!c^ge^ymDKY-lOQl>RJPIqEpoIW7Z zAmo%iw={%#((WOhpHjN(kiv57_{!4I#0+ltfbV0wBzf)n@mF4ME&g0Frzi%!jDUb| zqw{J(wrdL@D5C-P?ilEimBuz(e0h093I`Jdra8f_wQGma$DCnh^mtcB*bpFF3GVX)*mu`Fv?fYtAfspA)+JY;|o_Z#Q6tOaOoaN3Sx zPXSsb;@A9Y`d4Ap&3BV`@8vO01G-s1;bdK{zsq!0V&2T#@acU}o%Rn=*c%vWjUXfE zK?+_9yp7vnvO;~{ncLeGvfEz*to{wSK4nJyx|bUT0Vt6%ONh(T@M{)Mh%WpD=wfBf z7>Y+ih@V1>>m^RiF&Od#cca~9n%S6SpQ~IN*+~C8A2%}&spI(e?ZqmjbKQ?U)sPKh zBq#huerdzB(_<-(pl-`1QJ7m5OcRH*e50=GLHbKRg{)u1D0jnmru7y zewrRjwKQk|&f5hhn9=7rB*rP+$T62)&r(UI?oUTvG2~mCA!_Tol(k`SQ_D% z-C`(prIL}M%;%9Ie-86%JaCv2K=NwR&|}ZDB*92c0v;m3Cp@j!Xyg+^KYGSXM;hk7 zFD#tY|EwMPf(p>m1M$bSIaCxR%Hq1I5G z5WB7>sbK0&;Y2=(`n}3GJ_~jXGJ*fG18&GG2VLi7%zU+!e8_zwDv4YXU;?N&x30B* z>n4sL61sIG%G)&^>{dN?vX>}o4)7f)G@=WYr?u-qCZhfAlR61*TH$fzs}h5-hZYhi z-QxCvDR#gu?C9vDuzx8ptDGFt=>)j^%&Q{8lOJ+_d-56RVw}Scj^B>w7RSj0V~C0y zESE65zdO9_imF*e>mPFF@?yv`4rTkHGm8PR#Ip1DvuI*{QFnajUvozQ{x3z~8^B;? zUnnGwoLnx8cdK2epku*U!Erdh`m?_z&r`@X6)jcGUT@{IXS@Xxh=2jn?_En~FJy|bf|ig&KB#3`7>&r5ZpDM> zpG@2h)!Pcl>5(9Cax40*`BA3q=6#Dwca&`IN-hCoxV#Sb_LO63S7PBaK=Xrr%x^1$ zodhZU#CfEMbJC=33IG*rhqLJ+D(h_ik7vSRPN#C9=H}RvG+@~Yt$Fde%@2&&`B0Ee zer3ok_e3YRWJ5vv;!iffYO~urqToQSYH1`NI$HuV{TK2amA$i@8FHI@#=ErfLH9)B zqL;fBqp}4#H?(Ylcwuhx9AC_gCh5+$`?Bc;+Q&(;XNO+2Ixw{UM=)2~#-fnrq9zI8 zdG=pn?V)3S@mVJ_1;AnN5(I1XV_6_7UqmQ2B*Wf)%07k;Aky>vm@`sYsH~V|e5fqy z>fKOaQU|82p~gA&pMM=OdHbGJ?2JVKvr|CaiBko^uVb=(;j%BNU(Z3vVDf4Pa2G)Y z`F-C5?CEOWVy6?}7!wob8iD|$s@kox(^p|?1qpRyui!%+hs|M$QW~QP&vJY4QcpLJ zx|sK;B!NoBWbSLsf5?q<;1=8j2{qC4Q~9Xhwrck>11RIn%iSW|cJo-&0Q0AmOm(2K z#?-zN@+0{lHiACHvRqKHw5v&zTV$@l2k3;8{)ZlJoM=MYO+7B(%BJT@(191Svy#ED zNvB)28n9nW(*qOC2~*g45f{%EiE9#^(#W#eLJNr~T^CyIH!9yLzsUWF-mj1@%j@^M zf+*YT;}X{m5bsT+b)N$6;DHLtDms-aRfF#Kabf1A*IyyDu9v{>_|ded*YmjLcgTzF zc4AD`Go)x6j$l_kjx3x{E7S?Y)RQkn?`na^BqFHBDPrzmV?G>*7J=N;Bl#7QqStfq z0HLu76rlk1^HgIuHJZL};Htj~vo**2ONzF6&XcGa)9};rgkAwtSy08~EM-40vN|bK z6X3j@0je(0@ysKeyu^)6Pu0~AkUXxK=$94cGMtxMEmqU#q9kDpO-1#GoEyf2S7YW^ z$Jg}PR|dWPI$r_-gOTEY?7uW%$-ZSx-_hd*ThkK%;YTBKQEdD0a&?3>R@l>ZiBEJ~ z?_QSl-H;5y6EdjL6o7iaXZU#tq-^xV9W628Kl0bj;9*UMnTx+-tKLaqg`v;Cm;nm9 zfgGzp$jh4^Y*JXB3TPQ=E&1|4q=(cvyDzSD%64HhZJw9^#pgo4Fp~s)`TG4d*(4G7 zZHd^Z9IDR>NX%XYR)2?%r^VlCA@6{8^HoqY(iV(5+t5joQQ(*S)8$(k!wf(e_5^7mAUuRuIoN zml0hRU;p;253;M~G=QuqC4z?{GqDNfen&NX{?vW^D-7`AHN|}D@;z=wCneyN7b*jk8n!^!S$W~?e3UMMQ=q$L{rLUBw{~`KVQI-XBOP1`#X7}95uSRdBZ86 z$7nGi$2gTIiJ>dBkHK^VO4=-zWM)kA>1r#Tu--r-GfE3cULUPLW$1gC1~?acNlh#z zZY(7>ELa5m`!k$kOWe@t<)+y@-);)M9K#4nAo@f&k0(XN!5cvdIF{0AX&u0J+b4J< zYcAz`YSy21<`tpogSl%+c9}EP>1`_3c;Aby6Gr%B45V@F%K})uy*6&1NY&cssn)p^ zS5L28lhcvn#0*)I4vOhG0_DA~OvfF;w?}0U6+NG77rq(&Cz9>gJ*?yp1W??*N0;q* z(&GzJ-~b7*5K^HXKLV{x^&FIbNquXH;`2o7ZVLa%q4jxR!0uW_XRAgAK=&}_XHzlYCmfp<9*3;}{-tSJ=cf#mP9U!4_nY8wY|9%r18|U@ zKBwR@Z_BI;=ReP@FSEH+!rsjUEDRJg$0^Boj45gMxeFQ*C8U)BT|wQ-m>EG>6E;(T%>qJ_moHFrZZ&rQXiME9qWd1CGb>K$Kr@_Us`~}& zgOG4@qrMQ4)u)eupFaas&9H4$0GB~R5g#1@Kk|z;F>*W8_{X<@#EqM%PGu%mK4Vdn zwZ$^Y*xM#&C7knw(}(#eIF}6%7$)>wS|nd_595Xo5>2_TjF}dQa=6i$HRdt_L;eqY zXZ_U18~ytv1b26*NYNGw6bb}~LXqOG1q#Jo6I@E6KyfWlpt!qJ+}+*XU2^leckW+s zf4Vc@OlEd7$!>Peo_*vz=e%F!0lFPEmNN68xVd1+0eFZqtkw3@K(dxeK_==*$M*VC)WYj`00(?)E_1TDK^u*qKIr}~Xi}e$Uc+2W74W`ir#oL(#bkk_lko|6Ib8m@DOv5j zKDBa_f8|SWEYq$YP8~8Jpy0US{)HQ1@6Ozs*}wgFV(0m6TD3I5nM*H&*-_se>VFl|e2HTL*O|B8=p>YC9l+lW{4KCzh&*vr3;1teXM&V!i14 z_LQy%30W4>7w8{^NWf|C+jgfPI{;$^d)H!rxlgvadrJ!VMX6pL4YF7VDkW3V&m9oU zT!^`%P1V6G;>Pq(au$}cOV%yAFgU#bjMT{9QW}oi0gcVc-{TgvOT$5JDvsPxOs&>gw3Bp!vIaLzhzL$Dafx zk!Ug-Q~r2@2O4I;`(*w;;VYP8y0euf2>i1Fme~SWGfn^*gvi|6Bvyv<>}g*S#tH{P zCeg~%bFyvzjK1MrTSH&hJ?!D&s-<6}L_3%=mb)C;@Rv*Tq;Ge#W?1UI@72i^e{*@0 z-T=S@&)|Vm3U4IWhgk7|kkr(rFGcSn)W*0Wp)cOo zHj62f9yqk6+FO(AKE?Vgzxm_Nv9L2Rt7Hqy|17INK_<9L#&uSP*C&Ob22U;>77$dt zC^>~P>?A(l^4C(1w{z^~aV@UCSU9#yEwYA|0c6FHIH(r}A5pU37!a0#O|=(!TcT0|ZUyD=~05_ow-sqA*H6 za8GtBY)K$SG>CTZFJm$K#EONdH3sE&2#ma z!MCf-e1|MB2c! zM3yR8(EUe^zE_UXQo>OpMa(D)I$-2`im$%9n_E=HZxu!rISPra4sf~eh*6l;Jv`%r{? z02JO_8CV=&5QG7w`iwKg2XKtOkjTE8Y@T;~A#>NIh{?uEqfRE1|C-B?h~dA37k1!o z%kI5o$dZOD2+X!A>1PBOvqD#R&%|;m$(D(YNW9= zhGQ1)i#R-lw#p(#;n>;!10c&{3Cf21d~Yg6q^E0S=q;a4la+eB@$)&TxSwOJgP>cbw>D>VOpx%RTp_0yP9#}4(2 z&9+(p-tb@ zs^k5NrBmCPY*HfWoacV9M?w&2f0?z&np>i8mKmt@)7Lej@)uU6an zXkdlR)lle-3iXD@53D~fu`xEmkS_FgWCx}tYv!X$$%<+FU3d3gi-V;r|U$dy{4Rz2i;e zI1X&=TlsLMN~u$3&~>F7K};cECDPaldG%y0We~&+Z7#<4dnu6aawqf`RdIhl&`RwX z3X>0NrKb}f#BZcbbnWa>Hf}ro(y#EC3Y2-=&V6wZegL~OP(>9>G%#A(D?4=^~O1` z{ixc7nG%ejlcrj?vB{Jwzuh~d^=`%!oA=B%2>?ms+1Il)N0UozMrw0+Hiq z$zUGB=_B<%ff16%3&y*BfO4g;qFBIlzra#@I$Mf;o>v#BbVUHyw2L}vbO*n|k`m^8 zfKwtB6>5o%`8efkKzsMPb*YIp>QGVuJ=G7zMuH#+JE9bqC$cfp0MJNp_ue}G#2341 zrB-t$GO0Q?R~AyJxG5P`Z5RJN7&3x3r|AkN)C_!eNGFxKrd>p-lNEvi=;k@{C#_n! z6IAy)yN74bY;qU=j%8@Tstu!#XDUR&s1+>6>{>HW?#L9YN0 zU_4I9ge=#sKr}$zXYRqWvMBfvPDTUgG0VF6c6reT|798SQq{M~+c*d~!g<1&&SL-^ zWtKms*nkRpmnJ^q!Wt#h6lf`GpQrMhcHd34=Klt@GYqW*EgHh<>6DTAlHYGPcFOJK zkpK%?t)53EVJ?y!e2YcVEA?;cl-?Mlsz`@czCIY@!;}*SlpW>ZPNly8%FLLE=|6;~ zaw&Z+=GJ7B-$4y1xF5uqmHe}YFcNFun|E(TkPuJqY_;BV?USJ^;^36{O!;NHMcccShXPZN%5O_k$ELFym$P zH?g_~fCuP|!B4|s9R&O+Wr{Tv0yA8T-NJ>vhNJj-r}09M>y;$2gA_j+I4Kl8w|8|w zyuNG=W!mHe^$R}Yfe>x{0Tfq3r%{*V0lvErWh|T+yN14I%NtExQGQElWj`grk}Nsb)B66<<^t%3?=ZxQ z93TO+LoG~=(&q+GFt-coQHMONLSR1@BU&ynmoMM&^Yil|dbsbqOF3;QFk#?(vc1G* zz>gBfSX~M*!s3lZU#W+38(!laZam(#z6z*3eMkLoFi;^l;OqfbJ{1keJ|Vl z!4&Z-M4)5oi;Yq6SXHMvISfZVz;7tmMP4AVG?xu52XLLH-Q%r%;da`ERnDfD`+Vwp z3S{xMN?Z~;B^P|w-EDjr1gQUZV*bPafoZsEi5sklUS9gySvpj+v19vla%Cd-o*%rZ z@ix!VR}BoXSW-QZl|c>@n)J&VnPL@bkVj*B^%G+CgCBMNKuPiKm3Lz9J%4kiUh=Qw zrG2s_vI^c3GPk^t`S`{EI_0Jy%`SPih1z-TB-YvUVMHY9o2&?UddDJe8BnMjUI(_; zRm*Qz$VLd4fXCRz?nbxHXm#OZVQ|x;gTALhK-Yw;CvurV8Z!hVHy-=oF z-A6h4Sm=Mg2hOP48DW3$on29fYX!dUffRjR^iE|4P$4*fn&sYO2nVPFw~?YUlMCwi zHOt6>B#gO1ss`_p+9w}q4^anK8jj9Cc}pihMrZDe9(r0yK@A)t9z27^r~4qp|8!;c ze;dg(n0>~}IyWMBoi^_;T&uJ#K;>>e9fOblu*SY`GTZ&k=9zk z^gk6q*IpFV=6_bF1OY-y9tvE8{4t7buHXGO^ZKQZRDU428lKAFYW+zpP;n}s?zXt* zPe3&i4%}a)d3p*l2Vwt8>bxp|CAgT_^*AoW$O&lvaW72i_U)n-lfDhj{~0groyNm~ zc;ib6%0aYspPz%+`0hi#>D)bRSIf|0eNReYEXz7K(=Zy_OLO_(mKVLTRC{g6W7gld zNnK8-P&}}*1}+ zwMIK*LDr`!A-nuRW{C4T-nJ;U$gg`X%sAyPXbhzOkF5Mp#+`aUhb3I__l)tOk@?fE z)+5#S>i9QZnN7QtWWU{P7no&AKGUA4yg3_K72NPyzi;izI z=PmWxJ#}!?>rJ2IJXw`uKj`}`&MR*?WM!sW1MAy_CO~qRN*82XD@5p1mhkGA{Jf6> z<(xs94ztnGEUhYC}> zD|ZB+Z|CKC-o{6PQ(yu#MgkC>`LtBbPf?pIfQ)8*mTwSYFZj5-Am-LnY=21Y=}|eB z@<+xGKj;M|j?+KQBp$UWCRIacKb7NMw(DRAI+PeyQ+nm~y*Mw?o5$XM=wMy*muIt- zItwRHE-=7*JbMi1*k0oJtESwN)^bS6ue{sTKd;@<{okN_EY_J)*z<4x*%kXzbQrZ# zAH#eW$1rr7VN?_EoF3lz3m{Qkg>(BElTQ4*vlAFVkA(n51FXB61qCXJm$ z`w$&((R}VdE47l#?ZgNe>WxIrM=~_yc{-KYwOzC}cWq$@c`|}y@nF-9b;MOrNomb$ z>X};7%-V08#f!!N#6~mlO-($%+2ct~8!<8M@JcV^wX`Pe{mU zPtf7u)#NVcKxcf!-~8->m^?(Y`!5(5B4=&aCHy#HaeJ}UPBnHmBw|nGWmR^a70RR{m;*CNY!WEYd^u|H9h&l1++lzUk4M!n?Gw&+5qR!yB>7Io$2Bl>28w70OA%YF%EI_{D zJ~USZ=Q0*8bMD0N8d)ISqEupzSMRUSKs=zG!1Y?w?=$u^MGiHv-Uzu>W4ZGE40&FF z90NXRld!;U*_16hMdUdqytKUH2ENEuw{#H&?P2^98lPGuzTKu+4TuyzleBS=orhg` zypLNAZl42ZZ?jCjr^rbGpFD;>52o1q-E+k~RyDJ@gCOS5#YgPri~vxa_*!lIZ~wb$ zhzo=GVfS@^RmUsh3R8H)9Y1-Gr zkbATdiv--`Sf#N$>U6NiKZVoUo95bv){R-`y4zTbb(AvWPIV2Fs~%0H9!2#m3rywm zYM2mPSOG{8Z9s&OzTK z&|8B2$*##Jse9owWQ%!DJC4Wkr_(kOBTPs-a58Ik=@$G>-yh>NsmZh}_xwR%T({g| zKNK5xHs}KJoHDcvNf$w#r`x^|W7?8@F!sCM(A&L^ zj1bbY$CjP#`9;r4TtZ!%P~_Su z2(k{P)-_UkrOZhdzA0#Q<7HlGA1`;&Q

ul}?FBJ>BpPx`?)KZ^T%`}&HO#%pyu!bFn=9?H?Q%NoQOJL> z=92(RA0@N+T<;{crR$^+bfi_UsVmwoYC{FS@I)AIgTb9@NgHeFl=k+6&w_MwOW_TW?`i5FQi!X}}gR`alVWtzym0Qh^N}xES z*X-ZAPKN@*>t*?zzO%xDw zb(h6=KyNQ~%UxEii63T3mTQ-dtXnr3e|NimtNy~A_LZ3}QJDcm^)%?fOPwy1oaL() z_eb4BgB|O|$A^<1z>|ae>GZKDjFv;d5W|=$iQM5hfd!R${~vjL5StW$S_18MVp^*_ z(!4mJlB4iNHsI{M-MuVL;)+>ay-lT=Kt?S(l?z!a+<0TPjkqT{Ms+PHHvW4MAOu7y z18sc=0KS#aI%qr4@;e^o(2rxvkXc!L3u=c#*OEW>J8|D=%-MV+lIzC_(Th(ss_nFv z4uZ+dRBL|1bPeJ1E8=b=%H-=8GRO0f0vt`t7z@^~{d;Fq?yk~l1xj3Uk`Wuq;|h7R z8fIJ14&w*VW7pSW$%g2g67r;!H`9Ixq*mc(5z>(kLPrXi6rDiD>@n?k`F%h6!eMvS~BH*{WZhJJ%b=USZomGT-FyE|%vYY_|y{B9IkoLX5 zOv8&C^CaSAeqYyZEp5NOs^@$Kz&r9~_bx4Cb@dMY8<@4%A^AtI$BRA)U=1b^x!3es zh}FUdr74+W?z59U<-B6N%$vY@^moD&opRK^FQOn%icK8BdaWh-<3R;oNnKGgccOa) z_EMsvtz~izeY~kFZfl*+0!khRvnUB!B<%juB%(U} zWEk*H$L;Loid=J%5;qhFmAY9Qx6bfOA5SmU)APzoy&YK|A@ya^RA!pQ`7g6Xk;Z=l>cy7Ws#kEUJK>oyHD9NSkHNtF!OuC5^UFA91t~VH{VFL*9CkSfi0$Kg4 zCX^Stb6%z;fp?Yb-J7%Hyljoff&jdt?)M?vXE}c4mfAZ8VDx{z4H0;dLbVT5D3n4! zF1+2DQtsoJ>PjAdH=3RdAab!CD;K)qLlae}=n|(;()8GymK^&mz?-*g;%IUf>mou* zo~xZ;p1WIdIu6`d!jb_wI4#fjCLZ&h!Xt(&g;Khj0J^hHtx_Wpx4!@dEtxvhx+w@i zhBEQT%9gGG&H>E_07ab(e$`Kpt~T(VuZ_Awr-o^5y}DwwJ^{UwiSTa#S{i{D(Xn$# zJZ3)Cj7afTEdp_oA9L?nU_ua7RbTZ-N%mh-RsT9KvS`JMSHdJq61LjT9!E?RFaaEz zS|$&F82umK2`@?cO8}@_ny*Z=j}5~w=mZ2p0Wx883-DJ%PjR>}R~kUcX>60}=c}g^ zJMH9;JoG$m-hNphJMzcJOA*6mCVy(tM5G7fb81fv#aw>HSi*+7aWKO?jj+Vs5xZnR zZd7*H>yz7Faj``HMvkxf0&FQAge++e9x50#ZnlS?rkP~?b1|`DljG#%C=0J#giOhj z+|mcNe5js$#TIsH&!+l<0+?{`(T%UP(2H-=uH;6c+ePIi$*K0~-nXf?v%Yg~vE;~= zS5!|5)D<@a{{Gx|^q_CsT_uSGr2R8Na54)xnEodHRMAOdDu;K}f=xT?d2q%u?<6`m4U zNY9NnDr9o~V5B5!Jj^~Gd+(mP)7b6(>rY*UYD%aXr`YjBdLO^81taD~I(#mRX? z9T|F0^`on|o&VUIN)6V~GZyIqX*iVeuE`dy;xQ~!sRFEtgmOFo5W|8s_$IC6etAWH zyO&TJv1XCxb~kBpRvY(uyGpd?%T5>|(I*7uEE0~Ei6#T9Qn`U#m<~cA1thvGAy0x^{uMTD+Ts9%&*!zGDG})dcI=4jMIzN zB1HH);DS0R(6Wd6Rs9(C5b(NDF|d{ruf?sNF$ExI`uY}198${y!+ zZ*mLJFcY^xJ!m4pta#Z1~f06z^HT znxVhmLu%-IK^WTBN~;T-)TxwW00_CFcm?E$dE{3Ob_$tar9VvufbTxgx1S3d*;D$u z{R0`s#+HXTG#LdiK5JgJ z)dJDuF&`B^`3)vPrkc;GQ0wAt@*n6s7I^tTrKAK|HDz9ig?7M&^Uk-fTZ23Or?KV`}zs|CHYCIMv5$ z(-8V_ciTCTNW%5pp1U-Xn)W%WsDD9iha&*bp&_(G*psxw52d2MR3pW+KtpgZtA1-j zb*mnQ&gLCw6s{f)E-zH~X|_!v){#HWs>z7VP}uv+Xxp0eYYh(hjJ$~!yu;(e(Y8}c z@!Mn*} z?t>X(Onb4z3#pjxyB+zGQBl9`M(Ogt)@)dnwpxsfb`_oCm>Lx>!A2$I^JWFr?2nmI z3XA)35;4JB`O7QWnLpacw1$sMCbEVRqi@yu>T9#4i-zqp-2c+5xAjjVOY%TNWLe_l_FTPr&X&Y@1+BkAwJGga0Yb4?nXtl10EWd{BUsJO91wVA-#ko_ioim}j z0TkFT`pwN_j~AVPEREj3MyP?feMAHJI2|e_Kfj-?Y@_JRV>~~Bd1(|}V+14Nv@7{b zGWtWlAsslRTqRcdSy@!917+~AIU2Xs(~k_s!PbbVS&DnHc{@P z5Wz`DP&nh=gL(&dijVHSZjfV%T+lh*pJt3UMm<7#9gWO;@Wd)^!iryw^XvSUZh@g1RyI`G~5%m)2yisuS5+tGJC#3Gy<`=-<7&`dkrUa7U7RHbNKF zVW|r=K=#JuLRFzu`4){5c{f-+@zcXl0q`lhqzpr#RZ{phVznYF)kEWI)P`H&9%WG0 zqt=95>848*&I>gqkS$t?W9XR?Kbvb>b^NSKY}ZqKB9}IoVAu10&8(eusJ#-v2XgcF zF2=?ar!yF#`gOjcxVl)eeDUaIl7&uM!DhdeS3&zt*6>=x0~mGf%d;#Y_e}?{-tNWV zl#?i8wYT_$hkFgj{|ZzCu(!l0ZBlf*lc2F=C^;^?P@u6uzw}g_jjh| zq><@|zz1`T(m$D@6=$;CjhjarU;oX2bX1fF!f>sY<*VQmj>oAAwa+6l)xiMf_AmYt z9ZnTYD*qD1o2Hlp01Zqy1(kcScZchBjFTsMaZ+L(T1~=RZUBGyZX;{YzP6 z*=W@2?^slzZ?mlAD10yAq$=|-R4o2QNe6Lhp51KrVg-|22BEL~qsO!$1C6kH8dW@2 z62?Wq0_u^Fi3%Uc>zLznm)Y8Fi&ZTx_LE?lzbGU$T;?=zn~Yb#u67t94j=r!Hgf%aimj_tIL^gXyge9CCDIMMo`=HxlwsH#UZ1n` zL*dDqZ1@H-P(3;xwdfg5bAXBk?1sK%+sc-}qou!-e0h6n#!!Nn*9=gB%8BGt3E&EY z6N#uFM+eD@c`+j?6_A3zPF8$y$l7*Wt2Y_qufPjt`m#{|-Mcygcan2SmQoA(yPz{=`RFi9 zxdzCCA;Hg7%#~yQ^h)!CN^i|@$08v2q{9Z+|9VuXC03LOKnkKRt9n$kjWh?V?rLa# zPAV2lR9g|$!F|R*n^0NF6u*=}IO@!3#VqbLj{dHHTV>x=@1-azE+kKXY?lS6KYp;9 zk4Gk5eZU?460cd*&5j_3Dt}u(nwKt`d;sZ7_~18zg;>$dDXarUP@(P%e1qwtj58Q( zL;h^^Smj!4>}U?!xE7B{NaLEVa>L4Jj%6|PjIf^20a8Jtn%0VvoCo_;-#vLbDgtJ9 zf69^OI^MJ${iu%nssdN(f&gAlYl8&$?_(G)B)`dFH)YtJfP-aqJd}e#QDwbIi^sE- z-i}NO0EPR^u(0l7ueu$$xUF)YveirV)<nue?ZVdz}4PPKq_>nWoSibV2k%1Ef)Pkr4c&M+G9*aCe70U)?0ZG_1u^nkAa7~=s=<$$O_ubtgiJj z7VVtn3OhxvSZJH)G`1M#|cGGKUkR2dgDM9U1Cz8kNs;ZnZ(HI%N6@tbqCA)YLJp; z{&ssEplz{6)NoYm*}e;Zmcnz1Q3|OE!$I(nEsSrJ zGbZamCq|(#?jgg5msXTloc&u#?HjnO-XTRtMZd8<^uAI4Jg;1}B5_4%lIH|=WK#H> zdUw3;^cef&2B22<86VGVQ~~E`F;Z zQ6Xyj=oivuw;AsHmLOk3M7qi9x0}1|@HVl$K}t45j4w}?n6=J$B50K<0v{aKim@}O zo{mk?Q-Em5KH_@qqx{FH^;KD-c(UZw@p>!v1PABSrzKDepDkd#A758*aR#sV$dv~1 zfriiOo{pc$cSHr?S#P^oq~TY`ZrX;2Tv`5;0yr}?xV=u)XAr?{YTs2ABOytX&`J!1&TdmIIsYX?10=iB@7QU*gQf*Q(7Qv-#$8;COzXq^vE1J2#x)w> z*$R8k`C#b+tKDqh2^~de%r2T7(JbeF0Iz-%3`yZGz=S>#j|u~0iU`6}o-@L@l0tM# z%PQqdx7x&{+8miFzebC5;o*3kfh1yiL9euuqa~Wr-a9&OY&1%^xvaJ1ogY7Ld9)Yy z@YehhIHc7YsUv2AiU>x`fk~iyE1Ts8XBgU1ZJAo;woHO~d5$ad$Wl z>EA_!lHV7QOn>`u-8==CX_07ATRQ@tvT;DZ^xRfNRLn@Kybe1t3xx$Zw9A%3*jMhj z#V&o1yDMkB5lPq3911u3zE>eGbvD+=j04?R+0Y zp^~Hrylh;?+3>fp3S1xPQ{Jg|%#*MI%Gr8AlE+OgPPEJ6{6oOZPT#4t9DYM@S|gPv z%=2@Dt5HMzcl(S=zEZQ>rbf{65u6fsG2h3>Q@hWax&4cSUN-wwXKFepo3m zXs~a)k!ksQ$D4cZu&*@pMOz5>?Y+m*)cBidT;w>+H~o^Hqghf&jh}Qmq;TUTZQS4B zu2_Yco(U;|BSxw?x9h@m!)778oZm_)7pep{@d%u|Z~#W;^4ior`S#X`g3 zvof9Qsa(ey(YAgBifGk+W&&)wnH*YClyzxX^x{JxAIYC~RRw*%p>Fk*}uqzN>ZLt~SC`hb6tKUBQ!x?7y z?EdYvQj)r~!KbM#YFEY>*v>g)5!P*pp7)93AkVND?BAr0?r+O)y zr%}m~PQRA}TqXTWrvIE9QVT8>K0Ohruf2Rz90~1ojgWoKkt;A13aOPIlt02d_`Q?A z4Xl5`3Hi8Mff-M0=yHi#x5X3~$4topFu!B{ji03Y8pSe)21*sef6CRdO*)fDc_>TQ zb@5KfdVwp!xW4ZdNl@=ETi>z`;wELUE&Tb3*}YKueH|mQ+o)OBdTKb}$7-+YJLN2C zp{L=lEF4S~f@*ZB$Gd*KT9Q3pEs0~O*>vqm<5mLiLk(jbB?A2jhM}8$bi)r}_dafl zg1UELa6@L#UicT^gDLmvmLoKcKU5ZHsh>OlXe;a#9m1fILiLWLsG!Z5oSdYawcXtQ z?3XzJCP{xN>Ku|pg_B%7BU_E<2-g~k4mxam@?aBGu7hkdy(Vc2xx8HVr_4(Z=K{;u^ zNS(%Z`9%fwvlS5fi@y^{;(d4Du+NGLuwilprw}3Rew)$8N|c5xfqiCTRj>jyX~);| zpA}v3ux&G5rwResJRTaiIa7l3Xt}i?{7H?xYkcB}5w#PQ48lsy?rAm+(CdpOvv|S` zq#rl)<=;e7WG6neL%KTtGGmo9I3?h+aKyBLMPF#J{38Cu31=?q_>RS z8PN~PbX+jaT?rLt7`dttGKG^Ei3AaLot`=u*(mANsxEn2^ciK_Vfn+K_C^~~K=xcz zGigBaHJ99n1ctPiNg!?w66dBKgphRlf$D7kXCLO?YjwvlD341(re@24?tEJrI$z+R zG@uV)9n0znG8x}@Sj9k1g9f@?y3cw0d|>Vl-Ox4_Bo826Nr6Dtv!*3Jto8Exodz7Ayr2?mc5MOtYj(*KS_VX$aAJfs|e~fqWwczOd{Hl zal$e~ax!F%-?tF-a@gZpir~}STSgFQUnt+Ut^6%)lQ~xoky#^ZUWvF3O~9~KAt^V= zS%&ar)zWcurXBdy+6(Q5<1kBv6p2nf)IMXZ*!@#3`nFyCIk=OMbot3}z7dtx6Wj4L zZFWh%)ld>Jh+M`_(%jZ5u~A{=P&F>wjLdn8hLsm;`b?Goy*HXD(01zU6#TQGoC3rc zV;qw+9s0g1pMn<3fQ^hJx8X(8;$qubr@UCZ0Q)DPE^&IxQs(zr2n>s%1NSgEblu<5 zY!t115^Oo77WA;eS-4ZR(v&qm%S5IGC02by!2lEC)Nk_;V2#yJ65wTP{*c=Ar$NQ0 z|AcdgrT@2U9!>PKq_Ae{x8R#&p~K(FK2(KGVqxyBXljE`gksYP{iWtE93V<1-(G+5 zy%+KkJ~0BMml&QjSyWS6lblIN8xQ8Ed%zWu!I6j{yR36m_TQTQitMFL;j4G5Sv;zG z0c(pUJ|eKB+Kp2S{YzOYl^ZN9GPrT*$faAVm*Y)k#_?T?n>$tL6FWEvMuUi5Jlz>L zYcxv?E?FCyf1QtaCVdb?vd>a9L|p1L=sTISkj z#bjehVBJZM3F1JOj351w4SHxbti--cKd)}8w|`1EIqz0>$>e$wxapZU&Fn3r=G3I> zKd}NWeRbG!uF7wi{Eq55y$0#U!TlWN%L5KVqDOOCU)c9>{q3K4*14Xo31k#L3<`zP zZEu!UhS14jfur7msr_h`h*n5+N0ivB9|tr&Eqmp@s@!Y_{sPmF8H3!@ik5ztHswXD ze=n=*S_7axql#a}xR5)d>rAUz$zYIt~{|M~DgHu!(` zgZ3aq@=yixzhxl{HwpmaB`>WcRVrZ|@YRgxJphmk30F~)#m1n(KzxNQFDHda8v!A9 zK>#!q#OBIl>H)C5K8L2J2IQ)$)It(g6wn=l%bM1@?$Q zjcTt4yka4X1loU_37M&d#-^v==@eO6-V!b3YFlF29ld4o!5f~dQwGj2}ncahq> z_8{l??ufg(g}~^^MZHpE@b@Lqc3K_}Eu<5b4Lx7v+2`zj-KLk&6+NeP>jtAgbKrqM_2o2^r8-DZ7W%q%2bYNTx1#vM!2vfWf!2eYqZ#uRyhv#OVDP z*&#MZz>|-@wubht*YuCQ*6-GxmqEX(9)4;Bo|&mU6mbR-jypnhZG7!!ua5bQC^69V z%X{r}?;dg-(kD%<655`ySAO`$vh;@dFFLXZm$wFu>te-|CSXMSd!+LAC*Z$BFXEB& zyJlZx-<%t*At&7l&&RGt=m+3_rvvbwG_HT?gKeSVcic>{wqoyCvFsg&NrzRd?1czl+n@o` zj*Wi(PaEA|x4I%Ov!7oo%Zm7tFrf%R$d{=(tFi^gH#d*%31HnWG|;X|_M1_{;fqR4u* z^3B_EcVvUR1I<@HWuIc-- z_|f~k_f5EB)WERbhZ$!3er3v<7R3vZU_+nlBy=Oqr|g+T6;hlbZqAq8KXJ`gnC2I> zMNx$@1LYK@SbtTYI06F3@%l)*?Hpe{2MpHq3kuaEB}4PnIpEJJx1w)S{7Q!qsy+YV zt3_7`73RU9jXqh_@m0xXsLbWag_$mqq?=+y_6R}|v}`KBF_0!_2C>Ub#?)4*jQKZt z?M-E$J3iWL6XXSdlNy_EV`$(DZ{A@4hg!f8_*66guItvYV!fmKU<4t|p!^^CcHg$5 z_%EJzt&MfhqfB#Tj0PyE|PnZq$?JaiBq<36N!V&MCJ zEMx{fcXqPU&^e)O6P=^M@8y2svaI8aNN8@utdY_1_xP9G(te8?qX7C$mLk)N>RxC% zxq|@#S>L&21^L|jo9u-*jYxVZX6?Wh@d#aD1vV^i_v@WYz0>g@+|`NXC!Iqj1kNsN zQV)VUW2F9K=FI=hJ@kgQSLLQgAEUrv~!&q+val|q$fGz98t2w-WarsXxlzf4q6Lk@4-{i8D{WOw|1Gg>(+b<tsR-h<{U6mn+=dq#wf=K0d-KG2LxLYREKJ7wiNBX!ni6k) z#6PzhC>WMC7DD1`Q)7H^I^42(5B1LI1?yeqCEE%isPl56>}t07{*z)&Sz;+fa3h1O z6{7gKiF>nP+*jpkn~5!c4Y{ES&zxQzkA0d-SYf=sciqGJjah;Ko;=Cx*b*>(R+sO) zMPkjnzPPw2IcQHwU?*9+WSZC}>#Fu+Ipg!`OH`ioRT%JbDVG_lv;IhSpMN`~uI8PW zJpD@RdH$P7LT##lH=raYd4qnn;fLH{W`d;$a?+(kr-w94 zdm*37iB0qli&@^3C@)p~N%JM(phrLYkDmH`xo+ePG2Y+BJ)xOg5qNWNl!SnvtKBOH zleRS=U8=ufbt)4>JIvYfB0L!eUQY zEV+BDPjKd>V@;9*?m-VTg4gFi4jQVqybJF)V#d{1&9S(p&E3HoddKDS_hQt@nO9Gs z-c@yFJ?#ZipHv>52}6-xAZtcxm0nn?6i!6GXY3+~Yo|d#^lr-6l;1P)2-!@odP&0# z#Tr%iQ%4?N+{fqTyNrKQ;|{-* zAPfjiPS#F6GqDp3GWk9(x+pp@*z0`BIX{%re)VBf3S&S@E~_8WnedSdRw;zE$J#`D zMdLJc8yk`2t^WAK76(VPw>@*wmXDNX$;)$Zd<4NgTv=G8og2Jas+*Aa6cOyfqoQ|9 zf0gZ?I%+e&)SYmUqaURMqJbyrm}0{`{@q2SX+JoZ7hR}s`3uM6<6HIT*}Y#jq@!NL zvD)sy5t`86QEXA0D9i|32%~s*uP*Ly^7J;h?k;!!Sdz_HNY#IB6u;xnEFPlKd;h@N zhWCs%vSd>w>_Am_HAl;Gz(h?#iT>{F`-61L6 zC4w|aNs4qxceiwRcS^^Qa~|IJT;F&8&%X9Ed#}9L+V?7BaEq0~oddp%1Jl+@lfeHl zHvxUqqVxOB0g4DL6{{hr1MJ2Y(A&Kl)zkaEF0g&yKyT~><&2+mjSrx^9>^T$R~Qbq z5dH8}>YiFU{As13*~D-&jO*s@ zvL)G`s5hD_1R)coRH=G371W5|wzI;@r-Hf%OH8l@ErI`D-|xdF(jEWNe##c}K|-{V zh;O5~BG?s4dk|`s`$y=Hhy9B*j_;*y&l_1atKtds+<%REUGDT_n1ERS6i@LGASiIx z%j{S=IEyTJG84;OdXsB@+LzFF(PViOTJ!JMd|oNc$>h+GH%s&E*ZXKbHC zgxz%qji%lWM%LNiyS$V#c}X9`iLe{+X5EQX5Fhp$tWYLo{pb9$CAkVGR%cE(uw+mE zEBh5XEC8qZeOF(L?m)Z1Egg*rxagD!wiT|tCcmy~K?~9c6D}N2zExK^Y5Ls7b4%BO zUnhjX9=7m^wOj2gkou^lH+CE^ns?uhF}3vM;easMFPcA`#n4042AVM6VzIQ6_~Q%i zEyKxRvTa}>G|HoQ00D=C4GQ(M6F~r|CNV|fCze~D23kE~UaQCN`A6^g;e6M%CMH?0P;^U;kKfQlaHY0YRj;Y04jh0IA~WpHyB4UqX+T_{>%fbRPzg zL?cPQ2txg17ef52DXkAW8R=OY`o5}^6tXEtuugcG@rHq`{hjDI_v>*Kz9>_Rl@aOmu$PkWG zvEUP?fP@Nr;yo0uGAwA6B$osoO%pX|zjYp1hmH97+4x74Yk(`$)xri2!u~}ALz$ag z#9qM2$ij+NQfxTj!=8t*2r=+0+$>}oqyoi>jP`SK$F|HU5yU~O{C)$cl7IK3s#0xx zpX<#GoO%H+sh65WkN8IjJIQ=IY6hs)&*WnqIt^?N@7e`Z7@4se0BmD-6dmhDZm904X zv%M0Eac@is=Qs@A#Iq(^6y7nf3(a`a<>FpJK>gdzQHSD6>`C@kEAaZREoYdTM(8O8 zV95ejyL1n&i9w`W1{i$Db(n98njj6$W<nD11N*nY^=xvuc z+%a;8m6;_(B*CwqfuEPUj6R0o!7a-l`65f9(*R5U{n|0VtJ*MC{SWUzU^;6~q?}GX z-)LVq6^e}y%_BDt3jQ295NLV*?i~I3p5`>1`c!`9bA#Y8 z9|@Gr&eo<|Jlrt1hBa*0ikh`tYou4x8;gF78G#G(0_#V$R1%G?!CiadEQRnegUDu#*zadwBp-8@ zj_Uqe*^3;-L1%*Z#XQCyZ+NmPo+2mS(N2 zd$c~K0^FY`mlFcch_qf$lb#M`=veS25VyJ$WDGg?wS1~GS{{z2OW{5NI~pf88m}0j zXNadH(~<2_zs4_G#HhE8Z#h^?`ntzrt+53$Q8hgjQ#Jzn_0CkYKl&#>fDq+!2;DY9R|y?YU?E;Cp2|DcF6- z{k3(SA`?%pJphCRLa~h4_^>u*d!hVwcxpd3XjW9qNU39`P4`+N+VA+ppDUh`CJ8Cb z@NEykD(xeFe?}VaHYCchAIBw(KSvF0egC_wjp2h>-<|N=u@7~>2pA?8U1TbsrBcY4!GLK6)SU_7amVY`W>lX z8Vu^)OZU!a$tdY~!~Dm=S&{NOHCPi&IreIUPe`?nx9`yE0S#D_k2*U-HB2Q4 zxVS|0o^&u;h%srsQVXe2*Xu00JE;3lp;$VQ534S=r%a37i{rh2%r1OGGq{y0_p zBG=%pHG*`_q;3TK-9Mu%(cHpqGjsYid9j6}YOO`i75)!8jdunAyB%)1eJ*o(!I%#X(MTLz1$bXh$!6~ht=7(H;Yb!qpbOEAO^=Sh#2QtO542ZV4Sg^WP6+6Il5G`xqaouAQZ6`IK zVqt*?WOiC7O$;@WEeC>)Yhg&4P+WsXyY6ijp`eP?ZPU-ix1)ZZReq>4N z*w&AcEW7j?FY_e9Ue6K9i7w2_3BpSxxob>c{Q-|XXj*KR{?Hw;zNJk5wK_k8iH;1% zqOpTCcYk4H$Lbh-Nu&`4RBdZlZ@V(bqC~`-s<$HkWdWaUU`cj&i}f&Uw8PO~$=o{; zg3pL6;Who~$i+z)Duk7#{MKd~4~0pWjZp^N2Dqtq`}H*rIRfUsr+s~K6M|KCfF^~I zuqgZ!VN)867cECZYyo(XGm%&drb-gwIqo&PUTv(q2#IMDqu9hA(IeHSJ5^13tcivHha~ zPxb-(rQwz2m7g_7C|W)s3xBHD7m&nVwf(g-!;*&D7A}9O4fb~nB>{$X#OJ1P*1IqM zD_zBdpza9YBBa4U4;dK7Xj^bL&xRkv$7ZXwP_0CA!Xq=pmW9I=BPI_VQ4S=rpM}t4 z9bebsqx1OY;8R=t!H+dL8VN`amV!<#b_{XOiKJtF_gi+ln05#dt|rqki|mNee9Ujs zecJSD)q0~vt}OT>R`q%K!$gP_B8}~WNa%|!<*MjD5_(Q9Kph!-!<4n~pMf01X1JE! z`fN13A5ZKpydrp{k4Gje_F9+6FHBjp_T&62N17l$n+g%I&EE|jt03+K;Ds#lVG`YE zERb2x6ro{Hj-I-rEhq|VDFmKK%vD;nuI{}bc{oV>ic&-QLYkMwH)!5U z-!JS_7~rVo0gmJYByEA0-f~~UNLRQvU9+5ho)++VLMPcR^4Y&PIo-8p<eE}K4`z5{Fc2}&q$as?@R)yD&=)&Ds)+3rf-o9G~jEshVtR~Q!12W zM*>_6$pPl8PrkHWT=|1!4KnxyD*rmN%OnYiP%!5iEjf6H{X&z{X3{j?@Ln(Kasg>WHBwu zusZ{xdhA*j8fwM>MuHeV+uGXC3?PB=z#+~Pwf#>3uQ@01nP`Y+P7a_gjUE3kHHBS^ z7}6gs{VZVtkcAlkYFnM+NR>i={Bw zGSPE_Z~L!x4Gx0UWF-=f?Gj5CYjW$BM_KvzzHf4dUy3A$%C^Of)c|q?$^Bg-$hWgbp;r4u+J9umM zb!&6u1u0D-Lb=Q{PpsiWo%Fpld7a&AOztni&lFt;s0R*i&#A|V9p~feNJR#Mz7y*|Ci3B@^x zZHv>V`+64cl2VV$I$8IYjFvT%4G^3D^CQ@l_vm5Gtm8m7stv_pf@)tEqyG}#sqUg+ zqYS-IcmM?d`6|Sd713`%l8v)H7+LC6TgZGewZE25{aW`Cr>nDV0&m zEalPJpJ4u4uWmbo$eNyUkb#at)o%BDTMH>I-fmd_-yJm6nJ!G0a?}=cG7JDfvbGyG0Aa?Vx?XYD^RGY~N&Y8RG+ud1ij)x_;s3I}~?xQ+yHw-_oeqZ@P#ZcIHZV z&q@5>-^Qg6|MiTC>lnj~xEhb8k;~FU`zv{@SvMD69HmMc3Dhb86QEylDxm?cKd-jl zM+`miIwafU+VegV`79Lo7NQyibg(USo+gT7}ni z{76*K9M|glmH=; zFG_+t@uF=CHv{xdX?5U}i`L8#zy%j`tMQ`@e4TiYQt_R-(glUBI2*T^PS-QB485wF zo>Lq=Q7Hu~p9UohaT~vx(!oYyN+zVH3qS)x3{F}_Z_8{*2Gk zNE3f^(}PYWlI2>8s9(G|ooDBI;F=5(jb0j1N@M1f7+lzTLUdw9_q=&ALQH)^`9?Nn zLIGe%J;2$wWdf+6O&_a6C1PQ<5pM>qc3ohnnBv)lpw1b)OP?9_c#a~!s<#_*{uIro zMB`zgg<8volDY;-MBHMF^m9{s{5c#zvF-!9LNYe$d z5yaHKwp~&epgK_?uhQjDe4PoL_SQvu%E`a84YL4Gn&{o8z6!#so67`w7!3w71D zOjw|6Y=`0N$tW!zGPI+3K;3<^*Qs^Ux{YAT?(9`q#v=SzFj#W*JB1zgyO>OlxWnS2pkCqJqE+xg?z83Nc?vrTdMFEm3~YY zoQ?3G&tu8Lku!)B`L9ue09Ts~q8Bli$<1T-{~b$Tgg8JAeH*B7*tFd#lcp% zF|};A+6%QlO*2la*M7OG?0Is4otQ)ZNDJ~4gA;zM70RetoG>j@d&uO85fcJ_|4y5d ziyvWOM&?fCNEKAR-Mh;Kh){dCz}YJWFm&`D`l44t^IQ`Nk2Hi;LfsLt>Za-KvSxD& zAeFnQeF?J@4XrZj!6ap1oAcWhZi55PgT>IZLoVBWJQZ~XI?dM&X-OmRUJ#Yj0h2uv z`D}})<646r;c)D5pG)vuEHI8;{u4+x(@|!p+_&cr9W&D}&!_2Nkjjd*_hU6;`DSl^ zm0VUUoWpj(6>f0%p=5eAhr_JOl?}S`98TSn4>{acY&6Wy;HnhSQ6Wf~SvMIEaH12H zN}!QM64h4cC@rEy+JN3&(gG8&o(t5@_1sWg|EqJK*d;$}D-@bjpvZOYm6!7YOiD-d z!TZ}l(~$zhJ$z5dh+^5EI)zKt&=?RY#R!5-Cz>^Y!y7^0C!@Ru@w6K|i`$s}gX7;s zAV%bYY@KHsRhwB&@^xI2UQ+sz_=E;PJ_4-)Gz{g6>V^00jrI^7kWGy}Kdir2T#%($ zwF;}9aiI2xGMG%?TQa6J>-D1D*Xg?meXrGTxzADTTZjMv*(DT45wuUi?Z?2H7r3*9 zL37CEgp?&b#t?kjF#qahJrkj2U7g>LUKMwx%C!UaruL8+mVmKYx1I#|q<@O+ zy`Q?~ga`?rCx65OOK3?z+T>O5onk~jl^!%*Xxb+V{{Nf;=iS9=ye1sJRJDX0L-%Pz zC_Nv+>2^V=b?nU{+z9Gg50bq@zZ)8*f~|EaJHL|!%O(Ivs&>ZhScCr!p}J8*3mx?S zLoI@9)W3G+B~(L&0dfS}g+FQFa_kL|?5|N0!S=U&K*SyV9C359i0sMJgihl)m3{bW@QK%-n+hS4D{Gsps20*Mza8jb0M8v(r-96coQa%=Q|S`QOc3sMe6B6KUb9{P38L{7`c5V}za;u?ZGRHno zZ61$hl+GgmfP~hcPC&Yf-hUFLvf)Rpu9}FKz?DN5ERo>kG9_1PolZ*^pvPxF7EE!AwyrW&q07h@l#rk51B ziq#w#Yo$BYB)@ykr}=Ut8%v&YmD^8xO7o&)n9u+y;Zb%eCy*-@FrUabkp(PG2-m+N z5Y*K**%3>8>>|VgFrLQt<3e7w>hm}$Mi6`rKgm(H9S|gthEv3@WEN~`$!n8Y{}AcA z7L;wgEK)fPL(USE7@~^d?LQN2 ziZUi3s z7u*oTqszwve9_}A5=&hSnj-c5j>HpxATm@TkYCn-PoOwlteTMdyzDUMdWD~i3mgzZ zXZN=_`ts`{88_qc3o|AJ&}6IP(_)B$!^b*CEu1_laQ1mp?H)^vbphN6_kwVrAV=>1 z;B2_J31w2-ryfak0ohK=*futvD5fUX3V1CLkpqn6YLR&Mpo>dIGVInZ!wC8ic_0 z5MRq^JJNHiT=}Qr5o(|br>*Y==4BD#1JKNS*ifT1&1G@1gWT9}_C7EJQUg2eRxi~s zVtdOdxhw#}s3^9OY-MBl1voKxwJ2&*@>gF@R*`5n>4DHzEL$KY86)6|l`4oK^G-CI z%muBIh5QfZx*DhstPA5B=|=tg-C!ZP`i<2W_Ks>tO22apYR?U+Bv^z5P(^p3aEfOG zPrgLRMdl~8^LJ}+Y6)Cy*IrFphEh4J51$Liw6~(l-Y>l2n~P})tF|q9I*F}qE%Sy6 zqVYb*J?0bU`uFswV*}p?973PCEH!)j%07iU7Tq;;SPYwqv-fI!Na6mt2t-+GXsibf zdZXE2d+e^HQhWa({6U}cGhS%aVTq6ehXDr>!~B791~uTG!wW`5C~a`@-ER0J^1=8) z0cnBW*HGz!(Ry2XP<)-@(?qQ7XBfH&{#x1y0@v z&UAf)`U3h7dugzh@M(VA0vX>j*neJ|%(J8V)$Fw?CcHO0zc}M2OnRWRo<4>bAu2|W zz|0d1Pczyipq~1lNo2{IS=LJPq2L>V+W7Zk6868V=oEzF_^Lhj8hRJ-cu}?csN-vw z=Owl7OP+kT|nfO)7F`VWBPM>)KnEw@Ln*x8VZ@3o#e1 zqNj4?i9q<%_{FMnM+>lhG{yFL@qexMa zKD46AF2?d*9F63Yb2Gmwg3CXoRh!Z8TM8%JC$jm}KF1h9t!-{X*rC5Gy6@MMB^~JC z2|*Io(v)ykmXw6w4?y^2Q%V0|3T58#*AUIW`AD5mnf)EQun6`tk%|k{j^tZWn?Q^*E}P3F>fZx{sJK>v#+F|`aK~wQ-ErGzL@fBv z>+9s$*9g|2&tYe`dHAOrDz#v~y>?)jC^~De?naZ(#n?q;>E2K6FXl6!!7thD#L4IR zHjZ}<2H0$&3nkUd=Cc8}vHnI*RDMo9XCjP%Xe*)EJ>jLkO7W)D zBIG+|nX7F9C}PP8oQ)^{`JA5>4zn2GXx?eP5v?xWPB1}`1+X3iunVkU zZ1{cq;~H|<@9$|ViJCkwq@Z+?jz*is6_B05*tQ$wulU4aIBL-R@TT#czm;XfT|sTS zOwa4Ks}10|PmF{7$i@Qchyy^3<=O>Gi{nAryV6zk{Wq35r`)GF32q&&oPkPW23-W= zbY@0NJGcc(*JK26Mw1sTfnszWlCz#{n450G4!0pqWOCt-&mbD$nNkHVY?9k~fI~Mu zCeOFM@%FL%jp3F80)p{Vm^#!47fer@9q$=CR?B8i(V^8fC=cvvQXbuD8gQ# z<%q9gvGP4w>4vq=?Dd0QrItLnC7?`y;t=^G%|aKZh-)>KVzodJKtp`&LdUnVrETmsE~E0I>{#k z_%k#DP46pUx;2P@Kk&vAhHfd~B1lPd-}9*{zmU|YYAC1U6Bx_H*816NKR&%~vi{?9 zcv3z7o}|W4>d|J3oZa9aCHnX?uW&C@fcmqG0s1)r7iFRAwe-VU^%R-eTy`eG?KMM2o{^fjb!tng55!!l4*gQ+0 zi^fSHvhyIP7e77JI$yL$T!{5olRO6MC&0fdQaqSPfj3zj+sctH@Z55VNJaVGSth(H6E8E&bg;O{H(E+ZVOfAKH z5RKxw(a7tYOj}9#9p%o7e{l7+%M~0bgAe=Dh%Nfhv>e>&!-*6hoN5i;e=PP@rTRPU zYbmt4Uqr;N^`%FmNn7L7jv{y;H>)om$n~a)2;84`c3G=NL@(7vDN?@&JWNRoBhM7m z5kx#NNt<);hl-66I&GeJ(y}Le63)3<|6a>i?{%q%z3wI9rqsK@1zmF%vpI)ZAX-5)H- zLuP$WRLZv+e<$tJ+_A7b2)-*c3FH`tGJ2={xcmM%hN`F`+@pVCfez-#MQ+flQ)1`ofaK^|S=uc7-W2OJI3$%OBN2P&9nShXYRQMk~+3_o54UH+7s zQ>q`Y^QCX%yo`EdI)!!don}I@*_WdCX|Ra(;IF~FYL6~6PTe?xtBK50)cRigU8_ZY zBPaA@&&uvRv1qR6_pSZa?2rM;k7k>ilXOBTCux2;gUaYs$vrJ*C{b43Ts~t0W9mPI z--Nj7?e$qIeyw_KgWc?KXvG5cAIy#~tJowkte>lgehQ_>BxgViUF6BcFTdNCq{q9Y z!tI`5IhsviE7J$03io{i&AZ#6rp=WM(GH@EOvCy4gv(a}Ez?=G=d)vw7sE4RqSfFH zWy5Grnu?DJ!Xcx_N+TWU)aO5kahY%j zt;0h`m&Vff%cEk#Sv@3Z{n0|EK8-qZG{_}#8z*Og`SNfyN1wXt;2WO#n>!DRL!5PQ zczWS(Kc*}V3b4!88bd|sFkLz9;1=-|{=`(FP910~=JvA|fujuSlTCc(zJ>zO@DC9M zpduQJu9+N)Ju!|>KaGZjhz+RSx2e~1qE|$Vn!mdY`|bx}ePS7zoyNKwy5K1DmTx0> z@gs@$pCukBx=R7#|KeNB53fWS6~G?PXpXXdxS1_kz~moMPpc!T%&)i(jLjo?t{)Bk z2;3isBn0ZbgpJy?2V^2v^h*^-Q8(`!g*TO>sGAdcl0z!)!J7%0L%zn z$PoMDWwy9!inJKk-kE?A?t=ndiJsi``)(W1FuXuCN8WX}#l9-#a%{9g?1eDTSK!yL z^c4veJ^K~zFY(r)?nwPsFYv0)hS%*;?rm73e(P4KzHKE(Dw=`XE#YnF?ndfr$*D~d z=pb+DtM_HV^>e#O%PNOW642NTJX#sW35>R( zgyUiMH%^|u-1|6`^kD*j6&1ON@9e%lO*R;^df|Z8NfjU_Qhd@fs}78P9ks-vZ$Uk{ zUnUS?bWzV5Y>uDepcqgI% z0RSim!%p4s=THJB)hS)%byfVn7hb;~`t1Zg63O`d*ypmIrH+4*>hjCg28)6hbtdHv zu90`9K{a+=ul_^-{Yu+<0CJp(8vY*1v#RevtFq;QhbOteN5uPXnG+|gn<*LeO1VRI-stjS$?up)4zE>7jzgkIF^Z2QbL1*#(;Te6 zFddQ})gCw`7f!Ag?zZG}>u0;Vc<~Sck-f85@?pl&IU{P5 zzdidOl+%v&uNL1pX8XFn4vOGw+ISI0FQjks(9h8iV2US(^WQqf<2hG{8YN}bZ$Ro% z5N@ELEf%7W96q518A1z8@1w#=zp*JleAITI(+Tc(Y%J(lk1Aut6~oCmr1|m)WAW47 ztiXzY^3?6WKPk9qbF=+eDY%cVn{ljt2`@#ZAg2}jR> zJMF{m2R>Hwaoo^Ja#Z9LVPod_7TwMuXe*#}WRdPD1NSzHcQ@;!qEXG3%L@ur%X9kn zQ8lyy-p{H0=uPiOH&6hNI<>DX1Gaux;U&FdG1KPvjjx)5)DZq|VQFSue3bqu5~yvPU)m-^UBTlw)%TS9O1~-i$8<1q-^m_0XsmU zYRr3QC>D~2%BI~?kgw@;mNhmhK;L(~A@V@atY4}Gles`b7q8{)(j-9F42*Z5$l;B3!SdXJoRms7Z<%o1nlOZ^U$AUZeE`pZB{=I&7(*e zy(5UfaEATO{AD6cdU&C)i@g-&(To!B;x9)rOS=A3jKDA=pZE9z3hk!s_3`Tp6$-BB zczI0J?bC5_wZr^9Bi!WV_Pvz-tIJ4Ror@JF=^Oo*z6&g1)}&=p%%QoDV+rpI%NAL& zG+N@mxlwxk(zryNPwRk=Ow0au^YSg!9{;_4Y(2Ucv!E|R;@7yB7v8C!kbcYeT*uzw zQGPAMc67OHLBZc3#5{7|X=zsyC}{LzIH>m8kR*Ay^Xce?BIuKg^z zaP9`}2y>0!1G=Rxf@4oZL5zEbb0I^LqUqm>-y*HvpD`-nUgktgw3l7kK73xO(~K8u zmsm|KtB*J_$&2nArYV0ccgN zD&+Sqdps3-A$cF(fdHQljG!W+89F&ndC>bj@tz(;{EzUVl`u>MW3#5uL>Z3m)!x<} zb3tChl=;r%@s4t{|CAgp253O=zKXWrrzThZCcf$Pf=Vy6Ok?BF!MS06uVGSnl*5w~ zIRMu`Iu}Qw?T=5{V^s7oQ_aaahi~au&u=Tsb>sQN7Uz0*ZvUDtA4wAPX_vU99R)&G z>ozJZXf8#gB+_uc{_>Q)?^$)mi4?wS)mfzvM+`~Bn_GV2q<$R5dMq*cAw^glOId7J zh;Z2(Ppt}LJagCR1+#G_e|)`SxB0#ua?sApxDfgvl*<9!x7LB*1e#f8R0;jOh^XOY zT?21JF>S&#;8mNx4{MXduW7%~1svhmA1~JpLrqq~#)davguaJIMN9FE2%w?|C|+{o z4QiOS&NAMc&*ZVcaK{y>#(PHt7UM+yjm{f*cP5E3=yd0*Qg1XNGW|I*^(xk>g22$B8~mrTd1pEl0+)+DNl@iQb+n z5!)*Kq@A=$15~M(lrgchk%x$K!|ULP^W*NzaRw3!>{mveWrcH6%NbYuzQ)X^I`1Li z`RsxzNT5<^0}&rO{N0We+;QP&=DW8QKLF@r>sx!xN%Nya0g%~MJYrei<-b?v<3Giy zN#Gq(83g`ok(1_%D%_alWe-m0&|acI=!vGJQ5L~ZvBjCQ zgK&G1>^;Jfo~bA=nvG8w`i^3kt~CixUWzajPmhA8HGHUzjgC zVu(WV(=PzdInQ1x3+W&qV^|46I-S?tR!%5vHNJ*vt7KuCy<$`f_(lk64d?V14sJ4Z z_Wn&QOomZXu_=gkNm0`qJ6^ED_iL5XlGN`neW{rsE;0)4jYE1eZA- z3~g%0Q^Ea{NVR`Fc;GBNt~RyoJ<fZPAq^f-3ruY|Eumb-kpMqX3S~pcTexj6;6H{;?2MXdr z6rsV}Onrt=-m@=29|N20=Ck)t|6H)Ajr&nEmTYcWQbct-&M(l|Ta`QEg9jvGRH0NI zVrMQ7=aKOz+8iOlK)2otu-{Fh-_J?tfhW$-b?Vy%9YghsWLT9Sd;Tl;G@jT}1U!go zF?~eWx0o>v2h?*NRy%>r{NS|0W1*KoFGQ8&-C&D?!JE24oRx6l_8Y<)w*r#$FmY;$ zbI8_<0PloNcY+aWxJ1uITQ#f?=Us;P2gO*RL;a7}{qVQ{&L_eosG{v8mVaIk`s*F(k+45p)r2C#IXD%5~JVio2qn3Ey-|Sj()PwUstq{X{_NU8V z?k?NLtyM)q4i*s&Tjlom6aYx+>3iyk*9e!Ov=`#@Z5{rK({69@hL-N`=Nco927M!Iz)HG-+oK*5GI}k?z1L>!yOEWc|#5 zrox0aVfr&GB{1Tce+U%6x*s9qHS#CTPv`b+;Y=uG?y4_96zior)dje2hi+?mrP0K~ zCwoI59ypeL-SHP%#d~YL{m%nC+eyn(6W=!wu`4w5eKCIh*Y-}6kXulXy`8(>g@=r?> zc4YT*y6lA?CmF(L9JSvET?G#o893isTh8;syEk!z7y^9WU=5nSJv>7h74RTkTJQxE z3~Ozq;}EY`Q;D@;p6fB1d9O2a)Gq~vf1uvAL%i)A-KZoG?Sg9jJ2{Vd$NIbbxSt|V z@goE2X}1I3A}P9Wo5|9X>V06vCunOHn6QiKoyp6o3nH?nNoz{73LIP`(DAofsB^Q^ znckt_SmOleZZmGXW9ygdliz;#`Jq1z*t@Je#E6$n3`18~mI)WwbtfbKL~yuI$DU~W z_9Z=FY4@Ld8`n|mKryw*xS?I5W>SXe&zMTF(js6W2OmQ|mohlfo=qgFw! z-Lap}4Rqm{z@j*ADZvsg5sU|elZE+7=WZ1^s5ZVo?3ukf1{g&3?_~$HxNj-&HESLc zZ*k+`_$^!Mnr5CG_4&|WGjAN{pif=F$0mU{7&T>CsQgXmO^TQ23;z7J>x_q$O8-AQ7N>T**|dRh%8#z|o-hsV8c zx1BkntwsEF0k4+a(QN3#pz7*4CmB=YKXTs4`F6^TypI;AA)zFN2daR?#h+?5jJjDq z-G9rqWGL@aAI4x_XWCqMC;Y=~w~T6UfYd7+)_x#Wj4>XIVi0nDzkB+TAJJmmpmO2E ztH~q=ox{B3)A3AGrzE*nmCkv0@02j=q+r8}a24uGuB#}wvm}NDSXtX^-B5M07lHMR z^_ai1bfF0qD$qVj6MtWO^l9$^kYLe!mF{K41Pk#U4t@?zcufMUMy%>in(7n!_=*;1PmCLXNvZhQD~|7{NDjG{-MoWwL~(583RHV3AMMU-q1dx_KRZ#?W4l1El#p_sn7; zqB9Q5Uaz)}+X7JQEE>AA#t0kf#jX-FbauME@hczPO9sc5`pw`tl8Olp|N96-Y*6~Ra z)Q{)A&%_O4iDnZRdi1K`C8Lkl)hwg@B~}Xm7ZPhdVlV;=u5ox4H(AlSN)IYhWhBin zxn&)~$GFcJpM$0+40Ij4JZ5Qk(>^NI(E<(9C*F{R*(*&i0vf_%(%xEq(fHyZ^Hv4gD_J4_1^ zPF=vn0772f);y-uwG^f{H1jVSCewbh2gSamq?`z(S5NKq+c!6?ILO{tP^U$uyL+!x z^B{sw5GI-wtI9H(5$GDxybG`RiZ{p-aZTMF!wG(x-Q;^-%6nnFP|8q#u(7!EH4JtU zfNh@GRiTDKN6=JqAeFm1ZJ?G*g$m=`itjH28rB}iUSRJT^o9b8U!g}>rKDm}omqed zFC_V4NUq{TMoy@q=i7C=YA?{i_uM558}!~vyUnF+V(b8G!j+v>MW+FDKHcBPNA(0H zKF_db)x?*dz}L26Oj>EEl7)mh0tAu9J3?X+(pSTSfXDHZN4HO2K>+^BAC4PV)3UmE zFw&bPp5*s@ij`6j5wDKdk3PaH`R_*WvzUW=zS?VxGrp->=nGzr3^P!Byh6kMVrYS~ zzw#3F>vw_?2j^Q&^=+fHmz^gyuVb7~|Hg{%X=e>Zip)Yi*9lG@d%a{P`(GIp=JEX8 z2@h!8ttK!S|95N9%fM4c-qjs1Pn{5^rw*ALys22gVN~uNXe*X3nq+$PsYyEP*N-Ap zr$tqBJL0TGf{Gd>!gzd%Kh z8Uqp)+d!^m>rfhhjkO1PkO-Y2Qy3I_cbPrnvnw8+v0R`m-i{(Nh9& zo<1)ro8+E>QgZsFtI7NZr2YUqH`F2w+kfg_G6coq?*>0$zDKz=wAZQnY} z?_yb7y*dsg4`Y9Kzx@cRcWgM1c0b;NM~1>veB9AbbX^~z zRT|eHSA|d<G^uNerZgl0GyNj)web?dB)xDROG&a4vq>9c6eIjCk zvleZ1zBQtL%JbShYE^t#Mm!y*W%a#{q2&T+|4Hiib4P&$q&qM(h8G4SAqX;X9?Qcf zC%aH(l+f(KJBLa`FfB@J{sR{7QEx6$m?>E6vBt~1>PdSz0`nC#;d0yLR#+5KR% zJClAbDVG5e+`3Vr3iVh=N~4%FI%3nBdrM`OM4YaAUUPVw_X}Sayu-ZPIPA2MUU}3%4v8#E26HqD~HlUT2l}VEHtR@ z1ySB8Z{MxrfG#0Ds=KIMq%v%MET-u5{AX|Uzv=;))N)AGqz&dUUkb%$SVYsTXo6a! zB9kE4K+|`VwkK;>DET2N(da12G$u^H#Qve({e0traWov}x5=~UYyh(-H|ABUa)bS{vQUiOPEqqgx~M=$`1CL*Oo&%b!7pV` zp{4TRB(G6a!d_1uUirG*=CI(5Q{WFsF((+wk(NTk?`yc?>O;p#MjdUeBu|>`A_izP z>2?XT`1m(|>VuhS3>1DzS_GmK<>_$HiYYZ05n%}p$oh{d{M-c#rv)csr+po-KX0$Q ziu}2&dc*nf!HT9JOkw@}%jkLr!raZ;4Lw*_ighoJ@0VVSS--GogJ>9UN(g0u&C1hb zPk=@}Y2wnCwWS{RbCC?9gtn!DS$?eRcMKGSn?r3lALn6nfa_CrIQ<$cX^Ys+iTl3Y zq<-==(6v>y+!o2-u?CKlb)A{{cfik^CWhxR`+U}6d(cdr4>Z0i@GDMKk$rO4}}+?CPx zXvy3y@(EoAGj;m6uGX;jqW=(`G$6GYoa%CSUn`$E+RVYX0-l!s_J>vMo< ziStYC*^Y%auLg3V+fg@9djZu(f#L0~lGibjB`3i=c6&e^)7e$;r(?aFLF9OoOEld2 zF%;-vNPL3`m6TzB}9M~A8$$wU7Z zN6}M2iZJhGvBb#P&0S*q$m{>1>8zuo?7p{u&oFd@bR#MG&=N9)ba!`2NOuh_f}o^y zhm>?T2+~M*NOwy!zxl3rz5mZTbJjWcslBiLx%!$dp_!=sCS>lxP_6q9MpSQaKWA|I zRb9NQOOyor)M}QTdW`-rbQS^tP}qsI}d#VRznJcn3?(SM~cLrr`ud- zaGfL@L8NY~P^RZ<@;*+pg*zO%UR&5(deW4$3cr^K-RG?q5qI1V?cgCjX=~U(>-!jt zpu7idto|XT7gFs0FU|)WVQ=qkH=dacAnk^WQ>+r@n%@Op(L8bVCypM3*;2LjqGeIa}$?C2J88A-5$W(Kg3|5Cdm~$ z#2{_+!KC)AZg@Ao}dFJ+;9 zi`d9%K(6?k@pq+Oon1ZXd3m+mZqsN!s~y8^e;48@2`QbCs?v1vX$(pUw8Wk2+_H;ZDnS~->(#t>HoKyXPTC#F8eOAv=$E4*ryX@RXO8xTk-)E_=Z@l-# z{!+7CiNQZ)*`Fzl*!l8KN9o^!El{~z%PYJ-_Bc`VsPl1O4Pl2iOWRdcl##r|Q>PAuI|D<$V_`&%q1mafa)vRcwkIR9XgdPAZ1 z%*=OBGdd*xvr_1XTa4e&65Pm~D{_G+tpARn+*yZ@f5a=qZnW-VY^v#K=O6xVkBQ%9 z&rfc1spJGyJTZ@*?rb|>ftSwp@t+hrkof@#wZ>5L7EEdru=WPB`^Ch37dp~x``_V8 zU{d$sg)jDH+-|?3OaI<~iwz!B^>nrLIgwqE(}#d$qNoKA{4@|3^!f1vrM#F4NnbgI zrZAI!&v6N(OmG>c(U(B@7TcHRJEHykf2qmhRhK)%;*V$VP6){907EEJogc-!XSODl zl&2}Ou;f20zM@?OK&-8^-?fZ=H-LsdgEpkZlIudHk2X*YIr_OBl^6JoE>-88#IokUe}6h z^za`Ac_yo7^QCvx!rFhon1HIV!R)}|yw{-?xUdvqy)V7GT%CI*M@tk2mJN@8m!03f zJ%6GB=>%6=UT0mjJ$uZJ zya>z~HC&UJK==StFd9w-S)I_m;N-ptec1v8Dx#Ii-$n<5LS{n|6vBT$c^lcNKogw_ zz72$`zr{m9$k#j~QN^%pS@1uT7WuiI3uvze;MC3(Ag;6=#?)Zw*rNfG1w zH-o4=PO)@5n9E81f-zm}zLQguvQ$>9;Gf1r1m03Y1D&!>{ijFe-KS}0 z+Hg%$S*Eaib<+w5bLx`t=RY70E^meCy(eCHZJj!F+Jq@p3%8RTpZFJb?tZEX?AHmg%{-Q% zzi_7(U3hW{9L}&~f}XnL+4CEp3+CIOcjxa+E~11Cv|Xq^F=kinKiGOSiE-(0`+`NX zQ`?Y+g`STDIOd*^N{y?P4887~)|=nm6ENjiaPk4(nY>-${#l)Pb|(m+lFNB(o5N`! zm8r|+U7AHU+AG^JbrUX?r%$JobaL#ZMI?V&p8Q*yhv}jlW8H4rI{9-w&%LuR$9 zVi9B%GP&+_U>BjVjC12Hw7iuOy&xdHes6vqQ9jX9U}YRhEd4tI;0|<|Lfy1{_OP85 zUn@0wq1S!5)afFwuWkHIFx`|%{!Kuu+n6@40HRXGLTM^C&ZZ+iN32Is8cy;r80&C) ztL$6BdjXR#rst!>>zQXNxk^g;eQ0vGDX$Cgz}syOUr)+4)Pz@ajP7$C$j4&$Os1KV z-BzdG%N{{jQM>FDvnpRM+!X)rI8RxfJ_;UmG&l+1f$5vEr~`Ld(Lf&?t|yNsvt`T7 z5uUXjx3*M)d@i%UnzH};E-ZzKrBvh^g$X_6#hB{)#p*IwFI#iBBe$a9YOpL_#SG)7 z8og8siXEq`@cy+nKmtAqU(S|%UUJWQsyQ?LF7PEWnAbp)c{}9a_RYbeR(Z#S2TM`%kHlPsnY19Mrvm&orcxg4c$xcnO<4w|o4U8}u(;IUJukixL7 zSJ5qky{@xwoLct}>io+^;MJ?HC*?uBHn=Ym|FLkoH$0^F7>wTw+V^z)yu7#?XP`YP z!89{ zI+9fqqJ4ttv;XKF)gNyl671prD8}%)16PDOVfs^$+OrEC3l+VJRwj7iM)@f6f~GyK z4HsWUpI76N5HHPS1$jOb(lVuv^voKl?3e?_;W-#xt^&>oPe%*lHlD z-CV=hi^Q6SXhuM9i>-BRM9j zf`4>O1D55pFS)9^<%an`8R&%nuMjT_*d?qZ0&b_OrlUz)B>m4jwMU%Oa{PQbczQK2R6JUry8M!aS;C7Dzk&dN{1)FuwLVFRd{jYI2wO%E{7#GeZpIWMm8_LgFt zjltesBsx^OaB3{3?NRZ{m#g!}jbBDrPv8YDadeh%0zYWceB@*jQrL{<=NQ3+`}X;#5W1bs*#~SdnBpre%}?J`2IG}GDIXK^&MJQ zKjm!K-*S~B;+8(HoXgf5%6Y;{wS?$qFz(QOEwp?@${P^EpWIqh0-U z=C&ji(E;;$bZ_V%=OZQN)J3ogPa?%&iXsA>pcqPQbd*YvJvsB z`axG>aP3DzgjYXLdlG;J+5x{w#WR06`_}>DD(f6%3?kk#b2y84Sv`ZrOw-7z+uZzg zpiZpS6HEEghxUnS*oc@RzttMA3)si3lWjk@7%BZBy5 zh|Y_}4P64>X@m2T_Yb*9;lPxPQ&~vW-jG*;@JT!Ncfs@%w)bh=r0=@+NlZ5nuS|6e zjGk@pvAt~;MX#MdWaQ`7V$YVo5k#gI=i%{bbXqCQac%)%MdSW~sqT-Y4Ay7sG~M** zY@8?rzh8m=fUj>vmchTP=?#E@LGl{p-PKn%6}N-FBdj zB!zZ}@NeM!3B5#efn2fSE1_I_5g11KEJe1i=9<=ReG~5vPxprt`iun>GD6HSY02OG zui*0?XgpvemN4EsIwwM?oU8NMM@Z%EH0e8iVmT$cUkjhhgB4u@+CM=0iF39*>5G+DG>|{zzkGBLY1F-Ly>+K)^(CZQI zvQ@l;H&PcBU}nX_)g1KoFIIv(*L;~%beMv5CHOx}F0LDPx-DjLi1g0!fO4BeJ?M1= znRSds;h*ehUDZzdWrl^DzQP=}qpJ_AwHXIs++W3bPNzzms!>$*2Lsm*Iyos1ES{JN zgQH1agj{V4cM0(Djl;E5E6d8zfF*I)rQ=P)bi+fjmIfu@ynVltQ57}+upWc-)pIsA zsqQ8OIS5e?sYHliba4P(KPNu4z2R<(?@trrb?kc^+ZPi^lS*lbqW*=rEsq~xmJLxO z?Fp_mMwaTfNFDJaf;{Dt+7UH6Qsgp%yI=2(4tnMuik8fZlS^|0$z>x$Ar*p5DLVZkZ&eNA)G3Mt9@h&%Qr=-vyrn=bW|Bz+6QizBU#pe;Q-~0JBZs>Gz5J`o1 zXNT^mUwI>xaXIh-FDw;d5b^ln_nxt`;fC3y`T3*z^xEOi2!NIbggd&;zOpbLis>Sk zr>CE;r(bws=Aihub?V#c*``_Ei_R(Yv*Bvv&M8VWIMq7MQYHCDRFa_1jl z60j?m$^TM+ViFRr8JGH}86$MdrJ_SBhd_A8u404({ynpqDCf^CewJ*9%h%anTW)ty zwZof#<-r>vhyp2{9iC5(V9qOskX48@CM_6d+tnl%M83fv&m~g7Qzhj+Z%ZQ{@IUQ< z3;fDn-DwG>Kq0vx_%0qnB7YAU0QJU}wU+uWZ?Rz^n>T`-U4MdHsz;A@;suQXpI^ng zR3Va-wjJw3c`IV6nu+64{)a?P`S`^Lo+_Lj~1Qe*Bb~ zxrs}&>e(bsU7T#CDOyQs3Ed-TJ_}`u9PEbJDUK8yd{9-=gF2HGtHUkAoQ7uw57KnAs!dct~YoET~ z!bF(woUD*de^4Q!mA#7qZO*~J_`C_tt99h?h^ zDGr{N0Y68uceb-&|ME^b7uT)Tk3=qd*;|pTTHv#TOC~R`jSXrARW0PLu0^wH9A(e()M@^m1;h`eem^v_kOLSbCp z=zq_H9sA9p@nT9NaTs|$SSiOF2VL~LlcHdmQXRcSyIen$(C>5Pd5vxIR`7l4l z>M_Fy>S6_Ve;G-A6rRJZxP@Q*Z6`pHKZOgnq4RdtqeGv$R6-n)4c)n58dvii2H}A< zj^VR=>vLh~lrQid4Z;jqvPRF|eK3VpfB*@kpQ9SBsnO7)fvx@~)W#TV<`rn;oFiU2 zx*^@+h*}y&mRHW;GCB0( zlqzVlkrFb6q#*J`P7Py0E75Z+W2>6X%LAUiovdJBAmZ(ByUz`%P<_UOG<*@ z+#vjq@7t_dSB783@Vh%NatV%U+(BQN4~pYH!UG!(0mS^CV&}iWp`Y$=DGBgSh=rTA zhm>iiE@p&QJils74@PCs1JddNEGyrME1K@Dk{KQgDQPK9xeBb)U^Pyz3u|wnU1)S0 z=M^*9Z1C4cqQK{GNymu>@tFEQghnI~c~&4kX8~NDbT*bE0gG{N|19j0BhP#nRg4B? z&qY1pFavxQg~p=AjK8Dgzahvi{R_;nUtF2s#U;>hM7SnUPZ+sQm1x;N>H}(`Eq2!d zwF*cLTy6V5E*$OZGG;Z*^ZTvngzmR9s-;+R0R)DM11{>}-UfsYSf*1Z6Qm=wgEkO8 z9e67M>gJhgl}bwE030v!*u4U^4r$lmMksQMMu^%V14-yZQ#q`>pqcf#4KbMe6Ygn! zV~6V!@0Svq#+2j{P*X?O&F|$-+{Ios?-m413?>T5-4Wa0d$X@w!HsXG>JPgSHWeSh z|D*6OM-Q;P=a76v1Da{JbAJ;fF+?J)YYn`=Ui(}5F?_{AcwkB+nXyuhSjCjqSy28| zE-@oi^+d!k-behm{DQHu^wL%NZKhvwfLT7b0b)if5;Pc*g@z|l6xr;auKqB?4|sDL zqC9r_95y2nmJ9a~hi-)t{r4_Y5S(3r0!R&SH>iq5h}0TV6pvGdh=aw3Opw%;UpqM+ zq=}#xDsI3VygAL>w6#0MS{DR z01N-F^_s_1RCYP4)h^#Erd6#6C5cWz~gopXb+?TV2YaZD#@Vze?$2Wh6UBWt96|d3EvQQp*9! zPtggyZ)zo421nwbI3btPFek&Vz;0QT%s|v}t4Uy^5RZ`cHDb-J#OxkyDw>3M-$B%- z-{RR*4CNZCe@38ovGYof4|3$ z8OTp&#aCf4C_rsc4KjEB5;Nk>x<6BgdP_T%5B<`K>$x;ZykZ~13>mcX6H;DW6E6%hi{EmFvAXXLerljDd7!GTmCy zRFT7iimrdXt+^26-CNi&|6}M*{Gxb zn?%w~73@L3eb`hf_L}Tga~BM_nN@+f6DS8b>WpY12HAkM{jw*|8SMZPvMls>SV%ZR zfYbha$D3~Q5P}uq--vB}pXPAKLjojGXw}DqZ8kwFX_RyeheR@$;+|+TP4Jq;Nu$$( zrB&?8O`ARpcK`mu_!t~feDvJKc-5(i1c1+2eVN;iHV)%Mvtd# z^)}@LgnYKQlQ|snwFQ>b0c@D1fQ=(%?j2HVqqz6=t_c%F!lBb>)ma7k4n-6H@osFO zZyFp8uyZ!jZBU>c&X~zvjsFdi%k-t|_Ohp68N46V&yo1=>R(n1fCrhwgQS=JliD0* z!2>}vGFB!HAa=hedW?8Ca3%^|R<}3wHu0|VJBaWEYusNULlbFo8FJ`Aquc6(4H@1u zEJ-Ep3cDvF?x5VtZLE;<+@Tbih&mb1c^Te-bbb|SwvA#r8wmbDYfwe5LR# zC)X1GwORicYKC*XT3e+{d9>|sK)n%)XJ#+oz}T1`d_3TM#0dCA6XPfEj}8bTyr%~h zID8f20jzMAZTqr83(vOalIzQFe8uP1f!MGwnk&yu<75Fzg`4Mu(irYkAO zspQ`#P|$(#nDjs+EibRQnmo1FYI5X~xjm5Tz;UZIwnLR9dpXqq@aY?CO{a(eJrsMu zifuz0ZG^v44kiMCNkNC$aCX)+H7 zKEO5pQZoN~x_#00h1A=C{98U&CRG}#{D(sNRE&^ayibSTPHg@wCd`?*LZEzy%AwbQ z8B6dQ@5Lt=nFdQFjIc_`&D;V16Ti`eh;hIvM`NY!m4?Cg?jm=1brsnHqYGKLv`A@M zk`X6_Tmfbo1Z#E5-^4Hz+Gss&k+Eu~BL|qVOr;HJrc`1LLFL@xN!0oHo)S}bETD>z zx{nUzEwz>xNtZ4`>;9?HJc}83;?lg_?v&gAAMe#99>`2Z75A1+ zyo3XQl4G!))3bx2yF?NMcHE$u588j`KelADvpq)a*-*FC^}JoPb?Z8p{hms);Cm3^ zlM)U-SY^`149O(?)L{7P<4wI`+{tD39`UNbjZ{FuexsiI@$ed{r-|@?YE*xw=+>U*A6lQ7idDRHg47q zc)1}Cu+}l*D#ByAPdXHyr}A!2eGtGpN;O?+yM>Up;xLCX3G#V`4Z_0+9V0%hzuY{~ zXp8#v%A#wCFPP~Yn{^U1IVjyDiAg`nKOFiRty&&c4PL%a33R+FcwNhJB;V0C`t##= z02s2dB-)F#$B@=ziIA7}mF_Cwv!(aO2ysNz-sC#P^!(TQ2M0FkSUpy&R^^rxepBm3 z@U4um7HRU7tbRIyA{=Uow(!jZ+x`qZ8|JDU zmBAOi&fzq1;@6*2-LN ztIX|DN56;CQGQWsB?yPIAxd$%V_Rd5fmXVYZ|##$1F_rI8g=Gkzt<-e%0kPOwxr_f zKPJaSK*!M*bUY!1I$?}Qw9+{ndgT=Qxse#aFYe614;4_zg%=_Vc=;geRL_@y#*ShIzvqvlLx7?#;D@>4D+U}6`FaR3Z zq>_80gy+){=Uh48!gbJqO$40!ZKL~fE$dBY4Y|*SGXf6~JPzoTEa$CYJfIb@@L*e8 z9&rRGrG|4`=3Y8pU3S5fY$IRlesA%%jsV9vPZ+bs^uTdW^;5b7xO8x3N&y$vDwU~7 zL*Dp2Q_{A_Khs%~2kxdH-2~aRMAOl#BJ-ua-D&NW+bt#rm3G=aPe{Q$q}chE%j4IY z|7%kD&kR-VeN^q6!%;p=IT7IJaRKg3#@i1}uTwEYM$y!+-rtCOwKYv+xMzLD!_^?8RygH!RXc!_#fXzvRm75zu?oF`uCr{n=$cPdDIJeUeC~1fna+w*t zEWh`JX%Goj59QNSDTN(gI!JHo75J4=iwDsOe7>UTSmlkm5M}ePoCXZ}^@gC``&skV z6WA+qJ2V!R5Q80g#doj4c7+}J2W6Sv$G*58nLDsh;=@NB_K*x%;gK5NMU9S}x z3`Z+8XtdBnUNEexkQE{ac+S%7^VYs_x$VJf=d-E45-m;>!nSA@^Vgq{udS|3IL ztvolTA~sQmvAPv5h!T2rm4^HKD4o`x9gVcwRIdFXczNq>v1_0v1h83AKa`b0{v15@A^gC${ZzZW$apYq1^8XIy zws4(3dDf-IMZNDV^A}@?NRp$h7-V+WCUF%gGl*`2*c)h;bSvf~z$K7L*2%kx?Qs!#A`bSf2(ZKmN zEx2yjn*nI~hh_f^CV&#*^QTkoKZ*DN>L6Vts7z!+M!(x-4>U)p zBWo?k7s~$c(;nk<4&EL4+DQi+yL^7|jgXlA4JGO~kU7XRm1(imz{|ZbCG(uM8YoY=tu!@f& z=ZL^JC05UvpsnH|>0|XT2wx3fRY<+jG#0obgU?_`Lgy<`kAwpc5o@2FLA*iOK9IPt z3t|Z^r}jPmk$KGlw12r5q409N?8Kz&LJN7u`^2yPa46CGQi*aHZ~r^UMf}g+Ly5)0 zJ#0_c#AS0|T5vMgzA(om9@|f6wSU`>&P=+yG4e6@2haCDx3ge8h^jU&E2p4>a8XA3 z8z8gMQIqT_Q+(zf<)?@!zoe>=ALw5{NGdc)@Hrl$q%6~sGh zG~Og8^sq<2n|%h^gEmaF=+h7rf(p)jP8~^^pD#bT%~`ZH?Do~i&1$xIPV{9_Nf0#( zSYA~9>yn$3VGnBV5}pFfU8!7>Zm+#UpRtA4zmya!2v&21>$uFnSDaWZ^mksGM@4)SwJdu9%EZejp**z<|H3^Wc zsKdF{z@(M<-$OF$`{r8hg<9ASH~DRlJN`iXZVH2n7zr4ty9_w{9X88tG(z^(Yoh{l z5b`MMG}fO26_IF>K#P?CZoUp`XBfP=3u48>g9NvA(s#){Vl|2`lQCplJE|Yren05* z4%o>8zP=d`7K>AGN|cb2$KFLPaiVz(N4FB6|lgXWYl z@%)VoV$A-4k7KF>a)>~4Z$CcruD)OU{0#tJFa3`N@U3^Ti$rVQyHOb~uj9)XEvO6b z{xFgv(XOFO;Q(4d?|U$acBf5jrM>-50NsO@h_87q>LjTZE+_S1nlM)5V^@MORhV z{DUuZHmzL71rNNoj!Mobm)Pl2st004&ZQh&WEWwVK5rA(Bf1wL`8&)rZ^;YNA*YW~ z&m-whLHC@Ak9FzeEyG$3uD#yfkv4sU@Zq_lHW>GQ(DL}%5~`t2l+ zn}5cZQ4Ly~`9E)K-k^~z0E*_WQ|S+ktDQRYQg?5DLLSgVBni0wU{xjTYSF@4i^^v8 zwyg9_>|1j$40f=Vn?y@FELchYhps3V5MLsv|%wqx^BM#ez*kb zOBzN-k==UN?KE=J_{f(X_F*W>C3r=+BP*9M0_J2_g_mI&~2s#y+m%; zuWmc9Uc-dnhfU|MuiQfTjY2TazPDNQ6<$0D{xPU_IY`5OG7B=O%Dz2tgA6y)T+BNL)V@+ys zvev&kfDrt_nCT!GhlaSI0GhNch0ZV@*o4?0_B7X*GOX{(yFCSwRZHDq%dH4)_*dQ0 zT!fJ=VT1YlCuh~eP6N{*GOtL|V0*1I_Q!%AXB4s|mJ(u6)uU7{pXZ&F-uotLgger@ z-^?}5HkFAYUs?n6m@h?&qHa%|MdYTAQZ|bPk?mOR=O{`H3EB|5)LZ5^_akw@{PX59 zGY{v^Z%aHM5+f7cfaRCvmXY}?fln4wtF_zhk1F6q(>H96eW#`cmlur(Q673(sP*Q5 zt%;-5d)=lB>7btQjks^pW$-08;<%CqmCpTtzN$M^DyRGa#OLYIQx!So;qwpo+vi5QFUNXorpymatf{K>V9KWv7hb9?;k4X9&BP)tA8j_Qmw*5cI)J+XRr&03 z;1dnIpb3T5lN4rDrh|U6MK<*OqTBmtrsOq~ zmR6TqJAsU5dIR)mup1>Z zWXr5A^MJd9gE!I?hTORRX)ic9zLFcli8M@3HEry*e;*E$nXA`P#`KKj3@Yd9dX>XB zBy5G}BMltS%9sf?Z}js!RC}xS+JRG7++@T@i#a3zTmR(L%mxzx=&+j`v1B8SEC{*N ztJ`T}fQ&la9D--VsMy;_UX!vH*BNIn$_4i3?N(my=6V@BG7wB?y~h4TMyb2gs-5HO zH)$&2_NHf6{iyL$1|>Ie1>3joyOQ5u`J(4a!*RgW5EcE#IY9W0LrFlfE# zDv3dO47~QK+na8jse9`P4Pk+~DL)H_2@IcZog=&Ve=v+K|6L@OAPxGk>16BV$k@!m z2;dzDviVp2WbyQm`Vp49-y>CIIN(PY4%kBo#O`(cmJ)Qa!I>%+mzmML(fa8Rk* z^>CX^tbcP4Qa(Metu=onEheP8Dxb;8l)Ol?OciS#;!bDvTyC0p9KugAHi|BS3HBzY zyDlzfE|(BhlGO=++4@Ss%nX|Q^1>mdW6iRdr%|tu4u;=))m&G_d<^0e4QtTh&Y9z@ z$qepz7~;qy3?Q(Cb2s9q?G@TA8vEX>{&7_01MRXfFK5l_n#haZ)!F3dT-1c^(33qe zn@DjQ_>D7}B9m<4#Mk*wcN>m`X*&RsAq3&woM5}8dO~^OJNH!@Vt8M*;k^|b&dc_n z1Tet+&ig)c=e!_@%vNvL7=qqE*zy? ztzG&BADyZ@Lzg@YCdo?p*HPe{3;f5kA%P}mvneL5;=A4p;l8_-pk>Ep6p;!o!0C9t zH}_fW6&W{KE0Z?R0cg*+bgN9kTp@zwG^AR=_HE$+DaurlofB;-oISV%0KIcBO=_N< zSa0FI*qHDPo*AQY^6UGis|@l>dxifG(A5sRj89lV;a=F*5)tbLNIOxf-_e;hYg#01!Nbj=@%UWYvJi>ye8NCH$H?bjCh zCnnLCw1R?BfXt_bB{<{gQzGumwKhm<7TbLG`TFVfqh6Wr9uIv1j3f4KM?vwY7xo1V>YQF+_?O{H>bCQ65^=>t?VC41Xo6HMX$Kcyq22?-YKuHOv`Z2^1sb+nh#v?N+3h7y{3Fpq^dE`HSDg7Qqb$&W`y=| zb-#nZGkCPLmHV64rP)6!ekZ1a=`*pH614G4hgpyn0=x^CRek$WV9qGmhV95q{6qP` zGv(9rnoIMJM{nr&5ikK04d`@iPeR@0Qc5*g9u=M*Rz}B#HX&?&^I)p-&TNeBPr|)- z&Ti{3|D>Ygh&O2(5vx*pV+}apXU&Ne5O#%Q{uOD(qdnP%Pt6nSx4r#rZB@n_=-JD3 zKqd}FvS*r2r^GkrnG8XeR6@Dke#Et41HMJ$dQe?c((NalNu*P*v-69jBDag{qFXIq z=VkX3kQxw)avlpu%fSqgS!aDnV=#d2>! zZ2%Tl$4@N%+0E^`-fKm+|CkuNdvYR!0tP-{z5JmQZ$v=&df-C(D8W40eB>~{2z~$I z8X69v)7u(?jovGRXNS73b{e7|LWCt~)B$povQt81ZuH(o^1wt=WY8>!P?-pFfvN!g zsmzZzHxur<|BNzhbQr6|&;yR1{NHUYL^$-}Ww0gs-J9P6`W8z)LhoH<`)cI+6u-~{ai5a9kzQe|>#V2gP{^GqUH65MsWU~OS3lS!A)z|brOh;A`B~@2D2su! z#XA6eEAF{$c_#88N^u&h`iuJb!g*nxs39cevFCs&t`UTujQOaj95nJBI@5kZiQ1Ix zQ1U?6v&1W)oSq(T*OqfB9@PUEDZbdg=?wR|G+-a`JKkP2?LTnP{XkStx0tv`zl!xSgLle&jgg6C~1SD2{jC9_DMdk79}@ zG5cc1$099b&RwU~V|E+-w0kfp%buBkJUFBCI>`vI+cF7$xV!BgP9^4i?k-#z&&bq> zD<4|Y++`2Nb7_g{5%DGI2|}r9uF_8TE!7s<&u!kGQr~Vyp>^Qrh{H9+!Q~A$c$)80 zOmG#*v}-dZH4*W*p6J?ef1}MVpItoFfp>IrG|_cNf!uUGq22X4pLvi*(0Tc=Hvu~6 zk$v#|kExzW)-1p^U&e`5SXtcV9rje%YHeIjc;t6*pBt@0K@+zX=Gj!YbZRNE5 z;_@?5gO^-1lXBU3@?vtGXz6GABot<{5p2VzvBmU zX-2LFq~BM~VY--hp-PE=yis&;ZF+a7t9{q7$mYkH*wdAUo1Tzb+ZFf{s7sRhx9dR< zNA5!pmjQT#Sb`j_(G#KaYuQPfk;O0lVvsDsm44%%6KoJlj{RcP-ah$w*;{05`t}Wi z2I8fF1_ZbrsiZx>ov-a8?=60PaSHR(F1^8sK*H%(36Xjo0(C?>bV9Lg%;TcR)+ktH_%|s zb1-;mATV*itfAo&KDBt&DppgM`-gSD9<=gCPYACOMCoER%$=_G@62KJ`Q^p#TsK*v zY=oD8od6U*II>%DeDC)UIpLKDI{VwR?1|R6$6#(bOH3C9Nr0zEqD#%AQUwhpYND6k zbebq16qw~p=I|^<`h=7d7dS=HX+(L9$++~>E_$id;~0%8eT{(egtts}_((8O}%ECved-w};t z%H}~D^M$%zWOv<)E>;!j%h>CXUwiA%HKE3L#D(YMwBbFr1|VZ(e@sqPH3~Jyc$CEQa(v}a48cw*kvE8JMO=oD_Vt7Vm*73hh^$YeIhV@6zISlmU<(4-^0h?z zfjNoug|>B94RxZA0~M!onF}c&2i|U2cC(Cj*8+TCFMt0EY&;2C<8jKQi@!?i%QdT) zkACL4=p;3)&fCQ`G>)<+H`+d+xSK%kRY^HVeZ1z6FUDsauRgC2R-AHkZQz7lgBw5s zHn=C#3OaisPTy>xDacb>ZEQ>e&QE)N9Y-$CjKaTv%r%_0GJFvfwZf<>%89Bum*r~R zI@bQszo_7p1cGV!J(QT8>U4s$DP}-8!h4n~JhI zQ3FYC3aF?dA~yBKu@iwdbp32M z{Nu~sj>x46AqCh+vT^|D-!#qF-G`4SwzyN-fP(L3t{eNp+Jq1zc5F2~m!({MGsG0{ zR{sn>Lh90uwtZ5&xymhOM+vgYYg~&j$$!~OquP0YCHPTEH>&-o+wg4~Uh}5r(Ps(x zNX*9gP0S2yU$01_hlNCU1fE)~7j`o@xz!o{m_NL^VE2pSlRfF!Kg31#_+-LnU?S5c zSUhwu>LuSvwh|uyK8Dzu=ggA660f)&Pz#n5E1?v`6@jF_qI#SdA+6xWjHOUSiuf>H zBkGd7*t!oajQ_4VCIb_#Uiok zA{@-D(NsiO-k*R9juH1*_jN(@`m)s=RqRB<-5T%;LdlL@@A)efh^N|(O z|L8yREaXd6!edi(__M^oW0{>avJ=htEEKsZ%h&n&@yC-c1g5SUJl3}N@?Je6CZ;h^ zh6u?s(gGOp>yML&1H&-I!JH56oX_Y&Vo*1Okp82`uKTSrCJy?>x*hC#ZNkOpZ< z>1F^03?v1~0R;t-P&#L5MGz1KrAt96>1K#mT1vV*M7kN6xo3Fa-&*(oyVm{d>vB2! zY-jd<_7k5c_CDv#^#lrVlK(KC6C`$dO!W*yKrmp`sP#){=T&j+I2Wodyo*7WwxY45 zF#F7T+kfq@7Ryy$!9eET`YMT(74!Gar)7EWck+THgkM-Bc)sf=b)(N@L>(1Vv;cpm z4XLmE30BrIi+qOJnQ3oMR|A+lM}8@oZnPUZ!3xl&O~`n_ifkHz zPM}4T%&SlRuWTP@J}YW^s?*G1O1?>uN8?iWb$+RtQi$fCjkkKz8%kZ*y`4T6j|uMl zRAqPaSuag2?ywalEIQj}q<=$)X1$5j2}QSJXZzUDFIov0dHM8KBb%yLXOAtrD~g(} z)ik}wcw#~W=VtB{^|`G-sfIt&b|dqj8>Y3IY%-rBIV@MYg9^2}srg!mtwdoGc8fe94B--npjX5R>l7URW7 zuMD~BF?2CEuN#cyX7_krX$8>TAu|ZnmaMJ%X`WNMsiXU3)i- zf|DV=f)3*8guX?>a7W{Hy@7GmBu{DV`nebd*GEn%!%0&AOpF-ca$$)sw9Yf9h#&e) zkFc{n5S%M-=94RjK75|L+*AdiCo7aK`;0G~TWLm_yr;Ns6V#FV$!>fzZSHWf>DQD( zx^X)fJ{Wk3Ry|!JeaSpxJr8-!CI3dW$Fc_7c!fu}bLmsl0@bWi^;auQjEY1SC z{Nlw?EC-+2&-PYn8f9s}6Q%aqGE94nh@Lit_+JB$o6NpEI$3^;R{7e^EMQ4$d;XlP z(v@0?xHL&d(PgfHB8}yI^9e~3gqYAz)vT#cdXuQSEJK-ElackK*^KkmKfA-*g~(@q zOOTHNlCA9pX%fD@2ao9fJo1}eGYL?72i^g=)83>KX=(rJCwt9Vj;8ch9*!3o+Ek_N z*A2e6scBVDg`Pe|%{W1U@JLg^DXGK*6|8bW>cR&>I6*{N9RB=pEc0GOPX~gJ7ij(3 zAefd!uHsY6_LKbco16Zre#uPlBvD z6RBB9Nr!0RVn4Ebxn`1RkJ;wV6hs^n8!=;Y_x%a#~Y+ z-+&dO@7m(D@sw}w$ARa6*WR3o+h8C)#*L9CD$j_(V#FAX9=SHN_`_m{^znOiy0MKT zx2%VV2a;LFv0MrE0=gFVNexm#cz%CTZA;`0Vu*fDp6U9Y>G?R_!m}S{%5SnG1KuZl zE531cz54u+^VzQ9>hH(V1Odbn<7*g;U?t~i!6=KjQd``l?npYt-5*U;Too#>6K#IgV}245&Ul(fKm1bhuzm=q(V*5~F!vX-Eg%H9Z96WB zC>c@Lz4>PAX*ep#rAf0GE;w@{s^NC*bIK2SyL!b?+zFF7s zntl4MbPpuG#eXOzTiVi>9idxCw!3R_&}T^_wa)d>|Muwe69n={FJ+;iia!Rk?WAvH zDnHJmG&r(&l5e2nn7%?0K%Rs`hWa-lp8S|^zI7`4#-43Fe+g9I_ESouN8b{y@?ZUu z9LA<*8x?+MrTMhqbN}e|9jne7&j)2>sp;@S92lum9?vUq{CXNDA^ftCd7?~aAy;W~ zr%0!6#wIEMpIFy^@MiF$eUO7kJ=_wV51x++!f zs-n7~HKt5jB?aDZBN{QM->v36Umhyi-6~EmD_sq(U((sT1~nbWrmTj%o~~~|m11c@hT*Pj z6#9FMat|rnZ6e<|rV{qF-@kuzj5;nZ>j$KF!RS-Z@>_b;iE#9L7ld{LxeU{Tft(3f zsueke{cuvjWq#jJo|Z+tA4 z#OJOrZT+urDX)|(cw{C5{$geV{YU@RTY{s?G6G~m zp-HqL-;dMK{In@lY7{%xc6l=p>n0krz)|H1FGsZ1JWCkhfZ4D@yE4PRvWq@G3uHj} zR`|uyf%i_7-cWd0@0sFIgFM`udiwEN8bQ?2_>Y%LNt%QDg7DVnZ@lC`ZoE#Q;uDH( zfGK0y$O9t2#3`gtngqPWwne>;7?pLu7tl);$gJ$HKCq2k+_mdq4|!(AHgTN1{x!iA z@`C8ADcS0S*}z-uL;<3Cb8#1vA!okO**0c z_2=bd1~gUh3`We?i`jgXUI3=6(BEH1bku7emi}tuNzP2T!j0a868R@MdW2HQwbt!z z*L;VEW|ewV-p@J^Sx)4ExbwBX+AC0J5tfk@i0YhM&RN2Z6zp#ZRRw|Yq8a=e!|)l) z&U#D-+1gFRSN%vax1e;RhAz`_bTNr!aQ7Xc19!;V6@y<2JFzea`zgDetAp#Vc3JFVbriEoA7*6*e*&(X7Qo+50c8qU0cml zxK)?$^)Fp@$E)*v8}0UZO--0wQi%ZyR0{Xo%QF2V{(52Eqt5FRv!T^v-Yj8df3u&r zbG_xiu6sX*Arr-zJ=9lrwfa$XU^t(31e%cYO?p^%nx>Up!_{^nXX@ulG;F8OBd$K) z(>X@ZeEW{p*wqQsn4_(qi8u~VAa&HG|6!3m4HwI((MQ03ng|gWdoY^ zgu>gz4ePC z#Il!HNMW>;)yra6$@{B+U!~46in_fR$VNoLsZDu8ZvL%xoLE_3UBM{%W$4kS{6^+y zKbG%xDsMa+i4D5Xuc-_tbQamT2|<}3`nLzFu3;H_B~`8xU}MEnG>M+DTW9};f|{=Hv%XcVmt;*XDjZ1ZWr*pS1UOMaf?m=T*rsz!dI-Y-iDpR&RP5L&dcKeAJK zcjsbu(XdH7)q3}*j$672R_3T}{7HIyKC7@1OXrpybjsdk$+axE=Jz`y@8LOkJ0+F= zdw(%l2mvRt+x*13mwRSl;!ewamJx(YVIw3Q$+5gxTpGrqMGku}1!E0he@Ht+Z`%7% zupHB645)Ov#_hEUNn&ZTPOZtaT0`z93RP^dK$|BpR!n{9-7^ z>T6fW!A*P1KoqWyO0BRPn6k4GWS8(e;VBE>`2|eisCi)xpB9|kKP*1vbMxumT%Kvv zCZZHE^_aiBox!v7b8pnhzvWYrc2mn6drw{mv0zXmUr#1L#9SuOZ_P}rMam4^YJowxASO9YE zpHLj+pKBigD1FvhAP#z#MgJbS#-O6BOa}n6sN7tXECA3c>#8t>15n1;6%-D-6iF8h zK&yxwF40FrU= zdVr8{;0+EkPJ#k}&)_wp&|4Yby=u7=S=b(cC&1yfRl5iw2 zL7&_e2iubRmu-DXuq|z14fb0bNP}%D?aO{`DX=X8M}YkZxI_%tulpnz{H?B3EI=kL zr)TxV+WLu=o}BatfJ8(_-N3}eKwU-zlu}1;Pj4>(h)c`LN{a))hxmkqm~eo&rKfLT zxWBKrHy9xP@bPn6R$9`>=n#OQy?0_1HB2x%-rE)kKtF!U4a$e+efk&#Kzn+|Lxzbb zx(5It>*Kflpzj3v-xBaF?H&sozB1Yks!L9O$aiS|mv|Ha{oXwuHVhl@!Qm3ZzZ2zu z{0;y;y`y2ngrhxUZ$IUSfqkFB7uodmj9m5&hX2`n^%4oUg|(%JQUG-wz)I@lEmkjABc&(FvI zO^Xi!h&%hnCdMa5`?|n2$9>NEp8x$z(uXhr=tBL1_V)Y?1t9O@QHhX`AMt`E{G9ah zQ_^QpvL92@zkW?m`4|sC6Eh0~i=c&>iJ&PYWEBM$LW{BzK;w%399{_d91V)-V@^>h z*qieaY$xPjw(}FfcH)2SM0|hVWq%&N|8wePJM}Xt(uD7qBYsba1)%Xs`N2id{G@nL zo{68+^9u{}(?2J^2Z&_kdG-4`_tfNXflGU2Y-wX} zYx!6|1R#}FdGy4_*5-+!vRoiQ@W|B33*|%Ln>+#;E2n20@|4I{M;@HP-Y3Kx>f>OD0)MZJumSsRER_Jj#2xG>^6@Zv1loXl z_*2*uRlbK7Z@dXDw84(sZ=MpU3!7TL@xFr42LL%$>#(PURw@$D%ss=rpXKoyaH zd^w4+0st7hTu$=J7$j0!-P#5u%f?Dg4gd@+Juk`fveW}9me;bfMcEM8A~fVdA`PE- z1o=QcpFRRbE2pYwW?`lam&LE&+`-k|&B4MDv{@-R1tmpUdC+F{j31jkHh#1KbOQt& zH*Rnwf)FYoE-x=GzzLcxm-sz>0|Whg;#{D~a!Kmx2kH^%>q&wjNWgLPfqpP}_24E4 zC@)S~gHS!Ffh;H3=2pFIt8(MpYL{&_eEWvtWn1wE*k%>c1;4K=!V1clTg4z4{H+Q% zXtKA2TRoE?#l9yLZ*ZdAUH76%rN`21U%l&CAQp0RZ1i%1TQ>84KK! zSJPCJyM>qW_p-{GhMFpHXAvM3mwsSoVQFFdKuR36#*&JV7D#0gUcOTLmODTY{URt!3Xq&WUMRhL{ssYKQ?qDY_-38QRiR40cNyTZEWju`rSXaHXwb%|zgr z0f1NDEX{F;dj&{GEf6xv$; z9h9)R?&UlWLEI^6Z3%6Lw3dPbzNKJl5oAtmVInUK0A&@I^H<>szNP%w5@kVP`B+&L z{MwJ&))rJVK}$0-0ODKrR`;PM1t}9L=sPLyYTX9a5C%430Pz*@1Ia2F41PddK`#mv^|Gx0 z-%GW;Ab+PxGHf4t&tWQ#lvk&|Z51-+kx)n6jDK^BhnA2xtBsrT*18)9uQ$~q>{Bzh z$JfNW4+f{-dOUany~F5eHc74{KaglO*a)7K%LEGFU+d5%?c!JeOv=>B0ZZ;D1o?|2GoG#G(2G zEI!-;ATVk;5EwuPTkWgaN?F;#&WE{Tk_)}Ko%mAi%0HiZe7J4zJ47X;KdT+573XyO zmHh80wV@=^LfMD8^0DXR4<32ERJnEy=R{m-9@5lvBT9H zPIFp^9o(*1(wHR{(F&ez-#eTV6@@^R)Qkh}`=HepQgzf_EaaX~hKg<0r+;wmO5gKb z{knwNtC$pB^%H{O?3Us*ud%Ca-9T#1cvi={QI_}4ly8S6&Sb1E!~a`*5D7KFKSs!@ za4CaBn(C9_Tq?fITQlpDGGFe#e(|@p^V{*pm*xh&vt^mDA}?c@4@qfEcqvY9*|*4W z6LTO_C6aIk=pkjF(~s`M&(Xj9i;r3TL(A98RML*jJbL*W1^H4{w$BlV8>idr8)9sz^r?bQ&h#El}elN($}H5#n@#6`xgpr1$wCBiPnFCBrcuShvQvz4j zz-$T|Saan0nyU3l*b+|g$>H)p;R@mYi(3LRXJcuCM{cBMBI03}z7qZxc3{*4hH#hC zdPhCBi*+>$wK;NQUtqYGd*Q82+Lze2VYEICZd#Se9rvzNd)tqP)mUEK;WoIa>iGR8 z61GN2T)IpWT6pbhi6VajB2Kq6(N;J}>D7`lgUq0>%6?lzv=Mvg)f<<~>_m%+K?2QsmweM^y>i2UxeZH1&>qIjR`hC3ea-<_M40}!eIDg&B;3fs> znnA>sD@%!4_jEZvI?sqA(PoYA_b0TSog~8=PsYQY>SiszWYSaOZ4eZwY#IPTEw1lK zT-u~5+264m+u(9I;<}$#iR6Z7hxWd=xSxNNvzE-^6mcmHamLN_tLu zTH0p7E*aWuJMfw!tEl>=EoBTsVZcp)Zvhs(bedif+Q?zaij**t_O~th&9)mJFhw(T zZ=_$VSW=MpL@>v@?XV~Quu~bbCnz0zBCW>Z_?%(evL-1#cH=~#CNI5VeXjwL*hFbu zVaM?P{8H0C5mN(V*1R;A3~C`ZU(RCP=vC%BIiMRfI1e5)pW<~rX?HI=HK!^qKPQVb z6ECHOP+VDCLp^?YV^nf8to7=^I9Im3^7`OGocip<$ue_Mtt#(Tmw(k*mkN~iVRdi( zRlIdoH2q{(^sk<_S5hIt66J87+_V3K1fS{=Z6}KS?s{UsGrG8+NkFioK@{@v)5mTs z4vVh>pZ!Aw6j-hgTx^!BmPot-03&~-BCfE8X6F5zmwVN;5w5La|>-$_a$%@ zrCL*RdcUP?Sx*ac(>0L8DnOsUGAk=bGhm_4QEoAMXI}6s`AK-*hVqQh%o(z7{!1je z7rkmgBwmQRY9Prx^>#Llc#N1EgNg>sj+=d;w&YQ7K;B;QNncGK5L3rQZ~oM|4G)Hl z8$v|QD890iP;SOxWd>RgsN$=;>O{t$y$G~@iAr;3)Zl_-4PWkCGeR6g)!1YBMDIjf0iQ=OSjNT;Sh6ZYA$+4hGffaqT! zS*8Xh^nT;E2wp-HWG~Sxe;r>*nDbH;-_NN+rc!P`C&W!4h5ka^3{hL$9Jug*lxXWQ z)h`83GLws|G4z<8nE!kn*)XEjbUpNs~4lzCnWB*z;y913G zdPTURNtk0XuGv(h^HaGV$(wqf?px&L@~7H)Dg56xE^)&F4nD7cowRHv9_(u^jh>=! z8$Cfbocm-RoG94a*t(WPUx)+*!5>2RB)>QiuF=Pdi!a~5T5$FQmXH0@CNq6%^-%7H z$-e?l(?bDG5~VxZmjr{#EiQ$F5quvo$f-9p- zjo>ls5G*>E6&GlRJbGV8|LW!pSbPF$gwKNB{U9~|+9gy98Cta$m8Ea{`PB4mBQ1s^ zM{ESa(^s=Ec6Sv`5`~MLOnl9a=X-=mXs)DNLl)K;HbF+z$M( zdN7Z_Q?DD}ozshLst=X%Y?DVDxyl*#CuQe9?+jXwMMHU zZi$b2LMUL8?l0h<5|BhVu8@;x=f;J6T;2A%i`swuR>ku>V@LRMkyz56U%R-|85X4D z$?wHkgmtfxeBdb!L-8_;A@N%!(m~vsVyiWG5(i&k=ftXn^%JA^q7M|J=5TYe-7cJ`v%+xND=GH*RFz!k;LkE847 zDUN%EHVf*R@h}DirU9O=$|RRl`O}OwI_w|cQO3G6)Fj%ONpkCyt6^Sa<`kI=z57LdO**lAOMbR0T|v-q_iY}BWA7Q9`cAl8oDSbr7*9VtHbka%^+{QYRm}yb zZG1Z&lz5%;2DNpa!;I+bUhK)c9M+4OLKWY33%)&NOR%5>65S*L2E1OpbdBH+1~JD@ z0dzIsWU6G~^Jl>v$78`kExFI$*mgeO7hGmc|F}k-he@tgSkJ!kr8qZITrz!?KiWUa z=I1!)AR6G&j`g^P?OgpGpMG+7GX8i_Ctb^8PaJnVGZ$jH1lOd>89dR+*)48{P>`3` zIi9+XxPRz1&*1QWVxwBD)u0)Bx-Tpc{K&tI+SZK7qcvOk1h+s{ohpOP~Gxi#o00i#!$orNg&&50#NxzC2oxyxH4P zY{ID2&#anJyw18OLK5Sm_{b{2AK;w2=KkAr>fpC0a^YL?oZ!D^{a&2wM|>Gq9<>_HJUP4XyBnTUqLLzYqFGuj1!Pb> zahy7W!lads@6?K$VrOtl1gX3++FUUis4E1|Y7Lw;f(Td{<@zb6Uothv%^KvCE`4P9 z{36?dphJ=Dn1S>5cJ*nY=Tx$>r4|F8gbZ^K_`2L1I)w2i9^LdvL>?C}j5B7z%*Oug ze0X1B(7JhQkTVs&|=u#$lzPif+oN&^$^=@FIt z1&Vw99*0$%wrB42gXi+h!u@7XIfki8xnTbYzR(cS9>l0E%)aXWuAuT)#JzO;%71RO zo!)D3^Jq+Tf$vgUhjd;8Qf5`s$@40A)sHj{GmG*u&wu&bA2@6`h;+yZwVs4CXFIty zHj6f3CiaVqH!cwS#GO}hor*Q12v2S;o1~_KNb*mA9@N;MN^$)ra{Gh2^5h`NrWo-g z$=1)e(hP;IBVV8G%tPT;69kWEEZbhkJiinXGl*8wy*YS475{K9B|7allS+T18j}&4 zCn~bS-FzBd72)4OzwlcQ!&P`oW`w2N=d^78d~hz^Ve^;?`=zdHx$B4Yf&1;yBD#!h zh+A!wjjuQv=~@!B7RbcbAJ@MA==iNBby9fll>la&&F4qSer3LsgXm#OJ^Q6Zd_akO z_tX}k!DFXQAj78Oz5-L!iIUzDLa*u$c7^$(RyLh-mEA#j<8ZINb(U>VMdlpY*`ESF z`oJU_H)Rm%bTg>%)PEq=x&D?K6EGe69Ao=HYkLXqYY&WdH-D%NjpJfX~!ToW8 zOQ>&p3mUfUEj~-U;SAkrLbz;>2>Q{w6(JpcF3L2}Q#2LE$lGCuqH!8%>2r5Zm0Suf zrt?tT`7spwn#R@*ZdS>X^1-Sp_Gtd48{D{YBwK`wz$Y6rrJNq-`4>B4Fr~Ij)rmqxR^EuXiJBnABQjRAitSzn1V0%P$Wz7!A4QBtaQ?)sMV0={X zxIJ1Lw9kx(E_fjra15R88F=B9p3kMZw=nT+tl>U=k&3XRan<~+Sw^u;F2eV$J)9Q| z+x&{acC`J0@#gG5Rhm~|jEwyWQUvdN2noL0`~pa>82Uk)^OjQ!W?!X;lm|E-(|O`- zhl@m)Rq@%(<4<7V8tT3K0zZ{LRJ3vBR4~r#==e+Pf$#*6=`bDEeL&W6jY2AH`t|xc zVk9XBO?7CrnLB{^)_1T=Dxo3{uVNgMBB1PJ^9X-N)%7Ikx5-ZK_YFcD1;UOuY$Tfv zv+chS(-$j~N34Bs(=U^1Lt_*GcP|#^!RJ%&1zoTeW(eB$`4{Y(tGTT99L5EUDjVI2 zZ4H#`qnz08aAO4<*k z>RTTUk2b_`MvB}~@|#PAMkX7(_N;yaWrx60cBTQ0vWn`Sm{ouwstx-6FppNsMjXyW z88U~wSP|TslJm0Azx0~?AK(>RFYbKc5yeXpLg-PCOL>$z>7OWhKAU5Kl^1U$ZTE9V zR%WCNEmghtvaO6jJ1uKEBk78MXfv*il4;o*HrcGcQ4niT!5Cx zEIYj@to~T|H0Gk<%4qzJ3F4k;(zTAPKq8w|RPb*io9|5zY@v__0f-Y)Yp`nee54MS z9Ch>CWm*c}Pz!K~dJp1jb>uK-b94GO>>$oJT#%zv1| zxw^{uhvmR2>m}pVK*rs4yCpyhGH%BvaC3XQ{ua}F?1M@Glld|eeYNUh)%Q@-#tYXK z`)J$+cY1p9ak6o)lOYz(pbxJidoWn^lFO@OGd*BxT@s>nuR#N)Nb@Wk^1-Fy{?y01 zS)WmY(0}+0E*-@Et6;LktvrLzWoZrIVdn_$i;M03s5Ni#KPPN8~gne>>&;~tnp90DH2mQjWA~}W->!XB~Ja@&RVgqwY*505D zHDD|$AK^_yi%v!a5S|$+4rUVSsetkGImaqv_fQY-F;DSVrE;5?SC=a6!PdxXbK8Yx`1QC4){qy{Mt_N~l9ZB3D3$ab67n8X<$3`-9adK(; zkBaG*)j)gvE(B(2UB-!}oG7?0A(*wEUvR!xroDq*5-&VZQJF%lo)$A&EHd@%7yo@8 zAEZ=`uDOuFlui?L(Gquf5NowonJ1kOZ3&`}RMKnW{r(N=@<8T9_}F$Z zfOhCY9!Tcl)G*Y()n`k-d)vh5tS=06p9nYBU#)OA3=>_h!MKHt+~}^#7wtD=Z>m}E zE%&wAGjl4n`3qS@d?qqh_2S zJZs6Z-!(PF$?weI=FW_ZW^he>Y`7^B+Qh_5{Gx?}P7NXgHNks=hqtXTy~1eTx}^q9 z%gGpN_xb2kOB~7PMRdTExa8|e{EJ&5p`N_K%M91!2*ujX7RN;(5}gIK{Itkec$A9I zXbgp-WzG6<{^T(Nck;X&$-@u%cL7jf7~K|64T0U{_~E~5f~J$oo^}1UZ~ItKXZ1{G zF~LlxvA2*_L2hF{1#yUmCI;W&=r@L3RApuZykQC53!e&K1~zdI3loqjGr={XYq%2R zY1?Rl$5q%#Vq=So_@!kul2HR|3Icq$!KIuD{JrZ9+B+zVc*I@iBPc^V1 z$&6_D%BhOd zVUSB-qQHBQI(V~sw>w%f9>lO0!Y&`*iOAY^BR@Q4oj$^SWM12)?YniP&920Cl9_MERKw4M;RE^>9HwEnbKD8&L=6 z+hd+1$k;X9=(9<=&)vl9n22uDyCda4kDkH z{s}1Y?2iFZBPM#?xP=Q$?^$d9Qn9TIZ#3SjQ(@O3y1Dt{O zM~bgK&E5F|0*0<-;O3~4cP@G6#Uc1A)aR|3WeD=LBcfneMMx>0{8V)N`TLYabvQ0+ zof5KG+Vo7O0~(mRUc+x#N1+UpQl1pkkViL!vZM*UcS zf2#y~cTTF*XvL}P9?Z5KxPNvc)K+32aOyGy4vggez5~s*<%S#6lMGeJl6q_T(|aEe z9u}KO9X1_eoNn5%b<*Mo=K=?psvV=H0|ytt$J@>yr}t;FQ#bB7o^L!sE~4jZx36d@lwl>;el7p zxQ)l7PLX9g^%?xg-P*T-$WRz$D`p+2V&E}b!ta&kCBs$Q-wkhqhjPG+?50p;#1dJ2;0;Z=I%g|_ zB4?N99*AHc_g}V1@9K_l!|RJY2m*Qg!?}OKTss-`DbmQqA}<-4;l z$ZHO-G25o?eo`#Uz0-Z;R22x!hSf(;89pCWa$Cc;JS5pE@zhUMWVwnh$~EVV#NLN9PrW2w;Hv@wd^EcG(R^JU) z`FyQEEr*?v$eC}V%%@`)>54c&ByIAe?8@S3t{t2{0A=% zfNodF#Hzhl7}qN^RUzVDqUg)8@@aO(xphz5>E{k96E3ty+y)kiCByrRn7@B-4X3$% zi$ssQLnB^$ePhV(K-;wD8&3z|4l#|U@qV#X_$Vp@`t#dGe%}4hmmFcRY*?=E-%F={ zQ*r0d#i(V|v!R~KQ|352oXOwfBlbtY3yzGa017~nLjmSC=#i-bT{}X(R%GJYdL(1% zy}Ih)BFB&4%ZPagH~>p653@j?69w)UDX+%&yRgSsRFe*$jLxV`&p7|y`#ts8A*Bt; zsvH?l1EJ}Mr#tO}rJ8RhtQqdAdXy9~FDyP+?_@e652j|a2=8>VoZ?mdCU+Apiqzsk z1X!Kor3CzUaa7hp8?MnTJ)A0CnKIA($GjC@7I^F8Q?CbfY`1VM#k2C zgI#1W0;if*6rMD3q9RNN75h88cTLrlm{t>x+oZA$Z2Da)pQ+^@c;!L%SDdGV>8>-q zW@HLJgc+s*HN(A#hX*v{AYyZ`%@KC@65L`;SPRUgEDgE7J1hC>#nBuhhX@;FE?pW3 z--I!VU$rtZ(15z-n#-)yKIcYlkyD?7zQO00F&@1q9Xzf1#Xu&D!6Ebz77meI4IuE0 zBn3AkEE=MblMXKSH3Rd3ZGDK0)Qr(Q)O|{zT~YXY#*8NuX<4 zsH?aAg($Xsog4OwMA^!KbCAQ-a4S`4=z6NDZjtvbyv@J^-{IE4P142y^j~|6j5ahm zW;C<$TC&|a!;XY{0(A%YhVc;Xx2DfFg0w93;zJ?sdQExr;4?%0=YEc+)QUUv4Qhhp z{=fDI;agCN)P>vc}^4>!iCTN;3R~P2{J+$qJ+3m@LgCh+NaxA?{|X)cWH$O

    InHlFh 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≶fl(YnAv?IAewKtB30eUdA{r=#WP(8)6&kmUO#a1yuhi=+R&mM3#ptFq(AsbqljnCsQ>SW$WGvs#iyqU{^#W z`M?S#cvbVkL03>+p%L{C(0d<|TJ@wV*eAUOdZ_3V1m{7wg>;DXZt%Xz2Rwg1n!fTxHs+#WGCLHpFUPAQHqbSi4&Web9mxKXW+xGleUs@% zr|;vuS~he`+8SNi5}f+Om#Z{}E241pq*h|J{(!KbaPr+*6Z-vjHMrR~%%%bNC(_%k zHRqY`5J~a?MYCXayl%nPhBX9>6v;n7)w(=> z4XrP{S;qSUA7}Px1ps5-do%(BdclFIGaMoBPRPg~dJ@U;*QMY^wx%XHH{ubZhgj(uOv-4vF|s{;d9>t+sk?hv*X#f0{@CMFqf-S_HB_ZP3B-!W=P zEvmijykH6YlDROjr>H3?fCDJ)LqC1Iw5=CgCFR`MaliP`Iv9IzkJ`dVRQF`^REn;o@O3mz3EaD zU|MJ6dFlsEkY#asRV=zfVq~lxP4nYET{oY>oaTK47NWAaRsjNy??Tct+cHFuGjYMh zL2$Z{)ad1_mXBX7;|3pqiC;Y(mNH(pEqbt)@n~t|VC7LsA14#cjZByu1>ZpZrd6Hw zj_ZeRY?3+D9hWe2UY60r@pX>*Z)KRDyl>E&-})LxRxpg{N&iNY`P5vM+wd7#V3DMZ z*99V(j>dzUzgB?sqq>IisY*mzim;T8lBz2Fv3fjfhSp~T-%KP-W01Z6FP~ht&=D5& z0LG7S2VmWX3OH;Zk@J|>7Y|?PxD*3k{mguzn37$3?=;K7=uR9gx}BV$R8kUO?K-4b zKNvgVKf|0b5m`*dg*%59d=9*C4&WS`tV`Exl=r(96M<5Ajx1rrIW$)9sNjxKfFAhv zpvUH2@{hHfv2r&r^i--}qSbff?0>(9uh@TQ*vS?? zkPWXl1w;9fGjji02JVC0+qfw~t1BDSM4&=AjX&n?;zX+!HV*5@SGsA3y?_1C#N474 zcDCu(i^Z5rR`#FC`G4QzCG-%_1 zltMPRU_X`BYjyrOoUyjsW~SOlWgg3To=K2I*#u^4G8lGCEInr>qpIdgb}_p5Fh;CD z)(0d#Gl5_pnLkpELKWa!56qHeOUA_}UH{yBm@B`Darz>p(#Lx@^=&NN)22-n;+#%f zkR4$y1eH{3Tu|Y5ywgC{>XV$K#120r6G+DnQCvUpJz~*VG}v$#iY_fX?kXtVG1( zaV;kgJO^SGf*f5h^Qsmcs%Z5QKARnB>Npnib2B+HehiSF)e4|>>rg7-y%iC1(cURr zX0)Vo9MReZ{kZqnBA1I|(*Ty8cSyFPqU!J0rL8qnE-#Pw_MWf2rUDmujot!Ea3Qz6 zVO@U~zi>l#@1nuP=15~-{$k4AE)Tr|CSE=mZ}cfKHFZOS8U>XlLryphJH<6o#^@f>7MT%0;zbeRg$K?C(U zBQ-kVk*Y$m&uigcxM~_g9YX-ViOaA+b-2_Y^wUW=l4yMdL7^T{F;%a6P>J!Pm25PV zGWqV_q>!Y}%6@5V+I9YF=d0jHQkz6GhN?ZTnuQc@2W-3j>Iiv-t08{HC zt`G7VOcB;s`2N9z7!jTX^|wDIiL1f&5{J`7P{QJa+ZL4h?}0EfSO&a^K^fx-pG`0J zrC-#nHG#Cv@3YvEs3iAr2z7mC&4jfs7C+}|Go?g@)Hr{tpBu5P%>1kM3H5r=zrNy7VYUKW8^-Rz^oas}H7KA%AaC%Y(5a=}4$f zpIoU&w{S@nZWWLMD-=Ew0s-hN8heF%(WLX2B^VK`O*h`Va&cutaK;yqh>ODi5`q!bZ>8Yt|PEY}S8PUfOts zQ@x89J7|#!QfA8@{TxqpHTpSVqhv)1Q##~}DQuKbeh-IC-_alPjwyC}^dSB#B@T$> z_%c(3qq(c^W4h$YBEc?20M6P>h_RISQmzRgSrmn**|N0rd%92DRvJ>SZMsxY@tBQO_^BITPoo3Ya; z#7U#t*78c(zZAAu;MfO^x`AI2Yo?Qwitpi-#ISDQeA)84jwYB<2CSl-CaM)SOz~jX z)(KgxlNPL$H2meVAPBzx?sWWToCQk-?4wZMMa^TEd7;Vzv!;8FT|9YGZ3;WATClvs znJ!8?MRHej%0oLIh(jZ>m3XT9>n%g7T-r8DbS<+{O7h04Aza| zfmGBzfSlBOeHcJZ?U1UQ9~93-C*noo?qv^+DLt$P`8ePa^JIBFrcRcdyDopZWX+OK z@*+4Am^8n{_!;&XsSQ~jACo}`R#oTGt_*`1a0edl$o2T1R}3qoAsaI2lIL_hXR%N% zL%k9NCW>E2C>C8%Jp^Ljf^=9K>a@^2y}9`C2luvOB@+~L%pQcB_||q0`Q;=EZq{Yn zFYK_nwH(@oxd}{XB{;2=WngCviVyG4U|-RFA7zuK2u1V0WSn!K6@_eKGPlku`h6RFq6UCG_U^FyQanU#|FZ<)r{<;nPTj*QKM*-Xt5hf!~hGJwF17< z8HE2$4(JwPfy5Y6o3H8G*)H9G>EX9qKXDnFAlB9~HElV&URS2le{vcdQv#=MlgsfxCEH=^~23Nw`IA2hWBT zvK!a_S~o1Q8sg@vttgNtNlIdG)t0^E<&_}3V+SX08xAmqo*xBh*J-9o9EuXhZ|tXp zyp^t7>wSS<-xM9CiB5p!WR%bvVb1i!MkZISPrS))a4u9w8)Sk~!55qFda#3ken5M6 zbYUMzmGvz>qeoaNXuttoD+=F_16p|p?F>N}1!(q*cyH)K4_HBo08J9nUrj0D6w7)y z^V^hjnzLhh!@pCFUsC>Xol^Ym_8LdqVg*T1`FK6{5_7#tt&?S9qLPE8TA zMQpYu6X>x`Hb&KZP`k@54lj;De(~~ikDhFD!r1&7hxhRZh_m2ij1N1y6^+l_bb3EI ziiIJuNkVIfo~+Ip*QbWEDn~X^nulrp<+B@(JwGX4;XkY!)Jg|$;~{XSsOL>E7vYrZ zG?$o1|A&JGw{3A)pg|Ff+e!x6`t;Ygrbt|PQ3$B=*5c9@NHwf&m`Ch>>+vK;?`E?n z{bPeWa?Yz^Kf2z3c$)ZgGMw7x0^n$bWQMKsN8;|{v{>;&mvhjgF6csyRT^%b!D<>Q zg^ybH?C0;bE24nAL1p0s>h%Yo-P86oI0LZ&C%1!m zJ%DATf7aUD%;sdVA5H6fYvy6ROQNQ)Wgt=O z!7j3v)L@peP#Dujh@NinTQ6)7oCT(53*_E-*Q+_^2?tQqQgq+kRlCg7JiqhmLXI0h z-#&xIDWsUjb%Z*}oM0w6xyIXk)`gE1guI5}D86M(HxZs%2==q}G%vE^g#zSD`v=;RmUJe^9cl;y{s~hTi#o z`QhZ+Zw>!Qb^j=SpU=FwV2l*8ePp(#Pjy>XC#o-=1aN0M8SGZ3l4J^qZz!QMdCV#` z6c`|&Jo4>4tRF!4`~({4hZd-c_QJD=Xhqtj0gQeJ`o9#g%O?#QiZ^7{M|ZLNv{9;+ z;*cs@o)%|bV)!siZ%cLUBzuDQ{Pta(;JhxwcerS?qXYyX`0@=<=q;jVwQpkXvK z1ydfZHIATg`dA|Nr&%~96wTDt8uryOQWN&ssliiKA0~HjB6n#pH`1t}a{thNh3p1C z4ruB4dG-ttJDLzq&s;@`#^4S@G{vD((H|uce}MukFfhL6d^E^cl+W1r^JR2%!^b4M zsG&vie}x;~67==si(OW(H6|{~48Vud9@Qedqy&@%kn~|X9~bBrB`ke!Ij8sCga(!Q zyYHH~`Hj&+XPCi+1Bxh)uVUPCPD!RTQg5c}e* zT#N!N37?_pxSdiCCn)ECJr>TW)WKN;(}sncs)|gPJs=XXpFlOmL`vwgb;W-JY1g`e}Vhniu%k22x3Ro~`SGXOXLpXP|VwcafU z-%=?n8mRYGw%2n0fafwo7*sQXzRBTNUC;u)LnV`W1%#fG+d7HXJryLF|NrIaj`+*x zU)*F`H1utEK98QUV7WX(TwazG8xOm?JQ6i@~P9<2~-ZDb7ILm{Pyi#PdIKadMc{b&S(4HTk4 z$F1-*!~j%04(SkQc~p=Ymv^HwJH4DH>(X@`Fa=UCL_?U}2PGGpBy#U{Dn)-SiNj^R ztlk3|qZRmi3EIFhUwnf0JPQO?3gT&JX zZ3c1XMJ*ypxLhbI2>>drau$rj_wt1F4^QspZ~vyWqegVlVpL}kaZjORPy8EX;FDGy zS-Z98-7Xfi^}K@?n)rxcrZt=hyc|i01K~8_6e#E!H8QOO3&IhyEd1)i;dJvFnUmmz zTtjLng-)9TfnpjCiuDXpODi!06DAQb((=_c`IS|u#)E(iZr-4m)fBlN38$4QFy3|K zKJ^{t;=+;2J>GUJewexrAaW2=jkeb!xa5O|#KXmj)HMr_xf}4fjuk5i?V)5&;BYJ= zKOUBSV^>p?`$?2>i!L_Bh6jCd;ExR~un+O7)~-){(O=h?TosA|SE~Z%#DHY-e;Tn~ za8i7_SFqnO>M$O0&964TIg)zd$_-s3#H)- z*>DRy;@l%JeX#Hnl~A=7%a>kxdSk3IQ-Ot9+QIZZ)2|+mKyddK98W_be~EI~zAd?u z{Yhc^*mLKh-^>4ipWrQErl>X^3&5qGD#reoov*(~H2s!>jJ4uOxx@o8RUBMguzKns zO$=+}YZg0%Kz;-d9WiV0W^54TSRmw6&=;UPa0;WWO9#(vQjbP$t1+PMr)+fTo z)C^EEb}&bSF23U8e|OO&+k7}yDAyjFYT<}0Fwt_eUNI>FNv|5>U$*<~ z^*o>1j^;jzbrr$Op8!ahvD4}Vx`_&jCD@Y{)bb`blK7Hm!vwKIB#lOm@Pwu)&4z1( zv`fl;Z;?3vzAuA5H=R@erT!xUE6N{B!x@e*NC~sq2HCnYqcyx~>z^T)0`skzpua^L z9<4{=#}#V2eSHv$ z>Tz?WJP#}lR`-x93wxo}U-k(u;kz$?^612EKLA+hnPsgd-1e)Mn<=Cm?u(PLni}yh z*41Zvq0F4tdjEIP#ck*m&HB;=ftczNXke;s6efs5DZI>Qh$ zO6S$j5?#9&~bRMnus4Ou-JH4=-2WA?#Ik(^ZVmx4OC(T;jzc9v5A2gKxvt-1IHm zh{-U{kukTXd9ULhDlRrya{f<>TYI{&NXOV~kz{Te@_c7*IQJT-1BBFSsO33_g6xuY zk_y7wIb;v7wIZPRVXVaCjoa~N;yn1bSSR-<3rY2db0aA_KP z2;}&Ea${U|h~SYRq3Vs!x(N?O~kJ>1-X3$u*WeBl`b z&-c&8#R-zl=<{}YIj%J_75-X;J|&j@bzlEm_F@A@o#jOu2yE2x&o*8B?Q9NnQ*F+2 zN8XI7_jG7N={YV^-2=sFoGX=}j*2*`&D9)g81YCQTABRY)-!DGXZpd~+8Umua}R&{ z!yZm{o?gT>V}q+L669j9Wa?J*RW07uJ>~eT4sW;`k5ja$2NGhy?l)1I`0>rXf}6KPc6lYaIJ#(QOcM;mRN-G?B0hm2|7X$$iO06uZ~^ z7^wX6+0=*mgAWZsvrS(+>84;ty%20AM6+8mZGqbOSL$DnK4--2v~@^9;RtB)cvu|r zBTv)I{Msmqn_r+WM<+c$FrhOo>+1V3|0LCaKMO$@*AElm9K|$|H@gzv01hFmKmMJ_VPkJAvKFA~k$21A^JB z#MexIy86=lcYBJ(lS;x<1yVZ+xQquY3!)?}FGu*gd4fVliaZ0ei)Z%4VM2-?3^cj0 z?QCGP1OH6Ja}D^LPOf6vozdaJgifnT?|lB+8vf8HqHedYLQ`nT0BxY;T}I^kBU;XX zUf#eV4(`YAbpuLzN;?|>Fpp>2=2Gi4sDOnwCG=q$I4UDFSY%4Nl>K0a-o>x_8Emv< zRT9}lzJ3<0GU>gR?8^q1xeMWx1#a*d%;qS1%8!zbl39D(ulG~FL%jBlhvSV6YXs9- z8K@^3Vw3!%oUsziW+x(A-${aDZgg^k?>ietod8Pc;xT8g1t}ce-!oZ1->Ydmq31KY zhuGocnulYQtRT3bcGal*Le1r~%!voLe;xmFp07D7(7g}*tT+gP<~P^q3`LRQ?=`!W z?Q|RjSDO)_lEX-E-jsP%9{z_K4&6Hpr#DvEwtr*q3hp*9ndm4Rg!DUIz3`O!RccdN0G`yqc-qVA)SV@j79yyf)8Ryz9{8D}|~S zC}LPrFDs$^PpV7PGV`Iu36%AZ?!+zZi(8zFu5-;;yUw>6~m$ z`pdGhyNkTgGC|*8W86)VU^c?!tD|{p&U1&KI~nZziO2l|Q}+LDGyy0o%4(zuGT1dp z|I)hUE55QPcA!LFL8aRGyLSb#9id}tt^+H_7R`ccx&E@rvbf=H2K&_uXNN1OhP*WV`AQ4`@=XB91KSO{j({k=^ekspGR1-Yeher~)0+$5%dhKk$>~vp zPS`CvjPQZ{)xKj9uaenVGVFSTTYG;`@caL^Xn?E)eU9)vsHf|O{5YFQ+V48|N6tv= z90s4z#&W66wZ>^m+J;yi266QJ){{TMN}~<4g{u#o)-B@B+SY2PYJSxH;)I*GN!43x zxS5QuNWxQ6y%(STS!n33o+NLrcMdAt(SA?Qnt2BnuVAD}-qLt*$%7K|`Xo-a7p0Y& zNjtD_cld#A-NhNtGLOm> z1$f*_3x#Gu9O4I-$e;Jh8z9s(u=+vc|1OO@*ohg!888 z2EE#|{)R!nO}VCs$C*LS`?>pCjI_x)@K!sKW~W z+ysPWG#C#;W%(h288c`9pcp9mGR|Qgd*)y)Y9jWZb}MB>fxN$$gY2sUy;+v}HJv0u zvHeCk{l;4i7WibrAO?(u8s#(d{i7;I=8f20UbM0zbUD^SKoKE0d$b9U_m-iCfSlwH z<<6O6zun|meL`T8KC`~;kI#DplqZdW;d@mkY$Klqyt<}cr zZ?Z7(t_mF5(LY1)ojI912Esjcfh$+t#*Xv7MsXcvMj)&$*XAYzD5k`!A;*3!nJRKV zzsWFSEMi>UZZu%cQMNbdU(y4$tW_dSUQ0eUoGE6dt{78ob75HN2;@X?!KW73%VsIj z4Zw6+qO=Cv_4%B0iw4V|A@O6CQ5$MhW+_J=$RkM9hx?L|z`p%3mElcEdg%{h;*ZC7}0GxegUr zZQ233C%)2O(JBFp^GD(;v-vg$>C2tJlf_I)SQ+s}f3bVOHRG%u1HJrrwVn8HGpM3&yWE9;x-JBm~H8Q^EI5_rae_}V{2qv%JIaSh&yGqWjjDPX9r zuTp#@xoT>7G$Vx?_7yJDZd7b!4n>3K_DW?2G(`u@Q{w(!iWkRaOdM{tTJkP385FDsUCY)e*H zXD>L`oOQ{=ec-I{?Y6%8aR2oT`$k8{3V4ZXfNW+p)F|C2E7)Wf;gS3|g+vncfdhj> z*?V|q!s9rR&w(g@xnh9{|8Y~czv;hnxCN{VCP`)yWY6nco80Pr6sb;ix1Y>kOt?_` zH78FX$+vXdcUlW(7Aw+(&T+k^D{os)7gN`kxfVD!ITDJ&0Chrv)I4Yr)l`QM$r+Nr zD924A8#vh2sI@HbU+0;*9Cr2i(c)@_u*f2OuCG+RM;p`KvJygG_br;R6}wZbK`q#W z_gfucegL$Q!Z`XzKNony?&=|oQ=ap`2kMDV`k&j2|$PNGMs0yr)&muxt%1y`m`k6g)Dyn zE!~@zPSwEgSpHbMMfVyBGEl$qJ*D(4LbOYccbO?P#IX(FJ=(Z309;p-4fBu!aMs)k zTOARy!)Rph)3OViEbh9i9QCAuLT5DW;I>zA%(}7_E=AQR!{ZewP zIhOtYDD!UI)o{QS1P#|i)1W_Hn=!=Vht@%Snp9Rr2DV@?XD4(q6s`BU`f&QLHaubB zHGwGDu3GDQ@LMkTN8#AODNz$v{ESt{6VFk&RoAXZ4x(lOS0H!>Z2iu;xYq4NjV?uG zZCj0fD?S+vG7Ocn^zQ^?bv4M*>EQ<9u|1KzrPASJmNmkO4Yskqcm{Zzm%(m6*VE3x zg<_EQ*xU{4TMN>vVW@gInlgT(`s<};kU+!$u6J9Mnou+RELfoSDYh!d*qmkD-_>_) zQa+rE2kwo{(gp%V>~*69r05F&@iZwUX-bvGda_}qr# zSgFxQoEkBeA?n>fqLhtP@_hQ|ce3cz*PQuTWqC1{mJ6Y{Xn%XVs%hrKl;*%o} zZ!Ye!ZKr{eWQv76)Ie0Qgl8XzZ^`F8^6pA8_3L9ata-77r#mxdfaz`_N-+TfMg1O( zM(XuIoGubb3+Fr*7Am9OQ-e*!W~WE~#KCmwg8M~L zjYJ*JEixZwE*bRj`S^x+RmyCfGXB*_$mKy$v4)&+q3}`It(g&JG~RtptIf{>h6-rq~OTtH)L)1V<95Fq}ESr24{%+Z0v^=1L!vE6S+@PultWeEGKSxd8LLKf@6!m zMiZWFMa9{@lBq1LU(hRk>@AWOV<$;R#R^lfmNE-D?V?;40cLI{6wKR0IoQCN6%y4)K4+r-yH~PK}dz9F4z1ILQm_`&x<^+U|-52A#bO!il$2O>@T98Q`@&T>1X9<-87xes=!d?h4waN}<)d9b;QAw+p1!CqpZR$5=^ zTdf-)P`(6q_JM*Tq=joZ=X#C7$U4hxoSmmOVWz#s`q|^8`&%3^qcA8sWSZ&{GR#c{ zji;O?jlAf_=#w*hN9$vaS9#%E|Dv4Xt+Xh=uhTw-QSqO7j_^E(Eyfj*oT3|e?E`Xj zGXtq(Q~7?Ka$Nn!v7^i*Lj{o{7H55}!x@G+G9FN6;iCe^Vz^*IqX_xje4$1~$c*<5*M1pBGg-reGmQkPb zn?@fVw6A-s9otsdN8dsa)C~H119qAdJ)_dexM{jcTIkm+$IJc}`e8kGIB#=xxN6nJ zAP8nTg6gp}VtzHX?kOxiFjb3~M|OtJ>@IYTUOGNk9#pc#9*=c7yv{_D^`+=D50E9t zu#G>Q7$lN?L&D41aQWVmrCFgo;MCE}r%6IsW8#g<7q}yf;MpU3Md*F0z-Fo_ z^2x3aEBRKJj~XM|&*a)$yy&0R(wW3EV_t4ojfWNU5b1@XWgd)f6vx_W=F`OJ)1Fc8 zT4sEX-W^%j4*Dt%%<73-h`kAN2P910bBGTYYZ=QPI1KR=)4Uc9z(cPIUEp9{JCvb>tG zX|pF(*sTjg2U_KJ;v;OdCbvS%6KPm~uHQbi}4MQW1sx+2VQ>}VnExN76l@0cE#GkO)P z!{a-59)Gv}*5mX0hD^T9F#D7*hAfS`=RUu-tcv8sNFsSoACK4dzRdW9Hq>1!A1Smpv}^;_El#1U`{x2yD!y2<6w7T3ZPy&Rp! zXdj$k=XSq$36OVB9rXlTvTC|>wH<2XHn;MvQ9QJFP`bYF=3k0{Q49S1VnXnPUZ;pD zAPN|i2w`{2T(nE9hj8>K`_!B~u?Now8WP1FO^*%u5#9C_iJ^E=JglFv-ZEF)*QXMm zyp@`@%&!T56F9;mcl_o0U$zP~ECg1Phz5v$5+%qC)|4SEPN{WR4Y9j0_U`hr^Ho*B zA;Q?0@zoob^#2Z~+!X|CDz_>lO%B$7g*&r5X*VkqP?h-I`n*2%F;leB_UEhsbAg|) z5rh*4P>`N0q-u@Rhb7}i$kU`IZ-VoMSQ~%aI^?rM*Beg_b-#MI<4<$Q&DQc3X(1=5 zFn02~r7C&Hk)Hf_uV&oa5{y3C;9)U79!;O1O=ETVOfS9$Hix>H zg%AEScL+A8qn0(daoR$6^fS==OR? zi6g3*C0B8pMq%!iixS^q41jw%!e<*T^2OUBsV)MWD5n;Yz zJ5kfE?$gHLT!r#kCu6i9gGs0%(bEFWTYhzgvu|Z??F3uQq@4}elr;~vxsI#jxZg{T z*S&-|dUIO_AAaI%A&%D}jMPux@gZ)D=Xk$n=$AAYIZ)z4Klh>Nx`RAc zL_G;s!EY$_6*@VSU`!$&0JoGp{4g6aFPzrAMSg6c#;ovfc~c}Q@|UU3KgaF}W!2Lt zg!O4P=9s+A-TcU%Av+ZL%-G%kjmGS0nq$Xx-Z9(Z-iUW|Z#b<;5r;0vu~W&XZC}oH zSG*U6MHi!uygbWQbd+v#Pt4OQF$-)iD!ZE?7}RHB&Dk{D1acK1NZnHuj@cj`_%*3{qp z%9`@Ojq@PG3qp_e=$LVI`f~B0<7jq@Xv;AMuTji}5^+lqF*&{$?$}i;CXaR?Yu^Gu zMf7ZADpBM#k)&jf2%8^q;mDBCPQ;@2&sbA2tq%td+7<|qRnP*#vwzgyNo+kit4PTr_Ge&^QQAbgf- z7d-BXhrc!{PFe2cl)it>&^i==-N^y?{bNIyWom0;VGPaAU4j%ClM^Zi=eZp4FDvy%HOn+^BLSPh_T z#(iC5p2+7-?k~T(696Wiv9T^nZQs%?aWXDSkxq%)-A@`diD9;NeNOz-H}YNCk;egR-uHTXy#tjSXmD;Qi6e5?pX|HYE?n zR(FyIRz3|rxIGK2 z-WX+oB-|LfEnv$btw$z?S4T+Q0X*<5EWl%t%2THl!-5hf)8D7${eJOwXO!KXItHo4 z19G13F(XuP8^bbZZ()4S3cARqwIv-))V82NFX$AH$AKM~UC5t`UKsC2b3 zmMnV^lk$d?!ruGQd(SJZ+N3*q1J?;psTO`nNOlHa%FE4rRcwoQa-8=WIPX*cBbnWR z@aP*ZALDS4KSr1)dW_-gtO<^})bf%0D;_3PP0z#lyj_I70_sc1CX)Ib?6U5~pu0Ed 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 j=baD literal 122007 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 From f9dddf847083738703a09f2de87955321e31588b Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Wed, 23 Jan 2019 16:37:58 -0500 Subject: [PATCH 12/41] fix #30792, static param constraints between positional and kw args (#30798) (cherry picked from commit 4b7415870413c2dbcdfdbb55eed9a3623576dca1) --- src/julia-syntax.scm | 16 +++++----------- test/keywordargs.jl | 11 +++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/julia-syntax.scm b/src/julia-syntax.scm index 7b1a15c559103..ce00f3b7cdb7f 100644 --- a/src/julia-syntax.scm +++ b/src/julia-syntax.scm @@ -396,6 +396,8 @@ (vararg (let ((l (if (null? pargl) '() (last pargl)))) (if (or (vararg? l) (varargexpr? l)) (list l) '()))) + ;; positional args with vararg + (pargl-all pargl) ;; positional args without vararg (pargl (if (null? vararg) pargl (butlast pargl))) ;; positional args with everything required; for use by the core function @@ -424,13 +426,7 @@ (filter nospecialize-meta? kargl))) ;; body statements (stmts (cdr body)) - (positional-sparams - (filter (lambda (s) - (let ((name (car s))) - (or (expr-contains-eq name (cons 'list pargl)) - (and (pair? vararg) (expr-contains-eq name (car vararg))) - (not (expr-contains-eq name (cons 'list kargl)))))) - sparams)) + (positional-sparams (filter-sparams (cons 'list pargl-all) sparams)) (keyword-sparams (filter (lambda (s) (not (any (lambda (p) (eq? (car p) (car s))) @@ -462,7 +458,7 @@ ;; call with no keyword args ,(method-def-expr- - name positional-sparams (append pargl vararg) + name positional-sparams pargl-all `(block ,@(without-generated prologue) ,(let (;; call mangled(vals..., [rest_kw,] pargs..., [vararg]...) @@ -478,9 +474,7 @@ ;; call with unsorted keyword args. this sorts and re-dispatches. ,(method-def-expr- - name - ;; remove sparams that don't occur, to avoid printing the warning twice - (filter-sparams (cons 'list argl) positional-sparams) + name positional-sparams `((|::| ;; if there are optional positional args, we need to be able to reference the function name ,(if (any kwarg? pargl) (gensy) UNUSED) diff --git a/test/keywordargs.jl b/test/keywordargs.jl index 51c6c60e83772..eacacdc2ea248 100644 --- a/test/keywordargs.jl +++ b/test/keywordargs.jl @@ -117,6 +117,17 @@ end @test kwf7(1.5;k=2.5) === Float64 @test_throws MethodError kwf7(1.5) @test_throws TypeError kwf7(1.5; k=2) + + # issue #30792 + g30792(a::C; b=R(1)) where {R <: Real, C <: Union{R, Complex{R}}} = R + @test g30792(1.0) === Float64 + @test g30792(1.0im) === Float64 + @test g30792(1.0im, b=1) === Float64 + @test_throws MethodError g30792("") + f30792(a::C; b::R=R(1)) where {R <: Real, C <: Union{R, Complex{R}}} = R + @test f30792(2im) === Int + @test f30792(2im, b=3) === Int + @test_throws TypeError f30792(2im, b=3.0) end # try to confuse it with quoted symbol kwf8(x::MIME{:T};k::T=0) where {T} = 0 From f24bf8b4711bada49ce53ce2635d214a433d47be Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Wed, 23 Jan 2019 16:38:54 -0500 Subject: [PATCH 13/41] fix `at-everywhere using` in Distributed stdlib (#30804) (cherry picked from commit 17c4b0213aabd654da132e8dbe62edee73de5672) --- stdlib/Distributed/src/macros.jl | 17 +++++------------ stdlib/Distributed/test/distributed_exec.jl | 2 +- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/stdlib/Distributed/src/macros.jl b/stdlib/Distributed/src/macros.jl index 15faadb3c31fa..4285073ec90a3 100644 --- a/stdlib/Distributed/src/macros.jl +++ b/stdlib/Distributed/src/macros.jl @@ -135,24 +135,17 @@ end extract_imports!(imports, x) = imports function extract_imports!(imports, ex::Expr) if Meta.isexpr(ex, (:import, :using)) - m = ex.args[1] - if isa(m, Expr) && m.head === :(:) - push!(imports, m.args[1].args[1]) - else - for a in ex.args - push!(imports, a.args[1]) - end - end + push!(imports, ex) elseif Meta.isexpr(ex, :let) extract_imports!(imports, ex.args[2]) elseif Meta.isexpr(ex, (:toplevel, :block)) - for i in eachindex(ex.args) - extract_imports!(imports, ex.args[i]) + for arg in ex.args + extract_imports!(imports, arg) end end return imports end -extract_imports(x) = extract_imports!(Symbol[], x) +extract_imports(x) = extract_imports!(Any[], x) """ @everywhere [procs()] expr @@ -183,7 +176,7 @@ macro everywhere(ex) end macro everywhere(procs, ex) - imps = [Expr(:import, m) for m in extract_imports(ex)] + imps = extract_imports(ex) return quote $(isempty(imps) ? nothing : Expr(:toplevel, imps...)) # run imports locally first let ex = $(Expr(:quote, ex)), procs = $(esc(procs)) diff --git a/stdlib/Distributed/test/distributed_exec.jl b/stdlib/Distributed/test/distributed_exec.jl index 383a6783a311d..aa462b73f0549 100644 --- a/stdlib/Distributed/test/distributed_exec.jl +++ b/stdlib/Distributed/test/distributed_exec.jl @@ -8,7 +8,7 @@ import Distributed: launch, manage include(joinpath(Sys.BINDIR, "..", "share", "julia", "test", "testenv.jl")) @test Distributed.extract_imports(:(begin; import Foo, Bar; let; using Baz; end; end)) == - [:Foo, :Bar, :Baz] + Any[:(import Foo, Bar), :(using Baz)] # Test a few "remote" invocations when no workers are present @test remote(myid)() == 1 From ceccebd99b64b0b1472dc2eb36cc9b6b7f0506f1 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Fri, 1 Feb 2019 16:43:23 -0500 Subject: [PATCH 14/41] fix #30911, bug in `deepcopy` of `UnionAll` (#30930) (cherry picked from commit c7338ea61a3948214014c950c7f895efc8a66e73) --- base/deepcopy.jl | 2 +- test/copy.jl | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/base/deepcopy.jl b/base/deepcopy.jl index 7ed68bbf2b6ac..5bf1311a13603 100644 --- a/base/deepcopy.jl +++ b/base/deepcopy.jl @@ -27,7 +27,7 @@ updated as appropriate before returning. """ deepcopy(x) = deepcopy_internal(x, IdDict())::typeof(x) -deepcopy_internal(x::Union{Symbol,Core.MethodInstance,Method,GlobalRef,DataType,Union,Task}, +deepcopy_internal(x::Union{Symbol,Core.MethodInstance,Method,GlobalRef,DataType,Union,UnionAll,Task}, stackdict::IdDict) = x deepcopy_internal(x::Tuple, stackdict::IdDict) = ntuple(i->deepcopy_internal(x[i], stackdict), length(x)) diff --git a/test/copy.jl b/test/copy.jl index 74650d28d42d4..9b7dd82bdf03a 100644 --- a/test/copy.jl +++ b/test/copy.jl @@ -84,6 +84,9 @@ end @test c[1] === c[2] end +# issue #30911 +@test deepcopy(Array{Int,N} where N) == Array{Int,N} where N + # issue #14027 struct Nullable14027{T} hasvalue::Bool From 347bca30d9e8b1c717ec7e2f77da1a9514e0c217 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Mon, 17 Dec 2018 11:39:38 -0500 Subject: [PATCH 15/41] fix #30394, an unsoundness in ml_matches (#30396) This fixes a corner case where a bug is caused, counter-intuitively, by an over-estimated intersection. We have method signatures A and B, with Amax_valid = ml->max_world; } } + // In some corner cases type intersection is conservative and returns something + // for intersect(A, B) even though A is a dispatch tuple and !(A <: B). + // For dispatch purposes in such a case we know there's no match. This check + // fixes issue #30394. + if (jl_is_dispatch_tupletype(closure->match.type) && !closure->match.issubty) + return 1; // a method is shadowed if type <: S <: m->sig where S is the // signature of another applicable method /* diff --git a/test/compiler/compiler.jl b/test/compiler/compiler.jl index 16e3eaf39f874..791c73a61f7db 100644 --- a/test/compiler/compiler.jl +++ b/test/compiler/compiler.jl @@ -2077,3 +2077,24 @@ function f29036(s, i) val end @test Base.return_types(f29036, (String, Int)) == Any[Char] + +# issue #30394 +mutable struct Base30394 + a::Int +end + +mutable struct Foo30394 + foo_inner::Base30394 + Foo30394() = new(Base30394(1)) +end + +mutable struct Foo30394_2 + foo_inner::Foo30394 + Foo30394_2() = new(Foo30394()) +end + +f30394(foo::T1, ::Type{T2}) where {T2, T1 <: T2} = foo + +f30394(foo, T2) = f30394(foo.foo_inner, T2) + +@test Base.return_types(f30394, (Foo30394_2, Type{Base30394})) == Any[Base30394] From af03147f5d4f7476ed127c3619b0f01882a657c8 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Thu, 3 Jan 2019 13:12:50 -0500 Subject: [PATCH 16/41] llvm: fix target triple (#30554) broken by their move to cmake causing a switch away from the standard --host/--build autoconf fix #28046 --- deps/llvm.mk | 2 +- src/disasm.cpp | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/deps/llvm.mk b/deps/llvm.mk index 5af5f6363d5c6..d09579b21e27e 100644 --- a/deps/llvm.mk +++ b/deps/llvm.mk @@ -65,7 +65,7 @@ LLVM_CXXFLAGS += $(CXXFLAGS) LLVM_CPPFLAGS += $(CPPFLAGS) LLVM_LDFLAGS += $(LDFLAGS) LLVM_CMAKE += -DLLVM_TARGETS_TO_BUILD:STRING="$(LLVM_TARGETS)" -DCMAKE_BUILD_TYPE="$(LLVM_CMAKE_BUILDTYPE)" -LLVM_CMAKE += -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_LIBXML2=OFF +LLVM_CMAKE += -DLLVM_ENABLE_ZLIB=OFF -DLLVM_ENABLE_LIBXML2=OFF -DLLVM_HOST_TRIPLE="$(or $(XC_HOST),$(BUILD_MACHINE))" ifeq ($(USE_POLLY_ACC),1) LLVM_CMAKE += -DPOLLY_ENABLE_GPGPU_CODEGEN=ON endif diff --git a/src/disasm.cpp b/src/disasm.cpp index c7f74765cba65..bff8dd91f697a 100644 --- a/src/disasm.cpp +++ b/src/disasm.cpp @@ -628,24 +628,23 @@ static void jl_dump_asm_internal( { // GC safe // Get the host information - std::string TripleName = sys::getDefaultTargetTriple(); - Triple TheTriple(Triple::normalize(TripleName)); + Triple TheTriple(sys::getProcessTriple()); const auto &target = jl_get_llvm_disasm_target(); const auto &cpu = target.first; const auto &features = target.second; std::string err; - const Target *TheTarget = TargetRegistry::lookupTarget(TripleName, err); + const Target *TheTarget = TargetRegistry::lookupTarget(TheTriple.str(), err); // Set up required helpers and streamer std::unique_ptr Streamer; SourceMgr SrcMgr; - std::unique_ptr MAI(TheTarget->createMCAsmInfo(*TheTarget->createMCRegInfo(TripleName),TripleName)); + std::unique_ptr MAI(TheTarget->createMCAsmInfo(*TheTarget->createMCRegInfo(TheTriple.str()), TheTriple.str())); assert(MAI && "Unable to create target asm info!"); - std::unique_ptr MRI(TheTarget->createMCRegInfo(TripleName)); + std::unique_ptr MRI(TheTarget->createMCRegInfo(TheTriple.str())); assert(MRI && "Unable to create target register info!"); std::unique_ptr MOFI(new MCObjectFileInfo()); @@ -659,16 +658,15 @@ static void jl_dump_asm_internal( // Set up Subtarget and Disassembler std::unique_ptr - STI(TheTarget->createMCSubtargetInfo(TripleName, cpu, features)); + STI(TheTarget->createMCSubtargetInfo(TheTriple.str(), cpu, features)); std::unique_ptr DisAsm(TheTarget->createMCDisassembler(*STI, Ctx)); if (!DisAsm) { - jl_printf(JL_STDERR, "ERROR: no disassembler for target %s\n", - TripleName.c_str()); + rstream << "ERROR: no disassembler for target " << TheTriple.str(); return; } unsigned OutputAsmVariant = 0; // ATT or Intel-style assembly - if (strcmp(asm_variant, "intel")==0) { + if (strcmp(asm_variant, "intel") == 0) { OutputAsmVariant = 1; } bool ShowEncoding = false; From 92ecdfdbbccff971be8e1996406adbc636654df6 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Fri, 4 Jan 2019 19:35:28 -0500 Subject: [PATCH 17/41] Fix use counts for mutable struct SROA PR #28478 moved the computation of the use counts before the finish call. to fix #28444. However, the early parts of the finish call fixes up phi node arguments, which fail to get counted if we look at use counts before that fixup is performed. This causes #30594 where the only non-trivial use is on the backedge of the phi and would thus incorrectly fail to get accounted for. Fix that by taking the use count after phi fixup but before dce. (cherry picked from commit f8f20453c4ca7a6aeb23a189a420dbff130679ce) --- base/compiler/ssair/passes.jl | 10 +++++++--- test/compiler/irpasses.jl | 25 +++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 test/compiler/irpasses.jl diff --git a/base/compiler/ssair/passes.jl b/base/compiler/ssair/passes.jl index ce04b81bac1eb..d9b4449af8dbb 100644 --- a/base/compiler/ssair/passes.jl +++ b/base/compiler/ssair/passes.jl @@ -688,10 +688,14 @@ function getfield_elim_pass!(ir::IRCode, domtree::DomTree) compact[idx] = val === nothing ? nothing : val.x end - # Copy the use count, `finish` may modify it and for our predicate - # below we need it consistent with the state of the IR here. + + non_dce_finish!(compact) + # Copy the use count, `simple_dce!` may modify it and for our predicate + # below we need it consistent with the state of the IR here (after tracking + # phi node arguments, but before dce). used_ssas = copy(compact.used_ssas) - ir = finish(compact) + simple_dce!(compact) + ir = complete(compact) # Now go through any mutable structs and see which ones we can eliminate for (idx, (intermediaries, defuse)) in defuses intermediaries = collect(intermediaries) diff --git a/test/compiler/irpasses.jl b/test/compiler/irpasses.jl new file mode 100644 index 0000000000000..e0ea93af6cedc --- /dev/null +++ b/test/compiler/irpasses.jl @@ -0,0 +1,25 @@ +# Tests for SROA + +mutable struct Foo30594; x::Float64; end +Base.copy(x::Foo30594) = Foo30594(x.x) +function add!(p::Foo30594, off::Foo30594) + p.x += off.x + return p +end +Base.:(+)(a::Foo30594, b::Foo30594) = add!(copy(a), b) + +let results = Float64[] + @noinline use30594(x) = push!(results, x.x); nothing + function foo30594(cnt::Int, dx::Int) + step = Foo30594(dx) + curr = step + Foo30594(1) + for i in 1:cnt + use30594(curr) + curr = curr + step + end + nothing + end + + foo30594(4, -1) + @test results == [0.0, -1.0, -2.0, -3.0] +end From 63414f7038b11a8316c5e8b9b84e46de9d774304 Mon Sep 17 00:00:00 2001 From: Raghvendra Gupta Date: Mon, 17 Dec 2018 20:20:13 +0530 Subject: [PATCH 18/41] Fix #30006, getindex accessing fields that might not exist (#30405) * Fix #30006, range getindex accessing fields that might not exist * Add tests for #30006 --- base/range.jl | 4 ++-- stdlib/SparseArrays/test/sparse.jl | 4 ++++ test/ranges.jl | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/base/range.jl b/base/range.jl index af28228cd74ac..517d0456db5e8 100644 --- a/base/range.jl +++ b/base/range.jl @@ -608,8 +608,8 @@ function getindex(v::AbstractRange{T}, i::Integer) where T @_inline_meta ret = convert(T, first(v) + (i - 1)*step_hp(v)) ok = ifelse(step(v) > zero(step(v)), - (ret <= v.stop) & (ret >= v.start), - (ret <= v.start) & (ret >= v.stop)) + (ret <= last(v)) & (ret >= first(v)), + (ret <= first(v)) & (ret >= last(v))) @boundscheck ((i > 0) & ok) || throw_boundserror(v, i) ret end diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index 79290cfc6433c..76dd90bc74c48 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -92,6 +92,10 @@ do33 = fill(1.,3) end end +@testset "Issue #30006" begin + SparseMatrixCSC{Float64,Int32}(spzeros(3,3))[:, 1] == [1, 2, 3] +end + @testset "concatenation tests" begin sp33 = sparse(1.0I, 3, 3) diff --git a/test/ranges.jl b/test/ranges.jl index cfb41a477ebef..dba2e8b24983c 100644 --- a/test/ranges.jl +++ b/test/ranges.jl @@ -1406,6 +1406,13 @@ end @test @inferred(z4 .+ z4) === z4 end +@testset "Issue #30006" begin + @test Base.Slice(Base.OneTo(5))[Int32(1)] == Int32(1) + @test Base.Slice(Base.OneTo(3))[Int8(2)] == Int8(2) + @test Base.Slice(1:10)[Int32(2)] == Int32(2) + @test Base.Slice(1:10)[Int8(2)] == Int8(2) +end + @testset "allocation of TwicePrecision call" begin 0:286.493442:360 0:286:360 From fd1f1876097eba651e786275561ffd9078f00082 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Mon, 7 Jan 2019 13:30:25 -0500 Subject: [PATCH 19/41] Fix SROA confusing new and old nodes SROA was accidentally treating a pending node as old and thus getting the wrong type when querying the predecessor. As a result it thought one of the paths was unreachable causing undefined data to be introduced on that path (generally the `1.0` that happened to already be in register). Fix #29983 --- base/compiler/ssair/passes.jl | 12 +++++++++--- test/compiler/irpasses.jl | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/base/compiler/ssair/passes.jl b/base/compiler/ssair/passes.jl index d9b4449af8dbb..67d8f92f9fe1a 100644 --- a/base/compiler/ssair/passes.jl +++ b/base/compiler/ssair/passes.jl @@ -191,7 +191,7 @@ function walk_to_defs(compact::IncrementalCompact, @nospecialize(defssa), @nospe collect(Iterators.filter(1:length(def.edges)) do n isassigned(def.values, n) || return false val = def.values[n] - if isa(defssa, OldSSAValue) && isa(val, SSAValue) + if is_old(compact, defssa) && isa(val, SSAValue) val = OldSSAValue(val.id) end edge_typ = widenconst(compact_exprtype(compact, val)) @@ -201,7 +201,7 @@ function walk_to_defs(compact::IncrementalCompact, @nospecialize(defssa), @nospe for n in possible_predecessors pred = def.edges[n] val = def.values[n] - if isa(defssa, OldSSAValue) && isa(val, SSAValue) + if is_old(compact, defssa) && isa(val, SSAValue) val = OldSSAValue(val.id) end if isa(val, AnySSAValue) @@ -425,6 +425,12 @@ struct LiftedPhi need_argupdate::Bool end +function is_old(compact, @nospecialize(old_node_ssa)) + isa(old_node_ssa, OldSSAValue) && + !is_pending(compact, old_node_ssa) && + !already_inserted(compact, old_node_ssa) +end + function perform_lifting!(compact::IncrementalCompact, visited_phinodes::Vector{Any}, @nospecialize(cache_key), lifting_cache::IdDict{Pair{AnySSAValue, Any}, AnySSAValue}, @@ -455,7 +461,7 @@ function perform_lifting!(compact::IncrementalCompact, isassigned(old_node.values, i) || continue val = old_node.values[i] orig_val = val - if isa(old_node_ssa, OldSSAValue) && !is_pending(compact, old_node_ssa) && !already_inserted(compact, old_node_ssa) && isa(val, SSAValue) + if is_old(compact, old_node_ssa) && isa(val, SSAValue) val = OldSSAValue(val.id) end if isa(val, Union{NewSSAValue, SSAValue, OldSSAValue}) diff --git a/test/compiler/irpasses.jl b/test/compiler/irpasses.jl index e0ea93af6cedc..27269d132a9f2 100644 --- a/test/compiler/irpasses.jl +++ b/test/compiler/irpasses.jl @@ -23,3 +23,29 @@ let results = Float64[] foo30594(4, -1) @test results == [0.0, -1.0, -2.0, -3.0] end + +# Issue #29983 +# This one is a bit hard to trigger, but the key is to create a case +# where SROA needs to introduce an intermediate type-unstable phi node +struct Foo29983{T} + x::Tuple{T} +end +struct Bar29983{S} + x::S +end +Base.:+(a::T, b::Bar29983{S}) where {T, S} = Bar29983(a + b.x) +Base.:+(a::Bar29983{S}, b::T) where {T, S} = b + a +Base.:+(a::Bar29983{S}, b::Bar29983{T}) where {T, S} = Bar29983(a.x + b.x) +Base.:+(a::Foo29983, b::Foo29983) = Foo29983((a.x[1] + b.x[1],)) + +function f(x::Vector{T}) where {T} + x1 = Foo29983((x[1],)) + la1 = Foo29983((x[1],)) + f1 = Foo29983((0,)) + for _ in 1:2 + f1 += la1 + end + return f1 +end + +@test f([Bar29983(1.0)]).x[1].x == 2.0 From 8ec20f467a2db7efa34cc63f5440301ce2d55bf9 Mon Sep 17 00:00:00 2001 From: Keno Fischer Date: Fri, 4 Jan 2019 22:08:17 -0500 Subject: [PATCH 20/41] Defensively fix patterns similar to #29983 I don't have concrete tests for these, but it looks like they all need the `is_old` predicate for what they're doing, so switch those over also while we're at it. --- base/compiler/ssair/passes.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/base/compiler/ssair/passes.jl b/base/compiler/ssair/passes.jl index 67d8f92f9fe1a..12cd0cd582f8c 100644 --- a/base/compiler/ssair/passes.jl +++ b/base/compiler/ssair/passes.jl @@ -130,7 +130,7 @@ function simple_walk(compact::IncrementalCompact, @nospecialize(defssa#=::AnySSA return defssa end if isa(def.val, SSAValue) - if isa(defssa, OldSSAValue) && !already_inserted(compact, defssa) + if is_old(compact, defssa) defssa = OldSSAValue(def.val.id) else defssa = def.val @@ -281,7 +281,7 @@ function lift_leaves(compact::IncrementalCompact, @nospecialize(stmt), end if is_tuple_call(compact.ir, def) && isa(field, Int) && 1 <= field < length(def.args) lifted = def.args[1+field] - if isa(leaf, OldSSAValue) && isa(lifted, SSAValue) + if is_old(compact, leaf) && isa(lifted, SSAValue) lifted = OldSSAValue(lifted.id) end if isa(lifted, GlobalRef) || isa(lifted, Expr) @@ -320,7 +320,7 @@ function lift_leaves(compact::IncrementalCompact, @nospecialize(stmt), compact[leaf] = def end lifted = def.args[1+field] - if isa(leaf, OldSSAValue) && isa(lifted, SSAValue) + if is_old(compact, leaf) && isa(lifted, SSAValue) lifted = OldSSAValue(lifted.id) end if isa(lifted, GlobalRef) || isa(lifted, Expr) @@ -339,7 +339,7 @@ function lift_leaves(compact::IncrementalCompact, @nospecialize(stmt), # N.B.: This can be a bit dangerous because it can lead to # infinite loops if we accidentally insert a node just ahead # of where we are - if isa(leaf, OldSSAValue) && (isa(field, Int) || isa(field, Symbol)) + if is_old(compact, leaf) && (isa(field, Int) || isa(field, Symbol)) (isa(typ, DataType) && (!typ.abstract)) || return nothing @assert !typ.mutable # If there's the potential for an undefref error on access, we cannot insert a getfield From 54a71f6e2b8f152f023936372d1dba4b0251e82f Mon Sep 17 00:00:00 2001 From: denizyuret Date: Wed, 9 Jan 2019 18:30:45 -0500 Subject: [PATCH 21/41] fix #30643, correctly propagate iterator traits through Stateful (#30644) --- base/iterators.jl | 5 ++--- test/iterators.jl | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/base/iterators.jl b/base/iterators.jl index 449e8dbb0663d..118cb9b61c5de 100644 --- a/base/iterators.jl +++ b/base/iterators.jl @@ -1094,10 +1094,9 @@ end @inline peek(s::Stateful, sentinel=nothing) = s.nextvalstate !== nothing ? s.nextvalstate[1] : sentinel @inline iterate(s::Stateful, state=nothing) = s.nextvalstate === nothing ? nothing : (popfirst!(s), nothing) -IteratorSize(::Type{Stateful{VS,T}} where VS) where {T} = - isa(IteratorSize(T), SizeUnknown) ? SizeUnknown() : HasLength() +IteratorSize(::Type{Stateful{T,VS}}) where {T,VS} = IteratorSize(T) isa HasShape ? HasLength() : IteratorSize(T) eltype(::Type{Stateful{T, VS}} where VS) where {T} = eltype(T) -IteratorEltype(::Type{Stateful{VS,T}} where VS) where {T} = IteratorEltype(T) +IteratorEltype(::Type{Stateful{T,VS}}) where {T,VS} = IteratorEltype(T) length(s::Stateful) = length(s.itr) - s.taken end diff --git a/test/iterators.jl b/test/iterators.jl index be5ad0b9398e5..ac33b611f3ed4 100644 --- a/test/iterators.jl +++ b/test/iterators.jl @@ -549,3 +549,27 @@ end @test ps isa Iterators.Pairs @test collect(ps) == [1 => :a, 2 => :b] end + +@testset "Stateful fix #30643" begin + @test Base.IteratorSize(1:10) isa Base.HasShape + a = Iterators.Stateful(1:10) + @test Base.IteratorSize(a) isa Base.HasLength + @test length(a) == 10 + @test length(collect(a)) == 10 + @test length(a) == 0 + b = Iterators.Stateful(Iterators.take(1:10,3)) + @test Base.IteratorSize(b) isa Base.HasLength + @test length(b) == 3 + @test length(collect(b)) == 3 + @test length(b) == 0 + c = Iterators.Stateful(Iterators.countfrom(1)) + @test Base.IteratorSize(c) isa Base.IsInfinite + @test length(Iterators.take(c,3)) == 3 + @test length(collect(Iterators.take(c,3))) == 3 + d = Iterators.Stateful(Iterators.filter(isodd,1:10)) + @test Base.IteratorSize(d) isa Base.SizeUnknown + @test length(collect(Iterators.take(d,3))) == 3 + @test length(collect(d)) == 2 + @test length(collect(d)) == 0 +end + From 2cb487a5f319407bd564c82c93fce06ba58a218e Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Tue, 12 Feb 2019 00:24:04 +0100 Subject: [PATCH 22/41] Bump Pkg to 1.0.4. --- .../Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 | 1 + .../Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 | 1 + .../Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/md5 | 1 - .../Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/sha512 | 1 - stdlib/Pkg.version | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 create mode 100644 deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 delete mode 100644 deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/md5 delete mode 100644 deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/sha512 diff --git a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 new file mode 100644 index 0000000000000..ba5c0842e1661 --- /dev/null +++ b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 @@ -0,0 +1 @@ +d6539ed75715bec63772633405634eeb diff --git a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 new file mode 100644 index 0000000000000..7f50c4a4b9c9f --- /dev/null +++ b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 @@ -0,0 +1 @@ +e9426b1870ccd1a907094ff92441f125f39ef23b2db3fb84954f4e7fa7ad1a628361f7810fd1023783af6e02c7d11f3e7fdf7f1712bc1a2c39bdfdca25c05dbf diff --git a/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/md5 b/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/md5 deleted file mode 100644 index 15f8d03acf4f8..0000000000000 --- a/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -498ed1792ccd8e3a895edf290d8066ca diff --git a/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/sha512 b/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/sha512 deleted file mode 100644 index da1d5635eedc0..0000000000000 --- a/deps/checksums/Pkg-93b6d6de857dc88e665d2c64397852ab9701ba24.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -83143d69e27da5fa58e5fa1ceab41aff7af242eea5399d4512c381d12fd90c7a3106db2a84af1f9a33c5bb917e7f05208310f34fd3b182595b581dc8070e3491 diff --git a/stdlib/Pkg.version b/stdlib/Pkg.version index 041775d63ada3..e55d459076c22 100644 --- a/stdlib/Pkg.version +++ b/stdlib/Pkg.version @@ -1,2 +1,2 @@ PKG_BRANCH = master -PKG_SHA1 = 93b6d6de857dc88e665d2c64397852ab9701ba24 +PKG_SHA1 = 7ddec6891472a16844b88cd21549fdc778fe7081 From 0b651e0b7708ac0ba4c48b26b5f7609032731f67 Mon Sep 17 00:00:00 2001 From: Alex Arslan Date: Fri, 4 Jan 2019 22:45:30 -0800 Subject: [PATCH 23/41] Use XCode 8.3 for macOS on Travis (#30599) This corresponds to macOS 10.12 Sierra. XCode 8 covers El Capitan and Sierra, so if Travis is giving us XCode 8.x for x < 3, we're on El Cap. Homebrew supports only three versions of macOS at a time, which means that El Cap (10.11) is no longer support. This is likely why our Mac builds are trying to build GCC from source; a bottle might not be available. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index b227c5832dc5f..6bbca3bc3a52d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,7 +40,7 @@ matrix: - gfortran-5 - os: osx env: ARCH="x86_64" - osx_image: xcode8 + osx_image: xcode8.3 cache: ccache branches: only: From 65a22aa428cc75a8f768b789be684bd97ee33e54 Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Tue, 12 Feb 2019 15:46:49 -0500 Subject: [PATCH 24/41] fix #29936, precompile should not assume UnionAlls have stable addresses (#31047) (cherry picked from commit 2dd48b96b17bf57c33c2f83c7d91e31690410227) --- src/dump.c | 4 ++-- test/precompile.jl | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/dump.c b/src/dump.c index 0e355b87a4c5c..5b481dedd9870 100644 --- a/src/dump.c +++ b/src/dump.c @@ -255,7 +255,7 @@ static int type_parameter_recursively_external(jl_value_t *p0) return 0; if (module_in_worklist(p->name->module)) return 0; - if (p->name->wrapper != (jl_value_t*)p0) { + if (jl_unwrap_unionall(p->name->wrapper) != (jl_value_t*)p) { if (!type_recursively_external(p)) return 0; } @@ -743,7 +743,7 @@ static void jl_serialize_value_(jl_serializer_state *s, jl_value_t *v, int as_li else if (jl_is_unionall(v)) { write_uint8(s->s, TAG_UNIONALL); jl_datatype_t *d = (jl_datatype_t*)jl_unwrap_unionall(v); - if (jl_is_datatype(d) && d->name->wrapper == v && + if (jl_is_datatype(d) && jl_unwrap_unionall(d->name->wrapper) == (jl_value_t*)d && !module_in_worklist(d->name->module)) { write_uint8(s->s, 1); jl_serialize_value(s, d->name->module); diff --git a/test/precompile.jl b/test/precompile.jl index 61e5e59512b5e..f9709de6916f9 100644 --- a/test/precompile.jl +++ b/test/precompile.jl @@ -744,5 +744,27 @@ let end end +# issue #29936 +let + load_path = mktempdir() + load_cache_path = mktempdir() + try + write(joinpath(load_path, "Foo29936.jl"), + """ + module Foo29936 + const global m = Val{nothing}() + const global h = Val{:hey}() + wab = [("a", m), ("b", h),] + end + """) + pushfirst!(LOAD_PATH, load_path) + pushfirst!(DEPOT_PATH, load_cache_path) + @eval using Foo29936 + @test [("Plan", Foo29936.m), ("Plan", Foo29936.h),] isa Vector{Tuple{String,Val}} + finally + rm(load_path, recursive=true) + rm(load_cache_path, recursive=true) + end +end end # !withenv From fc773de17a9e982b9f0d64ad6a13898d890e313b Mon Sep 17 00:00:00 2001 From: Simon Byrne Date: Tue, 12 Feb 2019 16:06:16 -0800 Subject: [PATCH 25/41] bump MPFR to 4.0.2 (#31041) (cherry picked from commit 300a336f7d7fcfb0964190d816f7cc9c857fb065) --- deps/Versions.make | 2 +- deps/checksums/mpfr-4.0.1.tar.bz2/md5 | 1 - deps/checksums/mpfr-4.0.1.tar.bz2/sha512 | 1 - deps/checksums/mpfr-4.0.2.tar.bz2/md5 | 1 + deps/checksums/mpfr-4.0.2.tar.bz2/sha512 | 1 + 5 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 deps/checksums/mpfr-4.0.1.tar.bz2/md5 delete mode 100644 deps/checksums/mpfr-4.0.1.tar.bz2/sha512 create mode 100644 deps/checksums/mpfr-4.0.2.tar.bz2/md5 create mode 100644 deps/checksums/mpfr-4.0.2.tar.bz2/sha512 diff --git a/deps/Versions.make b/deps/Versions.make index ea8c5d118afd4..43d2807aadf58 100644 --- a/deps/Versions.make +++ b/deps/Versions.make @@ -7,7 +7,7 @@ SUITESPARSE_VER = 4.4.5 UNWIND_VER = 1.1-julia2 OSXUNWIND_VER = 0.0.5 GMP_VER = 6.1.2 -MPFR_VER = 4.0.1 +MPFR_VER = 4.0.2 PATCHELF_VER = 0.9 MBEDTLS_VER = 2.6.0 CURL_VER = 7.56.0 diff --git a/deps/checksums/mpfr-4.0.1.tar.bz2/md5 b/deps/checksums/mpfr-4.0.1.tar.bz2/md5 deleted file mode 100644 index 0033858e5788e..0000000000000 --- a/deps/checksums/mpfr-4.0.1.tar.bz2/md5 +++ /dev/null @@ -1 +0,0 @@ -8c21d8ac7460493b2b9f3ef3cc610454 diff --git a/deps/checksums/mpfr-4.0.1.tar.bz2/sha512 b/deps/checksums/mpfr-4.0.1.tar.bz2/sha512 deleted file mode 100644 index 42c78a8b089dd..0000000000000 --- a/deps/checksums/mpfr-4.0.1.tar.bz2/sha512 +++ /dev/null @@ -1 +0,0 @@ -c1674fc0a5edcde188bdf7d6d14063cfb4f1259b9eaf39d0081f7176e9921ca0af1b12b7aba1a9560d9f2d5f37329d22bc7b82f13421d91d83114b439bc60dcc diff --git a/deps/checksums/mpfr-4.0.2.tar.bz2/md5 b/deps/checksums/mpfr-4.0.2.tar.bz2/md5 new file mode 100644 index 0000000000000..8639e86c33058 --- /dev/null +++ b/deps/checksums/mpfr-4.0.2.tar.bz2/md5 @@ -0,0 +1 @@ +6d8a8bb46fe09ff44e21cdbf84f5cdac diff --git a/deps/checksums/mpfr-4.0.2.tar.bz2/sha512 b/deps/checksums/mpfr-4.0.2.tar.bz2/sha512 new file mode 100644 index 0000000000000..d073360a775c8 --- /dev/null +++ b/deps/checksums/mpfr-4.0.2.tar.bz2/sha512 @@ -0,0 +1 @@ +18bb3a87123d02b7537bc298d41bdbb33e58b8c196cc4040578e3b470e86c6c89e1bd8ab8b3919d106fe5b86922ef8999dc1aba7c521ee90a69f690be288a30d From a8758c48ef20da1501e52dfc1ec9c55c5c3176a6 Mon Sep 17 00:00:00 2001 From: Kenta Sato Date: Tue, 12 Mar 2019 04:06:52 +0900 Subject: [PATCH 26/41] allow chop to take an empty string (#31312) (cherry picked from commit 023c8e4b068eff37e8dcafc9fed317f25eb871b8) --- base/strings/util.jl | 3 +++ test/strings/util.jl | 1 + 2 files changed, 4 insertions(+) diff --git a/base/strings/util.jl b/base/strings/util.jl index ad27f9c7f84e6..ff9beab76b9c5 100644 --- a/base/strings/util.jl +++ b/base/strings/util.jl @@ -96,6 +96,9 @@ julia> chop(a, head = 5, tail = 5) ``` """ function chop(s::AbstractString; head::Integer = 0, tail::Integer = 1) + if isempty(s) + return SubString(s) + end SubString(s, nextind(s, firstindex(s), head), prevind(s, lastindex(s), tail)) end diff --git a/test/strings/util.jl b/test/strings/util.jl index 17d1f9355006c..20de96ee9ce87 100644 --- a/test/strings/util.jl +++ b/test/strings/util.jl @@ -301,6 +301,7 @@ end @test chomp("foo\r\n") == "foo" @test chomp("fo∀\r\n") == "fo∀" @test chomp("fo∀") == "fo∀" + @test chop("") == "" @test chop("fooε") == "foo" @test chop("foεo") == "foε" @test chop("∃∃∃∃") == "∃∃∃" From ce6b3cb3d26b69cf017bbbd9ed1cdb14c594abb1 Mon Sep 17 00:00:00 2001 From: Jameson Nash Date: Tue, 2 Apr 2019 18:47:44 -0400 Subject: [PATCH 27/41] build: LDFLAGS needed for FreeBSD build (#31586) also submitted to gmp-bugs@gmplib.org patch list (cherry picked from commit b446398ba8fe286ecb5f95d365d989de801cf4be) --- deps/gmp.mk | 8 +- deps/patches/gmp-config-ldflags.patch | 381 ++++++++++++++++++++++++++ 2 files changed, 388 insertions(+), 1 deletion(-) create mode 100644 deps/patches/gmp-config-ldflags.patch diff --git a/deps/gmp.mk b/deps/gmp.mk index 347d20df65ee3..698d2d07c6a48 100644 --- a/deps/gmp.mk +++ b/deps/gmp.mk @@ -21,7 +21,13 @@ $(SRCCACHE)/gmp-$(GMP_VER)/build-patched: $(SRCCACHE)/gmp-$(GMP_VER)/source-extr cd $(dir $@) && patch < $(SRCDIR)/patches/gmp-exception.patch echo 1 > $@ -$(BUILDDIR)/gmp-$(GMP_VER)/build-configured: $(SRCCACHE)/gmp-$(GMP_VER)/source-extracted $(SRCCACHE)/gmp-$(GMP_VER)/build-patched +$(SRCCACHE)/gmp-$(GMP_VER)/gmp-config-ldflags.patch-applied: | $(SRCCACHE)/gmp-$(GMP_VER)/build-patched + cd $(dir $@) && patch -p1 < $(SRCDIR)/patches/gmp-config-ldflags.patch + echo 1 > $@ + +$(BUILDDIR)/gmp-$(GMP_VER)/build-configured: $(SRCCACHE)/gmp-$(GMP_VER)/gmp-config-ldflags.patch-applied + +$(BUILDDIR)/gmp-$(GMP_VER)/build-configured: $(SRCCACHE)/gmp-$(GMP_VER)/source-extracted mkdir -p $(dir $@) cd $(dir $@) && \ $(dir $<)/configure $(CONFIGURE_COMMON) F77= --enable-shared --disable-static $(GMP_CONFIGURE_OPTS) diff --git a/deps/patches/gmp-config-ldflags.patch b/deps/patches/gmp-config-ldflags.patch new file mode 100644 index 0000000000000..fb89fa66b8da5 --- /dev/null +++ b/deps/patches/gmp-config-ldflags.patch @@ -0,0 +1,381 @@ +--- gmp-6.1.2/configure 2019-03-25 17:58:41.928471374 -0400 ++++ gmp-6.1.2-LDFLAGS/configure 2019-03-26 13:08:07.756316866 -0400 +@@ -5880,7 +5880,7 @@ if test "$gmp_prog_cc_works" = yes; then + int main () { return 0; } + EOF + echo "Test compile: " >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -5934,7 +5934,7 @@ void *f() { return g(); } + int main () { return 0; } + EOF + echo "Test compile: function pointer return" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -5990,7 +5990,7 @@ int cmov () { return (n >= 0 ? n : 0); } + int main () { return 0; } + EOF + echo "Test compile: cmov instruction" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6047,7 +6047,7 @@ unsigned long gcc303 () { return (unsign + int main () { return 0; } + EOF + echo "Test compile: double -> ulong conversion" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6102,7 +6102,7 @@ unsigned long fneg () { return -fneg_dat + int main () { return 0; } + EOF + echo "Test compile: double negation" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6158,7 +6158,7 @@ float ftod () { return (float) ftod_data + int main () { return 0; } + EOF + echo "Test compile: double -> float conversion" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6243,7 +6243,7 @@ param_init () + int main () { return 0; } + EOF + echo "Test compile: gnupro alpha ev6 char spilling" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6294,7 +6294,7 @@ if test "$gmp_prog_cc_works" = yes; then + int k; int foo () { __builtin_alloca (k); } + EOF + echo "Test compile: __builtin_alloca availability" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6340,7 +6340,7 @@ int foo () + int main () { return 0; } + EOF + echo "Test compile: alloca array" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6418,7 +6418,7 @@ int f () + int main () { return 0; } + EOF + echo "Test compile: abs int -> double conversion" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6483,7 +6483,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: long long reliability test 1" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6544,7 +6544,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: long long reliability test 2" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6605,7 +6605,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: freebsd hacked gcc" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6704,7 +6704,7 @@ main () + + EOF + echo "Test compile: mpn_lshift_com optimization" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -6813,7 +6813,7 @@ main () + + EOF + echo "Test compile: mpn_lshift_com optimization 2" >&5 +- gmp_compile="$cc $cflags $cppflags conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7325,7 +7325,7 @@ _main: + xorl %eax, %eax + ret + EOF +- gmp_compile="$cc $cflags $cppflags conftest.s -o conftest >&5" ++ gmp_compile="$cc $cflags $cppflags $LDFLAGS conftest.s -o conftest >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7390,7 +7390,7 @@ $as_echo_n "checking compiler $cc $cflag + cat >conftest.c <&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7498,7 +7498,7 @@ if test "$gmp_prog_cc_works" = yes; then + int main () { return 0; } + EOF + echo "Test compile: " >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7552,7 +7552,7 @@ void *f() { return g(); } + int main () { return 0; } + EOF + echo "Test compile: function pointer return" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7608,7 +7608,7 @@ int cmov () { return (n >= 0 ? n : 0); } + int main () { return 0; } + EOF + echo "Test compile: cmov instruction" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7665,7 +7665,7 @@ unsigned long gcc303 () { return (unsign + int main () { return 0; } + EOF + echo "Test compile: double -> ulong conversion" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7720,7 +7720,7 @@ unsigned long fneg () { return -fneg_dat + int main () { return 0; } + EOF + echo "Test compile: double negation" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7776,7 +7776,7 @@ float ftod () { return (float) ftod_data + int main () { return 0; } + EOF + echo "Test compile: double -> float conversion" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7861,7 +7861,7 @@ param_init () + int main () { return 0; } + EOF + echo "Test compile: gnupro alpha ev6 char spilling" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7912,7 +7912,7 @@ if test "$gmp_prog_cc_works" = yes; then + int k; int foo () { __builtin_alloca (k); } + EOF + echo "Test compile: __builtin_alloca availability" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -7958,7 +7958,7 @@ int foo () + int main () { return 0; } + EOF + echo "Test compile: alloca array" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8036,7 +8036,7 @@ int f () + int main () { return 0; } + EOF + echo "Test compile: abs int -> double conversion" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8101,7 +8101,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: long long reliability test 1" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8162,7 +8162,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: long long reliability test 2" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8223,7 +8223,7 @@ int dummy; + int main () { return 0; } + EOF + echo "Test compile: freebsd hacked gcc" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8322,7 +8322,7 @@ main () + + EOF + echo "Test compile: mpn_lshift_com optimization" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -8431,7 +8431,7 @@ main () + + EOF + echo "Test compile: mpn_lshift_com optimization 2" >&5 +- gmp_compile="$cc $cflags $cppflags $flag conftest.c >&5" ++ gmp_compile="$cc $cflags $cppflags $flag $LDFLAGS conftest.c >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -9987,7 +9987,7 @@ main () + return 0; + } + EOF +-gmp_compile="$CC_FOR_BUILD conftest.c" ++gmp_compile="$CC_FOR_BUILD $LDFLAGS conftest.c" + cc_for_build_works=no + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 +@@ -10019,7 +10019,7 @@ main () + return 0; + } + EOF +-gmp_compile="$HOST_CC conftest.c" ++gmp_compile="$HOST_CC $LDFLAGS conftest.c" + cc_for_build_works=no + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 +@@ -10052,7 +10052,7 @@ main () + return 0; + } + EOF +-gmp_compile="$i conftest.c" ++gmp_compile="$i $LDFLAGS conftest.c" + cc_for_build_works=no + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 +@@ -10132,7 +10132,7 @@ main () + } + EOF + for i in .exe ,ff8 ""; do +- gmp_compile="$CC_FOR_BUILD conftest.c -o conftest$i" ++ gmp_compile="$CC_FOR_BUILD $LDFLAGS conftest.c -o conftest$i" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -10168,7 +10168,7 @@ main (int argc, char **argv) + return 0; + } + EOF +-gmp_compile="$CC_FOR_BUILD conftest.c" ++gmp_compile="$CC_FOR_BUILD $LDFLAGS conftest.c" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -10210,7 +10210,7 @@ foo () + return log (d); + } + EOF +-gmp_compile="$CC_FOR_BUILD conftest.c -lm" ++gmp_compile="$CC_FOR_BUILD $LDFLAGS conftest.c -lm" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? +@@ -10543,7 +10543,7 @@ if test "$gmp_prog_cxx_works" = yes; the + int main (void) { return 0; } + EOF + echo "Test compile: " >&5 +- gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS conftest.cc >&5" ++ gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS $LDFLAGS conftest.cc >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_cxxcompile\""; } >&5 + (eval $gmp_cxxcompile) 2>&5 + ac_status=$? +@@ -10583,7 +10583,7 @@ using namespace foo; + int main (void) { return 0; } + EOF + echo "Test compile: namespace" >&5 +- gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS conftest.cc >&5" ++ gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS $LDFLAGS conftest.cc >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_cxxcompile\""; } >&5 + (eval $gmp_cxxcompile) 2>&5 + ac_status=$? +@@ -10629,7 +10629,7 @@ void someoutput (void) { std::cout << 12 + int main (void) { return 0; } + EOF + echo "Test compile: std iostream" >&5 +- gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS conftest.cc >&5" ++ gmp_cxxcompile="$CXX $CPPFLAGS $CXXFLAGS $LDFLAGS conftest.cc >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_cxxcompile\""; } >&5 + (eval $gmp_cxxcompile) 2>&5 + ac_status=$? +@@ -27095,7 +27095,7 @@ for tmp_underscore in "" "_"; do + ${tmp_gsym_prefix}main$gmp_cv_asm_label_suffix + addl $ ${tmp_underscore}_GLOBAL_OFFSET_TABLE_, %ebx + EOF +- gmp_compile="$CCAS $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.s >&5 && $CC $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&5" ++ gmp_compile="$CCAS $CFLAGS $CPPFLAGS $lt_prog_compiler_pic conftest.s >&5 && $CC $CFLAGS $CPPFLAGS $LDFLAGS $lt_prog_compiler_pic conftest.$OBJEXT >&5" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$gmp_compile\""; } >&5 + (eval $gmp_compile) 2>&5 + ac_status=$? + From 9072796d618be118efa38c4ede54c4375263d9d8 Mon Sep 17 00:00:00 2001 From: Sebastian Pfitzner Date: Sun, 7 Apr 2019 14:23:36 +0300 Subject: [PATCH 28/41] Improve REPL completions (#30569) * fix internal repl completion error * fix error with broadcast method completions * method completions for broadcasted functioncalls * better broadcast funcall completions (cherry picked from commit a0474d7cc2905da1f4e83998fcf5fa8a73834488) --- stdlib/REPL/src/REPLCompletions.jl | 31 +++++++++++++++++++++-------- stdlib/REPL/test/replcompletions.jl | 18 +++++++++++++++++ 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/stdlib/REPL/src/REPLCompletions.jl b/stdlib/REPL/src/REPLCompletions.jl index fec6faac88734..c5ef01fe74a0b 100644 --- a/stdlib/REPL/src/REPLCompletions.jl +++ b/stdlib/REPL/src/REPLCompletions.jl @@ -353,7 +353,7 @@ get_value(sym, fn) = (sym, true) function get_value_getfield(ex::Expr, fn) # Example :((top(getfield))(Base,:max)) val, found = get_value_getfield(ex.args[2],fn) #Look up Base in Main and returns the module - found || return (nothing, false) + (found && length(ex.args) >= 3) || return (nothing, false) return get_value_getfield(ex.args[3], val) #Look up max in Base and returns the function if found. end get_value_getfield(sym, fn) = get_value(sym, fn) @@ -407,7 +407,7 @@ function try_get_type(sym::Expr, fn::Module) elseif sym.head === :ref # some simple cases of `expand` return try_get_type(Expr(:call, GlobalRef(Base, :getindex), sym.args...), fn) - elseif sym.head === :. + elseif sym.head === :. && sym.args[2] isa QuoteNode # second check catches broadcasting return try_get_type(Expr(:call, GlobalRef(Core, :getfield), sym.args...), fn) end return (Any, false) @@ -432,10 +432,21 @@ function complete_methods(ex_org::Expr, context_module=Main)::Vector{Completion} args_ex = Any[] func, found = get_value(ex_org.args[1], context_module) !found && return Completion[] - for ex in ex_org.args[2:end] - val, found = get_type(ex, context_module) - push!(args_ex, val) + + funargs = ex_org.args[2:end] + # handle broadcasting, but only handle number of arguments instead of + # argument types + if ex_org.head === :. && ex_org.args[2] isa Expr + for _ in ex_org.args[2].args + push!(args_ex, Any) + end + else + for ex in funargs + val, found = get_type(ex, context_module) + push!(args_ex, val) + end end + out = Completion[] t_in = Tuple{Core.Typeof(func), args_ex...} # Input types na = length(args_ex)+1 @@ -610,12 +621,16 @@ function completions(string, pos, context_module=Main)::Completions # Make sure that only bslash_completions is working on strings inc_tag==:string && return String[], 0:-1, false - if inc_tag == :other && should_method_complete(partial) frange, method_name_end = find_start_brace(partial) ex = Meta.parse(partial[frange] * ")", raise=false, depwarn=false) - if isa(ex, Expr) && ex.head==:call - return complete_methods(ex, context_module), first(frange):method_name_end, false + + if isa(ex, Expr) + if ex.head==:call + return complete_methods(ex, context_module), first(frange):method_name_end, false + elseif ex.head==:. && ex.args[2] isa Expr && ex.args[2].head==:tuple + return complete_methods(ex, context_module), first(frange):(method_name_end - 1), false + end end elseif inc_tag == :comment return Completion[], 0:-1, false diff --git a/stdlib/REPL/test/replcompletions.jl b/stdlib/REPL/test/replcompletions.jl index 15bcc527c6953..eb19f8d60097b 100644 --- a/stdlib/REPL/test/replcompletions.jl +++ b/stdlib/REPL/test/replcompletions.jl @@ -960,6 +960,16 @@ let s = "type_test.xx.y" @test s[r] == "y" end +let s = ":(function foo(::Int) end).args[1].args[2]." + c, r = test_complete_context(s) + @test c == Any[] +end + +let s = "log(log.(x)," + c, r = test_complete_context(s) + @test !isempty(c) +end + let s = "Base.return_types(getin" c, r = test_complete_context(s) @test "getindex" in c @@ -981,6 +991,14 @@ let s = "test(1,1, " @test s[r] == "test" end +let s = "test.(1,1, " + c, r, res = test_complete_context(s) + @test !res + @test length(c) == 4 + @test r == 1:4 + @test s[r] == "test" +end + let s = "prevind(\"θ\",1," c, r, res = test_complete_context(s) @test c[1] == string(first(methods(prevind, Tuple{String, Int}))) From 707fdda67e87a3498e4440c5d9e055311747461f Mon Sep 17 00:00:00 2001 From: Tim Holy Date: Mon, 8 Apr 2019 04:42:09 -0500 Subject: [PATCH 29/41] Fix show_vector for long offset arrays with :limit=true (#31642) Fixes #31641 (cherry picked from commit ca8abfeaf41be822550244f49f38e1ff9be3a06e) --- base/arrayshow.jl | 7 ++++--- test/offsetarray.jl | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/base/arrayshow.jl b/base/arrayshow.jl index e1051502da706..0b000db83c537 100644 --- a/base/arrayshow.jl +++ b/base/arrayshow.jl @@ -434,10 +434,11 @@ function show_vector(io::IO, v, opn='[', cls=']') io = IOContext(io, :typeinfo => eltype(v), :compact => get(io, :compact, true)) limited = get(io, :limit, false) if limited && length(v) > 20 - inds = axes1(v) - show_delim_array(io, v, opn, ",", "", false, inds[1], inds[1]+9) + axs1 = axes1(v) + f, l = first(axs1), last(axs1) + show_delim_array(io, v, opn, ",", "", false, f, f+9) print(io, " … ") - show_delim_array(io, v, "", ",", cls, false, inds[end-9], inds[end]) + show_delim_array(io, v, "", ",", cls, false, l-9, l) else show_delim_array(io, v, opn, ",", cls, false) end diff --git a/test/offsetarray.jl b/test/offsetarray.jl index 5aa58853179eb..e98f90691b3d7 100644 --- a/test/offsetarray.jl +++ b/test/offsetarray.jl @@ -203,6 +203,8 @@ cmp_showf(Base.print_matrix, io, OffsetArray(rand(10^3,5), (10,-9))) # column cmp_showf(Base.print_matrix, io, OffsetArray(rand(5,10^3), (10,-9))) # rows fit cmp_showf(Base.print_matrix, io, OffsetArray(rand(10^3,10^3), (10,-9))) # neither fits cmp_showf(Base.print_matrix, io, OffsetArray(reshape(range(-0.212121212121, stop=2/11, length=3*29), 3, 29), (-2, -15)); options=(:displaysize=>(53,210),)) +cmp_showf(show, io, OffsetArray(collect(1:100), (100,))) # issue #31641 + targets1 = ["0-dimensional $OAs_name.OffsetArray{Float64,0,Array{Float64,0}}:\n1.0", "$OAs_name.OffsetArray{Float64,1,Array{Float64,1}} with indices 2:2:\n 1.0", "$OAs_name.OffsetArray{Float64,2,Array{Float64,2}} with indices 2:2×3:3:\n 1.0", From 5313c54faea44f33c10d308d76d97ecc8ceaa088 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Thu, 11 Apr 2019 17:55:06 +0200 Subject: [PATCH 30/41] Don't modify existing MDNodes in SIMDloop pass. (cherry picked from commit 0afa9a3acc0c57d71d719d204d19478fc885d5ea) --- src/llvm-simdloop.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/llvm-simdloop.cpp b/src/llvm-simdloop.cpp index 683d41d57cc68..d64a6a8ddf921 100644 --- a/src/llvm-simdloop.cpp +++ b/src/llvm-simdloop.cpp @@ -207,8 +207,9 @@ bool LowerSIMDLoop::markSIMDLoop(Module &M, Function *marker, bool ivdep) MDNode *n = L->getLoopID(); if (!n) { // Loop does not have a LoopID yet, so give it one. - n = MDNode::get(Lh->getContext(), ArrayRef(NULL)); - n->replaceOperandWith(0, n); + auto temp_n = MDNode::getTemporary(Lh->getContext(), ArrayRef(NULL)); + temp_n->replaceOperandWith(0, temp_n.get()); + n = MDNode::replaceWithPermanent(std::move(temp_n)); L->setLoopID(n); } From ec0cf975711160e36b88beeec834e2dc5203c67b Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Wed, 17 Apr 2019 11:42:57 +0200 Subject: [PATCH 31/41] Pkg resolver update. --- .../Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/md5 | 1 + .../Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/sha512 | 1 + .../Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 | 1 - .../Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 | 1 - stdlib/Pkg.version | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/md5 create mode 100644 deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/sha512 delete mode 100644 deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 delete mode 100644 deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 diff --git a/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/md5 b/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/md5 new file mode 100644 index 0000000000000..8f26008493d67 --- /dev/null +++ b/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/md5 @@ -0,0 +1 @@ +4e0bcbf65c67c86b1604e103db173d77 diff --git a/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/sha512 b/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/sha512 new file mode 100644 index 0000000000000..573874903aac6 --- /dev/null +++ b/deps/checksums/Pkg-1609a05aee5d5960670738d8d834d91235bd6b1e.tar.gz/sha512 @@ -0,0 +1 @@ +95022a2aee8bca4b8e1ce65b5e5840209cd7adb7d048a647c9501e15e0ebd37fb4e4a95e707a5ec001893789ae841e3300a615f8e21a711694fc288777eed726 diff --git a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 deleted file mode 100644 index ba5c0842e1661..0000000000000 --- a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d6539ed75715bec63772633405634eeb diff --git a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 b/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 deleted file mode 100644 index 7f50c4a4b9c9f..0000000000000 --- a/deps/checksums/Pkg-7ddec6891472a16844b88cd21549fdc778fe7081.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -e9426b1870ccd1a907094ff92441f125f39ef23b2db3fb84954f4e7fa7ad1a628361f7810fd1023783af6e02c7d11f3e7fdf7f1712bc1a2c39bdfdca25c05dbf diff --git a/stdlib/Pkg.version b/stdlib/Pkg.version index e55d459076c22..9a50cd1a7b48f 100644 --- a/stdlib/Pkg.version +++ b/stdlib/Pkg.version @@ -1,2 +1,2 @@ PKG_BRANCH = master -PKG_SHA1 = 7ddec6891472a16844b88cd21549fdc778fe7081 +PKG_SHA1 = 1609a05aee5d5960670738d8d834d91235bd6b1e From 7fb55412bb3133be0f9c2b77c55213d1ee37f656 Mon Sep 17 00:00:00 2001 From: Raghvendra Gupta Date: Mon, 17 Dec 2018 20:20:13 +0530 Subject: [PATCH 32/41] Fix #30006, getindex accessing fields that might not exist (#30405) * Fix #30006, range getindex accessing fields that might not exist * Add tests for #30006 (cherry picked from commit 64133f68a68a2bb52a8908bab25c32150a7e84fd) --- test/ranges.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/ranges.jl b/test/ranges.jl index dba2e8b24983c..272cee9c50e39 100644 --- a/test/ranges.jl +++ b/test/ranges.jl @@ -1413,6 +1413,13 @@ end @test Base.Slice(1:10)[Int8(2)] == Int8(2) end +@testset "Issue #30006" begin + @test Base.Slice(Base.OneTo(5))[Int32(1)] == Int32(1) + @test Base.Slice(Base.OneTo(3))[Int8(2)] == Int8(2) + @test Base.Slice(1:10)[Int32(2)] == Int32(2) + @test Base.Slice(1:10)[Int8(2)] == Int8(2) +end + @testset "allocation of TwicePrecision call" begin 0:286.493442:360 0:286:360 From 1d7087db99e86036674a087bdf2cf21d80e97cf7 Mon Sep 17 00:00:00 2001 From: Matt Bauman Date: Wed, 20 Mar 2019 10:57:26 -0400 Subject: [PATCH 33/41] Fix 29545: Implement unaliascopy for ReinterpretArray (#30296) * Fix 29545: Implement unaliascopy for ReinterpretArray (cherry picked from commit f611b46e72c788c016933033dfadee6a9e138d47) --- base/reinterpretarray.jl | 1 + test/reinterpretarray.jl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/base/reinterpretarray.jl b/base/reinterpretarray.jl index 8d7a175d8252d..d910b13d3551c 100644 --- a/base/reinterpretarray.jl +++ b/base/reinterpretarray.jl @@ -68,6 +68,7 @@ IndexStyle(a::ReinterpretArray) = IndexStyle(a.parent) parent(a::ReinterpretArray) = a.parent dataids(a::ReinterpretArray) = dataids(a.parent) +unaliascopy(a::ReinterpretArray{T}) where {T} = reinterpret(T, unaliascopy(a.parent)) function size(a::ReinterpretArray{T,N,S} where {N}) where {T,S} psize = size(a.parent) diff --git a/test/reinterpretarray.jl b/test/reinterpretarray.jl index 589106f87ab1a..4505c2db5dd09 100644 --- a/test/reinterpretarray.jl +++ b/test/reinterpretarray.jl @@ -161,6 +161,16 @@ let a = [0.1 0.2; 0.3 0.4], at = reshape([(i,i+1) for i = 1:2:8], 2, 2) @test r == OffsetArray(reshape(1:8, 2, 2, 2), (0, offsetvt...)) end +@testset "potentially aliased copies" begin + buffer = UInt8[1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0] + mid = length(buffer) ÷ 2 + x1 = reinterpret(Int64, @view buffer[1:mid]) + x2 = reinterpret(Int64, @view buffer[mid+1:end]) + x1 .= x2 + @test x1 == x2 == [2] + @test x1[] === x2[] === Int64(2) +end + # Test 0-dimensional Arrays A = zeros(UInt32) B = reinterpret(Int32,A) From 07279a357d2aef44c63ccf00cf360e38c920179e Mon Sep 17 00:00:00 2001 From: Elliot Saba Date: Sat, 20 Apr 2019 00:17:46 -0700 Subject: [PATCH 34/41] Upgrade `libssh2` version to `1.8.2` (#31775) X-ref: https://github.com/JuliaLang/julia/pull/31745 --- .../md5 | 1 + .../sha512 | 1 + .../md5 | 1 - .../sha512 | 1 - deps/libssh2.version | 4 ++-- 5 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/md5 create mode 100644 deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/sha512 delete mode 100644 deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/md5 delete mode 100644 deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/sha512 diff --git a/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/md5 b/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/md5 new file mode 100644 index 0000000000000..7091746b1815f --- /dev/null +++ b/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/md5 @@ -0,0 +1 @@ +bcf01c3fa49a1684edc2d637ad7e03d6 diff --git a/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/sha512 b/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/sha512 new file mode 100644 index 0000000000000..2d6d2980fa7f2 --- /dev/null +++ b/deps/checksums/libssh2-02ecf17a6d5f9837699e8fb3aad0c804caa67eeb.tar.gz/sha512 @@ -0,0 +1 @@ +ae4c798ae5c13ad1574646896665ccd1f7d91e64573a23662ce7016b00109c1c351013856c25bf12284d9c3996ca3b828506825e50fcb059969adc02a96c06f8 diff --git a/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/md5 b/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/md5 deleted file mode 100644 index a2fc72b9885cc..0000000000000 --- a/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/md5 +++ /dev/null @@ -1 +0,0 @@ -d251ef0efecff323b6f570cc737d3411 diff --git a/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/sha512 b/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/sha512 deleted file mode 100644 index 1db563c8be7bb..0000000000000 --- a/deps/checksums/libssh2-30e9c1347e3b8baa2951db612f05e6d87fc8e2f2.tar.gz/sha512 +++ /dev/null @@ -1 +0,0 @@ -ae7535cf8f70e7c837e80365cd9ee7c4040d45e952871a3e5c8f1b71bd8eb2d96babb07fa4c5d66a83bb45960728ef8dbba30ab9a6387a68cf815a84cdae8795 diff --git a/deps/libssh2.version b/deps/libssh2.version index dadad22483c2a..fe1ecb3080028 100644 --- a/deps/libssh2.version +++ b/deps/libssh2.version @@ -1,2 +1,2 @@ -LIBSSH2_BRANCH=libssh2-1.8.0 -LIBSSH2_SHA1=30e9c1347e3b8baa2951db612f05e6d87fc8e2f2 +LIBSSH2_BRANCH=libssh2-1.8.2 +LIBSSH2_SHA1=02ecf17a6d5f9837699e8fb3aad0c804caa67eeb From a92bfbed6b29c826cbd3c0e12c46af9bb353ab9d Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Fri, 12 Apr 2019 08:17:11 -0400 Subject: [PATCH 35/41] inf or nan parsing should ignore leading spaces (cherry picked from commit 65f94b35e37ec6dc268bcdc4fbabecef0c14ce45) --- src/support/strtod.c | 17 +++++++++-------- test/parse.jl | 7 +++++++ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/support/strtod.c b/src/support/strtod.c index 047d404d90cda..225f2dbd4c933 100644 --- a/src/support/strtod.c +++ b/src/support/strtod.c @@ -118,9 +118,16 @@ JL_DLLEXPORT double jl_strtod_c(const char *nptr, char **endptr) decimal_point_pos = NULL; + p = nptr; + + /* parse leading spaces */ + while (isspace((unsigned char)*p)) { + p++; + } + /* Parse infinities and nans */ - val = parse_inf_or_nan(nptr, endptr); - if (*endptr != nptr) + val = parse_inf_or_nan(p, endptr); + if (*endptr != p) return val; /* Set errno to zero, so that we can distinguish zero results @@ -130,12 +137,6 @@ JL_DLLEXPORT double jl_strtod_c(const char *nptr, char **endptr) /* We process the optional sign manually, then pass the remainder to the system strtod. This ensures that the result of an underflow has the correct sign. */ - p = nptr; - - /* parse leading spaces */ - while (isspace((unsigned char)*p)) { - p++; - } /* Process leading sign, if present */ if (*p == '-') { diff --git a/test/parse.jl b/test/parse.jl index 5bf3b806edca8..ad58038355c92 100644 --- a/test/parse.jl +++ b/test/parse.jl @@ -311,3 +311,10 @@ end @test eltype([tryparse(Float64, s) for s in String[]]) == Union{Nothing, Float64} @test eltype([tryparse(Complex{Int}, s) for s in String[]]) == Union{Nothing, Complex{Int}} end + +@testset "inf and nan parsing" begin + for (v,vs) in ((NaN,"nan"), (Inf,"inf"), (Inf,"infinity")), sbefore in ("", " "), safter in ("", " "), sign in (+, -), case in (lowercase, uppercase) + s = case(string(sbefore, sign, vs, safter)) + @test isequal(parse(Float64, s), sign(v)) + end +end From 639de07d4307cb7785b8fb2fcfb08e7e1b926298 Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Thu, 4 Apr 2019 13:57:30 -0400 Subject: [PATCH 36/41] fix parse(ComplexF64, "inf") (cherry picked from commit c36e70b2ac257379669bd946e2cceb9a3ccbe095) --- base/parse.jl | 2 +- test/parse.jl | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/base/parse.jl b/base/parse.jl index 202390278e9f5..9cde8054435bd 100644 --- a/base/parse.jl +++ b/base/parse.jl @@ -309,7 +309,7 @@ function tryparse_internal(::Type{Complex{T}}, s::Union{String,SubString{String} end if i₊ == 0 # purely real or imaginary value - if iᵢ > 0 # purely imaginary + if iᵢ > i && !(iᵢ == i+1 && s[i] in ('+','-')) # purely imaginary (not "±inf") x = tryparse_internal(T, s, i, iᵢ-1, raise) x === nothing && return nothing return Complex{T}(zero(x),x) diff --git a/test/parse.jl b/test/parse.jl index ad58038355c92..d1c362d03b2f1 100644 --- a/test/parse.jl +++ b/test/parse.jl @@ -268,8 +268,8 @@ end # parsing complex numbers (#22250) @testset "complex parsing" begin - for r in (1,0,-1), i in (1,0,-1), sign in ('-','+'), Im in ("i","j","im") - for s1 in (""," "), s2 in (""," "), s3 in (""," "), s4 in (""," ") + for sign in ('-','+'), Im in ("i","j","im"), s1 in (""," "), s2 in (""," "), s3 in (""," "), s4 in (""," ") + for r in (1,0,-1), i in (1,0,-1), n = Complex(r, sign == '+' ? i : -i) s = string(s1, r, s2, sign, s3, i, Im, s4) @test n === parse(Complex{Int}, s) @@ -283,6 +283,13 @@ end @test n*parse(T,"1e-3") == parse(Complex{T}, string(s1, r, "e-3", s2, sign, s3, i, "e-3", Im, s4)) end end + for r in (-1.0,-1e-9,Inf,-Inf,NaN), i in (-1.0,-1e-9,Inf,NaN) + n = Complex(r, sign == '+' ? i : -i) + s = lowercase(string(s1, r, s2, sign, s3, i, Im, s4)) + @test n === parse(ComplexF64, s) + @test Complex(r) === parse(ComplexF64, string(s1, r, s2)) + @test Complex(0,i) === parse(ComplexF64, string(s3, i, Im, s4)) + end end @test parse(Complex{Float16}, "3.3+4i") === Complex{Float16}(3.3+4im) @test parse(Complex{Int}, SubString("xxxxxx1+2imxxxx", 7, 10)) === 1+2im From fa220625b77d0ca7492b94ee901831299d82f7fe Mon Sep 17 00:00:00 2001 From: Daniel Karrasch Date: Thu, 4 Apr 2019 20:17:32 +0200 Subject: [PATCH 37/41] minor fixes in multiplication with Diagonals (#31443) * minor fixes in multiplication with Diagonals * correct rmul!(A,D), revert changes in AdjTrans(x)*D * [r/l]mul!: replace conj by adjoint, add transpose * add tests * fix typo * relax some tests, added more tests * simplify tests, strict equality (cherry picked from commit a93185fa4ea70c2dc89cbe6a0705876768e08594) --- stdlib/LinearAlgebra/src/diagonal.jl | 13 ++++++------- stdlib/LinearAlgebra/test/diagonal.jl | 26 +++++++++++++++++++++----- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/stdlib/LinearAlgebra/src/diagonal.jl b/stdlib/LinearAlgebra/src/diagonal.jl index 1a5eca3c0ce05..f5714e6444170 100644 --- a/stdlib/LinearAlgebra/src/diagonal.jl +++ b/stdlib/LinearAlgebra/src/diagonal.jl @@ -168,7 +168,7 @@ end function rmul!(A::AbstractMatrix, D::Diagonal) @assert !has_offset_axes(A) - A .= A .* transpose(D.diag) + A .= A .* permutedims(D.diag) return A end @@ -256,20 +256,20 @@ lmul!(A::Diagonal, B::Diagonal) = Diagonal(B.diag .= A.diag .* B.diag) function lmul!(adjA::Adjoint{<:Any,<:Diagonal}, B::AbstractMatrix) A = adjA.parent - return lmul!(conj(A.diag), B) + return lmul!(adjoint(A), B) end function lmul!(transA::Transpose{<:Any,<:Diagonal}, B::AbstractMatrix) A = transA.parent - return lmul!(A.diag, B) + return lmul!(transpose(A), B) end function rmul!(A::AbstractMatrix, adjB::Adjoint{<:Any,<:Diagonal}) B = adjB.parent - return rmul!(A, conj(B.diag)) + return rmul!(A, adjoint(B)) end function rmul!(A::AbstractMatrix, transB::Transpose{<:Any,<:Diagonal}) B = transB.parent - return rmul!(A, B.diag) + return rmul!(A, transpose(B)) end # Get ambiguous method if try to unify AbstractVector/AbstractMatrix here using AbstractVecOrMat @@ -508,10 +508,9 @@ end *(x::Adjoint{<:Any,<:AbstractVector}, D::Diagonal) = Adjoint(map((t,s) -> t'*s, D.diag, parent(x))) *(x::Adjoint{<:Any,<:AbstractVector}, D::Diagonal, y::AbstractVector) = mapreduce(t -> t[1]*t[2]*t[3], +, zip(x, D.diag, y)) -*(x::Transpose{<:Any,<:AbstractVector}, D::Diagonal) = Transpose(map(*, D.diag, parent(x))) +*(x::Transpose{<:Any,<:AbstractVector}, D::Diagonal) = Transpose(map((t,s) -> transpose(t)*s, D.diag, parent(x))) *(x::Transpose{<:Any,<:AbstractVector}, D::Diagonal, y::AbstractVector) = mapreduce(t -> t[1]*t[2]*t[3], +, zip(x, D.diag, y)) -# TODO: these methods will yield row matrices, rather than adjoint/transpose vectors function cholesky!(A::Diagonal, ::Val{false} = Val(false); check::Bool = true) info = 0 diff --git a/stdlib/LinearAlgebra/test/diagonal.jl b/stdlib/LinearAlgebra/test/diagonal.jl index ee11b5db9854b..e420d5bc6de28 100644 --- a/stdlib/LinearAlgebra/test/diagonal.jl +++ b/stdlib/LinearAlgebra/test/diagonal.jl @@ -441,10 +441,20 @@ end fullBB = copyto!(Matrix{Matrix{T}}(undef, 2, 2), BB) for (transform1, transform2) in ((identity, identity), (identity, adjoint ), (adjoint, identity ), (adjoint, adjoint ), - (identity, transpose), (transpose, identity ), (transpose, transpose) ) + (identity, transpose), (transpose, identity ), (transpose, transpose), + (identity, Adjoint ), (Adjoint, identity ), (Adjoint, Adjoint ), + (identity, Transpose), (Transpose, identity ), (Transpose, Transpose)) @test *(transform1(D), transform2(B))::typeof(D) ≈ *(transform1(Matrix(D)), transform2(Matrix(B))) atol=2 * eps() @test *(transform1(DD), transform2(BB))::typeof(DD) == *(transform1(fullDD), transform2(fullBB)) end + M = randn(T, 5, 5) + MM = [randn(T, 2, 2) for _ in 1:2, _ in 1:2] + for transform in (identity, adjoint, transpose, Adjoint, Transpose) + @test lmul!(transform(D), copy(M)) == *(transform(Matrix(D)), M) + @test rmul!(copy(M), transform(D)) == *(M, transform(Matrix(D))) + @test lmul!(transform(DD), copy(MM)) == *(transform(fullDD), MM) + @test rmul!(copy(MM), transform(DD)) == *(MM, transform(fullDD)) + end end end @@ -454,10 +464,16 @@ end end @testset "Multiplication with Adjoint and Transpose vectors (#26863)" begin - x = rand(5) - D = Diagonal(rand(5)) - @test x'*D*x == (x'*D)*x == (x'*Array(D))*x - @test Transpose(x)*D*x == (Transpose(x)*D)*x == (Transpose(x)*Array(D))*x + x = collect(1:2) + xt = transpose(x) + A = reshape([[1 2; 3 4], zeros(Int,2,2), zeros(Int, 2, 2), [5 6; 7 8]], 2, 2) + D = Diagonal(A) + @test x'*D == x'*A == copy(x')*D == copy(x')*A + @test xt*D == xt*A == copy(xt)*D == copy(xt)*A + y = [x, x] + yt = transpose(y) + @test y'*D*y == (y'*D)*y == (y'*A)*y + @test yt*D*y == (yt*D)*y == (yt*A)*y end @testset "Triangular division by Diagonal #27989" begin From 11b8f5991afc81c123d21d8b9ec115dd321ebea7 Mon Sep 17 00:00:00 2001 From: Fredrik Ekre Date: Fri, 19 Apr 2019 09:36:23 +0200 Subject: [PATCH 38/41] fix #31758: out of bounds write in sparse broadcast (#31763) (cherry picked from commit c0c6f96b78b057a0c7e8360a1f6df9c4be2a900b) --- stdlib/SparseArrays/src/higherorderfns.jl | 2 +- stdlib/SparseArrays/test/higherorderfns.jl | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/stdlib/SparseArrays/src/higherorderfns.jl b/stdlib/SparseArrays/src/higherorderfns.jl index e09ca104c4220..68c267f1848dc 100644 --- a/stdlib/SparseArrays/src/higherorderfns.jl +++ b/stdlib/SparseArrays/src/higherorderfns.jl @@ -383,7 +383,7 @@ function _map_zeropres!(f::Tf, C::SparseVecOrMat, As::Vararg{SparseVecOrMat,N}) vals, ks, rows = _fusedupdate_all(rowsentinel, activerow, rows, ks, stopks, As) Cx = f(vals...) if !_iszero(Cx) - Ck > spaceC && (spaceC = expandstorage!(C, Ck + min(length(C), _sumnnzs(As...)) - (sum(ks) - N))) + Ck > spaceC && (spaceC = expandstorage!(C, min(length(C), Ck + _sumnnzs(As...) - (sum(ks) - N)))) storedinds(C)[Ck] = activerow storedvals(C)[Ck] = Cx Ck += 1 diff --git a/stdlib/SparseArrays/test/higherorderfns.jl b/stdlib/SparseArrays/test/higherorderfns.jl index 5871e2d96e1e2..2e1f1b6013771 100644 --- a/stdlib/SparseArrays/test/higherorderfns.jl +++ b/stdlib/SparseArrays/test/higherorderfns.jl @@ -632,4 +632,14 @@ end @test minimum(sparse([1, 2], [1, 2], ones(Int32, 2)), dims = 1) isa Matrix end +@testset "issue #31758: out of bounds write in _map_zeropres!" begin + y = sparsevec([2,7], [1., 2.], 10) + x1 = sparsevec(fill(1.0, 10)) + x2 = sparsevec([2,7], [1., 2.], 10) + x3 = sparsevec(fill(1.0, 10)) + f(x, y, z) = x == y == z == 0 ? 0.0 : NaN + y .= f.(x1, x2, x3) + @test all(isnan, y) +end + end # module From c1e182432708049cfc7a8588bf43e8c6d5d45c6c Mon Sep 17 00:00:00 2001 From: Martin Holters Date: Fri, 1 Mar 2019 12:05:54 +0100 Subject: [PATCH 39/41] Fix `-`, `conj`, and `conj!` for sparse matrices with invalid entries in `nzval` (#31187) --- stdlib/SparseArrays/src/sparsematrix.jl | 18 ++++++++++++++---- stdlib/SparseArrays/test/sparse.jl | 12 ++++++++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/stdlib/SparseArrays/src/sparsematrix.jl b/stdlib/SparseArrays/src/sparsematrix.jl index ff288017571d1..81f23f3664e72 100644 --- a/stdlib/SparseArrays/src/sparsematrix.jl +++ b/stdlib/SparseArrays/src/sparsematrix.jl @@ -1558,12 +1558,22 @@ sparse(s::UniformScaling, dims::Dims{2}) = SparseMatrixCSC(s, dims) sparse(s::UniformScaling, m::Integer, n::Integer) = sparse(s, Dims((m, n))) # TODO: More appropriate location? -conj!(A::SparseMatrixCSC) = (@inbounds broadcast!(conj, A.nzval, A.nzval); A) -(-)(A::SparseMatrixCSC) = SparseMatrixCSC(A.m, A.n, copy(A.colptr), copy(A.rowval), map(-, A.nzval)) +function conj!(A::SparseMatrixCSC) + map!(conj, nzvalview(A), nzvalview(A)) + return A +end +function (-)(A::SparseMatrixCSC) + nzval = similar(A.nzval) + map!(-, view(nzval, 1:nnz(A)), nzvalview(A)) + return SparseMatrixCSC(A.m, A.n, copy(A.colptr), copy(A.rowval), nzval) +end # the rest of real, conj, imag are handled correctly via AbstractArray methods -conj(A::SparseMatrixCSC{<:Complex}) = - SparseMatrixCSC(A.m, A.n, copy(A.colptr), copy(A.rowval), conj(A.nzval)) +function conj(A::SparseMatrixCSC{<:Complex}) + nzval = similar(A.nzval) + map!(conj, view(nzval, 1:nnz(A)), nzvalview(A)) + return SparseMatrixCSC(A.m, A.n, copy(A.colptr), copy(A.rowval), nzval) +end imag(A::SparseMatrixCSC{Tv,Ti}) where {Tv<:Real,Ti} = spzeros(Tv, Ti, A.m, A.n) ## Binary arithmetic and boolean operators diff --git a/stdlib/SparseArrays/test/sparse.jl b/stdlib/SparseArrays/test/sparse.jl index 76dd90bc74c48..89fd7a5e66766 100644 --- a/stdlib/SparseArrays/test/sparse.jl +++ b/stdlib/SparseArrays/test/sparse.jl @@ -2313,4 +2313,16 @@ end @test m2.module == SparseArrays end +@testset "unary operations on matrices where length(nzval)>nnz" begin + # this should create a sparse matrix with length(nzval)>nnz + A = SparseMatrixCSC(Complex{BigInt}[1+im 2+2im]')'[1:1, 2:2] + # ...ensure it does! If necessary, the test needs to be updated to use + # another mechanism to create a suitable A. + @assert length(A.nzval) > nnz(A) + @test -A == fill(-2-2im, 1, 1) + @test conj(A) == fill(2-2im, 1, 1) + conj!(A) + @test A == fill(2-2im, 1, 1) +end + end # module From ef22206b0a4b811d247879a28ffccede2bcd1ffa Mon Sep 17 00:00:00 2001 From: Michael Jin Date: Mon, 11 Feb 2019 12:05:51 -0500 Subject: [PATCH 40/41] Update Mozilla CA certificate store to latest (01-23-2019) for libgit2 SSL. (#31029) (cherry picked from commit a1377eab958eae523a298b96ac3789678489cfa9) --- deps/Versions.make | 2 +- deps/checksums/cacert-2019-01-23.pem/md5 | 1 + deps/checksums/cacert-2019-01-23.pem/sha512 | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 deps/checksums/cacert-2019-01-23.pem/md5 create mode 100644 deps/checksums/cacert-2019-01-23.pem/sha512 diff --git a/deps/Versions.make b/deps/Versions.make index 43d2807aadf58..ae86096789c9e 100644 --- a/deps/Versions.make +++ b/deps/Versions.make @@ -15,4 +15,4 @@ CURL_VER = 7.56.0 # Specify the version of the Mozilla CA Certificate Store to obtain. # The versions of cacert.pem are identified by the date (YYYY-MM-DD) of their changes. # See https://curl.haxx.se/docs/caextract.html for more details. -MOZILLA_CACERT_VERSION := 2018-06-20 +MOZILLA_CACERT_VERSION := 2019-01-23 diff --git a/deps/checksums/cacert-2019-01-23.pem/md5 b/deps/checksums/cacert-2019-01-23.pem/md5 new file mode 100644 index 0000000000000..24c61558beb49 --- /dev/null +++ b/deps/checksums/cacert-2019-01-23.pem/md5 @@ -0,0 +1 @@ +fccbe6cec7a76e3351ad32e305184787 diff --git a/deps/checksums/cacert-2019-01-23.pem/sha512 b/deps/checksums/cacert-2019-01-23.pem/sha512 new file mode 100644 index 0000000000000..94305a88a3b68 --- /dev/null +++ b/deps/checksums/cacert-2019-01-23.pem/sha512 @@ -0,0 +1 @@ +01faebab60b49a30736e0c88b713999f48c99b425889f7df9bbb80eb91367a6f26f20befdf8ac72b8d77659b143b7b37f91ad7dac5fde37c1d621fc663003687 From e5de4590bf35ced32c45d207e0bca9e2b3faebbd Mon Sep 17 00:00:00 2001 From: Jeff Bezanson Date: Sat, 27 Apr 2019 07:33:32 -0400 Subject: [PATCH 41/41] fix #30679, call correct method for `invoke` calls in `jl_invoke` fallback (#31845) (cherry picked from commit 4e20cc2f374b9851bfd6d1ef6d08d854db8e9c98) --- src/gf.c | 69 +++++++++++++++++++++++++++++++--------------------- test/core.jl | 14 +++++++++++ 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/src/gf.c b/src/gf.c index 520db1ab45a98..c68e20a449e77 100644 --- a/src/gf.c +++ b/src/gf.c @@ -35,28 +35,6 @@ JL_DLLEXPORT size_t jl_get_tls_world_age(void) return jl_get_ptls_states()->world_age; } -JL_DLLEXPORT jl_value_t *jl_invoke(jl_method_instance_t *meth, jl_value_t **args, uint32_t nargs) -{ - jl_callptr_t fptr = meth->invoke; - if (fptr != jl_fptr_trampoline) { - return fptr(meth, args, nargs); - } - else { - // if this hasn't been inferred (compiled) yet, - // inferring it might not be able to handle the world range - // so we just do a generic apply here - // because that might actually be faster - // since it can go through the unrolled caches for this world - // and if inference is successful, this meth would get updated anyways, - // and we'll get the fast path here next time - - // TODO: if `meth` came from an `invoke` call, we should make sure - // meth->def is called instead of doing normal dispatch. - - return jl_apply(args, nargs); - } -} - /// ----- Handling for Julia callbacks ----- /// JL_DLLEXPORT int8_t jl_is_in_pure_context(void) @@ -2200,6 +2178,8 @@ JL_DLLEXPORT jl_value_t *jl_gf_invoke_lookup(jl_value_t *types, size_t world) return (jl_value_t*)entry; } +jl_value_t *jl_gf_invoke_by_method(jl_method_t *method, jl_value_t **args, size_t nargs); + // invoke() // this does method dispatch with a set of types to match other than the // types of the actual arguments. this means it sometimes does NOT call the @@ -2212,13 +2192,10 @@ JL_DLLEXPORT jl_value_t *jl_gf_invoke_lookup(jl_value_t *types, size_t world) jl_value_t *jl_gf_invoke(jl_value_t *types0, jl_value_t **args, size_t nargs) { size_t world = jl_get_ptls_states()->world_age; - jl_svec_t *tpenv = jl_emptysvec; - jl_tupletype_t *tt = NULL; jl_value_t *types = NULL; - JL_GC_PUSH3(&types, &tpenv, &tt); + JL_GC_PUSH1(&types); jl_value_t *gf = args[0]; types = jl_argtype_with_function(gf, types0); - jl_methtable_t *mt = jl_gf_mtable(gf); jl_typemap_entry_t *entry = (jl_typemap_entry_t*)jl_gf_invoke_lookup(types, world); if ((jl_value_t*)entry == jl_nothing) { @@ -2228,10 +2205,19 @@ jl_value_t *jl_gf_invoke(jl_value_t *types0, jl_value_t **args, size_t nargs) // now we have found the matching definition. // next look for or create a specialization of this definition. + JL_GC_POP(); + return jl_gf_invoke_by_method(entry->func.method, args, nargs); +} - jl_method_t *method = entry->func.method; +jl_value_t *jl_gf_invoke_by_method(jl_method_t *method, jl_value_t **args, size_t nargs) +{ + size_t world = jl_get_ptls_states()->world_age; jl_method_instance_t *mfunc = NULL; jl_typemap_entry_t *tm = NULL; + jl_methtable_t *mt = jl_gf_mtable(args[0]); + jl_svec_t *tpenv = jl_emptysvec; + jl_tupletype_t *tt = NULL; + JL_GC_PUSH2(&tpenv, &tt); if (method->invokes.unknown != NULL) tm = jl_typemap_assoc_exact(method->invokes, args, nargs, jl_cachearg_offset(mt), world); if (tm) { @@ -2248,7 +2234,7 @@ jl_value_t *jl_gf_invoke(jl_value_t *types0, jl_value_t **args, size_t nargs) if (method->invokes.unknown == NULL) method->invokes.unknown = jl_nothing; - mfunc = cache_method(mt, &method->invokes, entry->func.value, tt, method, world, tpenv, 1); + mfunc = cache_method(mt, &method->invokes, (jl_value_t*)method, tt, method, world, tpenv, 1); JL_UNLOCK(&method->writelock); } JL_GC_POP(); @@ -2303,6 +2289,33 @@ JL_DLLEXPORT jl_value_t *jl_get_invoke_lambda(jl_methtable_t *mt, return (jl_value_t*)mfunc; } +JL_DLLEXPORT jl_value_t *jl_invoke(jl_method_instance_t *meth, jl_value_t **args, uint32_t nargs) +{ + jl_callptr_t fptr = meth->invoke; + if (fptr != jl_fptr_trampoline) { + return fptr(meth, args, nargs); + } + else { + // if this hasn't been inferred (compiled) yet, + // inferring it might not be able to handle the world range + // so we just do a generic apply here + // because that might actually be faster + // since it can go through the unrolled caches for this world + // and if inference is successful, this meth would get updated anyways, + // and we'll get the fast path here next time + + jl_method_instance_t *mfunc = jl_lookup_generic_(args, nargs, + jl_int32hash_fast(jl_return_address()), + jl_get_ptls_states()->world_age); + // check whether `jl_apply_generic` would call the right method + if (mfunc->def.method == meth->def.method) + return mfunc->invoke(mfunc, args, nargs); + + // no; came from an `invoke` call + return jl_gf_invoke_by_method(meth->def.method, args, nargs); + } +} + // Return value is rooted globally jl_function_t *jl_new_generic_function_with_supertype(jl_sym_t *name, jl_module_t *module, jl_datatype_t *st, int iskw) { diff --git a/test/core.jl b/test/core.jl index ae9a90b5149ce..d1d4ff40bab0a 100644 --- a/test/core.jl +++ b/test/core.jl @@ -2432,6 +2432,20 @@ const T24460 = Tuple{T,T} where T g24460() = invoke(f24460, T24460, 1, 2) @test @inferred(g24460()) === 2.0 +# issue #30679 +@noinline function f30679(::DataType) + b = IOBuffer() + write(b, 0x00) + 2 +end +@noinline function f30679(t::Type{Int}) + x = invoke(f30679, Tuple{DataType}, t) + b = IOBuffer() + write(b, 0x00) + return x + 40 +end +@test f30679(Int) == 42 + call_lambda1() = (()->x)(1) call_lambda2() = ((x)->x)() call_lambda3() = ((x)->x)(1,2)