diff --git a/stdlib/Compat/.gitignore b/stdlib/Compat/.gitignore new file mode 100644 index 0000000000000..42f07eadc0c5a --- /dev/null +++ b/stdlib/Compat/.gitignore @@ -0,0 +1,2 @@ +*.jl.cov +*.jl.mem diff --git a/stdlib/Compat/.travis.yml b/stdlib/Compat/.travis.yml new file mode 100644 index 0000000000000..dd5a7e51d9104 --- /dev/null +++ b/stdlib/Compat/.travis.yml @@ -0,0 +1,9 @@ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false diff --git a/stdlib/Compat/LICENSE.md b/stdlib/Compat/LICENSE.md new file mode 100644 index 0000000000000..41751abfd92ec --- /dev/null +++ b/stdlib/Compat/LICENSE.md @@ -0,0 +1,23 @@ +The Compat.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2014, 2015, 2016, 2017: Stefan Karpinski and other +> contributors. +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/stdlib/Compat/Project.toml b/stdlib/Compat/Project.toml new file mode 100644 index 0000000000000..0b71c5dd6c5cb --- /dev/null +++ b/stdlib/Compat/Project.toml @@ -0,0 +1,24 @@ +name = "Compat" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" + +[deps] +Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" +Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +IterativeEigensolvers = "de555fa4-b82f-55e7-8b71-53f60bbc027d" +Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +Mmap = "a63ad114-7e13-5084-954f-fe012c677804" +Pkg = "fe1c5a76-5840-53d2-82f9-288dd83ce2ce" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +SharedArrays = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +SuiteSparse = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +Unicode = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" diff --git a/stdlib/Compat/README.md b/stdlib/Compat/README.md new file mode 100644 index 0000000000000..a1426076c06b8 --- /dev/null +++ b/stdlib/Compat/README.md @@ -0,0 +1,555 @@ +# Compat Package for Julia + +[![Build Status](https://travis-ci.org/JuliaLang/Compat.jl.svg?branch=master)](https://travis-ci.org/JuliaLang/Compat.jl) +[![Build status](https://ci.appveyor.com/api/projects/status/github/JuliaLang/Compat.jl?branch=master)](https://ci.appveyor.com/project/quinnj/compat-jl/branch/master) + +[![Compat](http://pkg.julialang.org/badges/Compat_0.3.svg)](http://pkg.julialang.org/?pkg=Compat&ver=0.3) +[![Compat](http://pkg.julialang.org/badges/Compat_0.4.svg)](http://pkg.julialang.org/?pkg=Compat&ver=0.4) +[![Compat](http://pkg.julialang.org/badges/Compat_0.5.svg)](http://pkg.julialang.org/?pkg=Compat&ver=0.5) +[![Compat](http://pkg.julialang.org/badges/Compat_0.6.svg)](http://pkg.julialang.org/?pkg=Compat&ver=0.6) +[![Compat](http://pkg.julialang.org/badges/Compat_0.7.svg)](http://pkg.julialang.org/?pkg=Compat&ver=0.7) + +The **Compat** package is designed to ease interoperability between +older and newer versions of the [Julia +language](http://julialang.org/). In particular, in cases where it is +impossible to write code that works with both the latest Julia +`master` branch and older Julia versions, or impossible to write code +that doesn't generate a deprecation warning in some Julia version, the +Compat package provides a macro that lets you use the *latest syntax* +in a backwards-compatible way. + +This is primarily intended for use by other [Julia +packages](http://docs.julialang.org/en/latest/manual/packages/), where +it is important to maintain cross-version compatibility. + +## Usage + +To use Compat in your Julia package, add a line `Compat` to the +`REQUIRE` file in your package directory. Then, in your package, +shortly after the `module` statement include lines like these: + +```julia +using Compat +import Compat.String +``` + +and then as needed add + +```julia +@compat ...compat syntax... +``` + +wherever you want to use syntax that differs in the latest Julia +`master` (the development version of Julia). The `compat syntax` is usually +the syntax on Julia `master`. However, in a few cases where this is not possible, +a slightly different syntax might be used. +Please check the list below for the specific syntax you need. + +## Supported syntax + +Currently, the `@compat` macro supports the following syntaxes: + +* `@compat (a::B{T}){T}(c) = d` — the Julia 0.5-style call overload + +* `@compat(get(io, s, false))`, with `s` equal to `:limit`, `:compact` or `:multiline`, to detect the corresponding print settings (performs useful work only on Julia 0.5, defaults to `false` otherwise) + +* `@compat Nullable(value, hasvalue)` to handle the switch from the `Nullable` `:isnull` field to `:hasvalue` field ([#18510]) + +* `@compat x .= y` converts to an in-place assignment to `x` (via `broadcast!`) ([#17510]). + However, beware that `.=` in Julia 0.4 has the precedence of `==`, not of assignment `=`, so if the right-hand-side `y` + includes expressions with lower precedence than `==` you should enclose it in parentheses `x .= (y)` to ensure the + correct order of evaluation. Also, `x .+= y` converts to `x .= (x .+ y)`, and similarly for the other updating + assignment operators (`.*=` and so on). + +* `@compat Array{<:Real}`, `@compat Array{>:Int}`, and similar uses of `<:T` (resp. `>:T`) to define a set of "covariant" (resp. "contravariant") parameterized types ([#20414]). + In 0.5, this only works for non-nested usages (e.g. you can't define `Array{<:Array{<:Real}}`). + +* `@compat abstract type T end` and `@compat primitive type T 8 end` + to declare abstract and primitive types. [#20418] + This only works when `@compat` is applied directly on the declaration. + +* `@compat A{T} = B{T}` or `@compat const A{T} = B{T}` to declare type alias with free + parameters. [#20500]. Use `const A = B{T}` or `const A = B` for type alias without free parameters (i.e. no type parameter on the left hand side). + +* `@compat Base.IndexStyle(::Type{<:MyArray}) = IndexLinear()` and `@compat Base.IndexStyle(::Type{<:MyArray}) = IndexCartesian()` to define traits for abstract arrays, replacing the former `Base.linearindexing{T<:MyArray}(::Type{T}) = Base.LinearFast()` and `Base.linearindexing{T<:MyArray}(::Type{T}) = Base.LinearSlow()`, respectively. + +* `Compat.collect(A)` returns an `Array`, no matter what indices the array `A` has. [#21257] + +* `@compat foo(::CartesianRange{N})` to replace the former + `foo(::CartesianRange{CartesianIndex{N}})` ([#20974]). Note that + `CartesianRange` now has two type parameters, so using them as + fields in other `struct`s requires manual intervention. + +## Module Aliases + +* In 0.6, some 0.5 iterator functions have been moved to the `Base.Iterators` + module. Code can be written to work on both 0.5 and 0.6 by `import`ing or + `using` the `Compat.Iterators` module instead. ([#18839]) + +* `using Compat.Test`, `using Compat.SharedArrays`, `using Compat.Mmap`, and `using + Compat.DelimitedFiles` are provided on versions older than 0.7, where these are not yet + part of the standard library. ([#23931]) + +* `using Compat.Base64` is provided on versions older than 0.7, where this library is not + yet a part of the standard library. ([#24361]) + +* `using Compat.Dates` is provided on versions older than 0.7, where this library is not + yet a part of the standard library. ([#24459]) + +* `using Compat.Unicode` is provided on versions older than 0.7, where this library is not + yet a part of the standard library. ([#25021]) + +* `using Compat.Printf` is provided on versions older than 0.7, where this library is not + yet a part of the standard library. ([#25056]) + +* `using Compat.IterativeEigensolvers` is provided on versions older than 0.7, where this + library is not yet a part of the standard library. ([#24714]) + +* `using Compat.SuiteSparse` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#24648]). + +* `using Compat.SparseArrays` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25249]). + +* `using Compat.LinearAlgebra` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25571]). + +* `using Compat.Random` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#24874]). + +* `using Compat.Libdl` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25459]). + +* `using Compat.REPL` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25544]). + +* `using Compat.Serialization` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25628]). + +* `using Compat.Distributed` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#24443]). + +* `using Compat.Pkg` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25705]). + +* `using Compat.InteractiveUtils` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25780]). + +* `using Compat.LibGit2` is provided on versions older than 0.7, where this library is + not yet part of the standard library ([#25706]). + +## New functions, macros, and methods + +* `@views` takes an expression and converts all slices to views ([#20164]), while + `@view` ([#16564]) converts a single array reference to a view ([#20164]). + +* `@__dot__` takes an expression and converts all assignments, function calls, + and operators to their broadcasting "dot-call" equivalents ([#20321]). In Julia 0.6, this + can be abbreviated `@.`, but that macro name does not parse in earlier Julia versions. + For this to work in older versions of Julia (prior to 0.5) that don't have dot calls, + you should instead use `@dotcompat`, which combines the `@__dot__` and `@compat` macros. + +* [`normalize`](http://docs.julialang.org/en/latest/stdlib/linalg/?highlight=normalize#Base.normalize) and [`normalize!`](http://docs.julialang.org/en/latest/stdlib/linalg/?highlight=normalize#Base.normalize!), normalizes a vector with respect to the p-norm ([#13681]) + +* `redirect_stdout`, `redirect_stderr`, and `redirect_stdin` take an optional function as a first argument, `redirect_std*(f, stream)`, so that one may use `do` block syntax (as first available for Julia 0.6) + +* `unsafe_get` returns the `:value` field of a `Nullable` object without any null-check and has a generic fallback for non-`Nullable` argument ([#18484]) + +* `isnull` has a generic fallback for non-`Nullable` argument + +* `transcode` converts between UTF-xx string encodings in Julia 0.5 (as a lightweight + alternative to the LegacyStrings package) ([#17323]) + +* `∘` (typically used infix as `f ∘ g`) for function composition can be used in 0.5 and earlier ([#17155]) + +* `>:`, a supertype operator for symmetry with `issubtype` (`A >: B` is equivalent to `B <: A`), can be used in 0.5 and earlier ([#20407]). + +* The method of `!` to negate functions (typically used as a unary operator, as in `!isinteger`) can be used in 0.5 and earlier ([#17155]). + +* `iszero(x)` efficiently checks whether `x == zero(x)` (including arrays) can be used in 0.5 and earlier ([#19950]). + +* `.&` and `.|` are short syntax for `broadcast(&, xs...)` and `broadcast(|, xs...)` (respectively) in Julia 0.6 (only supported on Julia 0.5 and above) ([#17623]) + +* `Compat.isapprox` with `nans` keyword argument ([#20022]) + +* `Compat.readline` with `keep` keyword argument ([#25646]) + +* `take!` method for `Task`s since some functions now return `Channel`s instead of `Task`s ([#19841]) + +* The `isabstract`, `parameter_upper_bound`, `typename` reflection methods were added in Julia 0.6. This package re-exports these from the `Compat.TypeUtils` submodule. On earlier versions of julia, that module contains the same functions, but operating on the pre-0.6 type system representation. + +* `broadcast` is supported on tuples of the same lengths on 0.5. ([#16986]) + +* `zeros` and `ones` support an interface the same as `similar` ([#19635]) + +* `convert` can convert between different `Set` types on 0.5 and below. ([#18727]) + +* `isassigned(::RefValue)` is supported on 0.5 and below. ([#18082]) + +* `unsafe_trunc(::Type{<:Integer}, ::Integer)` is supported on 0.5. ([#18629]) + +* `bswap` is supported for `Complex` arguments on 0.5 and below. ([#21346]) + +* `Compat.invokelatest` is equivalent to `Base.invokelatest` in Julia 0.6, + but works in Julia 0.5+, and allows you to guarantee that a function call + invokes the latest version of a function ([#19784]). + +* `Compat.invokelatest` supports keywords ([#22646]). + +* `Compat.StringVector` is supported on 0.5 and below. On 0.6 and later, it aliases `Base.StringVector`. This function allocates a `Vector{UInt8}` whose data can be made into a `String` in constant time; that is, without copying. On 0.5 and later, use `String(...)` with the vector allocated by `StringVector` as an argument to create a string without copying. Note that if 0.4 support is needed, `Compat.UTF8String(...)` should be used instead. ([#19449]) + +* `==(::Period, ::Period)` and `isless(::Period, ::Period)` is supported for 0.5 and below. Earlier versions of Julia only supported limited comparison methods between Periods which did not support comparing custom Period subtypes. ([#21378]) + +* `@__MODULE__` is aliased to `current_module()` for Julia versions 0.6 and below. Versions of `Base.binding_module`, `expand`, `macroexpand`, and `include_string` were added that accept a module as the first argument. ([#22064]) + +* `Cmd` elements can be accessed as if the `Cmd` were an array of strings for 0.6 and below ([#21197]). + +* `Val(x)` constructs `Val{x}()`. ([#22475]) + +* The `reshape` and `ntuple` APIs are extended to support `Val{x}()` arguments on 0.6 and below. + +* `chol` and `chol!` for `UniformScalings` ([#22633]). + +* `logdet` for `Number`s ([#22629]). + +* `fieldcount` is equivalent to `nfields` for Julia versions 0.6 and below and is used to + determine the number of fields in a data type ([#22350]). + +* There are versions of `InexactError`, `DomainError`, and `OverflowError` that take the same arguments as introduced in Julia 0.7-DEV ([#20005], [#22751], [#22761]). + +* `retry` for the more flexible `retry` method introduced in 0.6 which includes support for kwargs ([#19331], [#21419]). + +* `Base.rtoldefault` how takes a third parameter `atol`. + The two argument form is deprecated in favor of the three arguments form with `atol=0`. + +* The `corrected` optional argument of `cov` becomes a keyword argument. + Due to conflict with 0.5 deprecation, + `cov(::AbstractVector; corrected=)` and `cov(::AbstractVector, ::AbstractVector; corrected=)` + are only available on 0.6. ([#21709]) + +* `equalto` constructs an `EqualTo` object that can be used as a predicate ([#23812]). + +* `*(::Union{Char,AbstractString},::Union{Char,AbstractString})` concatenation. ([#22512]) + +* `diagm` and `spdiagm` accept pairs mapping diagonals to vectors ([#24047], [#23757]) + +* Constructors for `Matrix{T}`, `Array{T}`, and `SparseMatrixCSC{T}` from `UniformScaling` ([#24372], [#24657]) + +* Constructor for `Matrix` from `UniformScaling` ([#24372], [#24657]). + +* `Uninitialized` and `uninitialized` with corresponding `Array` constructors ([#24652]). + +* `BitArray` constructors for `uninitialized` ([#24785]). + +* `@compat finalizer(func, obj)` with the finalizer to run as the first argument and the object to be finalized + as the second ([#24605]). + +* `IOContext` accepting key-value `Pair`s ([#23271]). + +* `pairs` for iterating over key-value `Pair`s ([#22907]). + +* `get` do-block syntax supported when using `ENV` ([#23412]). + +* `Some{T}` wraps `T` to signify that a result of `T<:Void` is expected ([#23642]). + +* `replace` accepts a pair of pattern and replacement, with the number of replacements as + a keyword argument ([#25165]). + +* `CartesianIndices` and `LinearIndices` types represent cartesian and linear indices of + an array (respectively), and indexing such objects allows translating from one kind of index + to the other ([#25113]). + +* `codeunits(s)` returns an array-like view of the `UInt8` code units of + a string and `ncodeunits(s)` returns the number of code units ([#25241]). + +* `printstyled` prints to a given stream optionally in color and/or bolded ([#25522]). + +* `Dates.Period` rounding (e.g., `round(Dates.Hour(36), Dates.Day, RoundNearestTiesUp) == Dates.Day(2)` ([#24182]). + + +## Renaming + +* `Display` is now `AbstractDisplay` ([#24831]). + +* `$` is now `xor` or `⊻` ([#18977]) + +* `num` and `den` are now `numerator` and `denominator` ([#19246]) + +* `takebuf_array` is now a method of `take!`. `takebuf_string(io)` becomes `String(take!(io))` ([#19088]) + +* `is_apple`, `is_bsd`, `is_linux`, `is_unix`, and `is_windows` are now `Sys.isapple`, `Sys.isbsd`, + `Sys.islinux`, `Sys.isunix`, and `Sys.iswindows`, respectively. These are available in the `Compat.Sys` + submodule. ([#22182]) + +* `readstring` is replaced by methods of `read`. ([#22864]) + + `read(::IO, ::Type{String})`, `read(::AbstractString, ::Type{String})`, + and `read(::Cmd, ::Type{String})` are defined for 0.6 and below. + +* `Range` is now `AbstractRange` ([#23570]) + +* `select`* functions (`select`, `select!`, `selectperm`, `selectperm!`) are renamed to + `partialsort`* (`partialsort`, `partialsort!`, `partialsortperm`, `partialsortperm!`) ([#23051]) + +* `ctranspose` and `ctranspose!` are now `adjoint` and `adjoint!` ([#23235]) + +* Math constants (`π`, `pi`, `e`, `γ`, `eulergamma`, `catalan`, `φ`, `golden`) are moved to the + `MathConstants` module (available as `Compat.MathConstants`). + The name exported from `Base` for `e` is changed to `ℯ`. ([#23427]) + +* `IntSet` is now `BitSet` ([#24282]) + +* `Complex32`, `Complex64`, and `Complex128` are now `ComplexF16`, `ComplexF32`, and + `ComplexF64`, respectively ([#24647]). + +* `JULIA_HOME` is now `Sys.BINDIR`, available in the `Compat.Sys` submodule. ([#25102]) + +* `Associative` is now `AbstractDict` ([#25012]). + +* `indices` is now `axes` ([#25057]). This function is not exported from Compat to avoid + conflicts with AxisArrays and other such packages. + +* `Void` is now `Nothing` with an alias `Cvoid` for C interop ([#25162]). + +* `unshift!` and `shift!` are now `pushfirst!` and `popfirst!` ([#25100]). + +* `Base.IteratorSize` and `Base.IteratorEltype` are available as + `Compat.IteratorSize` and `Compat.IteratorEltype` ([#25402]). + +* `copy!` and `unsafe_copy!` are now `copyto!` and `unsafe_copyto!` ([#24808]). + +* `ismatch(r::Regex, str::AbstractString)` is now `contains(str, r)` ([#24673]). + +* `ipermute!` is now `invpermute!` ([#25168]). + +* `module_parent`, `Base.function_module`, and `Base.datatype_module` are now methods of + a new function called `parentmodule` ([#25629]). + +* `module_name`, `Base.function_name`, and `Base.datatype_name` are now methods of a + new function called `nameof` ([#25622]). + +* `find` is now `findall` ([#25545]). + +* `search` is now `findfirst`/`findnext` and `rsearch` is now `findlast`/`findprev`, + sometimes combined with `equalto` or `occursin` ([#24673]). + +* `Compat.findfirst`, `Compat.findnext`, `Compat.findlast` and `Compat.findprev`, + return `nothing` when no match is found (rather than `0`) as on Julia 0.7 ([#24673]). + +* `findin(a, b)` is now `findall(occursin(b), a)` ([#24673]). + +* `indmin` and `indmax` are now `argmin` and `argmax`, respectively ([#25654]). + +* `isabstract` and `isleaftype` are now `isabstracttype` and `isconcretetype`, respectively + ([#23666], [#25496]). + +* `gc` and `gc_enable` are now `GC.gc` and `GC.enable`, respectively ([#25616]). + +* `endof` is now `lastindex` ([#25458]). (Note that `lastindex(A, n)` is not supported.) + +* `nb_available` is now `bytesavailable` ([#25634]). + +* `method_exists` is now `hasmethod` ([#25615]). + +* `object_id` is now `objectid` ([#25615]). + +## New macros + +* `@__DIR__` has been added ([#18380]) + +* `@vectorize_1arg` and `@vectorize_2arg` are deprecated on Julia 0.6 in favor + of the broadcast syntax ([#17302]). `Compat.@dep_vectorize_1arg` and + `Compat.@dep_vectorize_2arg` are provided so that packages can still provide + the deprecated definitions without causing a depwarn in the package itself + before all the users are upgraded. + + Packages are expected to use this until all users of the deprecated + vectorized function have migrated. These macros will be dropped when the + support for `0.6` is dropped from `Compat`. + +* `@nospecialize` has been added ([#22666]). + +* The logging macros `@error`, `@warn`, `@info` and `@debug` can be used as + `Compat.@error`, `Compat.@warn`, `Compat.@info` and `Compat.@debug` on Julia 0.6 ([#24490]). + Note that the behavior do not mirror the logging macros in Julia 0.7, instead on Julia 0.6: + - Messages are printed to `STDERR` (like `info` and `warn` on Julia 0.6) and not to a + dedicated logging stream. + - The loglevel can not be controlled, but `Compat.@debug` messages can be turned on/off + by calling `Compat.enable_debug(true/false)`. + - Extra metadata sent to the macros are ignored. + + As an alternative, see the MicroLogging.jl package for a logging interface similar to the one in Julia 0.7. + +## Other changes + +* On versions of Julia that do not contain a Base.Threads module, Compat defines a Threads module containing a no-op `@threads` macro. + +* The `Expr(:macrocall)` has an extra initial argument `__source__`, which can be tested for with `Compat.macros_have_sourceloc`. + +## New types + +* `Compat.AbstractDateTime` is an alias for `Compat.Dates.AbstractDateTime` as of ([#25227]) and `Compat.Dates.TimeType` prior to that. + +## Developer tips + +One of the most important rules for `Compat.jl` is to avoid breaking user code +whenever possible, especially on a released version. + +Although the syntax used in the most recent Julia version +is the preferred compat syntax, there are cases where this shouldn't be used. +Examples include when the new syntax already has a different meaning +on previous versions of Julia, or when functions are removed from `Base` +Julia and the alternative cannot be easily implemented on previous versions. +In such cases, possible solutions are forcing the new feature to be used with +qualified name in `Compat.jl` (e.g. use `Compat.`) or +reimplementing the old features on a later Julia version. + +If you're adding additional compatibility code to this package, the [`contrib/commit-name.sh`](https://github.com/JuliaLang/julia/blob/master/contrib/commit-name.sh) script in the base Julia repository is useful for extracting the version number from a git commit SHA. For example, from the git repository of `julia`, run something like this: + +```sh +bash $ contrib/commit-name.sh a378b60fe483130d0d30206deb8ba662e93944da +0.5.0-dev+2023 +``` + +This prints a version number corresponding to the specified commit of the form +`X.Y.Z-aaa+NNNN`, and you can then test whether Julia +is at least this version by `VERSION >= v"X.Y.Z-aaa+NNNN"`. + +### Tagging the correct minimum version of Compat + +One of the most frequent problems package developers encounter is finding the right +version of `Compat` to add to their REQUIRE. This is meant to be a guide on how to +specify the right lower bound. + +* Find the appropriate fix needed for your package from the `Compat` README. Every +function or feature added to `Compat` is documented in its README, so you are +guaranteed to find it. + +* Navigate to the [blame page of the README](https://github.com/JuliaLang/Compat.jl/blame/master/README.md) +by clicking on the README file on GitHub, and then clicking on the `blame` button +which can be found in the top-right corner. + +* Now find your fix, and then find the corresponding commit ID of that fix on the +left-hand side. Click on the commit ID. This navigates to a page which recorded +that particular commit. + +* On the top pane, you should find the list of the tagged versions of Compat that +includes this fix. Find the minimum version from there. + +* Now specify the correct minimum version for Compat in your REQUIRE file by +`Compat ` + +[#13681]: https://github.com/JuliaLang/julia/issues/13681 +[#16564]: https://github.com/JuliaLang/julia/issues/16564 +[#16986]: https://github.com/JuliaLang/julia/issues/16986 +[#17155]: https://github.com/JuliaLang/julia/issues/17155 +[#17302]: https://github.com/JuliaLang/julia/issues/17302 +[#17323]: https://github.com/JuliaLang/julia/issues/17323 +[#17510]: https://github.com/JuliaLang/julia/issues/17510 +[#17623]: https://github.com/JuliaLang/julia/issues/17623 +[#18082]: https://github.com/JuliaLang/julia/issues/18082 +[#18380]: https://github.com/JuliaLang/julia/issues/18380 +[#18484]: https://github.com/JuliaLang/julia/issues/18484 +[#18510]: https://github.com/JuliaLang/julia/issues/18510 +[#18629]: https://github.com/JuliaLang/julia/issues/18629 +[#18727]: https://github.com/JuliaLang/julia/issues/18727 +[#18839]: https://github.com/JuliaLang/julia/issues/18839 +[#18977]: https://github.com/JuliaLang/julia/issues/18977 +[#19088]: https://github.com/JuliaLang/julia/issues/19088 +[#19246]: https://github.com/JuliaLang/julia/issues/19246 +[#19331]: https://github.com/JuliaLang/julia/issues/19331 +[#19449]: https://github.com/JuliaLang/julia/issues/19449 +[#19635]: https://github.com/JuliaLang/julia/issues/19635 +[#19784]: https://github.com/JuliaLang/julia/issues/19784 +[#19841]: https://github.com/JuliaLang/julia/issues/19841 +[#19950]: https://github.com/JuliaLang/julia/issues/19950 +[#20005]: https://github.com/JuliaLang/julia/issues/20005 +[#20022]: https://github.com/JuliaLang/julia/issues/20022 +[#20164]: https://github.com/JuliaLang/julia/issues/20164 +[#20321]: https://github.com/JuliaLang/julia/issues/20321 +[#20407]: https://github.com/JuliaLang/julia/issues/20407 +[#20414]: https://github.com/JuliaLang/julia/issues/20414 +[#20418]: https://github.com/JuliaLang/julia/issues/20418 +[#20500]: https://github.com/JuliaLang/julia/issues/20500 +[#20974]: https://github.com/JuliaLang/julia/issues/20974 +[#21197]: https://github.com/JuliaLang/julia/issues/21197 +[#21257]: https://github.com/JuliaLang/julia/issues/21257 +[#21346]: https://github.com/JuliaLang/julia/issues/21346 +[#21378]: https://github.com/JuliaLang/julia/issues/21378 +[#21419]: https://github.com/JuliaLang/julia/issues/21419 +[#21709]: https://github.com/JuliaLang/julia/issues/21709 +[#22064]: https://github.com/JuliaLang/julia/issues/22064 +[#22182]: https://github.com/JuliaLang/julia/issues/22182 +[#22350]: https://github.com/JuliaLang/julia/issues/22350 +[#22475]: https://github.com/JuliaLang/julia/issues/22475 +[#22512]: https://github.com/JuliaLang/julia/issues/22512 +[#22629]: https://github.com/JuliaLang/julia/issues/22629 +[#22633]: https://github.com/JuliaLang/julia/issues/22633 +[#22646]: https://github.com/JuliaLang/julia/issues/22646 +[#22666]: https://github.com/JuliaLang/julia/issues/22666 +[#22751]: https://github.com/JuliaLang/julia/issues/22751 +[#22761]: https://github.com/JuliaLang/julia/issues/22761 +[#22864]: https://github.com/JuliaLang/julia/issues/22864 +[#22907]: https://github.com/JuliaLang/julia/issues/22907 +[#23051]: https://github.com/JuliaLang/julia/issues/23051 +[#23235]: https://github.com/JuliaLang/julia/issues/23235 +[#23271]: https://github.com/JuliaLang/julia/issues/23271 +[#23412]: https://github.com/JuliaLang/julia/issues/23412 +[#23427]: https://github.com/JuliaLang/julia/issues/23427 +[#23570]: https://github.com/JuliaLang/julia/issues/23570 +[#23642]: https://github.com/JuliaLang/julia/issues/23642 +[#23666]: https://github.com/JuliaLang/julia/issues/23666 +[#23757]: https://github.com/JuliaLang/julia/issues/23757 +[#23812]: https://github.com/JuliaLang/julia/issues/23812 +[#23931]: https://github.com/JuliaLang/julia/issues/23931 +[#24047]: https://github.com/JuliaLang/julia/issues/24047 +[#24282]: https://github.com/JuliaLang/julia/issues/24282 +[#24361]: https://github.com/JuliaLang/julia/issues/24361 +[#24372]: https://github.com/JuliaLang/julia/issues/24372 +[#24443]: https://github.com/JuliaLang/julia/issues/24443 +[#24459]: https://github.com/JuliaLang/julia/issues/24459 +[#24490]: https://github.com/JuliaLang/julia/issues/24490 +[#24605]: https://github.com/JuliaLang/julia/issues/24605 +[#24647]: https://github.com/JuliaLang/julia/issues/24647 +[#24648]: https://github.com/JuliaLang/julia/issues/24648 +[#24652]: https://github.com/JuliaLang/julia/issues/24652 +[#24657]: https://github.com/JuliaLang/julia/issues/24657 +[#24673]: https://github.com/JuliaLang/julia/issues/24673 +[#24714]: https://github.com/JuliaLang/julia/issues/24714 +[#24785]: https://github.com/JuliaLang/julia/issues/24785 +[#24808]: https://github.com/JuliaLang/julia/issues/24808 +[#24874]: https://github.com/JuliaLang/julia/issues/24874 +[#25012]: https://github.com/JuliaLang/julia/issues/25012 +[#25021]: https://github.com/JuliaLang/julia/issues/25021 +[#25056]: https://github.com/JuliaLang/julia/issues/25056 +[#25057]: https://github.com/JuliaLang/julia/issues/25057 +[#25100]: https://github.com/JuliaLang/julia/issues/25100 +[#25102]: https://github.com/JuliaLang/julia/issues/25102 +[#25113]: https://github.com/JuliaLang/julia/issues/25113 +[#25162]: https://github.com/JuliaLang/julia/issues/25162 +[#25165]: https://github.com/JuliaLang/julia/issues/25165 +[#25168]: https://github.com/JuliaLang/julia/issues/25168 +[#25227]: https://github.com/JuliaLang/julia/issues/25227 +[#25241]: https://github.com/JuliaLang/julia/issues/25241 +[#25249]: https://github.com/JuliaLang/julia/issues/25249 +[#25402]: https://github.com/JuliaLang/julia/issues/25402 +[#25458]: https://github.com/JuliaLang/julia/issues/25458 +[#25459]: https://github.com/JuliaLang/julia/issues/25459 +[#25496]: https://github.com/JuliaLang/julia/issues/25496 +[#25522]: https://github.com/JuliaLang/julia/issues/25522 +[#25544]: https://github.com/JuliaLang/julia/issues/25544 +[#25545]: https://github.com/JuliaLang/julia/issues/25545 +[#25571]: https://github.com/JuliaLang/julia/issues/25571 +[#25615]: https://github.com/JuliaLang/julia/issues/25615 +[#25616]: https://github.com/JuliaLang/julia/issues/25616 +[#25622]: https://github.com/JuliaLang/julia/issues/25622 +[#25628]: https://github.com/JuliaLang/julia/issues/25628 +[#25629]: https://github.com/JuliaLang/julia/issues/25629 +[#25634]: https://github.com/JuliaLang/julia/issues/25634 +[#25646]: https://github.com/JuliaLang/julia/issues/25646 +[#25654]: https://github.com/JuliaLang/julia/issues/25654 +[#25705]: https://github.com/JuliaLang/julia/issues/25705 +[#25706]: https://github.com/JuliaLang/julia/issues/25706 +[#25780]: https://github.com/JuliaLang/julia/issues/25780 +[#24182]: https://github.com/JuliaLang/julia/issues/24182 +[#24673]: https://github.com/JuliaLang/julia/issues/24673 \ No newline at end of file diff --git a/stdlib/Compat/REQUIRE b/stdlib/Compat/REQUIRE new file mode 100644 index 0000000000000..137767a42af4a --- /dev/null +++ b/stdlib/Compat/REQUIRE @@ -0,0 +1 @@ +julia 0.6 diff --git a/stdlib/Compat/appveyor.yml b/stdlib/Compat/appveyor.yml new file mode 100644 index 0000000000000..02016521a560c --- /dev/null +++ b/stdlib/Compat/appveyor.yml @@ -0,0 +1,40 @@ +environment: + matrix: + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" +# if there's a newer build queued for the same PR, cancel this one + - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` + throw "There are newer queued builds for this pull request, failing early." } +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"Compat\"); Pkg.build(\"Compat\")" + +test_script: + - C:\projects\julia\bin\julia --check-bounds=yes -e "Pkg.test(\"Compat\")" diff --git a/stdlib/Compat/src/Compat.jl b/stdlib/Compat/src/Compat.jl new file mode 100644 index 0000000000000..14a450ed51a22 --- /dev/null +++ b/stdlib/Compat/src/Compat.jl @@ -0,0 +1,1634 @@ +__precompile__() + +module Compat + +using Base.Meta + +@static if !isdefined(Base, Symbol("@nospecialize")) + # 0.7 + macro nospecialize(arg) + if isa(arg, Symbol) + # @nospecialize(arg) + return :($(esc(arg))::ANY) + elseif isa(arg, Expr) && arg.head == :(::) + # @nospecialize(arg::typ) + # unsupported: needs ::ANY which would change dispatch as determined by ::typ + elseif isa(arg, Expr) && arg.head == :(=) + # @nospecialize(arg=val) + arg, val = arg.args + if isa(arg, Expr) && arg.head == :(::) + # @nospecialize(arg::typ=val) + # unsupported (see above), but generate a kw arg + arg, typ = arg.args + return Expr(:kw, :($(esc(arg))::$(esc(typ))), esc(val)) + else + return Expr(:kw, :($(esc(arg))::ANY), esc(val)) + end + end + return esc(arg) + end + export @nospecialize +end + +"""Get just the function part of a function declaration.""" +withincurly(ex) = isexpr(ex, :curly) ? ex.args[1] : ex + +if VERSION < v"0.6.0-dev.2043" + Base.take!(t::Task) = consume(t) +end + +is_index_style(ex::Expr) = ex == :(Compat.IndexStyle) || ex == :(Base.IndexStyle) || + (ex.head == :(.) && (ex.args[1] == :Compat || ex.args[1] == :Base) && + ex.args[2] == Expr(:quote, :IndexStyle)) + +is_index_style(arg) = false + +istopsymbol(ex, mod, sym) = ex in (sym, Expr(:(.), mod, Expr(:quote, sym))) + +if VERSION < v"0.6.0-dev.2782" + function new_style_typealias(ex::ANY) + isexpr(ex, :(=)) || return false + ex = ex::Expr + return length(ex.args) == 2 && isexpr(ex.args[1], :curly) + end +else + new_style_typealias(ex) = false +end + +function _compat(ex::Expr) + if ex.head === :call + f = ex.args[1] + if VERSION < v"0.6.0-dev.826" && length(ex.args) == 3 && # julia#18510 + istopsymbol(withincurly(ex.args[1]), :Base, :Nullable) + ex = Expr(:call, f, ex.args[2], Expr(:call, :(Compat._Nullable_field2), ex.args[3])) + end + elseif ex.head === :curly + f = ex.args[1] + if VERSION < v"0.6.0-dev.2575" #20414 + ex = Expr(:curly, map(a -> isexpr(a, :call, 2) && a.args[1] == :(<:) ? + :($TypeVar($(QuoteNode(gensym(:T))), $(a.args[2]), false)) : + isexpr(a, :call, 2) && a.args[1] == :(>:) ? + :($TypeVar($(QuoteNode(gensym(:T))), $(a.args[2]), $Any, false)) : a, + ex.args)...) + end + elseif ex.head === :quote && isa(ex.args[1], Symbol) + # Passthrough + return ex + elseif new_style_typealias(ex) + ex.head = :typealias + elseif ex.head === :const && length(ex.args) == 1 && new_style_typealias(ex.args[1]) + ex = ex.args[1]::Expr + ex.head = :typealias + end + if VERSION < v"0.6.0-dev.2840" + if ex.head == :(=) && isa(ex.args[1], Expr) && ex.args[1].head == :call + a = ex.args[1].args[1] + if is_index_style(a) + ex.args[1].args[1] = :(Base.linearindexing) + elseif isa(a, Expr) && a.head == :curly + if is_index_style(a.args[1]) + ex.args[1].args[1].args[1] = :(Base.linearindexing) + end + end + end + end + if VERSION < v"0.7.0-DEV.880" + if ex.head == :curly && ex.args[1] == :CartesianRange && length(ex.args) >= 2 + a = ex.args[2] + if a != :CartesianIndex && !(isa(a, Expr) && a.head == :curly && a.args[1] == :CartesianIndex) + return Expr(:curly, :CartesianRange, Expr(:curly, :CartesianIndex, ex.args[2])) + end + end + end + if VERSION < v"0.7.0-DEV.2562" + if ex.head == :call && ex.args[1] == :finalizer + ex.args[2], ex.args[3] = ex.args[3], ex.args[2] + end + end + return Expr(ex.head, map(_compat, ex.args)...) +end + +_compat(ex) = ex + +function _get_typebody(ex::Expr) + args = ex.args + if ex.head !== :type || length(args) != 3 || args[1] !== true + throw(ArgumentError("Invalid usage of @compat: $ex")) + end + name = args[2] + if !isexpr(args[3], :block) + throw(ArgumentError("Invalid type declaration: $ex")) + end + body = (args[3]::Expr).args + filter!(body) do e + if isa(e, LineNumberNode) || isexpr(e, :line) + return false + end + return true + end + return name, body +end + +function _compat_primitive(typedecl) + name, body = _get_typebody(typedecl) + if length(body) != 1 + throw(ArgumentError("Invalid primitive type declaration: $typedecl")) + end + return Expr(:bitstype, body[1], name) +end + +function _compat_abstract(typedecl) + name, body = _get_typebody(typedecl) + if length(body) != 0 + throw(ArgumentError("Invalid abstract type declaration: $typedecl")) + end + return Expr(:abstract, name) +end + +macro compat(ex...) + if VERSION < v"0.6.0-dev.2746" && length(ex) == 2 && ex[1] === :primitive + return esc(_compat_primitive(ex[2])) + elseif length(ex) != 1 + throw(ArgumentError("@compat called with wrong number of arguments: $ex")) + elseif (VERSION < v"0.6.0-dev.2746" && isexpr(ex[1], :abstract) && + length(ex[1].args) == 1 && isexpr(ex[1].args[1], :type)) + # This can in principle be handled in nested case but we do not + # do that to be consistent with primitive types. + return esc(_compat_abstract(ex[1].args[1])) + end + esc(_compat(ex[1])) +end + + +export @compat + +# https://github.com/JuliaLang/julia/pull/22064 +@static if !isdefined(Base, Symbol("@__MODULE__")) + # 0.7 + export @__MODULE__ + macro __MODULE__() + return current_module() + end + Base.expand(mod::Module, x::ANY) = eval(mod, :(expand($(QuoteNode(x))))) + Base.macroexpand(mod::Module, x::ANY) = eval(mod, :(macroexpand($(QuoteNode(x))))) + Base.include_string(mod::Module, code::String, fname::String) = + eval(mod, :(include_string($code, $fname))) + Base.include_string(mod::Module, code::AbstractString, fname::AbstractString="string") = + eval(mod, :(include_string($code, $fname))) +end + +if VERSION < v"0.6.0-dev.2042" + include_string(@__MODULE__, """ + immutable ExponentialBackOff + n::Int + first_delay::Float64 + max_delay::Float64 + factor::Float64 + jitter::Float64 + + function ExponentialBackOff(n, first_delay, max_delay, factor, jitter) + all(x->x>=0, (n, first_delay, max_delay, factor, jitter)) || error("all inputs must be non-negative") + new(n, first_delay, max_delay, factor, jitter) + end + end + """) + + """ + ExponentialBackOff(; n=1, first_delay=0.05, max_delay=10.0, factor=5.0, jitter=0.1) + + A [`Float64`](@ref) iterator of length `n` whose elements exponentially increase at a + rate in the interval `factor` * (1 ± `jitter`). The first element is + `first_delay` and all elements are clamped to `max_delay`. + """ + ExponentialBackOff(; n=1, first_delay=0.05, max_delay=10.0, factor=5.0, jitter=0.1) = + ExponentialBackOff(n, first_delay, max_delay, factor, jitter) + Base.start(ebo::ExponentialBackOff) = (ebo.n, min(ebo.first_delay, ebo.max_delay)) + function Base.next(ebo::ExponentialBackOff, state) + next_n = state[1]-1 + curr_delay = state[2] + next_delay = min(ebo.max_delay, state[2] * ebo.factor * (1.0 - ebo.jitter + (rand() * 2.0 * ebo.jitter))) + (curr_delay, (next_n, next_delay)) + end + Base.done(ebo::ExponentialBackOff, state) = state[1]<1 + Base.length(ebo::ExponentialBackOff) = ebo.n + + function retry(f::Function; delays=ExponentialBackOff(), check=nothing) + (args...; kwargs...) -> begin + state = start(delays) + while true + try + return f(args...; kwargs...) + catch e + done(delays, state) && rethrow(e) + if check !== nothing + state, retry_or_not = check(state, e) + retry_or_not || rethrow(e) + end + end + (delay, state) = next(delays, state) + sleep(delay) + end + end + end +else + import Base.ExponentialBackOff + import Base.retry +end + +import Base: redirect_stdin, redirect_stdout, redirect_stderr +if VERSION < v"0.6.0-dev.374" + for (F,S) in ((:redirect_stdin, :STDIN), (:redirect_stdout, :STDOUT), (:redirect_stderr, :STDERR)) + @eval function $F(f::Function, stream) + STDOLD = $S + $F(stream) + try f() finally $F(STDOLD) end + end + end +end + +@static if VERSION < v"0.6.0-dev.528" + macro __DIR__() + Base.source_dir() + end + export @__DIR__ +end + +# PR #17302 +# Provide a non-deprecated version of `@vectorize_(1|2)arg` macro which defines +# deprecated version of the function so that the depwarns can be fixed without +# breaking users. +# Packages are expected to use this to maintain the old API until all users +# of the deprecated vectorized function have migrated. +# These macros should raise a depwarn when the `0.5` support is dropped from +# `Compat` and be dropped when the support for `0.6` is dropped from `Compat`. +# Modified based on the version copied from 0.6 Base. +if VERSION < v"0.7.0-DEV.1211" + macro dep_vectorize_1arg(S, f) + S = esc(S) + f = esc(f) + T = esc(:T) + x = esc(:x) + AbsArr = esc(:AbstractArray) + ## Depwarn to be enabled when 0.5 support is dropped. + # depwarn("Implicit vectorized function is deprecated in favor of compact broadcast syntax.", + # Symbol("@dep_vectorize_1arg")) + :(@deprecate $f{$T<:$S}($x::$AbsArr{$T}) @compat($f.($x))) + end + + macro dep_vectorize_2arg(S, f) + S = esc(S) + f = esc(f) + T1 = esc(:T1) + T2 = esc(:T2) + x = esc(:x) + y = esc(:y) + AbsArr = esc(:AbstractArray) + ## Depwarn to be enabled when 0.5 support is dropped. + # depwarn("Implicit vectorized function is deprecated in favor of compact broadcast syntax.", + # Symbol("@dep_vectorize_2arg")) + quote + @deprecate $f{$T1<:$S}($x::$S, $y::$AbsArr{$T1}) @compat($f.($x,$y)) + @deprecate $f{$T1<:$S}($x::$AbsArr{$T1}, $y::$S) @compat($f.($x,$y)) + @deprecate $f{$T1<:$S,$T2<:$S}($x::$AbsArr{$T1}, $y::$AbsArr{$T2}) @compat($f.($x,$y)) + end + end +else + macro dep_vectorize_1arg(S, f) + AbstractArray = GlobalRef(Base, :AbstractArray) + return esc(:(@deprecate $f(x::$AbstractArray{T}) where {T<:$S} $f.(x))) + end + + macro dep_vectorize_2arg(S, f) + AbstractArray = GlobalRef(Base, :AbstractArray) + return esc(quote + @deprecate $f(x::$S, y::$AbstractArray{T1}) where {T1<:$S} $f.(x, y) + @deprecate $f(x::$AbstractArray{T1}, y::$S) where {T1<:$S} $f.(x, y) + @deprecate $f(x::$AbstractArray{T1}, y::$AbstractArray{T2}) where {T1<:$S, T2<:$S} $f.(x, y) + end) + end +end + +# broadcast over same length tuples, from julia#16986 +@static if VERSION < v"0.6.0-dev.693" + Base.Broadcast.broadcast{N}(f, t::NTuple{N}, ts::Vararg{NTuple{N}}) = map(f, t, ts...) +end + +# julia#18510 +if VERSION < v"0.6.0-dev.826" + _Nullable_field2(x) = !x +else + _Nullable_field2(x) = x +end + +# julia#18484 +@static if VERSION < v"0.6.0-dev.848" + unsafe_get(x::Nullable) = x.value + unsafe_get(x) = x + export unsafe_get + Base.isnull(x) = false +end + +# julia#18977 +@static if !isdefined(Base, :xor) + # 0.6 + const xor = $ + const ⊻ = xor + export xor, ⊻ +end + +# julia#19246 +@static if !isdefined(Base, :numerator) + # 0.6 + const numerator = num + const denominator = den + export numerator, denominator +end + +# julia #19950 +@static if !isdefined(Base, :iszero) + # 0.6 + iszero(x) = x == zero(x) + iszero(x::Number) = x == 0 + iszero(x::AbstractArray) = all(iszero, x) + export iszero +end + +# julia #20407 +@static if !isdefined(Base, :(>:)) + # 0.6 + const >: = let + _issupertype(a::ANY, b::ANY) = issubtype(b, a) + end + export >: +end + +# julia#19088 +if VERSION < v"0.6.0-dev.1256" + Base.take!(io::Base.AbstractIOBuffer) = takebuf_array(io) +end + +# julia #17155 function composition and negation +@static if VERSION < v"0.6.0-dev.1883" + export ∘ + ∘(f, g) = (x...)->f(g(x...)) + @compat Base.:!(f::Function) = (x...)->!f(x...) +end + + +if VERSION < v"0.6.0-dev.1632" + # To work around unsupported syntax on Julia 0.4 + include_string("export .&, .|") + include_string(".&(xs...) = broadcast(&, xs...)") + include_string(".|(xs...) = broadcast(|, xs...)") +end + +@static if VERSION < v"0.6.0-dev.2093" # Compat.isapprox to allow for NaNs + using Base.rtoldefault + function isapprox(x::Number, y::Number; rtol::Real=rtoldefault(x,y), atol::Real=0, nans::Bool=false) + x == y || (isfinite(x) && isfinite(y) && abs(x-y) <= atol + rtol*max(abs(x), abs(y))) || (nans && isnan(x) && isnan(y)) + end +else + import Base.isapprox +end + +@static if !isdefined(Base, :isabstracttype) # VERSION < v"0.7.0-DEV.3475" + const isabstracttype = Base.isabstract + export isabstracttype +end + +module TypeUtils + using Base: parameter_upper_bound, typename + using Compat: isabstracttype + const isabstract = isabstracttype + export isabstract, parameter_upper_bound, typename +end # module TypeUtils + +# @view, @views, @__dot__ +include("arraymacros.jl") + +# julia #18839 +if VERSION < v"0.6.0-dev.1024" + @eval module Iterators + export countfrom, cycle, drop, enumerate, flatten, product, repeated, + rest, take, zip, partition + + import Base: eltype, start, next, done, length, size, ndims + using Base: tuple_type_cons + using Base: countfrom, cycle, drop, enumerate, repeated, rest, take, + zip + using Compat + + using Base: flatten + using Base: product + using Base: partition + end +else + using Base.Iterators +end + +@static if VERSION < v"0.6.0-dev.2840" + export IndexStyle, IndexLinear, IndexCartesian + eval(Expr(:typealias, :IndexStyle, :(Base.LinearIndexing))) + eval(Expr(:typealias, :IndexLinear, :(Base.LinearFast))) + eval(Expr(:typealias, :IndexCartesian, :(Base.LinearSlow))) + IndexStyle{T}(::Type{T}) = Base.linearindexing(T) + IndexStyle(args...) = Base.linearindexing(args...) +end + +if VERSION < v"0.6.0-dev.1653" + for (fname, felt) in ((:zeros,:zero), (:ones,:one)) + @eval begin + # allow signature of similar + Base.$fname(a::AbstractArray, T::Type, dims::Tuple) = fill!(similar(a, T, dims), $felt(T)) + Base.$fname(a::AbstractArray, T::Type, dims...) = fill!(similar(a,T,dims...), $felt(T)) + Base.$fname(a::AbstractArray, T::Type=eltype(a)) = fill!(similar(a,T), $felt(T)) + end + end +end + +# https://github.com/JuliaLang/julia/pull/25646 +@static if VERSION < v"0.7.0-DEV.3510" + # not exported + # chomp parameter preserved for compatibility with earliear Compat versions + readline(s::IO=STDIN; chomp::Bool=true, keep::Bool=!chomp) = Base.readline(s; chomp=!keep) +end + +# https://github.com/JuliaLang/julia/pull/18727 +@static if VERSION < v"0.6.0-dev.838" + Base.convert{T}(::Type{Set{T}}, s::Set{T}) = s + Base.convert{T}(::Type{Set{T}}, s::Set) = Set{T}(s) +end + +# https://github.com/JuliaLang/julia/pull/18082 +if VERSION < v"0.6.0-dev.2347" + Base.isassigned(x::Base.RefValue) = isdefined(x, :x) +end + +@static if VERSION < v"0.6.0-dev.735" + Base.unsafe_trunc{T<:Integer}(::Type{T}, x::Integer) = rem(x, T) +end + +# https://github.com/JuliaLang/julia/pull/21346 +if VERSION < v"0.6.0-pre.beta.102" + Base.bswap(z::Complex) = Complex(bswap(real(z)), bswap(imag(z))) +end + +# https://github.com/JuliaLang/julia/pull/19449 +@static if VERSION < v"0.6.0-dev.1988" + StringVector(n::Integer) = Vector{UInt8}(n) +else + using Base: StringVector +end + +# https://github.com/JuliaLang/julia/pull/19784 +@static if isdefined(Base, :invokelatest) + # https://github.com/JuliaLang/julia/pull/22646 + if VERSION < v"0.7.0-DEV.1139" + function invokelatest(f, args...; kwargs...) + inner() = f(args...; kwargs...) + Base.invokelatest(inner) + end + else + import Base.invokelatest + end +else + function invokelatest(f, args...; kwargs...) + kw = [Expr(:kw, k, QuoteNode(v)) for (k, v) in kwargs] + eval(current_module(), Expr(:call, f, map(QuoteNode, args)..., kw...)) + end +end + +# https://github.com/JuliaLang/julia/pull/21257 +@static if VERSION < v"0.6.0-pre.beta.28" + collect(A) = collect_indices(indices(A), A) + collect_indices(::Tuple{}, A) = copy!(Array{eltype(A)}(), A) + collect_indices(indsA::Tuple{Vararg{Base.OneTo}}, A) = + copy!(Array{eltype(A)}(map(length, indsA)), A) + function collect_indices(indsA, A) + B = Array{eltype(A)}(map(length, indsA)) + copy!(B, CartesianRange(indices(B)), A, CartesianRange(indsA)) + end +else + const collect = Base.collect +end + +# https://github.com/JuliaLang/julia/pull/21197 +if VERSION < v"0.7.0-DEV.257" + # allow the elements of the Cmd to be accessed as an array or iterator + for f in (:length, :endof, :start, :eachindex, :eltype, :first, :last) + @eval Base.$f(cmd::Cmd) = $f(cmd.exec) + end + for f in (:next, :done, :getindex) + @eval Base.$f(cmd::Cmd, i) = $f(cmd.exec, i) + end +end + +# https://github.com/JuliaLang/julia/pull/21378 +if VERSION < v"0.6.0-pre.beta.455" + import Base: ==, isless + + ==(x::Dates.Period, y::Dates.Period) = (==)(promote(x, y)...) + isless(x::Dates.Period, y::Dates.Period) = isless(promote(x,y)...) + + # disallow comparing fixed to other periods + ==(x::Dates.FixedPeriod, y::Dates.OtherPeriod) = throw(MethodError(==, (x, y))) + ==(x::Dates.OtherPeriod, y::Dates.FixedPeriod) = throw(MethodError(==, (x, y))) + isless(x::Dates.FixedPeriod, y::Dates.OtherPeriod) = throw(MethodError(isless, (x, y))) + isless(x::Dates.OtherPeriod, y::Dates.FixedPeriod) = throw(MethodError(isless, (x, y))) +end + +# https://github.com/JuliaLang/julia/pull/22475 +@static if VERSION < v"0.7.0-DEV.843" + import Base: Val + (::Type{Val})(x) = (Base.@_pure_meta; Val{x}()) + # Also add methods for Val(x) that were previously Val{x} + import Base: reshape + reshape{N}(parent::AbstractArray, ndims::Val{N}) = reshape(parent, Val{N}) + import Base: ntuple + ntuple{F,N}(f::F, ::Val{N}) = ntuple(f, Val{N}) +end + +# https://github.com/JuliaLang/julia/pull/22629 +if VERSION < v"0.7.0-DEV.848" + import Base: logdet + logdet(A) = log(det(A)) +end + +# https://github.com/JuliaLang/julia/pull/22633 +if VERSION < v"0.7.0-DEV.1041" + import Base.LinAlg: chol, chol! + chol!(J::UniformScaling, uplo) = UniformScaling(chol!(J.λ, uplo)) + chol(J::UniformScaling, args...) = UniformScaling(chol(J.λ, args...)) +end + +# https://github.com/JuliaLang/julia/pull/21746 +const macros_have_sourceloc = VERSION >= v"0.7-" && length(:(@test).args) == 2 + +# https://github.com/JuliaLang/julia/pull/22182 +module Sys + const KERNEL = Base.Sys.KERNEL + @static if VERSION < v"0.7.0-DEV.914" + isapple(k::Symbol=KERNEL) = k in (:Darwin, :Apple) + isbsd(k::Symbol=KERNEL) = isapple(k) || k in (:FreeBSD, :OpenBSD, :NetBSD, :DragonFly) + islinux(k::Symbol=KERNEL) = k == :Linux + isunix(k::Symbol=KERNEL) = isbsd(k) || islinux(k) + iswindows(k::Symbol=KERNEL) = k in (:Windows, :NT) + else + import Base.Sys: isapple, isbsd, islinux, isunix, iswindows + end + + # https://github.com/JuliaLang/julia/pull/25102 + # NOTE: This needs to be in an __init__ because JULIA_HOME is not + # defined when building system images. + function __init__() + global BINDIR = VERSION < v"0.7.0-DEV.3073" ? JULIA_HOME : Base.Sys.BINDIR + end +end + +@static if VERSION < v"0.7.0-DEV.892" + fieldcount(t) = nfields(t) + export fieldcount +end + +if VERSION < v"0.7.0-DEV.1053" + Base.read(obj::IO, ::Type{String}) = readstring(obj) + Base.read(obj::AbstractString, ::Type{String}) = readstring(obj) + Base.read(obj::Cmd, ::Type{String}) = readstring(obj) +end + +# https://github.com/JuliaLang/julia/pull/20005 +if VERSION < v"0.7.0-DEV.896" + Base.InexactError(name::Symbol, T, val) = InexactError() +end + +# https://github.com/JuliaLang/julia/pull/22751 +if VERSION < v"0.7.0-DEV.924" + Base.DomainError(val) = DomainError() + Base.DomainError(val, msg) = DomainError() +end + +# https://github.com/JuliaLang/julia/pull/22761 +if VERSION < v"0.7.0-DEV.1285" + Base.OverflowError(msg) = OverflowError() +end + +if VERSION < v"0.7.0-DEV.755" + # This is a hack to only add keyword signature that won't work on all julia versions. + # However, since we really only need to support a few (0.5, 0.6 and early 0.7) versions + # this should be good enough. + let Tf = typeof(cov), Tkw = Core.Core.kwftype(Tf) + @eval begin + @inline function _get_corrected(kws) + corrected = true + nkw = length(kws) >> 1 + for i in 1:nkw + if kws[i * 2 - 1] !== :corrected + Base.kwerr(kws) + end + corrected = kws[i * 2] + end + return corrected::Bool + end + if VERSION >= v"0.6" + (::$Tkw)(kws::Vector{Any}, ::$Tf, x::AbstractVector) = cov(x, _get_corrected(kws)) + (::$Tkw)(kws::Vector{Any}, ::$Tf, X::AbstractVector, Y::AbstractVector) = + cov(X, Y, _get_corrected(kws)) + end + (::$Tkw)(kws::Vector{Any}, ::$Tf, x::AbstractMatrix, vardim::Int) = + cov(x, vardim, _get_corrected(kws)) + (::$Tkw)(kws::Vector{Any}, ::$Tf, X::AbstractVecOrMat, Y::AbstractVecOrMat, + vardim::Int) = cov(X, Y, vardim, _get_corrected(kws)) + end + end +end + +# 0.7.0-DEV.1415 +@static if !isdefined(Base, :adjoint) + const adjoint = ctranspose + const adjoint! = ctranspose! + export adjoint, adjoint! +end + +# 0.7.0-DEV.1592 +@static if !isdefined(Base, :MathConstants) + @eval module MathConstants + # All other ones are already exported by Base (so should be already in the users namespace) + # and will be automatically be in this module. + export ℯ + const ℯ = e + end + const ℯ = e + export ℯ +else + import Base.MathConstants +end + +# 0.7.0-DEV.1535 +@static if !isdefined(Base, :partialsort) + const partialsort = select + const partialsort! = select! + const partialsortperm = selectperm + const partialsortperm! = selectperm! + export partialsort, partialsort!, partialsortperm, partialsortperm! +end + +# 0.7.0-DEV.1660 +@static if !isdefined(Base, :pairs) + pairs(collection) = Base.Generator(=>, keys(collection), values(collection)) + pairs(a::Associative) = a + + # 0.6.0-dev+2834 + @static if !isdefined(Iterators, :IndexValue) + include_string(@__MODULE__, """ + immutable IndexValue{I,A<:AbstractArray} + data::A + itr::I + end + """) + + Base.length(v::IndexValue) = length(v.itr) + Base.indices(v::IndexValue) = indices(v.itr) + Base.size(v::IndexValue) = size(v.itr) + @inline Base.start(v::IndexValue) = start(v.itr) + Base.@propagate_inbounds function Base.next(v::IndexValue, state) + indx, n = next(v.itr, state) + item = v.data[indx] + (indx => item), n + end + @inline Base.done(v::IndexValue, state) = done(v.itr, state) + + Base.eltype{I,A}(::Type{IndexValue{I,A}}) = Pair{eltype(I), eltype(A)} + + Base.iteratorsize{I}(::Type{IndexValue{I}}) = iteratorsize(I) + Base.iteratoreltype{I}(::Type{IndexValue{I}}) = iteratoreltype(I) + + Base.reverse(v::IndexValue) = IndexValue(v.data, reverse(v.itr)) + else + const IndexValue = Iterators.IndexValue + end + + pairs(::IndexLinear, A::AbstractArray) = IndexValue(A, linearindices(A)) + pairs(::IndexCartesian, A::AbstractArray) = IndexValue(A, CartesianRange(indices(A))) + + Base.keys(a::AbstractArray) = CartesianRange(indices(a)) + Base.keys(a::AbstractVector) = linearindices(a) + Base.keys(s::IndexStyle, A::AbstractArray, B::AbstractArray...) = eachindex(s, A, B...) + + Base.values(itr) = itr +end + +# 0.7.0-DEV.1721 +@static if !isdefined(Base, :AbstractRange) + const AbstractRange = Range + export AbstractRange +end + +if VERSION < v"0.7.0-DEV.1325" + function Base.rtoldefault(x, y, atol::Real) + T = isa(x, Type) ? x : typeof(x) + S = isa(y, Type) ? y : typeof(y) + rtol = max(Base.rtoldefault(real(T)), Base.rtoldefault(real(S))) + return atol > 0 ? zero(rtol) : rtol + end +end + + +# 0.7.0-DEV.3475 +@static if !isdefined(Base, :isconcretetype) + # 0.7.0-DEV.1775 + @static if !isdefined(Base, :isconcrete) + const isconcretetype = isleaftype + const isconcrete = isleaftype # for compatibility with earlier Compat versions + export isconcrete + else + const isconcretetype = isconcrete + end + export isconcretetype +end + +# 0.7.0-DEV.2005 +if VERSION < v"0.7.0-DEV.2005" + const Mmap = Base.Mmap + const Test = Base.Test + @eval module SharedArrays + if isdefined(Base, :Distributed) + using Base.Distributed.procs + else + using Base.procs + end + export SharedArray, SharedMatrix, SharedVector, indexpids, localindexes, sdata, + procs + end + const DelimitedFiles = Base.DataFmt +else + import Test, SharedArrays, Mmap, DelimitedFiles +end + +if VERSION < v"0.7.0-DEV.2575" + const Dates = Base.Dates +else + import Dates +end + +if VERSION < v"0.7.0-DEV.3382" + const Libdl = Base.Libdl +else + import Libdl +end + +# https://github.com/JuliaLang/julia/pull/24182 +if VERSION < v"0.7.0-DEV.2402" + const ConvertiblePeriod = Union{Compat.Dates.TimePeriod, Compat.Dates.Week, Compat.Dates.Day} + const TimeTypeOrPeriod = Union{Compat.Dates.TimeType, Compat.ConvertiblePeriod} + + """ + floor(x::Period, precision::T) where T <: Union{TimePeriod, Week, Day} -> T + + Rounds `x` down to the nearest multiple of `precision`. If `x` and `precision` are different + subtypes of `Period`, the return value will have the same type as `precision`. + + For convenience, `precision` may be a type instead of a value: `floor(x, Dates.Hour)` is a + shortcut for `floor(x, Dates.Hour(1))`. + + ```jldoctest + julia> floor(Dates.Day(16), Dates.Week) + 2 weeks + + julia> floor(Dates.Minute(44), Dates.Minute(15)) + 30 minutes + + julia> floor(Dates.Hour(36), Dates.Day) + 1 day + ``` + + Rounding to a `precision` of `Month`s or `Year`s is not supported, as these `Period`s are of + inconsistent length. + """ + function Base.floor(x::Compat.ConvertiblePeriod, precision::T) where T <: Compat.ConvertiblePeriod + Compat.Dates.value(precision) < 1 && throw(DomainError(precision)) + _x, _precision = promote(x, precision) + return T(_x - mod(_x, _precision)) + end + + """ + ceil(x::Period, precision::T) where T <: Union{TimePeriod, Week, Day} -> T + + Rounds `x` up to the nearest multiple of `precision`. If `x` and `precision` are different + subtypes of `Period`, the return value will have the same type as `precision`. + + For convenience, `precision` may be a type instead of a value: `ceil(x, Dates.Hour)` is a + shortcut for `ceil(x, Dates.Hour(1))`. + + ```jldoctest + julia> ceil(Dates.Day(16), Dates.Week) + 3 weeks + + julia> ceil(Dates.Minute(44), Dates.Minute(15)) + 45 minutes + + julia> ceil(Dates.Hour(36), Dates.Day) + 3 days + ``` + + Rounding to a `precision` of `Month`s or `Year`s is not supported, as these `Period`s are of + inconsistent length. + """ + function Base.ceil(x::Compat.ConvertiblePeriod, precision::Compat.ConvertiblePeriod) + f = floor(x, precision) + return (x == f) ? f : f + precision + end + + """ + floorceil(x::Period, precision::T) where T <: Union{TimePeriod, Week, Day} -> (T, T) + + Simultaneously return the `floor` and `ceil` of `Period` at resolution `p`. More efficient + than calling both `floor` and `ceil` individually. + """ + function floorceil(x::Compat.ConvertiblePeriod, precision::Compat.ConvertiblePeriod) + f = floor(x, precision) + return f, (x == f) ? f : f + precision + end + + """ + round(x::Period, precision::T, [r::RoundingMode]) where T <: Union{TimePeriod, Week, Day} -> T + + Rounds `x` to the nearest multiple of `precision`. If `x` and `precision` are different + subtypes of `Period`, the return value will have the same type as `precision`. By default + (`RoundNearestTiesUp`), ties (e.g., rounding 90 minutes to the nearest hour) will be rounded + up. + + For convenience, `precision` may be a type instead of a value: `round(x, Dates.Hour)` is a + shortcut for `round(x, Dates.Hour(1))`. + + ```jldoctest + julia> round(Dates.Day(16), Dates.Week) + 2 weeks + + julia> round(Dates.Minute(44), Dates.Minute(15)) + 45 minutes + + julia> round(Dates.Hour(36), Dates.Day) + 3 days + ``` + + Valid rounding modes for `round(::Period, ::T, ::RoundingMode)` are `RoundNearestTiesUp` + (default), `RoundDown` (`floor`), and `RoundUp` (`ceil`). + + Rounding to a `precision` of `Month`s or `Year`s is not supported, as these `Period`s are of + inconsistent length. + """ + function Base.round(x::Compat.ConvertiblePeriod, precision::Compat.ConvertiblePeriod, r::RoundingMode{:NearestTiesUp}) + f, c = floorceil(x, precision) + _x, _f, _c = promote(x, f, c) + return (_x - _f) < (_c - _x) ? f : c + end + + Base.round(x::Compat.TimeTypeOrPeriod, p::Compat.Dates.Period, r::RoundingMode{:Down}) = Base.floor(x, p) + Base.round(x::Compat.TimeTypeOrPeriod, p::Compat.Dates.Period, r::RoundingMode{:Up}) = Base.ceil(x, p) + + Base.round(::Compat.TimeTypeOrPeriod, p::Compat.Dates.Period, ::RoundingMode) = throw(DomainError(p)) + Base.round(x::Compat.TimeTypeOrPeriod, p::Compat.Dates.Period) = Base.round(x, p, RoundNearestTiesUp) + Base.floor(x::Compat.TimeTypeOrPeriod, ::Type{P}) where P <: Compat.Dates.Period = Base.floor(x, oneunit(P)) + Base.ceil(x::Compat.TimeTypeOrPeriod, ::Type{P}) where P <: Compat.Dates.Period = Base.ceil(x, oneunit(P)) + function Base.round(x::Compat.TimeTypeOrPeriod, ::Type{P}, r::RoundingMode=RoundNearestTiesUp) where P <: Compat.Dates.Period + return Base.round(x, oneunit(P), r) + end +end + +if VERSION < v"0.7.0-DEV.3216" + const AbstractDateTime = Compat.Dates.TimeType +else + const AbstractDateTime = Compat.Dates.AbstractDateTime +end + +if VERSION < v"0.7.0-DEV.3052" + const Printf = Base.Printf +else + import Printf +end + +if VERSION < v"0.7.0-DEV.2655" + @eval module IterativeEigensolvers + using Base: eigs, svds + export eigs, svds + end +elseif VERSION < v"0.7.0-DEV.3019" + @eval module IterativeEigensolvers + using IterativeEigenSolvers: eigs, svds + export eigs, svds + end +else + import IterativeEigensolvers +end + +@static if VERSION < v"0.7.0-DEV.3449" + const LinearAlgebra = Base.LinAlg +else + import LinearAlgebra +end + +if VERSION < v"0.7.0-DEV.3389" + const SparseArrays = Base.SparseArrays +else + import SparseArrays +end + +if VERSION < v"0.7.0-DEV.3406" + const Random = Base.Random +else + import Random +end + +if VERSION < v"0.7.0-DEV.2609" + @eval module SuiteSparse + if Base.USE_GPL_LIBS + using Compat.SparseArrays: CHOLMOD, SPQR, UMFPACK + end + using Compat.SparseArrays: increment, increment!, decrement, decrement! + end +else + import SuiteSparse +end + +@static if VERSION < v"0.7.0-DEV.3500" + const REPL = Base.REPL +else + import REPL +end + +if VERSION < v"0.7.0-DEV.3476" + @eval module Serialization + import Base.Serializer: serialize, deserialize, SerializationState + export serialize, deserialize, SerializationState + end +else + import Serialization +end + +# 0.7.0-DEV.1993 +@static if !isdefined(Base, :EqualTo) + if VERSION >= v"0.6.0" + include_string(@__MODULE__, """ + struct EqualTo{T} <: Function + x::T + + EqualTo(x::T) where {T} = new{T}(x) + end + """) + else + include_string(@__MODULE__, """ + immutable EqualTo{T} <: Function + x::T + end + """) + end + (f::EqualTo)(y) = isequal(f.x, y) + const equalto = EqualTo + export equalto +end + +# 0.7.0-DEV.912 +if VERSION < v"0.7.0-DEV.912" + import Base.* + (*)(s1::Union{Char,AbstractString}, ss::Union{Char,AbstractString}...) = string(s1, ss...) +end + +# 0.7.0-DEV.2318 +@static if !isdefined(Base, :BitSet) + const BitSet = IntSet + export BitSet +end + +# 0.7.0-DEV.2116 +@static if VERSION < v"0.7.0-DEV.2116" + import Compat.SparseArrays: spdiagm + function spdiagm(kv::Pair...) + I, J, V = Compat.SparseArrays.spdiagm_internal(last.(kv), first.(kv)) + m = max(Compat.SparseArrays.dimlub(I), Compat.SparseArrays.dimlub(J)) + return sparse(I, J, V, m, m) + end +end + +# 0.7.0-DEV.2161 +@static if VERSION < v"0.7.0-DEV.2161" + import Base: diagm + function diagm(kv::Pair...) + T = promote_type(map(x -> eltype(x.second), kv)...) + n = mapreduce(x -> length(x.second) + abs(x.first), max, kv) + A = zeros(T, n, n) + for p in kv + inds = diagind(A, p.first) + for (i, val) in enumerate(p.second) + A[inds[i]] += val + end + end + return A + end +end + +# 0.7.0-DEV.2338 +@static if VERSION >= v"0.7.0-DEV.2338" + import Base64 +else + import Base.Base64 +end + +@static if VERSION < v"0.7.0-DEV.2377" + (::Type{Matrix{T}}){T}(s::UniformScaling, dims::Dims{2}) = setindex!(zeros(T, dims), T(s.λ), diagind(dims...)) + (::Type{Matrix{T}}){T}(s::UniformScaling, m::Integer, n::Integer) = Matrix{T}(s, Dims((m, n))) + + (::Type{SparseMatrixCSC{Tv,Ti}}){Tv,Ti}(s::UniformScaling, m::Integer, n::Integer) = SparseMatrixCSC{Tv,Ti}(s, Dims((m, n))) + (::Type{SparseMatrixCSC{Tv}}){Tv}(s::UniformScaling, m::Integer, n::Integer) = SparseMatrixCSC{Tv}(s, Dims((m, n))) + (::Type{SparseMatrixCSC{Tv}}){Tv}(s::UniformScaling, dims::Dims{2}) = SparseMatrixCSC{Tv,Int}(s, dims) + function (::Type{SparseMatrixCSC{Tv,Ti}}){Tv,Ti}(s::UniformScaling, dims::Dims{2}) + @boundscheck first(dims) < 0 && throw(ArgumentError("first dimension invalid ($(first(dims)) < 0)")) + @boundscheck last(dims) < 0 && throw(ArgumentError("second dimension invalid ($(last(dims)) < 0)")) + iszero(s.λ) && return spzeros(Tv, Ti, dims...) + m, n, k = dims..., min(dims...) + nzval = fill!(Vector{Tv}(k), Tv(s.λ)) + rowval = copy!(Vector{Ti}(k), 1:k) + colptr = copy!(Vector{Ti}(n + 1), 1:(k + 1)) + for i in (k + 2):(n + 1) colptr[i] = (k + 1) end + SparseMatrixCSC{Tv,Ti}(dims..., colptr, rowval, nzval) + end +end +@static if VERSION < v"0.7.0-DEV.2543" + (::Type{Array{T}}){T}(s::UniformScaling, dims::Dims{2}) = Matrix{T}(s, dims) + (::Type{Array{T}}){T}(s::UniformScaling, m::Integer, n::Integer) = Matrix{T}(s, m, n) +end +@static if VERSION < v"0.7.0-DEV.2541" + (::Type{Matrix})(s::UniformScaling{T}, dims...) where {T} = Matrix{T}(s, dims...) +end + +# https://github.com/JuliaLang/julia/pull/23271 +@static if VERSION < v"0.7.0-DEV.1472" + Base.IOContext(io::IO, arg1::Pair, arg2::Pair, args::Pair...) = IOContext(IOContext(io, arg1), arg2, args...) + # needed for ambiguity resolution + Base.IOContext(io::IOContext, arg1::Pair, arg2::Pair) = IOContext(IOContext(io, arg1), arg2) +end + +# 0.7.0-DEV.2581 +@static if !isdefined(Base, :Uninitialized) + if VERSION >= v"0.6.0" + include_string(@__MODULE__, """ + struct Uninitialized end + Array{T}(::Uninitialized, args...) where {T} = Array{T}(args...) + Array{T,N}(::Uninitialized, args...) where {T,N} = Array{T,N}(args...) + Vector(::Uninitialized, args...) = Vector(args...) + Matrix(::Uninitialized, args...) = Matrix(args...) + + BitArray{N}(::Uninitialized, args...) where {N} = BitArray{N}(args...) + BitArray(::Uninitialized, args...) = BitArray(args...) + """) + else + include_string(@__MODULE__, """ + immutable Uninitialized end + (::Type{Array{T}}){T}(::Uninitialized, args...) = Array{T}(args...) + (::Type{Array{T,N}}){T,N}(::Uninitialized, args...) = Array{T,N}(args...) + (::Type{Vector})(::Uninitialized, args...) = Vector(args...) + (::Type{Matrix})(::Uninitialized, args...) = Matrix(args...) + + (::Type{BitArray{N}}){N}(::Uninitialized, args...) = BitArray{N}(args...) + (::Type{BitArray})(::Uninitialized, args...) = BitArray(args...) + """) + end + const uninitialized = Uninitialized() + export Uninitialized, uninitialized +end + +# 0.7.0-DEV.1499 +if VERSION < v"0.7.0-DEV.1499" + function Base.get(f::Base.Callable, ::Base.EnvHash, k::AbstractString) + Base.access_env(k->f(), k) + end +end + +# 0.7.0-DEV.2919 +@static if !isdefined(Base, :ComplexF16) + const ComplexF16 = Complex{Float16} + export ComplexF16 +end +@static if !isdefined(Base, :ComplexF32) + const ComplexF32 = Complex{Float32} + export ComplexF32 +end +@static if !isdefined(Base, :ComplexF64) + const ComplexF64 = Complex{Float64} + export ComplexF64 +end + +# 0.7.0-DEV.2915 +module Unicode + export graphemes, textwidth, isvalid, + islower, isupper, isalpha, isdigit, isxdigit, isnumeric, isalnum, + iscntrl, ispunct, isspace, isprint, isgraph, + lowercase, uppercase, titlecase, lcfirst, ucfirst + + if VERSION < v"0.7.0-DEV.2915" + # 0.7.0-DEV.1930 + if !isdefined(Base, :textwidth) + textwidth(c::Char) = charwidth(c) + textwidth(c::AbstractString) = strwidth(c) + end + + isnumeric(c::Char) = isnumber(c) + + # 0.6.0-dev.1404 (https://github.com/JuliaLang/julia/pull/19469) + if !isdefined(Base, :titlecase) + titlecase(c::Char) = isascii(c) ? ('a' <= c <= 'z' ? c - 0x20 : c) : + Char(ccall(:utf8proc_totitle, UInt32, (UInt32,), c)) + + function titlecase(s::AbstractString) + startword = true + b = IOBuffer() + for c in s + if isspace(c) + print(b, c) + startword = true + else + print(b, startword ? titlecase(c) : c) + startword = false + end + end + return String(take!(b)) + end + end + else + using Unicode + end +end + +# 0.7.0-DEV.2951 +@static if !isdefined(Base, :AbstractDict) + const AbstractDict = Associative + export AbstractDict +end + +# 0.7.0-DEV.2978 +@static if !isdefined(Base, :axes) + const axes = Base.indices + # NOTE: Intentionally not exported to avoid conflicts with AxisArrays + #export axes +end + +# 0.7.0-DEV.3137 +@static if !isdefined(Base, :Nothing) + const Nothing = Void + const Cvoid = Void + export Nothing, Cvoid +end + +@static if !isdefined(Base, :Some) + import Base: promote_rule, convert + if VERSION >= v"0.6.0" + include_string(@__MODULE__, """ + struct Some{T} + value::T + end + promote_rule(::Type{Some{S}}, ::Type{Some{T}}) where {S,T} = Some{promote_type(S, T)} + promote_rule(::Type{Some{T}}, ::Type{Nothing}) where {T} = Union{Some{T}, Nothing} + convert(::Type{Some{T}}, x::Some) where {T} = Some{T}(convert(T, x.value)) + convert(::Type{Union{Some{T}, Nothing}}, x::Some) where {T} = convert(Some{T}, x) + convert(::Type{Union{T, Nothing}}, x::Any) where {T} = convert(T, x) + """) + else + include_string(@__MODULE__, """ + immutable Some{T} + value::T + end + promote_rule{S,T}(::Type{Some{S}}, ::Type{Some{T}}) = Some{promote_type(S, T)} + promote_rule{T}(::Type{Some{T}}, ::Type{Nothing}) = Union{Some{T}, Nothing} + convert{T}(::Type{Some{T}}, x::Some) = Some{T}(convert(T, x.value)) + convert{T}(::Type{Union{Some{T}, Nothing}}, x::Some) = convert(Some{T}, x) + convert{T}(::Type{Union{T, Nothing}}, x::Any) = convert(T, x) + """) + end + convert(::Type{Nothing}, x::Any) = throw(MethodError(convert, (Nothing, x))) + convert(::Type{Nothing}, x::Nothing) = nothing + coalesce(x::Any) = x + coalesce(x::Some) = x.value + coalesce(x::Nothing) = nothing + #coalesce(x::Missing) = missing + coalesce(x::Any, y...) = x + coalesce(x::Some, y...) = x.value + coalesce(x::Nothing, y...) = coalesce(y...) + #coalesce(x::Union{Nothing, Missing}, y...) = coalesce(y...) + notnothing(x::Any) = x + notnothing(::Nothing) = throw(ArgumentError("nothing passed to notnothing")) + export Some, coalesce +else + import Base: notnothing +end + +# 0.7.0-DEV.3155 +@static if !isdefined(Base, :pushfirst!) + const pushfirst! = unshift! + const popfirst! = shift! + export pushfirst!, popfirst! +end + +# 0.7.0-DEV.3309 +@static if VERSION < v"0.7.0-DEV.3309" + const IteratorSize = Base.iteratorsize + const IteratorEltype = Base.iteratoreltype +else + const IteratorSize = Base.IteratorSize + const IteratorEltype = Base.IteratorEltype +end + +# 0.7.0-DEV.3173 +@static if !isdefined(Base, :invpermute!) + const invpermute! = ipermute! + export invpermute! +end + +@static if VERSION < v"0.7.0-DEV.3172" + Base.replace(s::AbstractString, pat_rep::Pair; count::Integer=typemax(Int)) = + replace(s, first(pat_rep), last(pat_rep), count) +end + +# 0.7.0-DEV.3057 +@static if !isdefined(Base, :copyto!) + const copyto! = Base.copy! + const unsafe_copyto! = Base.unsafe_copy! + export copyto!, unsafe_copyto! +end + +# 0.7.0-DEV.3272 +@static if VERSION < v"0.7.0-DEV.3272" + Base.contains(str::AbstractString, r::Regex) = ismatch(r, str) +end + +@static if VERSION < v"0.7.0-DEV.3025" + import Base: convert, ndims, getindex, size, length, eltype, + start, next, done, first, last, in, tail + export CartesianIndices, LinearIndices + + struct CartesianIndices{N,R<:NTuple{N,AbstractUnitRange{Int}}} <: AbstractArray{CartesianIndex{N},N} + indices::R + end + + CartesianIndices(::Tuple{}) = CartesianIndices{0,typeof(())}(()) + CartesianIndices(inds::NTuple{N,AbstractUnitRange{Int}}) where {N} = + CartesianIndices{N,typeof(inds)}(inds) + CartesianIndices(inds::Vararg{AbstractUnitRange{Int},N}) where {N} = + CartesianIndices(inds) + CartesianIndices(inds::NTuple{N,AbstractUnitRange{<:Integer}}) where {N} = + CartesianIndices(map(r->convert(AbstractUnitRange{Int}, r), inds)) + CartesianIndices(inds::Vararg{AbstractUnitRange{<:Integer},N}) where {N} = + CartesianIndices(inds) + + CartesianIndices(index::CartesianIndex) = CartesianIndices(index.I) + CartesianIndices(sz::NTuple{N,<:Integer}) where {N} = CartesianIndices(map(Base.OneTo, sz)) + CartesianIndices(inds::NTuple{N,Union{<:Integer,AbstractUnitRange{<:Integer}}}) where {N} = + CartesianIndices(map(i->first(i):last(i), inds)) + + CartesianIndices(A::AbstractArray) = CartesianIndices(axes(A)) + + convert(::Type{Tuple{}}, R::CartesianIndices{0}) = () + convert(::Type{NTuple{N,AbstractUnitRange{Int}}}, R::CartesianIndices{N}) where {N} = + R.indices + + convert(::Type{NTuple{N,AbstractUnitRange}}, R::CartesianIndices{N}) where {N} = + convert(NTuple{N,AbstractUnitRange{Int}}, R) + convert(::Type{NTuple{N,UnitRange{Int}}}, R::CartesianIndices{N}) where {N} = + UnitRange{Int}.(convert(NTuple{N,AbstractUnitRange}, R)) + convert(::Type{NTuple{N,UnitRange}}, R::CartesianIndices{N}) where {N} = + UnitRange.(convert(NTuple{N,AbstractUnitRange}, R)) + convert(::Type{Tuple{Vararg{AbstractUnitRange{Int}}}}, R::CartesianIndices{N}) where {N} = + convert(NTuple{N,AbstractUnitRange{Int}}, R) + convert(::Type{Tuple{Vararg{AbstractUnitRange}}}, R::CartesianIndices) = + convert(Tuple{Vararg{AbstractUnitRange{Int}}}, R) + convert(::Type{Tuple{Vararg{UnitRange{Int}}}}, R::CartesianIndices{N}) where {N} = + convert(NTuple{N,UnitRange{Int}}, R) + convert(::Type{Tuple{Vararg{UnitRange}}}, R::CartesianIndices) = + convert(Tuple{Vararg{UnitRange{Int}}}, R) + + # AbstractArray implementation + Base.IndexStyle(::Type{CartesianIndices{N,R}}) where {N,R} = IndexCartesian() + @inline Base.getindex(iter::CartesianIndices{N,R}, I::Vararg{Int, N}) where {N,R} = CartesianIndex(first.(iter.indices) .- 1 .+ I) + + ndims(R::CartesianIndices) = ndims(typeof(R)) + ndims(::Type{CartesianIndices{N}}) where {N} = N + ndims(::Type{CartesianIndices{N,TT}}) where {N,TT} = N + + eltype(R::CartesianIndices) = eltype(typeof(R)) + eltype(::Type{CartesianIndices{N}}) where {N} = CartesianIndex{N} + eltype(::Type{CartesianIndices{N,TT}}) where {N,TT} = CartesianIndex{N} + Base.iteratorsize(::Type{<:CartesianIndices}) = Base.HasShape() + + @inline function start(iter::CartesianIndices) + iterfirst, iterlast = first(iter), last(iter) + if any(map(>, iterfirst.I, iterlast.I)) + return iterlast+1 + end + iterfirst + end + @inline function next(iter::CartesianIndices, state) + state, CartesianIndex(inc(state.I, first(iter).I, last(iter).I)) + end + # increment & carry + @inline inc(::Tuple{}, ::Tuple{}, ::Tuple{}) = () + @inline inc(state::Tuple{Int}, start::Tuple{Int}, stop::Tuple{Int}) = (state[1]+1,) + @inline function inc(state, start, stop) + if state[1] < stop[1] + return (state[1]+1,Base.tail(state)...) + end + newtail = inc(Base.tail(state), Base.tail(start), Base.tail(stop)) + (start[1], newtail...) + end + @inline done(iter::CartesianIndices, state) = state.I[end] > last(iter.indices[end]) + + # 0-d cartesian ranges are special-cased to iterate once and only once + start(iter::CartesianIndices{0}) = false + next(iter::CartesianIndices{0}, state) = CartesianIndex(), true + done(iter::CartesianIndices{0}, state) = state + + size(iter::CartesianIndices) = map(dimlength, first(iter).I, last(iter).I) + dimlength(start, stop) = stop-start+1 + + length(iter::CartesianIndices) = prod(size(iter)) + + first(iter::CartesianIndices) = CartesianIndex(map(first, iter.indices)) + last(iter::CartesianIndices) = CartesianIndex(map(last, iter.indices)) + + @inline function in(i::CartesianIndex{N}, r::CartesianIndices{N}) where {N} + _in(true, i.I, first(r).I, last(r).I) + end + _in(b, ::Tuple{}, ::Tuple{}, ::Tuple{}) = b + @inline _in(b, i, start, stop) = _in(b & (start[1] <= i[1] <= stop[1]), tail(i), tail(start), tail(stop)) + + struct LinearIndices{N,R<:NTuple{N,AbstractUnitRange{Int}}} <: AbstractArray{Int,N} + indices::R + end + + LinearIndices(inds::CartesianIndices{N,R}) where {N,R} = LinearIndices{N,R}(inds.indices) + LinearIndices(::Tuple{}) = LinearIndices(CartesianIndices(())) + LinearIndices(inds::NTuple{N,AbstractUnitRange{Int}}) where {N} = LinearIndices(CartesianIndices(inds)) + LinearIndices(inds::Vararg{AbstractUnitRange{Int},N}) where {N} = LinearIndices(CartesianIndices(inds)) + LinearIndices(inds::NTuple{N,AbstractUnitRange{<:Integer}}) where {N} = LinearIndices(CartesianIndices(inds)) + LinearIndices(inds::Vararg{AbstractUnitRange{<:Integer},N}) where {N} = LinearIndices(CartesianIndices(inds)) + LinearIndices(index::CartesianIndex) = LinearIndices(CartesianIndices(index)) + LinearIndices(sz::NTuple{N,<:Integer}) where {N} = LinearIndices(CartesianIndices(sz)) + LinearIndices(inds::NTuple{N,Union{<:Integer,AbstractUnitRange{<:Integer}}}) where {N} = LinearIndices(CartesianIndices(inds)) + LinearIndices(A::AbstractArray) = LinearIndices(CartesianIndices(A)) + + # AbstractArray implementation + Base.IndexStyle(::Type{LinearIndices{N,R}}) where {N,R} = IndexCartesian() + Compat.axes(iter::LinearIndices{N,R}) where {N,R} = iter.indices + Base.size(iter::LinearIndices{N,R}) where {N,R} = length.(iter.indices) + @inline function Base.getindex(iter::LinearIndices{N,R}, I::Vararg{Int, N}) where {N,R} + dims = length.(iter.indices) + #without the inbounds, this is slower than Base._sub2ind(iter.indices, I...) + @inbounds result = reshape(1:prod(dims), dims)[(I .- first.(iter.indices) .+ 1)...] + return result + end +elseif VERSION < v"0.7.0-DEV.3395" + Base.size(iter::LinearIndices{N,R}) where {N,R} = length.(iter.indices) +end + +@static if !isdefined(Base, Symbol("@info")) + macro info(msg, args...) + return :(info($(esc(msg)), prefix = "Info: ")) + end +else + @eval const $(Symbol("@info")) = Base.$(Symbol("@info")) +end +@static if !isdefined(Base, Symbol("@warn")) + macro warn(msg, args...) + return :(warn($(esc(msg)), prefix = "Warning: ")) + end +else + @eval const $(Symbol("@warn")) = Base.$(Symbol("@warn")) +end + +const DEBUG = Ref(false) # debug printing off by default, as on 0.7 +enable_debug(x::Bool) = DEBUG[] = x +@static if !isdefined(Base, Symbol("@debug")) + function debug(msg) + DEBUG[] || return + buf = IOBuffer() + iob = Base.redirect(IOContext(buf, STDERR), Base.log_info_to, :debug) + print_with_color(:blue, iob, "Debug: "; bold = true) + Base.println_with_color(:blue, iob, chomp(string(msg))) + print(STDERR, String(take!(buf))) + return + end + macro debug(msg, args...) + return :(debug($(esc(msg)))) + end +else + @eval const $(Symbol("@debug")) = Base.$(Symbol("@debug")) +end +@static if !isdefined(Base, Symbol("@error")) + function _error(msg) + buf = IOBuffer() + iob = Base.redirect(IOContext(buf, STDERR), Base.log_error_to, :error) + print_with_color(Base.error_color(), iob, "Error: "; bold = true) + Base.println_with_color(Base.error_color(), iob, chomp(string(msg))) + print(STDERR, String(take!(buf))) + return + end + macro error(msg, args...) + return :(_error($(esc(msg)))) + end +else + @eval const $(Symbol("@error")) = Base.$(Symbol("@error")) +end + +# 0.7.0-DEV.3415 +if !isdefined(Base, :findall) + const findall = find + export findall +end + +@static if !isdefined(Base, :argmin) + if VERSION >= v"0.7.0-DEV.1660" # indmin/indmax return key + const argmin = indmin + const argmax = indmax + else + argmin(x::AbstractArray) = CartesianIndex(ind2sub(x, indmin(x))) + argmin(x::AbstractVector) = indmin(x) + argmin(x::Associative) = first(Iterators.drop(keys(x), indmin(values(x))-1)) + argmax(x::AbstractArray) = CartesianIndex(ind2sub(x, indmax(x))) + argmax(x::AbstractVector) = indmax(x) + argmax(x::Associative) = first(Iterators.drop(keys(x), indmax(values(x))-1)) + end + export argmin, argmax +end + +@static if !isdefined(Base, :parentmodule) + parentmodule(m::Module) = Base.module_parent(m) + parentmodule(f::Function) = Base.function_module(f) + parentmodule(@nospecialize(f), @nospecialize(t)) = Base.function_module(f, t) + parentmodule(t::DataType) = Base.datatype_module(t) + parentmodule(t::UnionAll) = Base.datatype_module(Base.unwrap_unionall(t)) + export parentmodule +end + +@static if !isdefined(Base, :codeunits) + codeunits(s::String) = Vector{UInt8}(s) + ncodeunits(s::Union{String,SubString{String}}) = sizeof(s) + codeunits(s::SubString{String}) = view(codeunits(s.string),1+s.offset:s.offset+sizeof(s)) + export codeunits, ncodeunits +end + +@static if !isdefined(Base, :nameof) + nameof(m::Module) = Base.module_name(m) + nameof(f::Function) = Base.function_name(f) + nameof(t::Union{DataType,UnionAll}) = Base.datatype_name(t) + export nameof +end + +# 0.7.0-DEV.3469 +@static if !isdefined(Base, :GC) + @eval module GC + using Base: gc + const enable = Base.gc_enable + end + export GC +end + +if VERSION < v"0.7.0-DEV.2954" + const Distributed = Base.Distributed +else + import Distributed +end + +@static if VERSION < v"0.7.0-DEV.3656" + const Pkg = Base.Pkg +else + import Pkg +end + +@static if VERSION < v"0.7.0-DEV.3630" + @eval module InteractiveUtils + using Base: @code_llvm, @code_lowered, @code_native, @code_typed, + @code_warntype, @edit, @functionloc, @less, @which, + apropos, code_llvm, code_native, code_warntype, edit, + less, methodswith, subtypes, versioninfo + export @code_llvm, @code_lowered, @code_native, @code_typed, + @code_warntype, @edit, @functionloc, @less, @which, + apropos, code_llvm, code_native, code_warntype, edit, + less, methodswith, subtypes, versioninfo + + @static if VERSION >= v"0.7.0-DEV.2582" + using Base: varinfo + export varinfo + else + const varinfo = whos + export varinfo + end + end +else + import InteractiveUtils +end + +@static if VERSION < v"0.7.0-DEV.3724" + const LibGit2 = Base.LibGit2 +else + import LibGit2 +end + +# 0.7.0-DEV.2695 +@static if !isdefined(Base, :AbstractDisplay) + const AbstractDisplay = Display + export AbstractDisplay +end + +# 0.7.0-DEV.3481 +@static if !isdefined(Base, :bytesavailable) + const bytesavailable = nb_available + export bytesavailable +end + +# 0.7.0-DEV.3583 +@static if !isdefined(Base, :lastindex) + const lastindex = endof + export lastindex +end + +# 0.7.0-DEV.3585 +@static if !isdefined(Base, :printstyled) + printstyled(io::IO, msg...; bold=false, color=:normal) = + Base.print_with_color(color, io, msg...; bold=bold) + printstyled(msg...; bold=false, color=:normal) = + Base.print_with_color(color, STDOUT, msg...; bold=bold) + export printstyled +end + +# 0.7.0-DEV.3455 +@static if !isdefined(Base, :hasmethod) + const hasmethod = method_exists + export hasmethod +end +@static if !isdefined(Base, :objectid) + const objectid = object_id + export objectid +end + +@static if VERSION >= v"0.7.0-DEV.3272" + findnext(xs...) = Base.findnext(xs...) + findfirst(xs...) = Base.findfirst(xs...) + findprev(xs...) = Base.findprev(xs...) + findlast(xs...) = Base.findlast(xs...) +else + struct OccursIn{T} <: Function + x::T + + OccursIn(x::T) where {T} = new{T}(x) + end + (f::OccursIn)(y) = y in f.x + const occursin = OccursIn + export occursin + + zero2nothing(x::Integer) = x == 0 ? nothing : x + zero2nothing(x) = x + + findnext(xs...) = zero2nothing(Base.findnext(xs...)) + findfirst(xs...) = zero2nothing(Base.findfirst(xs...)) + findprev(xs...) = zero2nothing(Base.findprev(xs...)) + findlast(xs...) = zero2nothing(Base.findlast(xs...)) + + Base.findnext(r::Regex, s::AbstractString, idx::Integer) = search(s, r, idx) + Base.findfirst(r::Regex, s::AbstractString) = search(s, r) + Base.findnext(c::EqualTo{Char}, s::AbstractString, i::Integer) = search(s, c.x, i) + Base.findfirst(c::EqualTo{Char}, s::AbstractString) = search(s, c.x) + Base.findnext(b::EqualTo{<:Union{Int8,UInt8}}, a::Vector{<:Union{Int8,UInt8}}, i::Integer) = + search(a, b.x, i) + Base.findfirst(b::EqualTo{<:Union{Int8,UInt8}}, a::Vector{<:Union{Int8,UInt8}}) = + search(a, b.x) + + Base.findnext(c::OccursIn{<:Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}}}, + s::AbstractString, i::Integer) = + search(s, c.x, i) + Base.findfirst(c::OccursIn{<:Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}}}, + s::AbstractString) = + search(s, c.x) + Base.findnext(t::AbstractString, s::AbstractString, i::Integer) = search(s, t, i) + Base.findfirst(t::AbstractString, s::AbstractString) = search(s, t) + + Base.findfirst(delim::EqualTo{UInt8}, buf::IOBuffer) = search(buf, delim.x) + + Base.findprev(c::EqualTo{Char}, s::AbstractString, i::Integer) = rsearch(s, c.x, i) + Base.findlast(c::EqualTo{Char}, s::AbstractString) = rsearch(s, c.x) + Base.findprev(b::EqualTo{<:Union{Int8,UInt8}}, a::Vector{<:Union{Int8,UInt8}}, i::Integer) = + rsearch(a, b.x, i) + Base.findlast(b::EqualTo{<:Union{Int8,UInt8}}, a::Vector{<:Union{Int8,UInt8}}) = + rsearch(a, b.x) + + Base.findprev(c::OccursIn{<:Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}}}, + s::AbstractString, i::Integer) = rsearch(s, c.x, i) + Base.findlast(c::OccursIn{<:Union{Tuple{Vararg{Char}},AbstractVector{Char},Set{Char}}}, + s::AbstractString) = rsearch(s, c.x) + Base.findprev(t::AbstractString, s::AbstractString, i::Integer) = rsearch(s, t, i) + Base.findlast(t::AbstractString, s::AbstractString) = rsearch(s, t) + + findall(b::OccursIn, a) = findin(a, b.x) + # To fix ambiguity + findall(b::OccursIn, a::Number) = a in b.x ? [1] : Vector{Int}() +end + +include("deprecated.jl") + +end # module Compat diff --git a/stdlib/Compat/src/arraymacros.jl b/stdlib/Compat/src/arraymacros.jl new file mode 100644 index 0000000000000..7435ddda743b7 --- /dev/null +++ b/stdlib/Compat/src/arraymacros.jl @@ -0,0 +1,201 @@ +# Julia 0.6 macros to aid in vectorization: @view, @views, @__dot__ (@.), +# backported from Julia 0.6. + +# prior to julia#20247, the replace_ref_end! macro had hygiene bugs +if VERSION < v"0.6.0-dev.2406" + function trailingsize(A, n) + s = 1 + for i=n:ndims(A) + s *= size(A,i) + end + return s + end + replace_ref_end!(ex) = replace_ref_end_!(ex, nothing)[1] + # replace_ref_end_!(ex,withex) returns (new ex, whether withex was used) + function replace_ref_end_!(ex, withex) + used_withex = false + if isa(ex,Symbol) && ex == :end + withex === nothing && error("Invalid use of end") + return withex, true + elseif isa(ex,Expr) + if ex.head == :ref + ex.args[1], used_withex = replace_ref_end_!(ex.args[1],withex) + S = isa(ex.args[1],Symbol) ? ex.args[1]::Symbol : gensym(:S) # temp var to cache ex.args[1] if needed + used_S = false # whether we actually need S + # new :ref, so redefine withex + nargs = length(ex.args)-1 + if nargs == 0 + return ex, used_withex + elseif nargs == 1 + # replace with endof(S) + ex.args[2], used_S = replace_ref_end_!(ex.args[2],:($endof($S))) + else + n = 1 + J = endof(ex.args) + for j = 2:J-1 + exj, used = replace_ref_end_!(ex.args[j],:($size($S,$n))) + used_S |= used + ex.args[j] = exj + if isa(exj,Expr) && exj.head == :... + # splatted object + exjs = exj.args[1] + n = :($n + length($exjs)) + elseif isa(n, Expr) + # previous expression splatted + n = :($n + 1) + else + # an integer + n += 1 + end + end + ex.args[J], used = replace_ref_end_!(ex.args[J],:($trailingsize($S,$n))) + used_S |= used + end + if used_S && S !== ex.args[1] + S0 = ex.args[1] + ex.args[1] = S + ex = Expr(:let, ex, :($S = $S0)) + end + else + # recursive search + for i = eachindex(ex.args) + ex.args[i], used = replace_ref_end_!(ex.args[i],withex) + used_withex |= used + end + end + end + ex, used_withex + end +end + +if !isdefined(Base, Symbol("@view")) + macro view(ex) + if Meta.isexpr(ex, :ref) + ex = replace_ref_end!(ex) + if Meta.isexpr(ex, :ref) + ex = Expr(:call, view, ex.args...) + else # ex replaced by let ...; foo[...]; end + assert(Meta.isexpr(ex, :let) && Meta.isexpr(ex.args[1], :ref)) + ex.args[1] = Expr(:call, view, ex.args[1].args...) + end + Expr(:&&, true, esc(ex)) + else + throw(ArgumentError("Invalid use of @view macro: argument must be a reference expression A[...].")) + end + end + export @view +end + +if !isdefined(Base, Symbol("@views")) + maybeview(A, args...) = getindex(A, args...) + maybeview(A::AbstractArray, args...) = view(A, args...) + maybeview(A::AbstractArray, args::Number...) = getindex(A, args...) + maybeview(A) = getindex(A) + maybeview(A::AbstractArray) = getindex(A) + + _views(x) = x + function _views(ex::Expr) + if ex.head in (:(=), :(.=)) + # don't use view for ref on the lhs of an assignment, + # but still use views for the args of the ref: + lhs = ex.args[1] + Expr(ex.head, Meta.isexpr(lhs, :ref) ? + Expr(:ref, map(_views, lhs.args)...) : _views(lhs), + _views(ex.args[2])) + elseif ex.head == :ref + Expr(:call, maybeview, map(_views, ex.args)...) + else + h = string(ex.head) + # don't use view on the lhs of an op-assignment a[i...] += ... + if last(h) == '=' && Meta.isexpr(ex.args[1], :ref) + lhs = ex.args[1] + + # temp vars to avoid recomputing a and i, + # which will be assigned in a let block: + a = gensym(:a) + i = [gensym(:i) for k = 1:length(lhs.args)-1] + + # for splatted indices like a[i, j...], we need to + # splat the corresponding temp var. + I = similar(i, Any) + for k = 1:length(i) + if Meta.isexpr(lhs.args[k+1], :...) + I[k] = Expr(:..., i[k]) + lhs.args[k+1] = lhs.args[k+1].args[1] # unsplat + else + I[k] = i[k] + end + end + + Expr(:let, + Expr(first(h) == '.' ? :(.=) : :(=), :($a[$(I...)]), + Expr(:call, Symbol(h[1:end-1]), + :($maybeview($a, $(I...))), + map(_views, ex.args[2:end])...)), + :($a = $(_views(lhs.args[1]))), + [:($(i[k]) = $(_views(lhs.args[k+1]))) for k=1:length(i)]...) + else + Expr(ex.head, map(_views, ex.args)...) + end + end + end + + macro views(x) + esc(_views(replace_ref_end!(x))) + end + export @views +end + +# we can't define @. because that doesn't parse in Julia < 0.6, but +# we can define @__dot__, which is what @. is sugar for: +if !isdefined(Base, Symbol("@__dot__")) + dottable(x) = false # avoid dotting spliced objects (e.g. view calls inserted by @view) + dottable(x::Symbol) = !Base.isoperator(x) || first(string(x)) != '.' || x == :.. # don't add dots to dot operators + dottable(x::Expr) = x.head != :$ + undot(x) = x + function undot(x::Expr) + if x.head == :.= + Expr(:(=), x.args...) + elseif x.head == :block # occurs in for x=..., y=... + Expr(:block, map(undot, x.args)...) + else + x + end + end + __dot__(x) = x + function __dot__(x::Expr) + dotargs = map(__dot__, x.args) + if x.head == :call && dottable(x.args[1]) + Expr(:., dotargs[1], Expr(:tuple, dotargs[2:end]...)) + elseif x.head == :$ + x.args[1] + elseif x.head == :let # don't add dots to "let x=... assignments + Expr(:let, dotargs[1], map(undot, dotargs[2:end])...) + elseif x.head == :for # don't add dots to for x=... assignments + Expr(:for, undot(dotargs[1]), dotargs[2]) + elseif (x.head == :(=) || x.head == :function || x.head == :macro) && + Meta.isexpr(x.args[1], :call) # function or macro definition + Expr(x.head, x.args[1], dotargs[2]) + else + head = string(x.head) + if last(head) == '=' && first(head) != '.' + Expr(Symbol('.',head), dotargs...) + else + Expr(x.head, dotargs...) + end + end + end + macro __dot__(x) + esc(__dot__(x)) + end + macro dotcompat(x) + esc(_compat(__dot__(x))) + end + export @__dot__, @dotcompat +else + # in 0.6, use the __dot__ function from Base.Broadcast + macro dotcompat(x) + esc(_compat(Base.Broadcast.__dot__(x))) + end + export @dotcompat +end diff --git a/stdlib/Compat/src/deprecated.jl b/stdlib/Compat/src/deprecated.jl new file mode 100644 index 0000000000000..b1db48f48dab5 --- /dev/null +++ b/stdlib/Compat/src/deprecated.jl @@ -0,0 +1,58 @@ +function depwarn_ex(msg, name) + return quote + if VERSION >= v"0.6.0" + Base.depwarn($msg, Symbol($name)) + end + end +end + +function primarytype(@nospecialize(t)) + tn = t.name + if isdefined(tn, :primary) + return tn.primary + else + return tn.wrapper + end +end + +export @functorize +macro functorize(f) + code = f === :scalarmax ? :(Base.scalarmax) : + f === :scalarmin ? :(Base.scalarmin) : + f === :centralizedabs2fun ? :(primarytype(typeof(Base.centralizedabs2fun(0)))) : + f + warning = depwarn_ex("@functorize is deprecated as functor objects are no longer supported in julia", "@functorize") + return quote + $warning + $code + end +end + +@static if VERSION >= v"0.6.0" + Base.@deprecate_binding KERNEL Sys.KERNEL + Base.@deprecate_binding UTF8String Core.String + Base.@deprecate_binding ASCIIString Core.String + Base.@deprecate_binding unsafe_convert Base.unsafe_convert + Base.@deprecate_binding remote_do Distributed.remote_do + Base.@deprecate_binding Filesystem Base.Filesystem + Base.@deprecate_binding AsyncCondition Base.AsyncCondition + Base.@deprecate_binding promote_eltype_op Base.promote_eltype_op + @eval Base.@deprecate_binding $(Symbol("@irrational")) Base.$(Symbol("@irrational")) + @eval Base.@deprecate_binding $(Symbol("@blasfunc")) Compat.LinearAlgebra.BLAS.$(Symbol("@blasfunc")) +else + const KERNEL = Sys.KERNEL + const UTF8String = Core.String + const ASCIIString = Core.String + import Base.unsafe_convert + import Base.remote_do + import Base.Filesystem + import Base.AsyncCondition + import Base.promote_eltype_op + import Base.@irrational + import Base.LinAlg.BLAS.@blasfunc +end + +if VERSION < v"0.7.0-DEV.2915" + const textwidth = Compat.Unicode.textwidth + export textwidth +end diff --git a/stdlib/Compat/test/REQUIRE b/stdlib/Compat/test/REQUIRE new file mode 100644 index 0000000000000..dbe36550b664b --- /dev/null +++ b/stdlib/Compat/test/REQUIRE @@ -0,0 +1 @@ +OffsetArrays diff --git a/stdlib/Compat/test/runtests.jl b/stdlib/Compat/test/runtests.jl new file mode 100644 index 0000000000000..afa75c929e4bc --- /dev/null +++ b/stdlib/Compat/test/runtests.jl @@ -0,0 +1,1396 @@ +using Compat +using Compat.Test +using Compat.LinearAlgebra +using Compat.SparseArrays + +@test isempty(detect_ambiguities(Base, Core, Compat)) + +const struct_sym = VERSION < v"0.7.0-DEV.1263" ? :type : :struct + +# Issue #291 +# 0.6 +@test (1, 2) == @compat abs.((1, -2)) +@test broadcast(+, (1.0, 1.0), (0, -2.0)) == (1.0,-1.0) + +# Test for `take!(::Task)`/`take!(::Channel)` +# 0.6 +dirwalk = mktempdir() +cd(dirwalk) do + for i=1:2 + mkdir("sub_dir$i") + open("file$i", "w") do f end + + mkdir(joinpath("sub_dir1", "subsub_dir$i")) + touch(joinpath("sub_dir1", "file$i")) + end + touch(joinpath("sub_dir2", "file_dir2")) + has_symlinks = Compat.Sys.isunix() ? true : (isdefined(Base, :WINDOWS_VISTA_VER) && Base.windows_version() >= Base.WINDOWS_VISTA_VER) + follow_symlink_vec = has_symlinks ? [true, false] : [false] + has_symlinks && symlink(abspath("sub_dir2"), joinpath("sub_dir1", "link")) + for follow_symlinks in follow_symlink_vec + chnl = walkdir(".", follow_symlinks=follow_symlinks) + root, dirs, files = take!(chnl) + @test root == "." + @test dirs == ["sub_dir1", "sub_dir2"] + @test files == ["file1", "file2"] + + root, dirs, files = take!(chnl) + @test root == joinpath(".", "sub_dir1") + @test dirs == (has_symlinks ? ["link", "subsub_dir1", "subsub_dir2"] : ["subsub_dir1", "subsub_dir2"]) + @test files == ["file1", "file2"] + + root, dirs, files = take!(chnl) + if follow_symlinks + @test root == joinpath(".", "sub_dir1", "link") + @test dirs == [] + @test files == ["file_dir2"] + root, dirs, files = take!(chnl) + end + for i=1:2 + @test root == joinpath(".", "sub_dir1", "subsub_dir$i") + @test dirs == [] + @test files == [] + root, dirs, files = take!(chnl) + end + + @test root == joinpath(".", "sub_dir2") + @test dirs == [] + @test files == ["file_dir2"] + end + + for follow_symlinks in follow_symlink_vec + chnl = walkdir(".", follow_symlinks=follow_symlinks, topdown=false) + root, dirs, files = take!(chnl) + if follow_symlinks + @test root == joinpath(".", "sub_dir1", "link") + @test dirs == [] + @test files == ["file_dir2"] + root, dirs, files = take!(chnl) + end + for i=1:2 + @test root == joinpath(".", "sub_dir1", "subsub_dir$i") + @test dirs == [] + @test files == [] + root, dirs, files = take!(chnl) + end + @test root == joinpath(".", "sub_dir1") + @test dirs == (has_symlinks ? ["link", "subsub_dir1", "subsub_dir2"] : ["subsub_dir1", "subsub_dir2"]) + @test files == ["file1", "file2"] + + root, dirs, files = take!(chnl) + @test root == joinpath(".", "sub_dir2") + @test dirs == [] + @test files == ["file_dir2"] + + root, dirs, files = take!(chnl) + @test root == "." + @test dirs == ["sub_dir1", "sub_dir2"] + @test files == ["file1", "file2"] + end + #test of error handling + chnl_error = walkdir(".") + chnl_noerror = walkdir(".", onerror=x->x) + root, dirs, files = take!(chnl_error) + @test root == "." + @test dirs == ["sub_dir1", "sub_dir2"] + @test files == ["file1", "file2"] + + rm(joinpath("sub_dir1"), recursive=true) + @test_throws SystemError take!(chnl_error) # throws an error because sub_dir1 do not exist + + root, dirs, files = take!(chnl_noerror) + @test root == "." + @test dirs == ["sub_dir1", "sub_dir2"] + @test files == ["file1", "file2"] + + root, dirs, files = take!(chnl_noerror) # skips sub_dir1 as it no longer exist + @test root == joinpath(".", "sub_dir2") + @test dirs == [] + @test files == ["file_dir2"] + +end +rm(dirwalk, recursive=true) + +let + # Subset of tests copied from base test/error.jl + function foo_error(c, n) + c[1] += 1 + if c[1] <= n + error("foo") + end + return 7 + end + + # Success on first attempt + c = [0] + @test Compat.retry(foo_error)(c, 0) == 7 + @test c[1] == 1 + + # Success on second attempt + c = [0] + @test Compat.retry(foo_error)(c,1) == 7 + @test c[1] == 2 + + # 2 failed retry attempts, so exception is raised + c = [0] + ex = try + Compat.retry(foo_error, delays=Compat.ExponentialBackOff(n=2))(c, 3) + catch e + e + end + + c = [0] + ex = try + Compat.retry( + foo_error, + check=(s,e)->(s, try e.http_status_code == "503" end != true) + )(c, 2) + catch e + e + end + @test typeof(ex) == ErrorException + @test ex.msg == "foo" + @test c[1] == 2 + + # Functions with keyword arguments + foo_kwargs(x; y=5) = x + y + @test Compat.retry(foo_kwargs)(3) == 8 + @test Compat.retry(foo_kwargs)(3; y=4) == 7 +end + +for os in [:apple, :bsd, :linux, :unix, :windows] + from_base = if VERSION >= v"0.7.0-DEV.914" + Expr(:., Expr(:., :Base, Base.Meta.quot(:Sys)), Base.Meta.quot(Symbol("is", os))) + else + Expr(:., :Base, Base.Meta.quot(Symbol("is_", os))) + end + @eval @test Compat.Sys.$(Symbol("is", os))() == $from_base() +end + +# do-block redirect_std* +# 0.6 +let filename = tempname() + ret = open(filename, "w") do f + redirect_stdout(f) do + println("hello") + [1,3] + end + end + @test ret == [1,3] + @test chomp(read(filename, String)) == "hello" + ret = open(filename, "w") do f + redirect_stderr(f) do + println(STDERR, "WARNING: hello") + [2] + end + end + @test ret == [2] + @test contains(read(filename, String), "WARNING: hello") + ret = open(filename) do f + redirect_stdin(f) do + readline() + end + end + @test contains(ret, "WARNING: hello") + rm(filename) +end + +# 0.6 +@test @__DIR__() == dirname(@__FILE__) + +# PR #17302 +# To be removed when 0.5/0.6 support is dropped. +f17302(a::Number) = a +f17302(a::Number, b::Number) = a + b +Compat.@dep_vectorize_1arg Real f17302 +Compat.@dep_vectorize_2arg Real f17302 +@test_throws MethodError f17302([1im]) +@test_throws MethodError f17302([1im], [1im]) +mktemp() do fname, f + redirect_stderr(f) do + @test f17302([1.0]) == [1.0] + @test f17302(1.0, [1]) == [2.0] + @test f17302([1.0], 1) == [2.0] + @test f17302([1.0], [1]) == [2.0] + end +end + +if VERSION < v"0.7.0-DEV.3017" + types = [ + Bool, + Float16, + Float32, + Float64, + Int128, + Int16, + Int32, + Int64, + Int8, + UInt16, + UInt32, + UInt64, + UInt8, + ] + for T in types + # julia#18510, Nullable constructors + x = @compat Nullable(one(T), true) + @test isnull(x) === false + @test isa(x.value, T) + @test eltype(x) === T + + x = @compat Nullable{T}(one(T), true) + y = @compat Nullable{Any}(one(T), true) + @test isnull(x) === false + @test isnull(y) === false + @test isa(x.value, T) + @test eltype(x) === T + @test eltype(y) === Any + + x = @compat Nullable{T}(one(T), false) + y = @compat Nullable{Any}(one(T), false) + @test isnull(x) === true + @test isnull(y) === true + @test eltype(x) === T + @test eltype(y) === Any + + x = @compat Nullable(one(T), false) + @test isnull(x) === true + @test eltype(x) === T + + x = @compat Nullable{T}() + @test isnull(x) === true + @test eltype(x) === T + + # julia#18484, generic isnull, unsafe_get + a = one(T) + x = @compat Nullable(a, true) + @test isequal(unsafe_get(x), a) + + x = @compat Nullable{Array{T}}() + @test_throws UndefRefError unsafe_get(x) + end +end + +@test xor(1,5) == 4 +@test 1 ⊻ 5 == 4 + +# julia#20414 +@compat let T = Array{<:Real}, f(x::AbstractVector{<:Real}) = 1 + @test isa([3,4],T) + @test !isa([3,4im],T) + @test f(1:3) == f([1,2]) == 1 +end +@compat let T = Array{>:Integer}, f(x::AbstractVector{>:Integer}) = 1 + @test isa(Integer[1,2],T) + @test !isa([3,4],T) + @test !isa([3.0,4.0],T) + @test f(Integer[1,2]) == f([1,'a',:sym]) == 1 +end + +# supertype operator +@test !(Int >: Integer) +@test Integer >: Int + +# julia#19246 +@test numerator(1//2) === 1 +@test denominator(1//2) === 2 + +# julia#19088 +let io = IOBuffer() + write(io, "aaa") + @test take!(io) == UInt8['a', 'a', 'a'] + write(io, "bbb") + @test String(take!(io)) == "bbb" +end + +# julia#17510 +let x = [1,2,3] + @compat x .= [3,4,5] + @test x == [3,4,5] + @compat x .= x .== 4 + @test x == [0,1,0] + @compat x .= 7 + @test x == [7,7,7] +end + +let s = "Koala test: 🐨" + @test transcode(UInt16, s) == UInt16[75,111,97,108,97,32,116,101,115,116,58,32,55357,56360] + @test transcode(UInt32, s) == UInt32[75,111,97,108,97,32,116,101,115,116,58,32,128040] + for T in (UInt8,UInt16,UInt32,Cwchar_t) + @test transcode(Compat.String, transcode(T, s)) == s + @test transcode(UInt8, transcode(T, s)) == codeunits(s) + @test transcode(T, s) == transcode(T, codeunits(s)) == transcode(T, transcode(T, s)) + end +end + +# julia#17155, tests from Base Julia +@test (Compat.Unicode.uppercase∘hex)(239487) == "3A77F" +let str = "aBcDeFgHiJ" + @test filter(!Compat.Unicode.isupper, str) == replace(str, r"[A-Z]" => "") + @test filter(!Compat.Unicode.islower, str) == replace(str, r"[a-z]" => "") +end + +# julia#19950, tests from Base (#20028) +for T in (Float16, Float32, Float64, BigFloat, Int8, Int16, Int32, Int64, Int128, + BigInt, UInt8, UInt16, UInt32, UInt64, UInt128) + @test iszero(T(0)) + @test iszero(Complex{T}(0)) + if T<:Integer + @test iszero(Rational{T}(0)) + end + if T<:AbstractFloat + @test iszero(T(-0.0)) + @test iszero(Complex{T}(-0.0)) + end +end +@test !iszero([0, 1, 2, 3]) +@test iszero([0, 0, 0, 0]) + +let + x = view(1:10, 2:4) + D = Diagonal(x) + @test D[1,1] == 2 + @test D[3,3] == 4 + A = view(rand(5,5), 1:3, 1:3) + @test D*A == Diagonal(copy(x)) * copy(A) + @test A*D == copy(A) * Diagonal(copy(x)) +end + +# julia#17623 +# 0.6 +@test [true, false] .& [true, true] == [true, false] +@test [true, false] .| [true, true] == [true, true] + +# julia#20022 +@test !Compat.isapprox(NaN, NaN) +@test Compat.isapprox(NaN, NaN, nans=true) + +# julia#13998 +for x in (3.1, -17, 3//4, big(111.1), Inf) + local x + @test min(x) == max(x) == x + @test minmax(x) == (x, x) +end + +# julia#20006 +@compat abstract type AbstractFoo20006 end +eval(Expr( + struct_sym, false, + Expr(:(<:), :(ConcreteFoo20006{T<:Int}), :AbstractFoo20006), + quote end)) +eval(Expr( + struct_sym, false, + Expr(:(<:), :(ConcreteFoo20006N{T<:Int,N}), :AbstractFoo20006), + quote end)) +@compat ConcreteFoo200061{T<:Int} = ConcreteFoo20006N{T,1} +@test Compat.TypeUtils.isabstract(AbstractFoo20006) +@test !Compat.TypeUtils.isabstract(ConcreteFoo20006) +@test !Compat.TypeUtils.isabstract(ConcreteFoo20006N) +@test !Compat.TypeUtils.isabstract(ConcreteFoo200061) +@test !Compat.TypeUtils.isabstract(StridedArray) +@test Compat.TypeUtils.parameter_upper_bound(ConcreteFoo20006, 1) == Int +@test isa(Compat.TypeUtils.typename(Array), TypeName) +@test isabstracttype(AbstractFoo20006) +@test !isabstracttype(ConcreteFoo20006) +@test !isabstracttype(ConcreteFoo20006N) +@test !isabstracttype(ConcreteFoo200061) +@test !isabstracttype(StridedArray) + +# @view and @views tests copied from Base +let X = reshape(1:24,2,3,4), Y = 4:-1:1 + @test isa(@view(X[1:3]), SubArray) + + @test X[1:end] == @dotcompat (@view X[1:end]) # test compatibility of @. and @view + @test X[1:end-3] == @view X[1:end-3] + @test X[1:end,2,2] == @view X[1:end,2,2] + @test reshape(X[1,2,1:end-2],2) == @view X[1,2,1:end-2] + @test reshape(X[1,2,Y[2:end]],3) == @view X[1,2,Y[2:end]] + @test reshape(X[1:end,2,Y[2:end]],2,3) == @view X[1:end,2,Y[2:end]] + + u = (1,2:3) + @test reshape(X[u...,2:end],2,3) == @view X[u...,2:end] + @test reshape(X[(1,)...,(2,)...,2:end],3) == @view X[(1,)...,(2,)...,2:end] + + # the following tests fail on 0.5 because of bugs in the 0.5 Base.@view + # macro (a bugfix is scheduled to be backported from 0.6: julia#20247) + if !isdefined(Base, Symbol("@view")) || VERSION ≥ v"0.6.0-dev.2406" + # test macro hygiene + let size=(x,y)-> error("should not happen"), Base=nothing + @test X[1:end,2,2] == @view X[1:end,2,2] + end + + # test that side effects occur only once + let foo = typeof(X)[X] + @test X[2:end-1] == @view (push!(foo,X)[1])[2:end-1] + @test foo == typeof(X)[X, X] + end + end + + # test @views macro + @views @compat let f!(x) = x[1:end-1] .+= x[2:end].^2 + x = [1,2,3,4] + f!(x) + @test x == [5,11,19,4] + @test isa(x[1:3],SubArray) + @test x[2] === 11 + @test Dict((1:3) => 4)[1:3] === 4 + x[1:2] = 0 + @test x == [0,0,19,4] + x[1:2] .= 5:6 + @test x == [5,6,19,4] + f!(x[3:end]) + @test x == [5,6,35,4] + x[Y[2:3]] .= 7:8 + @test x == [5,8,7,4] + @dotcompat x[(3,)..., ()...] += 3 # @. should convert to .+=, test compatibility with @views + @test x == [5,8,10,4] + i = Int[] + # test that lhs expressions in update operations are evaluated only once: + x[push!(i,4)[1]] += 5 + @test x == [5,8,10,9] && i == [4] + x[push!(i,3)[end]] += 2 + @test x == [5,8,12,9] && i == [4,3] + @dotcompat x[3:end] = 0 # make sure @. works with end expressions in @views + @test x == [5,8,0,0] + end + # same tests, but make sure we can switch the order of @compat and @views + @compat @views let f!(x) = x[1:end-1] .+= x[2:end].^2 + x = [1,2,3,4] + f!(x) + @test x == [5,11,19,4] + @test isa(x[1:3],SubArray) + @test x[2] === 11 + @test Dict((1:3) => 4)[1:3] === 4 + x[1:2] = 0 + @test x == [0,0,19,4] + x[1:2] .= 5:6 + @test x == [5,6,19,4] + f!(x[3:end]) + @test x == [5,6,35,4] + x[Y[2:3]] .= 7:8 + @test x == [5,8,7,4] + @dotcompat x[(3,)..., ()...] += 3 # @. should convert to .+=, test compatibility with @views + @test x == [5,8,10,4] + i = Int[] + # test that lhs expressions in update operations are evaluated only once: + x[push!(i,4)[1]] += 5 + @test x == [5,8,10,9] && i == [4] + x[push!(i,3)[end]] += 2 + @test x == [5,8,12,9] && i == [4,3] + @dotcompat x[3:end] = 0 # make sure @. works with end expressions in @views + @test x == [5,8,0,0] + end + @views @test isa(X[1:3], SubArray) + @test X[1:end] == @views X[1:end] + @test X[1:end-3] == @views X[1:end-3] + @test X[1:end,2,2] == @views X[1:end,2,2] + @test reshape(X[1,2,1:end-2],2) == @views X[1,2,1:end-2] + @test reshape(X[1,2,Y[2:end]],3) == @views X[1,2,Y[2:end]] + @test reshape(X[1:end,2,Y[2:end]],2,3) == @views X[1:end,2,Y[2:end]] + @test reshape(X[u...,2:end],2,3) == @views X[u...,2:end] + @test reshape(X[(1,)...,(2,)...,2:end],3) == @views X[(1,)...,(2,)...,2:end] + + # test macro hygiene + let size=(x,y)-> error("should not happen"), Base=nothing + @test X[1:end,2,2] == @views X[1:end,2,2] + end +end + +# @. (@__dot__) tests, from base: +let x = [4, -9, 1, -16] + @test [2, 3, 4, 5] == @dotcompat(1 + sqrt($sort(abs(x)))) + @test @dotcompat(x^2) == x.^2 + @dotcompat x = 2 + @test x == [2,2,2,2] +end +@test [1,4,9] == @dotcompat let x = [1,2,3]; x^2; end +let x = [1,2,3], y = x + @dotcompat for i = 1:3 + y = y^2 # should convert to y .= y.^2 + end + @test x == [1,256,6561] +end +let x = [1,2,3] + @dotcompat f(x) = x^2 + @test f(x) == [1,4,9] +end + +# PR #20418 +@compat abstract type Abstract20418{T} <: Ref{T} end +@test Compat.TypeUtils.isabstract(Abstract20418) +@compat primitive type Primitive20418{T} <: Ref{T} 16 end +@test !Compat.TypeUtils.isabstract(Primitive20418) +@test isbits(Primitive20418{Int}) +@test sizeof(Primitive20418{Int}) == 2 + +# julia #18839 +module Test18839 + +using Compat +using Compat.Iterators +using Compat.Test + +@test collect(take(countfrom(2), 3)) == [2, 3, 4] +@test collect(take(cycle(5:8), 9)) == [5:8; 5:8; 5] +@test collect(drop([1, 2, 3], 2)) == [3] +@test collect(enumerate([4, 5, 6])) == [(1,4), (2,5), (3,6)] +@test collect(flatten(Any[1:2, 4:5, Any[-1, 4]])) == [1,2,4,5,-1,4] +@test vec(collect(product([1, 2], [3, 4]))) == [(1,3), (2,3), (1,4), (2,4)] +@test vec(collect(product(1:2, 1:2, 1:2))) == [ + (1,1,1), (2,1,1), (1,2,1), (2,2,1), + (1,1,2), (2,1,2), (1,2,2), (2,2,2)] +@test collect(take(repeated(10), 5)) == [10,10,10,10,10] +@test collect(rest(1:10, 5)) == [5,6,7,8,9,10] +@test collect(take([1, 2, 3], 2)) == [1, 2] +@test collect(zip([1,2], [3,4])) == [(1,3), (2,4)] +@test collect(partition(1:5, 2)) == Any[[1,2],[3,4],[5]] + +end + +# PR #20500 +@compat A20500{T<:Integer} = Array{T,20500} +@compat const A20500_2{T<:Union{Int,Float32}} = Pair{T,T} +f20500() = A20500 +f20500_2() = A20500_2 +@inferred f20500() +@inferred f20500_2() + +module CompatArray + using Compat + const struct_sym = VERSION < v"0.7.0-DEV.1263" ? :type : :struct + eval(Expr( + struct_sym, false, + Expr(:(<:), :(CartesianArray{T,N}), :(AbstractArray{T,N})), + quote + parent::Array{T,N} + end)) + eval(Expr( + struct_sym, false, + Expr(:(<:), :(LinearArray{T,N}), :(AbstractArray{T,N})), + quote + parent::Array{T,N} + end)) + @compat Base.IndexStyle(::Type{<:LinearArray}) = IndexLinear() +end +@test IndexStyle(Array{Float32,2}) === IndexLinear() +@test IndexStyle(CompatArray.CartesianArray{Float32,2}) === IndexCartesian() +@test IndexStyle(CompatArray.LinearArray{Float32,2}) === IndexLinear() +let a = CompatArray.CartesianArray(rand(2,3)), b = CompatArray.LinearArray(rand(2,3)) + @test IndexStyle(a) === IndexCartesian() + @test IndexStyle(b) === IndexLinear() +end + +if VERSION < v"0.6.0-dev.1653" + for (A,val) in ((zeros(1:5, Float32, 3, 2), 0), + (ones(1:5, Float32, 3, 2), 1), + (zeros(1:5, Float32, (3, 2)), 0), + (ones(1:5, Float32, (3, 2)), 1)) + @test isa(A, Matrix{Float32}) && size(A) == (3,2) && all(x->x==val, A) + end + for (A,val) in ((zeros(1:5, Float32), 0), + (ones(1:5, Float32), 1)) + @test isa(A, Vector{Float32}) && size(A) == (5,) && all(x->x==val, A) + end +end + +# PR 20203 +@test Compat.readline(IOBuffer("Hello, World!\n")) == "Hello, World!" +@test Compat.readline(IOBuffer("x\n"), keep=false) == "x" +@test Compat.readline(IOBuffer("x\n"), keep=true) == "x\n" + +# PR 18727 +let + iset = Set([17, 4711]) + cfset = convert(Set{Float64}, iset) + @test typeof(cfset) == Set{Float64} + @test cfset == iset + fset = Set([17.0, 4711.0]) + ciset = convert(Set{Int}, fset) + @test typeof(ciset) == Set{Int} + @test ciset == fset + ssset = Set(split("foo bar")) + cssset = convert(Set{String}, ssset) + @test typeof(cssset) == Set{String} + @test cssset == Set(["foo", "bar"]) +end + +# PR 18082 +@test !isassigned(Ref{String}()) +@test isassigned(Ref{String}("Test")) + +@test unsafe_trunc(Int8, 128) === Int8(-128) +@test_throws InexactError trunc(Int8, 128) + +# PR 21346 +let zbuf = IOBuffer([0xbf, 0xc0, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, + 0x40, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) + z1 = read(zbuf, ComplexF32) + z2 = read(zbuf, ComplexF64) + @test bswap(z1) === -1.5f0 + 2.5f0im + @test bswap(z2) === 3.5 - 4.5im +end + +# PR 19449 +using Compat: StringVector +@test length(StringVector(5)) == 5 +@test String(fill!(StringVector(5), 0x61)) == "aaaaa" + +# collect +if VERSION < v"0.7.0-" + # Note: This is disabled on 0.7, since the Compat.collect functionality is only + # applicable on 0.5, and OffsetArrays currently has some incompatibilities with + # 0.7. This can be reenabled later if needed. + using OffsetArrays + a = OffsetArray(1:3, -1:1) + b = Compat.collect(a) + @test indices(b) === (Base.OneTo(3),) + @test b == [1,2,3] +end + +# PR 22064 +module Test22064 +using Compat +using Compat.Test +@test (@__MODULE__) === Test22064 +end + +# invokelatest +issue19774(x) = 1 +let foo() = begin + eval(:(issue19774(x::Int) = 2)) + return Compat.invokelatest(issue19774, 0) + end + @test foo() == 2 +end +cm359() = @__MODULE__ +@test Compat.invokelatest(cm359) === @__MODULE__ + +pr22646(x; y=0) = 1 +let foo() = begin + eval(:(pr22646(x::Int; y=0) = 2)) + return Compat.invokelatest(pr22646, 0, y=1) + end + @test foo() == 2 +end + +# PR 21378 +let + import Compat: Dates + + # https://en.wikipedia.org/wiki/Swatch_Internet_Time + eval(Expr( + struct_sym, false, + Expr(:(<:), :Beat, :(Dates.Period)), + quote + value::Int64 + end)) + + Dates.value(b::Beat) = b.value + Dates.toms(b::Beat) = Dates.value(b) * 86400 + Dates._units(b::Beat) = " beat" * (abs(Dates.value(b)) == 1 ? "" : "s") + Base.promote_rule(::Type{Dates.Day}, ::Type{Beat}) = Dates.Millisecond + Base.convert(::Type{Dates.Millisecond}, b::Beat) = Dates.Millisecond(Dates.toms(b)) + + @test Beat(1000) == Dates.Day(1) + @test Beat(1) < Dates.Day(1) + @test_throws MethodError Dates.Day(30) == Dates.Month(1) + @test_throws MethodError Dates.Month(1) == Dates.Day(30) + @test_throws MethodError Dates.Day(1) < Dates.Month(1) + @test_throws MethodError Dates.Month(1) < Dates.Day(1) +end + +# PR #21197 +let c = `ls -l "foo bar"` + @test collect(c) == ["ls", "-l", "foo bar"] + @test first(c) == "ls" == c[1] + @test last(c) == "foo bar" == c[3] == c[end] + @test c[1:2] == ["ls", "-l"] + @test eltype(c) == String + @test length(c) == 3 + @test eachindex(c) == 1:3 +end + +# PR 22629 +@test logdet(0.5) == log(det(0.5)) + +# PR 22633 +for T in (Float64, ComplexF32, BigFloat, Int) + λ = T(4) + @test chol(λ*I).λ ≈ √λ + @test_throws Union{ArgumentError,Compat.LinearAlgebra.PosDefException} chol(-λ*I) +end + +let + @compat cr(::CartesianIndices{2}) = 2 + @test cr(CartesianIndices((5, 3))) == 2 + @test_throws MethodError cr(CartesianIndices((5, 3, 2))) +end +if VERSION < v"0.7.0-DEV.880" + # ensure we don't bork any non-updated expressions + let + @compat cr(::CartesianRange{CartesianIndex{2}}) = 2 + @test cr(CartesianRange((5, 3))) == 2 + @test_throws MethodError cr(CartesianRange((5, 3, 2))) + end +end + +# PR 22350 +eval(Expr(struct_sym, false, :TestType, Expr(:block, :(a::Int), :b))) +@test fieldcount(TestType) == 2 +@test fieldcount(Int) == 0 + +# PR 20005 +@test_throws InexactError throw(InexactError(:func, Int, 3.2)) + +# PR 22751 +@test_throws DomainError throw(DomainError(-2)) +@test_throws DomainError throw(DomainError(-2, "negative")) + +# PR 22761 +@test_throws OverflowError throw(OverflowError("overflow")) + +let x = fill!(StringVector(5), 0x61) + # 0.7 + @test pointer(x) == pointer(String(x)) +end + +# PR 22907 +using Compat: pairs + +# keys, values, pairs +for A in (rand(2), rand(2,3)) + local A + for (i, v) in pairs(A) + @test A[i] == v + end + @test collect(values(A)) == collect(A) +end + +let A = Dict(:foo=>1, :bar=>3) + for (k, v) in pairs(A) + @test A[k] == v + end + @test sort!(collect(pairs(A))) == sort!(collect(A)) +end + +let + A14 = [11 13; 12 14] + R = CartesianIndices(Compat.axes(A14)) + @test [a for (a,b) in pairs(IndexLinear(), A14)] == [1,2,3,4] + @test [a for (a,b) in pairs(IndexCartesian(), A14)] == vec(collect(R)) + @test [b for (a,b) in pairs(IndexLinear(), A14)] == [11,12,13,14] + @test [b for (a,b) in pairs(IndexCartesian(), A14)] == [11,12,13,14] +end + +# Val(x) +# 0.7 +begin + local firstlast + firstlast(::Val{true}) = "First" + firstlast(::Val{false}) = "Last" + + @test firstlast(Val(true)) == "First" + @test firstlast(Val(false)) == "Last" +end + +# Reshape to a given number of dimensions using Val(N) +# 0.7 +let + for A in (rand(Float64, ()), rand(2), rand(2,3), rand(2,3,5), rand(2,3,5,7)), N in (1,2,3,4,5,6) + B = @inferred reshape(A, Val(N)) + @test ndims(B) == N + if N < ndims(A) + new_sz = (size(A)[1:N-1]..., prod(size(A)[N:end])) + elseif N == ndims(A) + new_sz = size(A) + else + new_sz = (size(A)..., ntuple(x->1, N-ndims(A))...) + end + @test size(B) == new_sz + @test B == reshape(A, new_sz) + end +end + +# ntuple with Val(N) +# 0.7 +@test @inferred(ntuple(x->1, Val(3))) == (1,1,1) +@test @inferred(ntuple(x->x, Val(0))) == () +@test @inferred(ntuple(x->x, Val(5))) == (1,2,3,4,5) + +# @nospecialize +# 0.7 +no_specialize(@nospecialize(x)) = sin(1) +no_specialize(@nospecialize(x::Integer)) = sin(2) +@test no_specialize(1.0) == sin(1) +@test no_specialize(1) == sin(2) +no_specialize_kw1(@nospecialize(x=0)) = sin(1) +no_specialize_kw1(@nospecialize(x::Integer)) = sin(2) +@test no_specialize_kw1(1.0) == sin(1) +@test no_specialize_kw1(1) == sin(2) +@test no_specialize_kw1() == sin(2) +no_specialize_kw2(@nospecialize(x)) = sin(1) +no_specialize_kw2(@nospecialize(x::Integer=0)) = sin(2) +@test no_specialize_kw2(1.0) == sin(1) +@test no_specialize_kw2(1) == sin(2) +@test no_specialize_kw2() == sin(2) + +# 0.7 +@test read(IOBuffer("aaaa"), String) == "aaaa" +@test contains(read(@__FILE__, String), "read(@__FILE__, String)") +@test read(`$(Base.julia_cmd()) --startup-file=no -e "println(:aaaa)"`, String) == "aaaa\n" + +# 0.7 +@test isa(1:2, AbstractRange) + +# 0.7 +let M = [1 + 2im 3 + 4im; 5 + 6im 7 + 8im], + M2 = adjoint(copy(M)), + Mc = [1 - 2im 5 - 6im; 3 - 4im 7 - 8im] + + @test adjoint(M) == Mc + M2 .= 0 + adjoint!(M2, M) + @test M2 == Mc +end + +# 0.7 +module TestMathConstants +using Compat.MathConstants +end +for name in [:π, :pi, :ℯ, :e, :γ, :eulergamma, :catalan, :φ, :golden] + @test isdefined(TestMathConstants, name) && !Base.isdeprecated(TestMathConstants, name) + @test isdefined(Compat.MathConstants, name) && !Base.isdeprecated(Compat.MathConstants, name) +end +module TestMathConstants2 +using Compat +end +@test isdefined(TestMathConstants2, :ℯ) && !Base.isdeprecated(TestMathConstants, :ℯ) + +# 0.7 +@test partialsort([3,6,30,1,9], 2, rev=true) == 9 +@test partialsort([3,6,30,1,9], 2, by=x->1/x) == 9 +@test partialsortperm([3,6,30,1,9], 2, rev=true) == 5 +@test partialsortperm([3,6,30,1,9], 2, by=x->1/x) == 5 + +# 0.7 +@test isa(Base.rtoldefault(1.0, 2.0, 0), Float64) +@test isa(Base.rtoldefault(Float64, 2.0, 0), Float64) +@test isa(Base.rtoldefault(1.0, Float64, 0), Float64) +@test isa(Base.rtoldefault(Float64, Float64, 0), Float64) +@test Base.rtoldefault(Float64, Float64, 1.0) === 0.0 + +# 0.7 +@test cov([1 2; 3 4], 1, corrected=true) == fill(2.0, 2, 2) +@test cov([1 2; 3 4], 1, corrected=false) == fill(1.0, 2, 2) +@test cov([1 2; 3 4], [0 4; 8 9], 1, corrected=true) == [8.0 5.0; 8.0 5.0] +@test cov([1 2; 3 4], [0 4; 8 9], 1, corrected=false) == [4.0 2.5; 4.0 2.5] +if VERSION >= v"0.6" + @test cov([1, 2], corrected=true) === 0.5 + @test cov([1, 2], corrected=false) === 0.25 + @test cov([1, 2], [0, 10], corrected=true) === 5.0 + @test cov([1, 2], [0, 10], corrected=false) === 2.5 +end + +# 0.7 +@test isconcretetype(Int) + +# 0.7 +module Test23876 + using Compat + using Compat.Test + import Compat.DelimitedFiles + using Compat.Mmap, Compat.SharedArrays + using Compat.Distributed + @test isdefined(@__MODULE__, :DelimitedFiles) + @test isdefined(SharedArrays, :SharedArray) + @test isdefined(@__MODULE__, :SharedArray) + @test isdefined(@__MODULE__, :procs) + @test isdefined(@__MODULE__, :remote_do) + @test isdefined(Mmap, :mmap) +end + +# 0.7 +module Test24459 + using Compat + using Compat.Test + using Compat.Dates + @test isdefined(@__MODULE__, :Dates) +end + +# 0.7 +module Test25056 + using Compat + using Compat.Test + using Compat.Printf + @test isdefined(@__MODULE__, :Printf) + @test isdefined(@__MODULE__, Symbol("@printf")) + @test isdefined(@__MODULE__, Symbol("@sprintf")) +end + +# 0.7 +module Test24714 + using Compat + using Compat.Test + using Compat.IterativeEigensolvers + @test isdefined(@__MODULE__, :IterativeEigensolvers) + @test isdefined(@__MODULE__, :eigs) + @test isdefined(@__MODULE__, :svds) +end + +# 0.7 +module Test24648 + using Compat + using Compat.Test + using Compat.SuiteSparse + @test isdefined(@__MODULE__, :SuiteSparse) +end + +let a = [0,1,2,3,0,1,2,3] + @test findfirst(equalto(3), [1,2,4,1,2,3,4]) == 6 + @test findfirst(!equalto(1), [1,2,4,1,2,3,4]) == 2 + @test findnext(equalto(1), a, 4) == 6 + # @test findnext(equalto(5), a, 4) == 0 + @test findlast(equalto(3), [1,2,4,1,2,3,4]) == 6 + @test findprev(equalto(1), a, 4) == 2 + @test findprev(equalto(1), a, 8) == 6 +end + +# 0.7 +@test 'a'*"b" == "a"*'b' == 'a'*'b' == "ab" + +# 0.7 +@test 1 in BitSet(1:10) + +# 0.7.0-DEV.1930 +@test Compat.Unicode.textwidth("A") == 1 +@test Compat.Unicode.textwidth('A') == 1 + +# 0.7 +@test diagm(0 => ones(2), -1 => ones(2)) == [1.0 0.0 0.0; 1.0 1.0 0.0; 0.0 1.0 0.0] +@test diagm(0 => ones(2), 1 => ones(2)) == [1.0 1.0 0.0; 0.0 1.0 1.0; 0.0 0.0 0.0] +@test spdiagm(0 => ones(2), -1 => ones(2)) == [1.0 0.0 0.0; 1.0 1.0 0.0; 0.0 1.0 0.0] +@test spdiagm(0 => ones(2), 1 => ones(2)) == [1.0 1.0 0.0; 0.0 1.0 1.0; 0.0 0.0 0.0] + +# 0.7 +let a = [1 0 0; 0 1 0; 0 0 1] + @test Matrix{Int}(I, 3, 3)::Matrix{Int} == a + @test Matrix{Float64}(I, (3, 2))::Matrix{Float64} == a[:,1:2] + @test Array{Int}(I, (3, 3))::Matrix{Int} == a + @test Array{Float64}(I, 3, 2)::Matrix{Float64} == a[:,1:2] + @test SparseMatrixCSC{Int}(I, 3, 3)::SparseMatrixCSC{Int,Int} == a + @test SparseMatrixCSC{Float64}(I, (3, 2))::SparseMatrixCSC{Float64,Int} == a[:,1:2] + @test SparseMatrixCSC{Bool,Int16}(I, (3, 3))::SparseMatrixCSC{Bool,Int16} == a + @test SparseMatrixCSC{ComplexF64,Int8}(I, 3, 2)::SparseMatrixCSC{ComplexF64,Int8} == a[:,1:2] + + @test Matrix(2I, 3, 3)::Matrix{Int} == Matrix(2I, (3, 3))::Matrix{Int} == 2a + @test Matrix(2.0I, 3, 3)::Matrix{Float64} == Matrix(2.0I, (3, 3))::Matrix{Float64} == 2a +end + +# 0.7.0-DEV.2581 +@test isa(Vector(uninitialized, 2), Vector{Any}) +@test isa(Vector{Float64}(uninitialized, 2), Vector{Float64}) +@test isa(Matrix(uninitialized, 2, 2), Matrix{Any}) +@test isa(Matrix{Float64}(uninitialized, 2, 2), Matrix{Float64}) +@test isa(Array{Float64}(uninitialized, 2, 2), Matrix{Float64}) +@test isa(Array{Float64,3}(uninitialized, 2, 2, 2), Array{Float64,3}) + +# 0.7.0-DEV.2687 +@test isa(BitVector(uninitialized, 2), BitVector) +@test isa(BitArray(uninitialized, 2, 2), BitMatrix) + +# 0.7.0-DEV.1472 +@test get(IOContext(IOBuffer(), :arg1=>true, :arg2=>true, :arg3=>true), :arg3, false) +@test get(IOContext(IOBuffer(), :arg1=>true, :arg2=>true), :arg2, false) + +# 0.7.0-DEV.2338 +module Test24361 + using Compat + using Compat.Test + @test String(Compat.Base64.base64decode("SGVsbG8h")) == "Hello!" +end + +# 0.7 +let A = [1] + local x = 0 + @compat finalizer(a->(x+=1), A) + finalize(A) + @test x == 1 + A = 0 + GC.gc(); GC.gc() + @test x == 1 +end + +# 0.7.0-DEV.1499 +let key = "TEST_23412" + @test !haskey(ENV, key) + @test get(() -> "default", ENV, key) == "default" +end + +# 0.7.0-DEV.2919 +@test ComplexF16 === Complex{Float16} +@test ComplexF32 === Complex{Float32} +@test ComplexF64 === Complex{Float64} + +# 0.7.0-DEV.3073 +if VERSION < v"0.7.0-DEV.3073" + @test Compat.Sys.BINDIR == JULIA_HOME +else + @test Compat.Sys.BINDIR == Sys.BINDIR +end + +# 0.7.0-DEV.2915 +module Test25021 + using Compat + using Compat.Test + using Compat.Unicode + @test isdefined(@__MODULE__, :Unicode) + + @test !isnumeric('a') + @test isnumeric('1') + @test titlecase("firstname lastname") == "Firstname Lastname" +end + +# 0.7.0-DEV.2951 +@test AbstractDict === (isdefined(Base, :AbstractDict) ? Base.AbstractDict : Base.Associative) + +# 0.7.0-DEV.2978 +@test Compat.axes === (isdefined(Base, :axes) ? Base.axes : Base.indices) +@test Compat.axes(1) == () +@test Compat.axes(1,1) == 1:1 + +# 0.7.0-DEV.3137 +@test Nothing === (isdefined(Base, :Nothing) ? Base.Nothing : Base.Void) +@test Nothing === Cvoid + +# 0.7.0-DEV.3017 +@test isa(Some(1), Some{Int}) +@test convert(Some{Float64}, Some(1)) == Some(1.0) +@test convert(Nothing, nothing) == nothing +@test_throws MethodError convert(Nothing, 1) +@test Some(nothing) != nothing +@test coalesce(Some(1)) == 1 +@test coalesce(nothing) == nothing +@test coalesce(nothing, Some(1), Some(2)) == 1 +@test Compat.notnothing(1) == 1 +@test_throws ArgumentError Compat.notnothing(nothing) + +# 0.7.0-DEV.3155 +let coolvec = [1,2,3] + @test pushfirst!(coolvec, 0) == [0,1,2,3] + @test popfirst!(coolvec) == 0 +end + +# 0.7.0-DEV.3309 +let v = [1, 2, 3] + @test Compat.IteratorSize(v) isa Base.HasShape + @test Compat.IteratorEltype(v) == Base.HasEltype() +end + +# 0.7.0-DEV.3057 +let A = [0, 0, 0], B = [1, 2, 3] + @test copyto!(A, B) === A == B +end +let A = [0, 0, 0], B = [1, 2, 3] + @test unsafe_copyto!(A, 2, B, 1, 1) === A == [0, 1, 0] +end + +# 0.7.0-DEV.3406 +using Compat.Random +@test rand(MersenneTwister(1234)) == 0.5908446386657102 + +# 0.7 +@test contains("Hello, World!", r"World") + +# 0.7.0-DEV.3449 +let A = [2.0 1.0; 1.0 3.0], b = [1.0, 2.0], x = [0.2, 0.6] + @test cholfact(A) \ b ≈ x +end + +# 0.7.0-DEV.3173 +@test invpermute!(permute!([1, 2], 2:-1:1), 2:-1:1) == [1, 2] + +# 0.7.0-DEV.3172 +@test replace("abcb", "b"=>"c") == "accc" +@test replace("abcb", "b"=>"c", count=1) == "accb" +# 0.7.0-DEV.3216 +@test Compat.AbstractDateTime === (isdefined(Compat.Dates, :AbstractDateTime) ? Compat.Dates.AbstractDateTime : Compat.Dates.TimeType) +@test Compat.AbstractDateTime <: Compat.Dates.TimeType +@test Compat.Dates.DateTime <: Compat.AbstractDateTime + +# 0.7.0-DEV.2402 + +x = Compat.Dates.Second(172799) +@test floor(x, Compat.Dates.Week) == Compat.Dates.Week(0) +@test floor(x, Compat.Dates.Day) == Compat.Dates.Day(1) +@test floor(x, Compat.Dates.Hour) == Compat.Dates.Hour(47) +@test floor(x, Compat.Dates.Minute) == Compat.Dates.Minute(2879) +@test floor(x, Compat.Dates.Second) == Compat.Dates.Second(172799) +@test floor(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(172799000) +@test ceil(x, Compat.Dates.Week) == Compat.Dates.Week(1) +@test ceil(x, Compat.Dates.Day) == Compat.Dates.Day(2) +@test ceil(x, Compat.Dates.Hour) == Compat.Dates.Hour(48) +@test ceil(x, Compat.Dates.Minute) == Compat.Dates.Minute(2880) +@test ceil(x, Compat.Dates.Second) == Compat.Dates.Second(172799) +@test ceil(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(172799000) +@test round(x, Compat.Dates.Week) == Compat.Dates.Week(0) +@test round(x, Compat.Dates.Day) == Compat.Dates.Day(2) +@test round(x, Compat.Dates.Hour) == Compat.Dates.Hour(48) +@test round(x, Compat.Dates.Minute) == Compat.Dates.Minute(2880) +@test round(x, Compat.Dates.Second) == Compat.Dates.Second(172799) +@test round(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(172799000) + +x = Dates.Nanosecond(2000999999) +@test floor(x, Compat.Dates.Second) == Compat.Dates.Second(2) +@test floor(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(2000) +@test floor(x, Compat.Dates.Microsecond) == Compat.Dates.Microsecond(2000999) +@test floor(x, Compat.Dates.Nanosecond) == x +@test ceil(x, Compat.Dates.Second) == Compat.Dates.Second(3) +@test ceil(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(2001) +@test ceil(x, Compat.Dates.Microsecond) == Compat.Dates.Microsecond(2001000) +@test ceil(x, Compat.Dates.Nanosecond) == x +@test round(x, Compat.Dates.Second) == Compat.Dates.Second(2) +@test round(x, Compat.Dates.Millisecond) == Compat.Dates.Millisecond(2001) +@test round(x, Compat.Dates.Microsecond) == Compat.Dates.Microsecond(2001000) +@test round(x, Compat.Dates.Nanosecond) == x + + +for x in [Compat.Dates.Week(3), Compat.Dates.Day(14), Compat.Dates.Second(604800)] + local x + for p in [Compat.Dates.Week, Compat.Dates.Day, Compat.Dates.Hour, Compat.Dates.Second, Compat.Dates.Millisecond, Compat.Dates.Microsecond, Compat.Dates.Nanosecond] + local p + @test floor(x, p) == p(x) + @test ceil(x, p) == p(x) + end +end + +x = Compat.Dates.Hour(36) +@test round(x, Compat.Dates.Day, RoundNearestTiesUp) == Compat.Dates.Day(2) +@test round(x, Compat.Dates.Day, RoundUp) == Compat.Dates.Day(2) +@test round(x, Compat.Dates.Day, RoundDown) == Compat.Dates.Day(1) +@test_throws DomainError round(x, Compat.Dates.Day, RoundNearest) +@test_throws DomainError round(x, Compat.Dates.Day, RoundNearestTiesAway) +@test_throws DomainError round(x, Compat.Dates.Day, RoundToZero) +@test round(x, Dates.Day) == round(x, Compat.Dates.Day, RoundNearestTiesUp) + +x = Compat.Dates.Hour(86399) +for p in [Compat.Dates.Week, Compat.Dates.Day, Compat.Dates.Hour, Compat.Dates.Second, Compat.Dates.Millisecond, Compat.Dates.Microsecond, Compat.Dates.Nanosecond] + local p + for v in [-1, 0] + @test_throws DomainError floor(x, p(v)) + @test_throws DomainError ceil(x, p(v)) + @test_throws DomainError round(x, p(v)) + end +end +for p in [Compat.Dates.Year, Compat.Dates.Month] + local p + for v in [-1, 0, 1] + @test_throws MethodError floor(x, p(v)) + @test_throws MethodError ceil(x, p(v)) + @test_throws DomainError round(x, p(v)) + end +end + +# 0.7.0-DEV.3025 +let c = CartesianIndices(1:3, 1:2), l = LinearIndices(1:3, 1:2) + @test LinearIndices(c) == collect(l) + @test CartesianIndices(l) == collect(c) + @test first(c) == CartesianIndex(1, 1) + @test CartesianIndex(1, 1) in c + @test first(l) == 1 + @test size(c) == size(l) == (3, 2) + @test c == collect(c) == [CartesianIndex(1, 1) CartesianIndex(1, 2) + CartesianIndex(2, 1) CartesianIndex(2, 2) + CartesianIndex(3, 1) CartesianIndex(3, 2)] + @test l == collect(l) == reshape(1:6, 3, 2) + @test c[1:6] == vec(c) + @test l[1:6] == vec(l) + @test l == l[c] == map(i -> l[i], c) + @test l[vec(c)] == collect(1:6) + @test CartesianIndex(1, 1) in CartesianIndices((3, 4)) +end + +if !isdefined(Base, Symbol("@info")) + let fname = tempname() + try + open(fname, "w") do fout + redirect_stderr(fout) do + Compat.@info "A" + Compat.@warn "B" + oldstate = Compat.DEBUG[] + Compat.enable_debug(false) + Compat.@debug "C" + Compat.enable_debug(true) + Compat.@debug "D" + Compat.enable_debug(oldstate) + Compat.@error "E" + end + end + @test read(fname, String) == (Base.have_color ? "\e[1m\e[36mInfo: \e[39m\e[22m\e[36mA\n\e[39m\e[1m\e[33mWarning: \e[39m\e[22m\e[33mB\e[39m\n\e[1m\e[34mDebug: \e[39m\e[22m\e[34mD\n\e[39m\e[1m\e[91mError: \e[39m\e[22m\e[91mE\n\e[39m" : + "Info: A\nWarning: B\nDebug: D\nError: E\n") + finally + rm(fname, force=true) + end + end +end + +# 0.7.0-DEV.3460 +@test parentmodule(Compat.Sys) == Compat +@test parentmodule(sin) == Base +@test parentmodule(sin, Tuple{Int}) == Base.Math +@test parentmodule(Int) == Core +@test parentmodule(Array) == Core + +@test codeunits("foo") == [0x66,0x6f,0x6f] == codeunits(SubString("fooαβγ",1,3)) +@test ncodeunits("αβγ") == 6 == ncodeunits(SubString("fooαβγ",4,8)) + +# 0.7.0-DEV.3539 +@test nameof(Compat.Sys) == :Sys +@test nameof(sin) == :sin +@test nameof(Float64) == :Float64 +@test nameof(Array) == :Array + +# 0.7.0-DEV.3382 +module TestLibdl + using Compat + using Compat.Libdl + using Compat.Test + @test isdefined(@__MODULE__, :Libdl) +end + +# 0.7.0-DEV.3516 +@test argmax([10,12,9,11]) == 2 +@test argmax([10 12; 9 11]) == CartesianIndex(1, 2) +@test argmax(Dict(:z=>10, :y=>12, :x=>9, :w=>11)) == :y +@test argmin([10,12,9,11]) == 3 +@test argmin([10 12; 9 11]) == CartesianIndex(2, 1) +@test argmin(Dict(:z=>10, :y=>12, :x=>9, :w=>11)) == :x + +# 0.7.0-DEV.3415 +@test findall(x -> x==1, [1, 2, 3, 2, 1]) == [1, 5] + +# 0.7.0-DEV.3500 +module TestREPL + using Compat + using Compat.REPL + using Compat.Test + @test isdefined(@__MODULE__, :REPL) +end + +# 0.7.0-DEV.3476 +module TestSerialization + using Compat + using Compat.Serialization + using Compat.Test + @test isdefined(@__MODULE__, :Serialization) + @test isdefined(@__MODULE__, :serialize) + @test isdefined(@__MODULE__, :deserialize) + @test isdefined(@__MODULE__, :SerializationState) +end + +module TestPkg + using Compat + using Compat.Pkg + using Compat.Test + @test isdefined(@__MODULE__, :Pkg) + @test isdefined(@__MODULE__, :add) +end + +module TestInteractiveUtils + using Compat + using Compat.InteractiveUtils + using Compat.Test + @test isdefined(@__MODULE__, :InteractiveUtils) + @test isdefined(@__MODULE__, :varinfo) +end + +module TestLibGit2 + using Compat + using Compat.LibGit2 + using Compat.Test + @test isdefined(@__MODULE__, :LibGit2) + @test isdefined(@__MODULE__, :GitRepo) +end + +# 0.7.0-DEV.3469 +@test GC.enable(true) +@test GC.enable(false) +@test !GC.enable(false) +@test !GC.enable(true) +@test GC.enable(true) + +@test eltype(Base.Multimedia.displays) <: AbstractDisplay + +# 0.7.0-DEV.3481 +let b = IOBuffer() + write(b, "hi") + @test bytesavailable(b) == 0 +end + +# 0.7.0-DEV.3583 +@test lastindex(zeros(4)) == 4 +@test lastindex(zeros(4,4)) == 16 + +# 0.7.0-DEV.3585 +let buf = IOBuffer() + if VERSION < v"0.7.0-DEV.3077" + col = Base.have_color + eval(Base, :(have_color = true)) + printstyled(buf, "foo", color=:red) + eval(Base, :(have_color = $col)) + else + printstyled(IOContext(buf, :color=>true), "foo", color=:red) + end + @test startswith(String(take!(buf)), Base.text_colors[:red]) +end + +# 0.7.0-DEV.3455 +@test hasmethod(sin, Tuple{Float64}) +let x = y = 1 + @test objectid(x) == objectid(y) +end + +# 0.7.0-DEV.3415 +for (f1, f2, i) in ((Compat.findfirst, Compat.findnext, 1), + (Compat.findlast, Compat.findprev, 2)) + # Generic methods + @test f1(equalto(0), [1, 0]) == f2(equalto(0), [1, 0], i) == 2 + @test f1(equalto(9), [1, 0]) == f2(equalto(9), [1, 0], i) == nothing + @test f1(occursin([0, 2]), [1, 0]) == f2(occursin([0, 2]), [1, 0], i) == 2 + @test f1(occursin([0, 2]), [1, 9]) == f2(occursin([0, 2]), [1, 9], i) == nothing + @test f1([true, false]) == f2([true, false], i) == 1 + @test f1([false, false]) == f2([false, false], i) == nothing + + # Specific methods + @test f2(equalto('a'), "ba", i) == f1(equalto('a'), "ba") == 2 + for S in (Int8, UInt8), T in (Int8, UInt8) + # Bug in Julia 0.6 + f1 === Compat.findlast && VERSION < v"0.7.0-DEV.3272" && continue + @test f2(equalto(S(1)), T[0, 1], i) == f1(equalto(S(1)), T[0, 1]) == 2 + @test f2(equalto(S(9)), T[0, 1], i) == f1(equalto(S(9)), T[0, 1]) == nothing + end + for chars in (['a', 'z'], Set(['a', 'z']), ('a', 'z')) + @test f2(occursin(chars), "ba", i) == f1(occursin(chars), "ba") == 2 + @test f2(occursin(chars), "bx", i) == f1(occursin(chars), "bx") == nothing + end +end +for (f1, f2, i) in ((findfirst, findnext, 1), + (findlast, findprev, 2), + (Compat.findfirst, Compat.findnext, 1), + (Compat.findlast, Compat.findprev, 2)) + @test f2("a", "ba", i) == f1("a", "ba") == 2:2 + @test f2("z", "ba", i) == f1("z", "ba") == 0:-1 +end +for (f1, f2, i) in ((findfirst, findnext, 1), + (Compat.findfirst, Compat.findnext, 1)) + @test f2(r"a", "ba", 1) == f1(r"a", "ba") == 2:2 + @test f2(r"z", "ba", 1) == f1(r"z", "ba") == 0:-1 +end + +@test Compat.findfirst(equalto(UInt8(0)), IOBuffer(UInt8[1, 0])) == 2 +@test Compat.findfirst(equalto(UInt8(9)), IOBuffer(UInt8[1, 0])) == nothing + +@test findall([true, false, true]) == [1, 3] +@test findall(occursin([1, 2]), [1]) == [1] + +nothing diff --git a/stdlib/Pkg3/.codecov.yml b/stdlib/Pkg3/.codecov.yml new file mode 100644 index 0000000000000..69cb76019a474 --- /dev/null +++ b/stdlib/Pkg3/.codecov.yml @@ -0,0 +1 @@ +comment: false diff --git a/stdlib/Pkg3/.gitignore b/stdlib/Pkg3/.gitignore new file mode 100644 index 0000000000000..6207492ec8f58 --- /dev/null +++ b/stdlib/Pkg3/.gitignore @@ -0,0 +1,4 @@ +/tmp +*.jl.mem +*.jl.cov +*.jl.*.cov diff --git a/stdlib/Pkg3/.travis.yml b/stdlib/Pkg3/.travis.yml new file mode 100644 index 0000000000000..a93a7b199277a --- /dev/null +++ b/stdlib/Pkg3/.travis.yml @@ -0,0 +1,22 @@ +language: julia + +julia: + - nightly + +os: + - linux +# - osx + +notifications: + email: false + +before_script: + - export PATH=$HOME/.local/bin:$PATH + +script: + - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi + - julia --check-bounds=yes -e 'Pkg.clone(pwd()); Pkg.build("Pkg3"); Pkg.test("Pkg3"; coverage=true)' + +after_success: + - julia -e 'cd(Pkg.dir("Pkg3")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' + diff --git a/stdlib/Pkg3/Compat.toml b/stdlib/Pkg3/Compat.toml new file mode 100644 index 0000000000000..e05d66169805c --- /dev/null +++ b/stdlib/Pkg3/Compat.toml @@ -0,0 +1,36 @@ +[123] # this name doesn't matter, just needs to be unique +url = "http://github.com/PkgA/issues/123" +desc = "PkgA accidentally changed its `foo` API and broke PkgB" + +# The name/uuid mapping of a package is recorded when a compatibility entry +# is created. This is only used to decode the package names below and does +# not need to match the name used in Config.toml or Manifest.toml, nor do +# they need to be updated later if those change for any reason. They may be +# updated, however, for clarity. + + [123.uuids] + PkgA = "uuid#1" + PkgB = "uuid#2" + +# A key-value pair in a broken/fixed stanza is satisfied if the named package +# on the LHS is checked out at a commit that is a descendant of the commit on +# the RHS. A broken/fixed stanza is satisfied if all of its key-value pairs +# are satisfied. If the value of "broken" or "fixed" is a single stanza (i.e. +# a dict) then it is satisfied if that stanza is. If a "broken" or "fixed" +# entry is an array, then it is satisfied if any of its stanzas are satisfied. +# A set of package versions is considered "broken" if the "broken" entry is +# satisfied but the "fixed" entry is not satisfied. + + [123.broken] + PkgA = "commit#1" + PkgB = "commit#2" + + [[123.fixed]] + PkgA = "commit#5" + PkgB = "commit#6" + + [[123.fixed]] + PkgA = "commit#3" + + [[123.fixed]] + PkgB = "commit#4" diff --git a/stdlib/Pkg3/LICENSE.md b/stdlib/Pkg3/LICENSE.md new file mode 100644 index 0000000000000..0bd6093201af4 --- /dev/null +++ b/stdlib/Pkg3/LICENSE.md @@ -0,0 +1,22 @@ +The Pkg3.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2017: Stefan Karpinski. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/Manifest.toml b/stdlib/Pkg3/Manifest.toml new file mode 100644 index 0000000000000..dc62ececb1940 --- /dev/null +++ b/stdlib/Pkg3/Manifest.toml @@ -0,0 +1,10 @@ +[[Compat]] +git-tree-sha1 = "796ab395151ed47df970529c2eb24082aa6f66e8" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "0.31.0" + +[[SHA]] +deps = ["Compat"] +git-tree-sha1 = "91cc54078cfe28488add383c458333ef39cdcde5" +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.5.1" diff --git a/stdlib/Pkg3/Project.toml b/stdlib/Pkg3/Project.toml new file mode 100644 index 0000000000000..0f71bf12516b7 --- /dev/null +++ b/stdlib/Pkg3/Project.toml @@ -0,0 +1,16 @@ +authors = "Stefan Karpinski " +desc = "The next-generation Julia package manager." +keywords = ["package", "management"] +license = "MIT" +name = "Pkg3" +repo = "https://github.com/StefanKarpinski/Pkg3.jl.git" + +[deps] +Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" +LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" +Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" +Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +SHA = "ea8e919c-243c-51af-8825-aaa63cd721ce" +UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" diff --git a/stdlib/Pkg3/README.md b/stdlib/Pkg3/README.md new file mode 100644 index 0000000000000..cdd05f631ee23 --- /dev/null +++ b/stdlib/Pkg3/README.md @@ -0,0 +1,69 @@ +# Pkg3 + +[![Build Status](https://travis-ci.org/JuliaLang/Pkg3.jl.svg?branch=master)](https://travis-ci.org/JuliaLang/Pkg3.jl) [![Build status](https://ci.appveyor.com/api/projects/status/ywiwk98gvye1ov6x/branch/master?svg=true)](https://ci.appveyor.com/project/KristofferC/pkg3-jl-li0m6/branch/master) [![codecov](https://codecov.io/gh/JuliaLang/Pkg3.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/JuliaLang/Pkg3.jl) + +Next-generation package manager for Julia. Still quite alpha. + +First, `Pkg.clone` the `Pkg3` repo itself to install it: + +```jl +Pkg.clone("https://github.com/JuliaLang/Pkg3.jl.git") +``` + +Now load `Pkg3` in Julia 0.6 to add packages and load them. +Packages will be installed to `joinpath(homedir(), ".julia", "packages")`, so they won't influnce the packages that you already have installed. + +```jl +$ path/to/julia.6/julia + +julia> using Pkg3 +``` + + +This gives you a `pkg> ` REPL mode, activated (for now) by the `]` key. Currently, this supports three operations: `add`, `rm` and `up`: + +```jl +pkg> add JSON +INFO: Resolving package versions +INFO: Cloning [682c06a0-de6a-54ab-a142-c8b1cf79cde6] JSON +INFO: Installing JSON v0.13.0 [9003b4622ec7e553] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] + Compat v0.31.0 +INFO: [682c06a0] + JSON v0.13.0 + +pkg> add Compat @0.28 +INFO: Resolving package versions +INFO: Installing Compat v0.28.0 [0427af7e2c8610c8] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] ↓ Compat v0.31.0 ⇒ v0.28.0 + +pkg> rm Compat +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [-] Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" +INFO: [-] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] - Compat v0.28.0 +INFO: [682c06a0] - JSON v0.13.0 + +pkg> add JSON @0.10 +INFO: Resolving package versions +INFO: Installing JSON v0.10.0 [77699b5cc09b169c] +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [+] JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [34da2185] + Compat v0.31.0 +INFO: [682c06a0] + JSON v0.10.0 + +pkg> up +INFO: Resolving package versions +INFO: Updating project file /Users/stefan/projects/julia/Project.toml +INFO: [no changes] +INFO: Updating manifest file /Users/stefan/projects/julia/Manifest.toml +INFO: [682c06a0] ↑ JSON v0.10.0 ⇒ v0.13.0 +``` + +Package operations create a `Project.toml` file that record what dependencies your project (or named global environment) has – i.e. what you've explicitly added. It also creates a `Manifest.toml` file that records the exact versions of each of those dependenices and their transitive dependencies – and the graph between them. You can load top-level dependencies via the usual `using JSON` or `import JSON` constructs in the REPL or in Julia scripts. diff --git a/stdlib/Pkg3/REQUIRE b/stdlib/Pkg3/REQUIRE new file mode 100644 index 0000000000000..07f7a930082ec --- /dev/null +++ b/stdlib/Pkg3/REQUIRE @@ -0,0 +1,3 @@ +julia 0.6 +SHA +# Pkg.clone("https://github.com/StefanKarpinski/TOML.jl.git") diff --git a/stdlib/Pkg3/appveyor.yml b/stdlib/Pkg3/appveyor.yml new file mode 100644 index 0000000000000..3a2777692c3f8 --- /dev/null +++ b/stdlib/Pkg3/appveyor.yml @@ -0,0 +1,39 @@ +environment: + matrix: + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" +# If there's a newer build queued for the same PR, cancel this one + - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` + throw "There are newer queued builds for this pull request, failing early." } +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"Pkg3\"); Pkg.build(\"Pkg3\")" + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"Pkg3\")" + diff --git a/stdlib/Pkg3/bin/Pkg2/Pkg2.jl b/stdlib/Pkg3/bin/Pkg2/Pkg2.jl new file mode 100644 index 0000000000000..43c1e3bd84863 --- /dev/null +++ b/stdlib/Pkg3/bin/Pkg2/Pkg2.jl @@ -0,0 +1,45 @@ +# Trimmed-down code from Pkg2 with only the essential parts needed by loadmeta.jl + +module Pkg2 + +struct PkgError <: Exception + msg::AbstractString + ex::Union{Exception, Nothing} +end +PkgError(msg::AbstractString) = PkgError(msg, nothing) +function Base.showerror(io::IO, pkgerr::PkgError) + print(io, pkgerr.msg) + if pkgerr.ex !== nothing + pkgex = get(pkgerr.ex) + if isa(pkgex, CompositeException) + for cex in pkgex + print(io, "\n=> ") + showerror(io, cex) + end + else + print(io, "\n") + showerror(io, pkgex) + end + end +end + +# DIR +const DIR_NAME = ".julia" +_pkgroot() = abspath(get(ENV,"JULIA_PKGDIR",joinpath(homedir(),DIR_NAME))) +isversioned(p::AbstractString) = ((x,y) = (VERSION.major, VERSION.minor); basename(p) == "v$x.$y") + +function dir() + b = _pkgroot() + x, y = VERSION.major, VERSION.minor + d = joinpath(b,"v$x.$y") + if isdir(d) || !isdir(b) || !isdir(joinpath(b, "METADATA")) + return d + end + return b +end +dir(pkg::AbstractString...) = normpath(dir(),pkg...) + +include("types.jl") +include("reqs.jl") + +end diff --git a/stdlib/Pkg3/bin/Pkg2/reqs.jl b/stdlib/Pkg3/bin/Pkg2/reqs.jl new file mode 100644 index 0000000000000..019b27bf718e8 --- /dev/null +++ b/stdlib/Pkg3/bin/Pkg2/reqs.jl @@ -0,0 +1,46 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Reqs + +import Base: == +import ..PkgError +using ..Types + +# representing lines of REQUIRE files + +abstract type Line end +struct Comment <: Line + content::AbstractString +end +struct Requirement <: Line + content::AbstractString + package::AbstractString + versions::VersionSet + system::Vector{AbstractString} + + function Requirement(content::AbstractString) + fields = split(replace(content, r"#.*$" => "")) + system = AbstractString[] + while !isempty(fields) && fields[1][1] == '@' + push!(system, popfirst!(fields)[2:end]) + end + isempty(fields) && throw(PkgError("invalid requires entry: $content")) + package = popfirst!(fields) + all(field->contains(field, Base.VERSION_REGEX), fields) || + throw(PkgError("invalid requires entry for $package: $content")) + versions = VersionNumber[fields...] + issorted(versions) || throw(PkgError("invalid requires entry for $package: $content")) + new(content, package, VersionSet(versions), system) + end +end + +function read(readable::Union{IO,Base.AbstractCmd}) + lines = Line[] + for line in eachline(readable) + push!(lines, contains(line, r"^\s*(?:#|$)") ? Comment(line) : Requirement(line)) + end + return lines +end +read(file::AbstractString) = isfile(file) ? open(read,file) : Line[] + +end # module diff --git a/stdlib/Pkg3/bin/Pkg2/types.jl b/stdlib/Pkg3/bin/Pkg2/types.jl new file mode 100644 index 0000000000000..f59436596494a --- /dev/null +++ b/stdlib/Pkg3/bin/Pkg2/types.jl @@ -0,0 +1,128 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Types + +export VersionInterval, VersionSet +import Base: show, isempty, in, intersect, union!, union, ==, hash, copy, deepcopy_internal + +struct VersionInterval + lower::VersionNumber + upper::VersionNumber +end +VersionInterval(lower::VersionNumber) = VersionInterval(lower,typemax(VersionNumber)) +VersionInterval() = VersionInterval(typemin(VersionNumber)) + +show(io::IO, i::VersionInterval) = print(io, "[$(i.lower),$(i.upper))") +isempty(i::VersionInterval) = i.upper <= i.lower +in(v::VersionNumber, i::VersionInterval) = i.lower <= v < i.upper +intersect(a::VersionInterval, b::VersionInterval) = VersionInterval(max(a.lower,b.lower), min(a.upper,b.upper)) +==(a::VersionInterval, b::VersionInterval) = a.lower == b.lower && a.upper == b.upper +hash(i::VersionInterval, h::UInt) = hash((i.lower, i.upper), h + (0x0f870a92db508386 % UInt)) + +function normalize!(ivals::Vector{VersionInterval}) + # VersionSet internal normalization: + # removes empty intervals and fuses intervals without gaps + # e.g.: + # [0.0.0,1.0.0) ∪ [1.0.0,1.5.0) ∪ [1.6.0,1.6.0) ∪ [2.0.0,∞) + # becomes: + # [0.0.0,1.5.0) ∪ [2.0.0,∞) + # (still assumes that lower bounds are sorted, and intervals do + # not overlap) + l = length(ivals) + l == 0 && return ivals + + lo, up, k0 = ivals[1].lower, ivals[1].upper, 1 + fusing = false + for k = 2:l + lo1, up1 = ivals[k].lower, ivals[k].upper + if lo1 == up + up = up1 + fusing = true + continue + end + if lo < up + # The only purpose of the "fusing" check is to avoid + # extra allocations + ivals[k0] = fusing ? VersionInterval(lo, up) : ivals[k-1] + k0 += 1 + end + fusing = false + lo, up = lo1, up1 + end + if lo < up + ivals[k0] = fusing ? VersionInterval(lo, up) : ivals[l] + k0 += 1 + end + resize!(ivals, k0 - 1) + return ivals +end + +struct VersionSet + intervals::Vector{VersionInterval} + VersionSet(intervals::Vector{VersionInterval}) = new(normalize!(intervals)) + # copy is defined inside the struct block to call `new` directly + # without going through `normalize!` + Base.copy(vset::VersionSet) = new(copy(vset.intervals)) +end +function VersionSet(versions::Vector{VersionNumber}) + intervals = VersionInterval[] + if isempty(versions) + push!(intervals, VersionInterval()) + else + isodd(length(versions)) && push!(versions, typemax(VersionNumber)) + while !isempty(versions) + push!(intervals, VersionInterval(popfirst!(versions), popfirst!(versions))) + end + end + VersionSet(intervals) +end +VersionSet(versions::VersionNumber...) = VersionSet(VersionNumber[versions...]) + +const empty_versionset = VersionSet(VersionInterval[]) + +# Windows console doesn't like Unicode +const _empty_symbol = @static Sys.iswindows() ? "empty" : "∅" +const _union_symbol = @static Sys.iswindows() ? " or " : " ∪ " +show(io::IO, s::VersionSet) = isempty(s) ? print(io, _empty_symbol) : + join(io, s.intervals, _union_symbol) +isempty(s::VersionSet) = all(isempty, s.intervals) +in(v::VersionNumber, s::VersionSet) = any(i->in(v,i), s.intervals) +function intersect(A::VersionSet, B::VersionSet) + (isempty(A) || isempty(B)) && return copy(empty_versionset) + ivals = [intersect(a,b) for a in A.intervals for b in B.intervals] + sort!(ivals, by=i->i.lower) + VersionSet(ivals) +end + +union(A::VersionSet, B::VersionSet) = union!(copy(A), B) +function union!(A::VersionSet, B::VersionSet) + A == B && return A + ivals = A.intervals + for intB in B.intervals + lB, uB = intB.lower, intB.upper + k0 = findfirst(i->(i.upper > lB), ivals) + if k0 == 0 + push!(ivals, intB) + continue + end + lB = min(lB, ivals[k0].lower) + for k1 = k0:length(ivals) + intA = ivals[k1] + if uB < intA.lower + splice!(ivals, k0:(k1-1), (VersionInterval(lB, uB),)) + break + elseif uB ∈ intA || k1 == length(ivals) + splice!(ivals, k0:k1, (VersionInterval(lB, max(uB, intA.upper)),)) + break + end + end + end + normalize!(ivals) + return A +end + +==(A::VersionSet, B::VersionSet) = A.intervals == B.intervals +hash(s::VersionSet, h::UInt) = hash(s.intervals, h + (0x2fd2ca6efa023f44 % UInt)) +deepcopy_internal(vs::VersionSet, ::IdDict) = copy(vs) + +end # module diff --git a/stdlib/Pkg3/bin/generate.jl b/stdlib/Pkg3/bin/generate.jl new file mode 100644 index 0000000000000..daf1ab58bca77 --- /dev/null +++ b/stdlib/Pkg3/bin/generate.jl @@ -0,0 +1,109 @@ +#!/usr/bin/env julia + +function write_toml(f::Function, names::String...) + path = joinpath(names...) * ".toml" + mkpath(dirname(path)) + open(path, "w") do io + f(io) + end +end + +toml_key(str::String) = contains(str, r"[^\w-]") ? repr(str) : str +toml_key(strs::String...) = join(map(toml_key, [strs...]), '.') + +prefix = joinpath(homedir(), ".julia", "registries", "Uncurated") + +write_toml(prefix, "registry") do io + repo = "https://github.com/JuliaRegistries/Uncurated.git" + uuid = string(uuid5(uuid_registry, repo)) + println(io, "name = ", repr("Uncurated")) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(repo)) + println(io, "\ndescription = \"\"\"") + print(io, """ + Official uncurated Julia package registry where people can + register any package they want without too much debate about + naming and without enforced standards on documentation or + testing. We nevertheless encourage documentation, testing and + some amount of consideration when choosing package names. + """) + println(io, "\"\"\"") + println(io, "\n[packages]") + for (pkg, p) in sort!(collect(pkgs), by=(p->p.uuid.value)∘last) + bucket = string(uppercase(first(pkg))) + path = joinpath(bucket, pkg) + println(io, p.uuid, " = { name = ", repr(pkg), ", path = ", repr(path), " }") + end +end + +buckets = Dict() +for (pkg, p) in pkgs + bucket = string(uppercase(first(pkg))) + push!(get!(buckets, bucket, []), (pkg, p)) +end + +include("utils.jl") +include("sha1map.jl") +const trees = sha1map(pkgs) + +for (bucket, b_pkgs) in buckets, (pkg, p) in b_pkgs + url = p.url + uuid = string(p.uuid) + startswith(url, "git://github.com") && (url = "https"*url[4:end]) + + # package.toml + write_toml(prefix, bucket, pkg, "package") do io + println(io, "name = ", repr(pkg)) + println(io, "uuid = ", repr(uuid)) + println(io, "repo = ", repr(url)) + end + + # versions.toml + write_toml(prefix, bucket, pkg, "versions") do io + for (i, (ver, v)) in enumerate(sort!(collect(p.versions), by=first)) + i > 1 && println(io) + println(io, "[", toml_key(string(ver)), "]") + println(io, "git-tree-sha1 = ", repr(trees[uuid][v.sha1])) + end + end + versions = sort!(collect(keys(p.versions))) + + function write_versions_data(f::Function, name::String; lt::Function=isless) + data = Dict{VersionNumber,Dict{String,String}}() + for (ver, v) in p.versions, (dep, d) in v.requires + val = f(dep, d) + val == nothing && continue + haskey(data, ver) || (data[ver] = Dict{String,String}()) + data[ver][dep] = val + end + compressed = compress_versions_data(data, versions) + !isempty(compressed) && write_toml(prefix, bucket, pkg, name) do io + vers = unique(getindex.(compressed, 1)) + keys = sort!(unique(getindex.(compressed, 2)), lt=lt) + what = (vers, keys) + ord = (1, 2) + for (i, x) in enumerate(what[ord[1]]) + i > 1 && println(io) + println(io, "[", toml_key(x), "]") + for y in what[ord[2]] + for t in compressed + t[ord[1]] == x && t[ord[2]] == y || continue + println(io, toml_key(y), " = ", t[3]) + end + end + end + end + end + + # dependencies.toml + write_versions_data("dependencies") do dep, d + dep != "julia" ? repr(string(pkgs[dep].uuid)) : nothing + end + + # compatibility.toml + write_versions_data("compatibility", lt=packagelt) do dep, d + versions_repr(compress_versions( + d.versions, collect(keys(pkgs[dep].versions)) + )) + end +end diff --git a/stdlib/Pkg3/bin/loadmeta.jl b/stdlib/Pkg3/bin/loadmeta.jl new file mode 100644 index 0000000000000..bb9e98be3d34f --- /dev/null +++ b/stdlib/Pkg3/bin/loadmeta.jl @@ -0,0 +1,148 @@ +#!/usr/bin/env julia + +using Base: thispatch, thisminor, nextpatch, nextminor +import LinearAlgebra: checksquare +import Random: UUID +using Pkg3.Types +using Pkg3.Types: uuid_package, uuid_registry, uuid5 + +include("Pkg2/Pkg2.jl") +import .Pkg2.Reqs: Reqs, Requirement +import .Pkg2.Types: VersionInterval + +## Loading data into various data structures ## + +struct Require + versions::VersionInterval + systems::Vector{Symbol} +end + +struct Version + sha1::String + requires::Dict{String,Require} +end + +struct Package + uuid::UUID + url::String + versions::Dict{VersionNumber,Version} +end + +Require(versions::VersionInterval) = Require(versions, Symbol[]) +Version(sha1::String) = Version(sha1, Dict{String,Require}()) + +function load_requires(path::String) + requires = Dict{String,Require}() + requires["julia"] = Require(VersionInterval()) + isfile(path) || return requires + for r in filter!(r->r isa Requirement, Reqs.read(path)) + # @assert length(r.versions.intervals) == 1 + new = haskey(requires, r.package) + versions, systems = r.versions.intervals[1], r.system + if haskey(requires, r.package) + versions = versions ∩ requires[r.package].versions + systems = systems ∪ requires[r.package].systems + end + requires[r.package] = Require(versions, systems) + end + return requires +end + +function load_versions(dir::String) + versions = Dict{VersionNumber,Version}() + isdir(dir) || return versions + for ver in readdir(dir) + path = joinpath(dir, ver) + sha1 = joinpath(path, "sha1") + isfile(sha1) || continue + requires = load_requires(joinpath(path, "requires")) + versions[VersionNumber(ver)] = Version(readchomp(sha1), requires) + end + return versions +end + +function load_packages(dir::String) + pkgs = Dict{String,Package}() + for pkg in readdir(dir) + path = joinpath(dir, pkg) + url = joinpath(path, "url") + versions = joinpath(path, "versions") + isfile(url) || continue + pkgs[pkg] = Package( + uuid5(uuid_package, pkg), + readchomp(url), + load_versions(versions), + ) + end + pkgs["julia"] = Package( + uuid5(uuid_package, "julia"), + "https://github.com/JuliaLang/julia.git", + Dict( + v"0.1.1" => Version("bddb70374fdbb2256782398c13430fa4d8b55d0b"), + v"0.1.2" => Version("1187040d027210cc466f0b6a6d54118fd692cf2d"), + v"0.2.0" => Version("05c6461b55d9a66f05ead24926f5ee062b920d6b"), + v"0.2.1" => Version("e44b5939057d87c1e854077108a1a6d66203f4fa"), + v"0.3.0" => Version("768187890c2709bf2ff06818f40e1cdc79bd44b0"), + v"0.3.1" => Version("c03f413bbdb46c00033f4eaad402995cfe3b7be5"), + v"0.3.2" => Version("8227746b95146c2921f83d2ae5f37ecd146592d8"), + v"0.3.3" => Version("b24213b893ace6ca601722f6cdaac15f2b034b7b"), + v"0.3.4" => Version("33920266908e950936ef3f8503810a2d47333741"), + v"0.3.5" => Version("a05f87b79ad62beb033817fdfdefa270c9557aaf"), + v"0.3.6" => Version("0c24dca65c031820b91721139f0291068086955c"), + v"0.3.7" => Version("cb9bcae93a32b42cec02585c387396ff11836aed"), + v"0.3.8" => Version("79599ada444fcc63cb08aed64b4ff6a415bb4d29"), + v"0.3.9" => Version("31efe690bea1fd8f4e44692e205fb72d34f50ad3"), + v"0.3.10" => Version("c8ceeefcc1dc25953a644622a895a3adcbc80dad"), + v"0.3.11" => Version("483dbf5279efe29f94cf35d42de0ab0a673fb34e"), + v"0.3.12" => Version("80aa77986ec84067f4696439f10fc77c93703bc7"), + v"0.4.0" => Version("0ff703b40afddf9b705bd6a06d3a59cb4c089ea5"), + v"0.4.1" => Version("cbe1bee3a8f27ba4f349556857bf4615ee5fa68f"), + v"0.4.2" => Version("bb73f3489d837e3339fce2c1aab283d3b2e97a4c"), + v"0.4.3" => Version("a2f713dea5ac6320d8dcf2835ac4a37ea751af05"), + v"0.4.4" => Version("ae683afcc4cc824dcf68251569a6cf8760e4fb6f"), + v"0.4.5" => Version("2ac304dfba75fad148d4070ef4f8a2e400c305bb"), + v"0.4.6" => Version("2e358ce975029ec97aba5994c17d4a2169c3b085"), + v"0.4.7" => Version("ae26b25d43317d7dd3ca05f60b70677aab9c0e08"), + v"0.5.0" => Version("3c9d75391c72d7c32eea75ff187ce77b2d5effc8"), + v"0.5.1" => Version("6445c82d0060dbe82b88436f0f4371a4ee64d918"), + v"0.5.2" => Version("f4c6c9d4bbbd9587d84494e314f692c15ff1f9c0"), + v"0.6.0" => Version("903644385b91ed8d95e5e3a5716c089dd1f1b08a"), + v"0.6.1" => Version("0d7248e2ff65bd6886ba3f003bf5aeab929edab5"), + v"0.6.2" => Version("d386e40c17d43b79fc89d3e579fc04547241787c"), + v"0.7.0" => Version("e0ad15af54feecbc4e4b91281c2c15eeca7d6515"), # dummy commit, not actual 0.7! + ), + ) + return pkgs +end + +@eval julia_versions() = $([VersionNumber(0,m) for m=1:7]) +julia_versions(f::Function) = filter(f, julia_versions()) +julia_versions(vi::VersionInterval) = julia_versions(v->v in vi) + +macro clean(ex) :(x = $(esc(ex)); $(esc(:clean)) &= x; x) end + +function prune!(pkgs::AbstractDict{String,Package}) + # remove unsatisfiable versions + while true + clean = true + filter!(pkgs) do pkg, p + filter!(p.versions) do ver, v + @clean ver == thispatch(ver) > v"0.0.0" && + all(v.requires) do kv + req, r = kv + haskey(pkgs, req) && + any(w->w in r.versions, keys(pkgs[req].versions)) + end + end + @clean !isempty(p.versions) + end + clean && break + end + return pkgs +end + +## Load package data ## + +const pkgs = load_packages(Pkg2.dir("METADATA")) +delete!(pkgs, "CardinalDicts") # package repo no longer exists +prune!(pkgs) diff --git a/stdlib/Pkg3/bin/sha1map.jl b/stdlib/Pkg3/bin/sha1map.jl new file mode 100644 index 0000000000000..80d4bdfce766c --- /dev/null +++ b/stdlib/Pkg3/bin/sha1map.jl @@ -0,0 +1,51 @@ +#!/usr/bin/env julia + +using Pkg3.TOML +using Base: LibGit2 + +function sha1map(pkgs::Dict{String,Package}) + f = joinpath(@__DIR__, "sha1map.toml") + d = ispath(f) ? TOML.parsefile(f) : Dict() + for (pkg, p) in pkgs + isempty(p.versions) && continue + uuid = string(p.uuid) + haskey(d, uuid) || (d[uuid] = Dict()) + updated = false + repo = nothing + for (ver, v) in p.versions + haskey(d[uuid], v.sha1) && continue + git_commit_hash = LibGit2.GitHash(v.sha1) + if repo == nothing + repo_path = joinpath(homedir(), ".julia", "upstream", uuid) + repo = ispath(repo_path) ? LibGit2.GitRepo(repo_path) : begin + updated = true + info("Cloning [$uuid] $pkg") + LibGit2.clone(p.url, repo_path, isbare=true) + end + end + if !updated + try LibGit2.GitObject(repo, git_commit_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + info("Updating $pkg from $(p.url)") + LibGit2.fetch(repo, remoteurl=p.url, refspecs=["+refs/*:refs/remotes/cache/*"]) + end + end + git_commit = try LibGit2.GitObject(repo, git_commit_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + error("$pkg: git object $(v.sha1) could not be found") + end + git_commit isa LibGit2.GitCommit || git_commit isa LibGit2.GitTag || + error("$pkg: git object $(v.sha1) not a commit – $(typeof(git_commit))") + git_tree = LibGit2.peel(LibGit2.GitTree, git_commit) + @assert git_tree isa LibGit2.GitTree + git_tree_hash = string(LibGit2.GitHash(git_tree)) + d[uuid][v.sha1] = git_tree_hash + end + end + open(f, "w") do io + TOML.print(io, d, sorted=true) + end + return d +end diff --git a/stdlib/Pkg3/bin/sha1map.toml b/stdlib/Pkg3/bin/sha1map.toml new file mode 100644 index 0000000000000..85b45eb69808e --- /dev/null +++ b/stdlib/Pkg3/bin/sha1map.toml @@ -0,0 +1,16907 @@ +[00701ae9-d1dc-5365-b64a-a3a3ebf5695e] +b7f71910c25fbcdfcf18a78aebdadbc42586c4fb = "5952d675f5fc0368abd52c5dd969c8a01887a2d5" +f2c9ee4388849557f20bbd0e3524e3cdc82f9c56 = "4d21d1dff9ce6118bf7b4bf557d5469437e7bc16" + +[00718b61-6157-5045-8849-3d4c4093d022] +1f2bb48ea0d45f7112f9b1198106f8bcbb9ab6a5 = "3851e2058ff0e6df765f1f8c9ab98b325162549b" +5abf701dd6d0282dc38c2f17aed4485fde2d5e4d = "9aebbc8223404eeaa77f8e4757455d8d720ea996" +603e19d81407e6d9af6eb7424967c7ef3efb2ecb = "6ac48788509e71d01f824567d995f945fffe1ecb" +a4cc2849303f80cb95bf3ecfbc70c3956cbdf775 = "d754425ce0b3a77298da88ba9d7301fa461bff08" + +[009559a3-9522-5dbb-924b-0b6ed2b22bb9] +3c4630ff6b4e4ca13ccf0db33b6118446fba3222 = "ccb9d103450a66f0fe0f32d6ce8a383a4ed14d38" +7d0f5a4d5892f51ead88f425115c6c568df7e32f = "bb01746c756091214d6aff92f80f6ab57a388b64" +87ee4dfdb99a2ff80e5f498d71f959932475dfbf = "7aef8c1a1c7d250e6c4d2c7a54bb33ab2e62308c" + +[00bb91fb-75dd-5f5f-97ed-3cee78a05366] +2dc5d15eb97a3ad248f4c8c48df38600de40b643 = "4224a8f1bfc37ffc9ab31c764ea1b206a6346664" +30f94ca1208b782e7d3bb20d861c72818cbcdd74 = "c8a2eee635315dc9c61141011594fb2fd5e509de" +495fae6cf175b81bbf7b4bfd4c842d38d2dc5e1a = "53ec2de3306fd00953de9ac529b7f9c4a9f8d7c7" +84cc7f37896bbbf8688956fcbfc676773ea2931c = "03fdcc7bbc4b010e593731f61a3bbca93a1cf44a" +9a41384e77e9b41b59dc894a4d6f30cfe6cc355b = "d36a4455f35b394d0494e872a665f9e177d2d666" +a60c1ba135562e5ce63fb0af3213fce60dcee91b = "83cfa132f77ab32d832e377aaf851379fac87d0e" +dc1c0f8563ce7a7d48f4bba35cb0e797679c19bb = "57f3d21773897a641a79ba88305aefbbdcbcbd12" +e7348ade8545dc0106a914c0957ad296b2526eb1 = "03bc8f40975cb0aadc9f62ff20df0dec1efc8db5" + +[00bf1f32-23ad-54cc-bf6e-3216db8a43a2] +d2f33b803cadc534be4259319e76f8b7d77a2c5a = "579614c7259967ea54c21cc63bed73e66b3575b0" + +[00cbc572-0deb-5633-9df8-266c9fbbb95c] +4e971bad11a96bb9a14f2e6c65ce04dc5738ca14 = "8e5a6c7cad60e32ab4862b6ed84fed1866cd9703" + +[00d00faa-c8f6-542a-bba9-9987f051d897] +a2b5f77d46ebb84a78a8f0664023132c9625da94 = "fce09426d7b4cdf6fad17b19983bac41f65efdb2" + +[00ebfdb7-1f24-5e51-bd34-a7502290713f] +05196e66cb0df254dc22e2e8189b7c5ae545066f = "9fdbce80779343382e6dbda63af6a2a45f56fd4b" +1a7ad0214cec276ee73e81af0647927a1b470957 = "2223eee1f53a7c71ce3ac59f078faf52d6094108" +276263ebf1ca9c4cffae08c9749daa03b9a52ace = "16fa6ef27d6b72099a28985c4253ff808796675f" +395662bd87affd5d276b604ad4a7a66dd25d5846 = "9d569ed31547dada045609b8c1142ed66ee4cc65" +3eb416382f12e385d36ea7da8dc1417b7d09cb69 = "250402e64c8cda2ed6bedb0f58ce69dec2d4629f" +401690d2234b50047a6a6274564288db1ed1237a = "711308656b9a546c62cc0d58fe569f11b272710e" +4d6cae92c65aecdeaf22e35a323988e778909cf1 = "dee192d870fa52f6e87a3127f47be23420c895d3" +57a60fbb7cfe2dd049c914929d4dbc0d58c81d35 = "8e6c66a92042105563218a12d9c9bf87fcba4f7c" +729db0c46d814b85fcf349d4cf4a5586028a2c2d = "24055dfdc99e5b90d821d2583db84dfc75f2c3e1" +a21ad39ea79ac0127b2ea9fba5716eb2554675b3 = "bec81a0095289ac09304365e63e2646d9c922c97" +cf374919080908d0dada1c14a66b328b0ef17016 = "a2553be302b0581fbbde2b78bc9418a24eee06f9" +d10c504b30385e484fcabfd375d5018adf682d9f = "40e48816abf8f35ed97dfb5e2e1e6d7fa7a6184c" +daceb0cbfb3b06a135c8b324e041a7c214b1d11a = "774059ec56c12411807df4638afa8e7f47fca833" +eaecd7929130cb66b20c74229e653d20d110194a = "b89141fb6f4295e3b6700f2775a9ea66f94cdd36" +f0b850b226f0b75698f8c48a9fcf26b0b75b1356 = "d53be8495fa43f3d4ec7b7382e51fb9c733d00d4" +f7098037108f831af3d73075381a3e95132267e4 = "fa6173a04ed813a3127b83e4c489dc5885319324" + +[011e45e9-a2a7-589e-9d3d-92a8c4506549] +229f2b02618169e4fdd98fc10a1764a6ddd5f872 = "28b639610c503e78db73734a23076dfa91a53fec" +4f328d2b2fc8d7766a0d91104b8c84ecc7dea7a4 = "01e841c20f314d711e322081af1f33a7c54794f0" +62ab3ebdb57cc2167f43a551d363716eb1a11695 = "e79f8281eff5be7dcc88d5c98d530083259ce69c" +654636195f971ee9d79a502d1167f03551f96e4c = "71362e77c9f23cdafec01c6a77ef8631fda16e9b" +7b4e85c01f5be7986baf1a0efc7f217ab3a65b68 = "05852f94b5880d6ba61544197b740f1b4fe2e9ec" +7bc9e6dc77d92a8bb0a6bfda4d7a6b72d85a45bd = "4d5a34cd174763a56c621fa0fdaa9c205341ae3d" +a66a85c544d7bf8a1f25f0b4d58d12bc39e34293 = "12cc3b084abc6d9d1e3338d277f15d905a508af4" +b167e4b26937612e1ee9bf135420f077119bdccd = "0c692598655dd3a3a50c16ee6e6b4ef2fa99e498" +b9ab8cc01921d48240117a571199fc9c3854560c = "07f661b67e3eeef765944c4d33ba673d1b8f284d" +c01042fddd85117884df1220135ad59dffec79f3 = "df925ca4a1db5c61929b3580aab802bd54ccacf6" +c2807a502c93420fa08471d3c0bb698dfc2dcd02 = "80f59f09237df94e67378ef2680e26110c78362d" +c90590155a46b7c112aeebef2556598244127d8c = "925c862e4a113417002bb28907899d2c15bee1d3" +ce0f21d5a7e37e917717b5da872e5ff1c0de93da = "00846a7eb4dac0edf569e1d4440241f2d37b4df0" +f84e1fc4bd871949de9ce9c8890d4cb506c07798 = "29f6d98ebae2d2db9441bbbd1c89c16b82289360" + +[01453d9d-ee7c-5054-8395-0335cb756afa] +3c5769604ed2b4880aedb3a09307caee52de648e = "97fedec31ff4dd4a8b8161aa0e7fa452cceaf307" +3d07901855411c7a2e797ed12747844005f1a870 = "c2ebddbac2779bc69282be3ced5a5fb884b286be" +6d55a63b1a4fba0c5e5e7dab507317bbc3335c52 = "8d1cad282031948dba349d7a14b87085cd3f8dbd" +92266090e284d0c859be3c5ddceacd7b89df1d76 = "944309f8dd6820dc6c8eebdfeccceed2ea734d31" +a75114c882d7734cad560998eb9588bbe040ef1b = "46d8c9a25c1faf705b010eb4a003fad9e9d16803" +a9d8d016e403ad2059e0c4d618af3ba61b1e54c5 = "25fb73cb4993697ef3a887e161c64a4051f486e5" +d21022ea4364554ec4877a107df28c95cbb82f36 = "931beb5d53a6507b8668fddfa6ae18e06ba29ace" +ff050f49d2f1cc787847d48115ea571ffedd415f = "f2df5e6da069b0b393cd2597769743299084396c" + +[01605889-e1f3-5716-a155-5007402aa664] +0967bf14517d1f829de0e3563d5742a817199e93 = "353717578ca7e168f66f1738349d6eeaaac8d08a" +37e1f35418b2dbc99f8412478b205a03c98ad7d2 = "e07beb31ac68aa9c17eb69e05e69602a68c2d86e" +4244f1195e3e3ab5c5b3bde4f4a4200761a77387 = "d351fd397a38c171289ea52dedf33301c65616d8" +4a01a024f9924cb24e0b4a5a05f7f6363ea88f6d = "0ce2e7b202fc9bb0aa2c5ae541a6aec6563cefde" +63bb2001a7361af2542e2e61d2ce6bdb6eef3656 = "21954cabed6e51de8e4870e59155e29c8391622a" +66fc925bd99b50aacfa0f9cd2c324f80ec4947f3 = "993127b848b626eb9697506350f702a1efbcc73e" +78a2ecf6add3cfd20e6eaf455ccd144fde992442 = "d3d1c3c951acd100f1a5f4240337686c3419ee10" +7aa92673e7af4e2903566aa415641f3574480aae = "0d4026215af7f6a99461879fe370c18cf5701abe" +9f4440eb69cae92972ad34e30807d171bc0429df = "c30f6b98c5c0884e87319a0a8657e2d176673ea9" +a020ad428a4270c1ebd6d8cb024fb40ea24af76e = "4f60673d21e22dd90402ff17617f7caba33c63f3" +a0421f2ddadd2a5c059e11034b5f5653e660d1e1 = "878093baa855223a8d648f83c04cc12ae0c122ea" +c7f6b6391146288a7e783098409316f51405e4f1 = "cac0f0776b4131ad4ce401c1aadf4c044824b846" +d2255d7197b6514a3f7e033881f67c8cf5ea4e83 = "64c62a74e1441647b92035fcd53160c1c93ec6a0" +e17fdccfbdf3baf59025c03154dbf0b765034f30 = "46018d4ee6edf46a8b23a963cbb44dd64b996727" +e1e2cacd2922351f11e141e301e92421ce054894 = "c8223f47c056414be9aac16610f5bd87fb7a58e8" +e3739d5fdf0e54bc1e74957c060c693cd8ce9cd6 = "04dfd5c61488b64ec4222b3e552103be60599459" +e3caf3143b13d4ce9bc576579d5ed9cd4aaefb11 = "3a7a592f061efce8c32e8a017c37f2cd5604bd37" +ece6319b574d2d8961baa0e850ffefae16049dd4 = "c40f6b34a9422fec6d1c2b41077c53509807b6bf" +eeb190ce96c520632d79e15725da25290fa36b43 = "0509df90881714105a308352bb9e9f5e9f630508" +f729a7e95083f6b69872a794edfbd7f65f461739 = "38124f1cd4acbfdbd018836ccf33b0c8f70d69d8" +fadb498cba20600092290ff300d7f59e7a529d6b = "3017034b63d4700bd971304b0a3430668163b338" + +[01638602-6071-5c9b-be9d-28079212bf65] +1905924944436cef6f4c83fc984cf413fd40dee2 = "a0d9551b8970d7f2e248bbe57a7079f530df3240" +1aff50b928a78d7b4217fee5ade6151c1b8cd7f9 = "4f86f7d4eb5d08d53bade126f7ce417d3b59d0d6" +1fdc70ed54337781bbb345fd327b7774f03fa88e = "5f1e1194aa70768279ab0e1dd6b9958ff19a252a" +6c86aeccd9ab606025f2e06a7ada174ec6aa3675 = "b6d6c6774b1a9c7c19664e1ae9bf47be7cf89fc5" +8208990f01700081f0583bf39f017c80a31c312a = "570140433473d4a3098e493581a80f93f556ffb8" +baddc7c76f2d57b6384e5943ceb8d5385d46ace6 = "3cddfd2d510c6cf50b1538b9b799a7a60f295a58" +c1717cc80cf2f72ed9caf9a21bdb20e6c3d43fea = "b8dc87bfd46b6cf8519856dff95717053b68fa3f" + +[01680d73-4ee2-5a08-a1aa-533608c188bb] +433f7a1b3fb7dc3f1edbde9ed453c52e03b86f7f = "dfd1463665a6ff10d57becd69a335a4966bdf7d0" +7e31a5d8e5f4acd9cd2b30aa3bf78a748f7d13f1 = "2d2ad218ca9883a659a8cff3f138745170ca3387" +d8d48a0fca88ce92f5136ce7519fad277030f1f4 = "ee3a433eb2f396db9d22c834319e92094b5b8cdb" + +[01e79fc4-f247-5fa3-af0e-2bd1d4cc767f] +3194fa1ef83c88f350ddeafb1bcb289d75d69197 = "0341b08538ecac3c44c8079e10917e21e588f43a" +3bc63c9cf8097f2babbcff91a5f3d549e5d5fbe9 = "4a72fed4c3ee27651c4b22ba4e3c9c78ffc6c93a" +ad473396f0c8680d4147895dcb1848c55bcbc601 = "304f32478c0e83b9d1d9b02550e5d28293e5db01" +df29e469195ceb7abc3a6338c3abc05b56ccdb48 = "73d78b19d7564b50217bba648138f608c2bb5d73" + +[01fcc997-4f28-56b8-8a06-30002c134abb] +adcd17a554eec3bdfae4f8f72031b57165912985 = "564f3c1b97bfde362dec46479662ad14df07ff44" +d163e916a864e5f6d683e05f2795267c2987d087 = "eeef0efdc6897325f223de76a01a10378752e116" +d3601e2a6463c3b15bad1d0c9f7185d65df4d219 = "22a1b00f96cccab957e354cb0be2908a8264b29c" + +[02130f1c-4665-5b79-af82-ff1385104aa0] +2c6367ea2b5804bf74a427e87526f8fb36426449 = "1a7574d9d4dd52e5fa26e9d4384bfd7160f238e4" +6771e7ab89c997811f94884127196ef8836dc5d9 = "3891e678cf6d2eb848e7a307906ed6a825f3aea4" + +[029fbca0-4020-57ac-9646-11c6794697c1] +0505795fde051a08fb889c7295891785b1a220a9 = "d329952317fb799ae0bba25c118965f3010a1536" +2e973402df16a2dc78d9c2266ae6fcc7a35b8067 = "125dafebd67e438dc67163b4ac23183fcda96070" + +[02a96ca5-b822-518b-9654-c826a3622d91] +a637d089300141ce240cc1ad4658b713140a0a85 = "555885eb01d8d7f51f0d0ba4a22a5e5dc21cf92e" +d74f64f1942d7e0a661560518205b6c674d9033e = "b4bbf67c14932d1353cb248af69b364536b1c98f" +eab81676007d537c5d6a204962ec3bb804b8054e = "99284313cdb81bc9264ece710944056ba6fd4f4a" + +[02fcd773-0e25-5acc-982a-7f6622650795] +1e05355072714ea8691bdae669201111ff84668c = "a8b7954e67139f9612208c2cc12b88e05f7a71e7" +235c4e3110d9d31914209899d28024ab6ac0b38f = "df523f948207fc80752969ed963c29b868196f0d" +333f9469a94fcbcc224a901ca6ddab1530240e17 = "21372c809bb8aff81cdcf3085c01cc2a2dc9b2b3" +984146c3ccf2b4c57c0f85c4a481d5396ac1f1b9 = "6101920b6714756a6980059984de0d124a2aa3d2" +abb987453c03d17ed5ba1857a95b0add210ebf03 = "d70ee90c896c90e48d966cc453fcc22b6a26ff13" +d1388171ba37616d62240664fcd1f4a858defc26 = "a4311d63ef7350bb7c97b0bbbfa6b212a5331849" +d40d668d78f34176aebc107432dc096f444ae216 = "605a604bf68e157dc2c3016acd4cc80d70bfb7df" +e697f65da1870fed2cb98ae97eda5493c00199a6 = "3d26c6e378b55517e948718874314b08292d8477" +f78923428ae096ba12ffbc6cf6a9d86697bb0c27 = "14090ebb3e281883545d31b91342b876e06527aa" + +[033835bb-8acc-5ee8-8aae-3f567f8a3819] +190da18d0dc3295f83f9d33f49c5119e10a0e635 = "007c585ddaabcd11d099804921853b8194593e34" +6a415dd6b1d98baeb976babef8696ef243b709b5 = "fdad175ada8c37ca096e1efd4a7d44198608ce9c" +996f4c8744c58e8166d7c9da8cb4c57725521f30 = "5d829d36bfca6cfb1ca24ba3025a832e812ce9dd" +c19ffd1f61d1f8657eb1fae5a8b8e7fe6f8b3461 = "5c4ddc936c9242fa1fb7445b5253a9e26f6503a5" +c1df87ec20745a6f3e5d6ccdbf46313836aeb7f4 = "ab0ba1ba22e7d3f1d1d64508d92d0986c9d911b2" + +[03512f2c-8e8a-5728-b518-32bdd82c6646] +0370851ba7667bc442a4115eb36f988ee9a44b10 = "6e5667d92d5794c34d8757b6794df93881c105a3" +182c5acbe874e45514cdb0d6305bcf254399ca0c = "3a03cb07f8e9205281d27da9e3fe6aea1756bfa0" +1c4448ca3cef9b292afd8f66464e6cd8a23fa59d = "74b58e33c31fd25ab5edc4c898add0736a0b6753" +29dd48298ef1bf9f42e65ac02c5633f782f1dc63 = "846ba5fe7720ef1cbde3603b5422abef1f11bc7c" +2c7a96ce2563065748f2c5178cdb77e2182bf311 = "45e9d6def3e09a5b29ebc7f1271a6c0a30625514" +3baa323b14bbaf9f24869ead73b7addc3ef3cacc = "c72cfdc7de5a55b68dd5657aa287e25c032bb3bf" +3bdc20b8abafced048b5498bfbceea39918f13c6 = "6b5c83f2ede9f8edd01343d4fe59182d7feafb13" +4362af1aa255dfeffe9c1f5acce67bd72416ffe8 = "d3527bdf6b24923de28bd1cc482bedf67caaa3bb" +4ff495f858bc543c5351c3c3618a0e5c801365b0 = "0b51239d855d7c54cc4486271f0838ddf3964c52" +5052a763aff4d0cf608fcdb39a54cd61f92acd4c = "4320c08732e269febf89a1c623125c7c1712fb8e" +57b20511d0bd6fd6e9f9bfa431381bc3d50964ed = "667b63dd58edf226b9a8bbf57c9c016a747c6070" +5dc891ab7d3b65a4cac9b2dee6d8516045d13aff = "fc6e98db144823e96045e26eea7c6d691413a17f" +6e903501936824fac8d94430dcf0d6f6d74e6319 = "ef8a81b5ef390e3d7b8823deb7153accca4959b5" +741bb0973acec68835b3f588f58a303962a055a4 = "21afd58f227b709d2cac12108bd03a013c1729e6" +7d1fd44fdecd43b7e7714c939787c62dc67c5a37 = "33162dd2138872872074b2f6022be327646bd098" +8272ee0b32449965d98dafa0a8b0950feb15a13d = "bf5e7cb969e4bbf0c4ae398a0861cad089739479" +885683123633a4aef331b6a29c91a2dddbd0c482 = "0476f139b53c03f13bbc5d60bc8fbadff341cdd5" +9c85db45dfc7f2da016d3630939d0400bd95b9d3 = "40f88cb9cc24d1116b13e8347dc3af3dd63c0685" +a1e35c262349c9600ed69c0e573dc0a1f1b1ddbd = "c06e8152b6d65ab7c36ed45d43c96cc0d62b7fbd" +bcd494ccd2a5dac9aef95b7d157508ce5925d964 = "fc098369901287e6aaf1cff88301edd3d8284196" +cd4c99d61b70b1c7aaed6c75527cbcfa12dafabd = "1f6b9ab533375b4e7cbdc6d4846d2f9c22250f0a" +cdc6371ffd04ff0b416a646bebc17521d5d58f3d = "dc17d41912094664751a61c03a85013d9abd70ce" +d6d685f00854123d8fdbeb2f5d3772425305502a = "8f5908b88fae06d70305190eddaa2e0a70b46fa5" +de31cfd89517e5809b66c0085f17386ffbda66b4 = "11df30356fb0ddca28563da5e37df59d90b2c4e9" +e04c7ebcce613cee8b95d61ec253e075777a4f87 = "2e875cecec5bbbf89fe4abbc93a6d8999e0bdad5" +eb09710e13ca9fe83a08ddc5bc86c1d965b18419 = "66628f97506474a6dc636f752d194d62749ce1a6" +ece5399a2328f2722efd8df5cb9a635f49484471 = "0286f1a154be95cbcd106a9207a2a4e18d969f78" +f429b5b2b300679507cec1e7060a79104218c525 = "7075b5cbba425704b68688a6e8eae5e7fca4a1e7" +fbd7cfe5ace6ed9d341525a10999f40fd5172ea6 = "b55aafec1f6709dc5329eb4ebfa6f04401d926e0" + +[0376cc21-f8a9-5fcf-8891-fde1415a4fd3] +3f82b06cee3cf0f129fea3a6bdb014812c681647 = "da41b802b4a65fa0276799a010be5fe482a34ff2" + +[037cace4-c66a-5006-a6b7-c26ba1b2f83e] +12d358202a61ab1054114fabda431d28dd632c39 = "c775774cec39b6f8c0b6c1b2cf607cc56a52798c" +15c585d01d9b73479dc952b0fbdcd541962a6e28 = "ccabecf3f6820596b379b3740fe121d37c68687e" +5688783577fa82471cce02633326969d4ceaab1d = "6592f098b3f7874cae5773beb2c8bbab0bc8cfba" +e00858b11fc63537c014de8add8afa2a99b59ba0 = "aa262735337ab05652e3dde46f2aa3468f4c8fb8" +e6706c7617ef558d907098660cdeb371cc1a1007 = "6ed0cae3c8a5e3c28a63ad8c44aa23d27138ab21" + +[03a36d30-c4fd-5eb2-8349-29d148f4657d] +29df2690c2c3ee8c0ae726b72170240b5222dc94 = "e09861afddf89e85cad060c7c074a5c42e5dcf82" +2c03a8fcaf859d956d25139962debcbf117d7267 = "e6afce44f1fabdee6005607ba1349ec205407e9f" +32c9b9f9f6569ae95dd3273af0420f3c65c152d5 = "6c81591e6e98d7c450b6b1757836cf1eb2828a0b" +96e0c4cfa937e615d1bc35a167e88d86a3e7d92c = "79804da2301314e6000e448ec63157e0042a1df2" +be5cc850b9b7129a321f56752d027db5e221eb05 = "608f206a7e3e6058e172792047a1caae76050ecf" +f5362cadd3362cbcb6e0e592feb5bd00729ccd8c = "019c8d9ce8f69f59a66d69cb6fbbfd2a5e831f75" + +[03bc5d91-8e1a-555a-857b-eaff090ecb7c] +2fdd9dd1aff12a04c5df96c5297546f1d414931f = "1c2dbe5831d35977135580c6af3f8544a39ec6a0" +8308836e90bfcc067f1f6b076c350a11bfcd4b44 = "11de118a787e4b8aef6884e669d2ee3246454e12" +d3e97274f8706eca8d1ce3c0f343d0d7a913c68c = "abf246f2a437e47b352bf26f781bd32e4a9221e1" + +[03c08e68-d706-55a2-92d2-cbe0f9d07a98] +12df0ca8b76e6e6d3aecb824e2c1913f466eb393 = "7cf47a675a20256a9ebfa883dece00238f92e8de" +46bc6f8107eb09e3b9433a334d742b2fcdaeee13 = "8d1bda126f067e97cc254eb9b37011940f239b75" +754cc06c169a300df975ce3cf228263d84ea0ffa = "4098451bade11c714b365b64c7eacf1f0eb7012e" +9084f21b510df4fee19027a54c40c8072b79049d = "aa2fec9c24092fddd3cdb63cd674f1524838a95a" +ed4f7df2944fc51c4a2aab4aa49c396eb5277ac3 = "9990ea9dc3552cdf71fbfb9142fb376aa88cd2a2" +f970ff635016d0dfa367599a38ee89f3af5d8471 = "096a6fde7ba68a5c55ae1664078ff0b71b43471f" + +[03cd79ca-8c7a-5860-9d8a-6c8e1a175697] +58822e9ba8cd03ec47bb18ef7d94933912fdee3d = "5424dae375abb3acafe285136db9d9f1d9969bf2" + +[04294c92-b9b2-5258-861c-e23397c8ec5d] +10d26d9de535da7083ae4e8f437e621d7bbf79af = "54f6d2a3a4ad752d2af511a070d6b5d11927f512" + +[0448d7d9-159c-5637-8537-fd72090fea46] +2657676616470eb1762a8d2c01696d5097ada0f8 = "64beca203f4bcc914a6f1abea294cc6b634d70e2" + +[047b2e30-91f8-5da4-9177-44fa5827fde0] +5b9bc46a4f3e5328f5c25b5b9f4af30f5da4945e = "fb5a5c8d94d2aa4e880e6a4411193b203f07730d" +7333a9a854e09d430bfddd5a3cbb7b861411d041 = "7e40ee8c73ae96859d10476a91e9b1d74cdcfdb8" + +[04a3d532-ba69-5937-989a-472689bdb720] +1c031f37cd37dbd6d93c420756a08ce44871d4dd = "baeef499acd598f9c6d06c59773cc1bef8654741" +4d783e9802c54167ab9b8d747948743f7bdf0adb = "4bc5629174530caf6ee86eb90ab0f92f9036c34f" +6b9d28e01b487ac2ad04d61efe39e1bd12a60dd0 = "5dc69b2f092e0e0795432337a8ae22c502924c7e" +83c014c5211eacfda4f08a5c960cda31dcf7a84a = "2a84fa432b4b721a0c95b3da38ba57e01c259b95" +8c731e29ef5fc45be68b61bb07486e78d8fe05bd = "cec887b96f312cc83f6c3f7927e60556513ffd55" + +[05003743-e4a8-526e-8961-a30f3f368c99] +68c1880a0aa524692e12dcd9eaf333ca07362a3e = "ff80ed9c1c45879d8c2a0cb3d58ec2ef836c0fef" +9fd6bf423869054fc0008f09665efe769db54e24 = "c66cb49f43375bc4e45147d0b4df4447eabb6720" +f96bdfc4f8d438bfac9cc41da2533a5702c675a3 = "49c2c4e4f9ab7509ddccae2da47a8310071c3dca" + +[0514ce98-527e-5c83-a6f3-1386c478fe4b] +8d5ba82ba640582a57b25f36001f37b41724cbbd = "93c2d770a3ce87e10924ab25c4bcf1c888a6429b" + +[051d7522-44e4-540e-be03-d1c94a7ee7ea] +0225a5077146edd4a0b39e3a0e91bc6fe017bdda = "5f3410b20309130526a2e93df94a0c0949e9edf7" +14cc8ce4084a585c9f4ad6f3e14f444dd23d1c1e = "4fe0f6512e88caf808f3da0791304de8e46eaf1b" +18c9f7882e9ae5ebba99f747b48f9d2ac880721a = "9f78a914494173c79b085d32a04ed4f344df18cc" +1c476e15a749b6101e563938b9430b888e6735c1 = "fedb69ebb5b15d8813be0f733c2bd8798e6aa3c8" +287e79558e88857f59329935531a4e75ff0c1ba0 = "98954e9a8df23694fb7ff0f86ad2bdd63fc17eb1" +592e9703f4d61cbdce35c268e4edd5a77bb3196b = "dd5592c42f30c7b35570594f9802c6cfd3dda00a" +64581ee4431b78b218927d649756878c6df1b1e6 = "f3f2f07df9ef8aa0537742ada4690571e0f2dbb0" +6faaefe653ac6bb11c58335065b198946f254b3b = "83755bde75fa75fb65a6c4a9d368d2db06daef36" +719c904321693b9fb5de87647cbdb78f76224ddd = "29963d9b341e6e227caebaadeeaf5dcd2480ae9a" +79a986be80dd747568c9b27443b03aa3fdae3e7e = "a0c89853e8227ac99a082f5cd1e862d43fde4cc0" +7aa1efdd8de9640c398e7be5ecf1376535c11597 = "6f9f12bb9dba78c179750a75c9fe69ea2b38ce91" +82d1cc83dcc51406d2fad9d81dc103ae58a654f8 = "98548857060c99761bdae22390757e43226b9876" +8cde48775a27a086f03731b35f784d4f220b7a20 = "db0fa352c81b97eb12d9fc356e59a93b516af03d" +a1b55165b0cf85b0e22e2e88efdecebf209e3d42 = "ed3075a577aa8bd85c96a1eb41897dfe7fc8348c" +b26dca4e9d4d41612cb50e66d5652816447348e9 = "9482f3e3e5eea1eadc9bdb03c508d9c0171342bd" +b9fcbf290e582f9b48437ddfa95a64db20b6edb8 = "645645dd3d361692e77202d988097c59a1539421" +ba7e65f76bc330b62dbd6ea5d1a371621bf4d74f = "30f9f0f1184658a5d24a62402b8e0b10342e74a6" +bbfdd54110ea7ffe55b589a9f1ea42420aed9f6e = "08626bb683fa5bb80587be71f76562ec1673714a" +beb8c034ad17d075226323caf3570c9abaf1d771 = "e34dd32e10053d8d12ed68946b423e102c9e6bf4" +c2b407da6555ae1ad2fafbf064f1b256eb4ce138 = "c3b41e958e83305f1928f6e8225a5ec8b31a0019" +c61b599324691ce077d73fc6507108d7e1cd7c02 = "6dcc3c363023362b38b937c12451b63228420c84" +c84239ef91ba9d0b45703abce51daa3c8ed789ab = "150c321b6bc585938aad8081911c5b05b4d7082a" +d3d4439aa143ec51830d61d632c8e81981f67d86 = "e8899f413adbde2b3654daf0a984f3f4c95961a9" +d9adeee93625f4bbaa5882b501769e41465963a1 = "a55be08255dd40a48eb0f29b3b0eb78900df501b" +da5ea0886af56734b865b9c3db6e0b6c1110a8c7 = "fe14007500d3e6d4f5e06aa9db5d4c01732ad12c" +fefc2da54aa6bab92d8907e975015ce936dcbe65 = "f3ba8afe80e34ee2205f6d5c46438ff8e979dd7e" + +[052768ef-5323-5732-b1bb-66c8b64840ba] +1265ee03bc2f1fdfddf02d5d4fcc7de32789cc54 = "3aee0ddae4c5bc8bf0b4d1ab2b199871b75f0d67" +2caa0935a0c9cf61012a9ff26bd6e2260423c562 = "3656e3dcec8cd083cfceae69afaae7fd1bc3f8a3" +2cb229c193f2d9efb003ba585ddb20203f67268a = "08f555dc33b2705b9fb72a8f000013486d0acfae" +c126f7bd1fb864f98812f371315831009c2c3603 = "4ab238f196d88b075ada6f3dc7efc36cb9899dae" +ecbf020678ecfff7a1888429b0d3b0575d29c762 = "8168c87c5a955a9ecd2ae7c8998f3387207a7d68" + +[053f045d-5466-53fd-b400-a066f88fe02a] +660d125003405a49c20ebf27f9916949c7a55a3b = "73b2e44f5390cc3bb5653fe803504f32721b436b" +719e7aa2b187e7565326dfa6fa4032cf958e4c07 = "fbbb463fa488e1e0f1477de8d2b1f314f8d51f92" +e6bbe68143d753a0be7e61c50acabc02b413b0d1 = "203057d41cb53f8d334b4f7bb83307cda10dd9f9" + +[054b7d4e-9922-5ad3-8b46-7dbe695a681f] +2961c15a28034c09ea85150522e9a40f15c31896 = "8ffeeb7586743f54aa68110438f15d50421b3392" +37202acb62ac4c8be1b19b7fd2972ca70fc7a2b9 = "88f34fca409a7a631a68fec194c00be4983bfd76" +95c28662c5872e5a0392944895161edd5c052bf3 = "f9f7a682056b22b589846b3618ae72382828bfc3" +a6e0afc0fff149c8aff563aae9de0f80eed30632 = "bc84f4dd19c82207129a4929fd73deea114e88a5" + +[055956cb-9e8b-5191-98cc-73ae4a59e68a] +692c2fc00e5eff13a36eb442fde224f2083ba814 = "bc129a6b9f6a7d48496929af2f4ef81950bbf588" +73f3852c321579270ab1784c076c2ed41b40f585 = "24c90beaa7064ce411e1b4a13ebfbb2517cfe0cc" +bd10263509c5c56d04639bce9e5eb436bc3c6e7c = "3bb2d30876ce6bfc2e9ab16c4ba0236c940bb4e7" +ed95399f33e64218e71643ba748ed8ce55d769a0 = "90dfec4bfa1e8a7af03b55f8a2253a61480049fe" + +[057dd010-8810-581a-b7be-e3fc3b93f78c] +18710e9941804f9ff595dae4212b36cc6b2bc649 = "ab40dd72803104dc266cd47b5f05a97fff22da63" +3f6fae42d58de7256da668b3a43546b16252dc1d = "cc928faeb6a556dac47c7dd8ac20cb762bfdfbc7" +464753f3c62f0527c72b72cbeb7baf5cf38a48a1 = "6ff002d0438d1e848983da28f67a3b6f0d52c8f3" +64d662eb9a3a5a54bb8efd2da63ec837287178e4 = "ef28504946ecacaa984fbe2ed57cee7fa95e7996" +66d3b7a2c394ba55fe1668d1f720d0e18b860b26 = "b99882abdcb3e4edd47d00aaf98131347a50901f" +7cf560b7dc3baca66095b83614cde8ec21406c98 = "ff4974235fe9b20df8de391d89bb050203af4d67" +b6e4fdf35a2160f0d9948e6565fd69c2177f4d82 = "badbaf43e6e3871b2d24bf00623886da752022eb" +c8899f51e1ae7564ee7a46eefc843ce2780cfa83 = "b12e7b4431128ca523df77ced76070d315a448d2" +e2b7c5989d21860f419b3ef67a50ae268292ee11 = "1349a72bc08869e0a6b6d18275207e5875d968cc" +eb9f1612f174cc1f7c3bc349deee94aedde77825 = "158487cfe1eb7323bfac27adefe5eb113a2edd2f" +f48a21de9b2195b8b7dd76d6999d2d41a6e370c7 = "6cac569a5818ab4546ed366008a7c2d9e2db6fd9" + +[0589d01f-c3b6-5cc6-ab6a-4b6af70345b6] +019608b6e6bf8472e9ad0f38122857cbdb70654b = "eec041b4ca6fa7061e82b1eb0b409b64bc6adac5" +0cd4519732307a686919a8a298627b6076cb9eb1 = "11acb9e203c0b450a175208fb92cd63d6dd5a9cb" +1d01e4b94e08fa19ec0ce41f0d0a1bdc4516bd4f = "a578151235023620551e2008746585ef036b4ae4" +6d63b4ff4f2e409a3936452ad4fa5cee890d49c3 = "7117021d654630b0994d49621f69ab569afd59cb" +ff522d28c0bb4a203a7e2de741f31981e66d49ea = "cfb04aa9a6396a07c3615455aec53a42c6d2eae2" + +[059e8e86-8a00-5752-9d3d-adbce60f63dd] +f762ca6365ff5b8ba30500054412f45fda4a165c = "5b1d6e662298a876b23419dd19ba97c2036fd9ca" + +[05c142c7-bb2b-5e1a-8572-72adadc91edc] +16cff41a99010ce38b1380fec4c005ee717ba741 = "56275ada3d3ba5343281a78000166b7b0a34cbcf" +4b2a17213c483fe088092bc1b9f5fce793de0a3d = "93ca009f575c78a0a9a6a6e4b215cae14a740c83" +c2f9c7ccefaf4b119c5cbdc2b2722483135e52b1 = "a860667e9d1be66df9ce84a2e25b63fe04a78109" + +[0612f1b9-51e2-5127-9fc2-313c368ba66d] +1ae9e33ab9ce5bfd0d8a7ec8d3479fa7c204d235 = "3e9731afa86096b9e4145c06a6879734ce817596" +31886c1ee09b86176d40354bf478dea09d842910 = "1591eb6c801fe8ecc23718b8443739a9c0cdc135" +6905395d8ac7d39864617df0d4768ff7ef36bacf = "18b19de6631fc90e33b320cb792182b04fdd303e" +7b9db6cf3ade32c68fe70e4ea5769c13a78296fb = "a96a3b8f6ddd0f67c364acd8adcb27f67c2b0679" +9c0ec8065d3641ca20f0da50c7f6d723fb0d37a4 = "6ed5b4995529de1c59514ce65f142c1618ef0f17" +d8639510d6c08e0afac34fcb5212059793d49363 = "2b1e7e2eb7fa246b323695cc5da09c66a199af51" + +[069b7b12-0de2-55c6-9aab-29f3d0a68a2e] +08b07845179cbfebb9a7ec995c07815c7b4a9668 = "451a665446e4f8f90e685f82a2d9bb6c3b0a7cf9" +aa1318c83d1c4c80586700f7a43e54ac49b9c1d1 = "ccf05143aafe4ae0ad0d7d2ba8de86c1ba25b6f5" + +[06bb1623-fdd5-5ca2-a01c-88eae3ea319e] +c2e9c7c53728cdd090aee5d0b60c849490031387 = "998fb9e0cd0291e40f0423dcf044485511ad50f5" +c910a5a28016003ea4c6118d998e5b00ec911036 = "08f70918918fa38ea605eb6fcf2f951a612f9acb" + +[06e1c1a7-607b-532d-9fad-de7d9aa2abac] +28c5446f1766f1ea0635f8c5f48aeb705ad6c988 = "455cd1229d2328d202fb66eee461adc78191def1" +62d7ed488a67e64f3f20605bbba194862eac2525 = "268804bb7e82a41b8fb9142f3a26ac6da43530aa" +95234d1692d843e02502ff8e261872915312c6b7 = "d1e88d5c67b0a22f2df529e4443d53ba1da41a84" + +[06e20410-f094-55a1-8b95-30db52a31525] +29e6fc3a186aaf7eeb086a5be3b4929990374a5c = "73d3f6eebaf8767343850a47ad126e831a2ac983" + +[06eb3307-b2af-5a2a-abea-d33192699d32] +1f626ee818d81756e582aa9cd83e439bd0df40fa = "fd2dbfc1e6a0ede27b9e499a52b53f3927da4f80" + +[06f97529-6637-5087-ad05-841db92f8a3d] +2115ae6139d8eaa90a834b81a9fdaaad8e582d36 = "a1475cf184862f46b5165e0709ad4c39d96880a6" +3acbe7e2606b14df2232e20e8dc2355d40822447 = "9aeef63dceb50bb72f7a556b1494b9887f2e2ddc" +7388f3f44e8fbb0ef710fc45e27eb3ae6c24dbb8 = "48979613fa86091bfc47769d03d0620b8260a742" +769d7da40c5d8a05b03e4485bff065681091c48e = "ebc868e4485b8c1b1cf0e3d7a1515dbe8deb8864" +7ac4d640505a0e0f5b245cd3a92c8e86c257bcfb = "91060f89f25a1c34f66fca5a91e183ea494c2068" +8c4a01c03764e184f65468ab9fa3a486c09ce7f5 = "3bc6ddf9f291147255c59de3ccafe2c32a2ed74b" +b66f42df9cff71c7374b5ab37e9f81a52c27ff5b = "5444a3f83d6737db4a05c6746c450dac37081936" +cb03cca942d326489b4db413625d36b5503bcda2 = "8909a63c432679cc62ee1e47cee71612ea14cbce" +e8c2e22f34e21fbf2170180dd89b34bb311d4bb6 = "de766b5ca106f869edf50dbcf200ee03ad77ceb5" +e9fe735e4b7227bacf365913f22841dcfe82e7e1 = "9daf5be27d5de89a10e8184c1e8e9dbec1ab1e87" +f6b57ff4e43229a0f78d8ea4515570875188289b = "25c274c7c0a6f6f2c2a07d375e63a5f112f9ae68" +fd26ab86374abe85bb3cca19b3548ad572ce8e31 = "5deb1a3c7122ae148a923e5531aab144203b8645" + +[07022389-42e1-531f-a782-428ffad55639] +0a29d43e973b7d183b3010a30c65a64d63ea4381 = "41e0f9e636318b9221bc0450fac3c8e28e80da59" +3b27bc0d23a49877059c1a4746c3c26e74e34807 = "e5f85c6e4ee1155bf2810c62e3f5f325283aae98" +4548467d0202c73bd6f0272687fb5a6d2c6b64dd = "2a0a11439cd321f50c5d9e8a0464aaf3bd845b2d" +76ebf88d7b6744788a457a8fd9cc0414b8461cbe = "4538b0e92ed8fe52ec461224b28c4e83a93ea93a" +7f0428a21063160248d7dbb8d96ffdf18e6b7ce9 = "62fb1e5c66969b8653980d7a8767995c3d5cfc68" +94472c1fe8e49ba14be4105de3241ca5b5772a29 = "856eb236f036419beb76d8ad1b41332b2ad8b874" +a8275d6d7482d051033715812c0bff30f5634594 = "60ec8e5dd9ab901558555bf50ec7a4da38781545" +adaa5fb738f18a53d7e1ddc3e27618a4d020f512 = "78b23f69f140b03cd5d8ef7f8a68e1c717c8b413" +adaf1d0e4a441f0f8fefaa2f8cbbcab87750349f = "5f3b959354e727c7d87b473a299f55cd82cc871d" +f815dbc1bbaa0a479ad55eda4083ba4a2ca267e6 = "997b5d2c908c712ae801184f93e3b2bc152e913c" + +[070d9d8b-17a7-5814-83fa-42438ba5c6e0] +3568ccba29a1ab406db50eab42a43c2d3c2fdfc0 = "5539199b0a23239d559a36bac90c3d6e95a43dfe" +59c9f516ef249ed266b1a9f020fef07287f7cd9b = "7da277d8b5f5170999907da9ae6f2ca5d31c8b73" + +[0729bffe-8e6b-52fa-a3fa-893719b744f4] +052d3451d5a7dac291cac9e5010c83d0050aeba5 = "d3b4f97616a9c76c33f816fa26259235f05e99ba" +2a35eafbe4acaf9cacb63f6f739265ffdb69d5af = "fb4f5e8f85219b6042b84280e046c352b75b7004" +63c0cf1dcbb02157c66035218b38fa573d0ba42c = "6c294a77dbb537f815e534bc8352a3748d364e6c" +dbc925f5f466658c947afb3c18f4b6296fe851e5 = "b2604d6eb17df8106d748a02a5a24c1ab04988bd" +dc0c38d9a3a1c748d9190d32af6f2a4c1307c4d4 = "0da975644d19d065bbbeb9753a5ef8583a2872f0" +e2f710cdfc21245b9fa948570331ea9f9c43e886 = "693b31ee5c2c44a351e44111b574702d778f94c6" +e52a7544679997def46480cae709cc43c061189c = "e874131bb0d5bd06cf2465738425ed11185ce574" +e8a8fdf9ead914945740608a5c3c744d66b49457 = "a7ad2fe0f19ee411784f8bb50fcd95455974cf58" + +[072d6d2a-3012-5899-ad46-80d259e265c6] +5113ce6044fc554b350ea16f92502f8d6e077a62 = "c89b6fdea14d92febdf6dd466c05405c1c364d69" +8208e29af9f80ef633e50884ffb17cb25a9f5113 = "cbb9cd8cbe4abfa0bf1f2084be2407fae1597d28" + +[0796e94c-ce3b-5d07-9a54-7f471281c624] +0f9db4dbe7e86fcafabb30553520c2cb3561e0ff = "500896254c509e3038c44dd4fdca15438e58efab" +109f26d78d39796e852d9bc67cee14791453bceb = "39bca64a69fef7b9535c84d34506defcdb32a13f" +26eacc4a7af9b2ec499be87fac6fa5f92e4f76af = "828242f17dfe2ad6aa31f444b31ac469c589452a" +2f4cf283b81c2e494e03e843f75504096c607c1e = "d52ccc480e31091fbb9d72b5b4d0bd0b6219ea82" +4688efcce05fa4fff627bff02f094e28bb2998b8 = "31000a2b9465db685e8db16875d3abba8356e9fb" +65db7933c987c2337744799870efe638a8f2b1c9 = "1fc7f89ccd25def7f2c1601d437757fa5109be1c" +7a669a438a02c593daa65cd169ee4467e7dd43ed = "a6a0543e501885ed151f8a40ae301051eddd181a" +80fc211555905b1aaf89b17f6d2d5f13f613c797 = "68b439ef5f99957b044d8634e568a8a31b922e47" +a576699e78d2d078329849e398f288a25f35ea13 = "2367d7124a19dd236269e58f0e4688150152e955" +b3c8238597432ab12d0c6804a4a751b2e5232745 = "b70b893b26c2fdb022765bd5abb8b431c7c745e6" +d272c6ce2e6efbfe809c495c8aee2cb02b035c45 = "007b913d0772e74f3a25527d067d1db84cd15449" +e271aad83313337e83da996da83a8eefafa624e0 = "6da95fc33be256c19f3de62af1e12a6174b1d104" +f7359500afda80b355296587abdc9a55b736eb48 = "45f2bea66b00f2e74331487f4e16e3e2883ae057" +ff2e35882f71ef6f2fd447e63d81582fe6c9643d = "15e043a89381e924a2cb86c69e7b3a373590d884" + +[07e3d4f1-5dc2-5a3a-9c19-e1965b76eff9] +126ed40710badcc71d23bdf12ce9b25e1d915215 = "49c188fbe1781dc1c004f73f181a85c97929abf1" +46fbd7434482e1969c6abfbef674422d95e7c61d = "327bb18700ac8dff42ef30d3af16551d62f5c6fa" +48fa9acc07333d48a4a8848b2530a68d8612f3cd = "26a85db0dbe82d516ec43c46de5132723bf9218b" +8d3c3a0bcc981810a5e7f40901e736020f98892c = "f2950183ea3de6991125ef4833b7a8d87a289ff3" +fad0dde74af1295e4143fd02a9f5e67774e71b95 = "139a2b4da4167bde9c1a67b70b3161dee53c82d2" + +[07f61e4b-e00e-54c5-aa15-eb17a33f11b2] +29a2a0ff2c81dbeb2f63a2bb3fc23710566041c1 = "87fe402871e46b309b81b85bb0a127e001bfc2c0" + +[07f847a3-b39a-5451-bea0-0f0f0688aa14] +0ca592d5f388d7f3eabfa6aa049077a561092666 = "cfe7a748a2de44923b7522002ee81d08daeaa0d2" +56f549d96f4a202fcd22abb0c755ed02932e5575 = "d629dd54e052891ccbfc35aec0b6c53938ccb8f4" +cea3d8a6a77c38ed764d0d5429dbc55bf7568ae2 = "76721eec14bb582cad0eaac2e3e9069e6688cac9" + +[0810563c-c8a8-53be-b185-e51c33dc41ea] +60ded6e068c50789c6f4238dc22e3ba57f38225a = "82d09ef77b83b02d90b1119a91e5d3d8c5a2af94" +7885534a034e5e0fb704ced7a50b5259fe8efbb7 = "1076e895244c5e12d2d0803ee2ac82f66318ffb4" +e415b87be73c774d1fa69be41446039acd48b52c = "716d874df989da9fa82fe265cb37d0a502fbd711" + +[08131aa3-fb12-5dee-8b74-c09406e224a2] +0a10e44fcf3f72060208ea519e6b3825d7b8a790 = "522f47b283a0d0d905c220dcbf29021251e5f32d" +0ba1ed5d30bd2e6cd557a284c2c8336ccd9b78ac = "d4dba5397fc566438dda239b77f98bd625c10be5" +161a9e5bf4817e7db4a72a677ddad76768ee6859 = "653003324997a653417dbef897ff280950e6bbe3" +2bb3bed65d74cd669c318a41f11610c48c92aa7c = "a7057b425b3bb0781d6229d011f61a81ab9c57f1" +409cb88e0921ffa5c12e79525fb16b2ab89025da = "b1deab1da78f92e811206e1041aca0dc686cdd40" +52a6e701183a0324a408db0ae7bb9be00d3037e8 = "b16379970926f4061d13b63f2b4a9c3886b858ea" +545f101a648c6a68fd025fd45ba018cf918d12c0 = "6c888e9736668b1b126fd351890a8d3bca81262f" +62a80275abe55f0725db45c7606a10b3a803d226 = "cd055f1ab62dbe6b522be78df7a4cc34088cd6a1" +65bfef129e04d3c9846bf014d9160d6352c1940d = "737739cc8d72b4841df5bfc911ad59c9a0540596" +68871d723f797a5ea876d57df1cc13c7d519f5f1 = "0795deec5e717cdcf89cfdf836d79606df4b0786" +6c76c162e94d2562da75b58114290d97e73c5f2d = "e664123afca13a0caf2f08f2b91714f724732293" +6fdcd965e7d331c6e93bea74ace71414a6e27ac4 = "1774564d824dd591b3ff394dd64bfb1907808702" +76ae49b6430b9a350d74af8fb8d36eb39ba74015 = "9af94e9598bf1d3d564559ca749b989a08fc343f" +783774e452b71a0eb6a4d26c3208dd2f0a564083 = "f9292930c8fbb4b3bab7e84975477d0df00efff4" +7c3fb4c3021eb2ccd9742b7823e0de6177a63312 = "1ce53d235640671a4aadc553f4a8b76b5fd9927d" +7c9568e46390ef20f8c0bd3666050375962c944a = "5f562f1dc5188e9f5b1e43346e00cf65c7612821" +9fd1b25b03372359d2c63557e2dc8a745d16bc88 = "d4ee98e6992770cd847ac92942da734aebaf1cff" +a5e1e744854f874772e29f6c3fedc27d405ec8a1 = "08b0f86211c06c47df2f6a1030e2999126dd42a1" +bb419cee07ad11b7d7f9c36e010b8ea8c7b46b84 = "0f4a2e8b4a1edc55aa6adc9dab78416fc78a50ed" +bed2604311f6164338b0ba4383dc33c06bfaf318 = "fa59179619806bdd96bbe4f7c27a72f17157a225" +c679119b33909f5745b0825694100b5a24fa9b33 = "999c1d7b64f6c38ec045a8a629c31a3f9305f1de" +c996017edba0d43e0e1120362fc3bc0613a04c88 = "49260b6867304308fc1e5d47fdca50f42cbdca3d" +caaba614aaf7dd7e6b2708e2a2fb53290f406349 = "81bf7d69b26943f050875b527312251a1c682343" +cf73574e58a1940edac603cb4cedd45e9a4fd107 = "db421705ad1aeb15d83ace81fc97c73cdc3ee6e4" +d813db49313e7eaa2b5e60730c9b062d79fc4877 = "5f1adc4c157c2048a8c1692ccb911936f1b23e5d" +def06f1e10e09107a84dbe138a6221b3d79e2b0e = "44c16938a2a9637e572da48667e2ca0762f88a67" +f488683b5f4f8f51d97fb715bb7473cc48c5d1ae = "9bfdc15517dda7153eac550f8b3e242aa894b1da" + +[0818e8b4-bd9c-59ff-a62a-597382e55725] +03933c3c6396bde5470cc119e00889630e5c43de = "5d34a8ebcb3daffcd12f00defdc359cfe9ea58e5" +59bd0b99e820b5ee367e825c4afc2363b96d669a = "692317eb79cf0644fa07a000ba10fb21280ff071" +5ba878ada339acc0e3c50bdc2b26fdbbaf1097b5 = "b6a7a425114f8412d244d3c4eebf09ca987d1fbc" +790438da3e056d0e00e72e6e5c136470fe645bbc = "c512313fed93ba0ca2ebc1419e1856cea5c5f375" +7b0ce44212170a4d222395b8fc1a04da16f6a8a3 = "605b085c64829895346c4e64b0cae3dc1153f9ce" +7b1b528edab76a0b4b4179a2a4fb453a054860f2 = "e0eb1c5358d00c26cfff4a6a12cc8c97c1be6071" +7b49e233c5d284d7d95fcd0c4de0a80475d0b852 = "bf6e08ae5f2c23e8f82d3c54adee963ec190cb9e" +7fa7340eb5896a5fa0845db6d92f2ce31451bb3e = "89f9a238a76c44f5d206389d7132b8ff27f5ca97" +830c086ec8a7d03050c4506733241f72851af08b = "6656cd383c0ec962c68585fd378075a4d1a23b58" +b0132a92ba76a95ffe54381d1245680d6d2120a3 = "68bb3d148fed522473855a3cfadb4f34dc3f56c4" +c62415b14b536dc2c83d50471477503a90755f22 = "ec30abcc1998f3a2d31a2097e27c5381b6805b09" +daa775971006578ed3fea6326f8bc9d34858979b = "c8a20913307c78ec250be24fc5409284c672685c" +f177043a424aefd5b113c0680269e5a11834e8c6 = "18af97b4269ac38ab6a0dd3b901eeaa791fb581a" +fd8327b0f49e2a1fc7b4667029be595bccadcd21 = "b7c6b36017099a60079e8075436d1a75cba149a5" + +[085fde7c-5f94-55e4-8448-8bbb5db6dde9] +86d320fa3f26c18b4aa815843e185a658ee722ea = "1b4a5a554ead9911a7ed5a75318540e8d3861338" + +[0862f596-cf2d-50af-8ef4-f2be67dfa83f] +06075bdad21f964044ea7f6780cd5e5e7f886c7d = "209ad3bf9b947b8f4d6da3f4c9c1914f4688227b" +0cf86c1d4beb6787cce7a2c5eb79dd2050af19fd = "161d5776ae8e585ac0b8c20fb81f17ab755b3671" +17f87c84dacd75bca9c873ea72998978f6c18c01 = "d62a5b93cab2302828d1f42fe4caa76033c83ce5" +70a34c3bddc3f74d177c9a19e983eb5a4ab4f560 = "f43e49ad1a1173940a5f2268d7fb2fed3c3f8dd4" +8f0445acd8dd50474c38e47b8b75524e2e3fd250 = "92209120899bfade10ef6041aa8b8c5fd63563c5" +9592f780c08fc24fad9e6db037d6387bca1561af = "3e7f9ca969f323cc12c1b26c7e2f244ae81f2955" +b92c3d632a2270e5baae9cdffae0a902084584ae = "34406ade9d82be903f0bf635852da4bb1b3daa06" +e5de2602479f17c628f854223c6ba7baea6ecab6 = "ad6f7e4de6aa757b85c02f00bab7fe61512d436d" + +[08854c51-b66b-5062-a90d-8e7ae4547a49] +33326fc195c5b3b14f6b5cb9d9062fe955752bae = "0e26bbd86c8653c5e7fc68a0b40df21c7fc50ad5" +7165e2230f98146b5f72520fea77dce25503be11 = "d9d4e7c6a0556fa396977cceb9e5e74b24805ca1" +8bdb25ec02c25407c581e0f98015e31523304a43 = "61a17bd6dd9cc0a457a4009d23ae5aa139d110e8" +aac0482861098bc9f7fc4910c469b790aa9f5f39 = "9a785678819b7b8beac2681cee0af1bd37e9bd4d" +dc4d9ca8887537e4cd24ea5e7259468f90932394 = "52a509359ba015308edbbe6401988f9f594e0315" +ede86ec60e8d18c9d05a7abbd2926f2acadc30e4 = "c558bfd86550c69ce45b0407d45baea7ed804dac" +fa9b868f03a611ea42caaee37de120e54787e41f = "81d84bbe85533660e386e10eea34cf218ad836a3" + +[08a2b407-ddc3-586a-afd6-c784ad1fffe2] +151d1e1e4c4ae1bebbee75375a85b8b2f9f49692 = "bcf5766d33e53eb25857a4229f69cff0eb35365b" +24ca7473cfdde2e12c1828197f1bb5dc71121b7e = "4fe967896ca59eb025b4d73811b499328f28defb" +3f4059f5000e32bf9008c0936e788799d1f4191c = "71de1b23ce459e772c7cb5f06fde66ea3961a34b" +6d91e6a84d8a3c6baa98bf50f5f18bf33023a4ac = "289813ecb9ef67b03cb63be2f9ae36a6c796d0d1" +8d570ce2ee0623580f881162199a75862f3c7646 = "f90107481b107ec764e5ad9cc49cb4c842750992" + +[08b6f058-0539-51ec-9920-f66949f89f7a] +1720755eb76708b4ef115d9b9a991246a2359f9d = "76a389b072907722241818eac85c5d863e94a59a" +2c0c53334d99d5ac6de9c6a8354431a516f3999c = "4f4d8d970f324b924c7dc03b383acc22e518575f" +35712b2ff0cd475b52cd41d71f15027b728cc174 = "2bbfa791cfa2e0ccfb202dc4208c7b2d0869ba50" +3cb70a302b74886c6a75d649c06d6033236d04e4 = "7eafd8d4e4f610ade4a5062faae7a2cdf4f4da34" +3f4d639ea290483c41f3450bc39e5d88a4ffc222 = "30402f625b038675d516af63a9d7abaecaa445cb" +6977b08f642adc261f78a4338919f5ba71e944fb = "3d8e302ef1e44d9643e93c7123127bf8472db08b" +7381d1fc75ede5ba6d18f7367bdd6c8d99cf615f = "2d6f35f2210a571bafe55eecb724e2771dd67f9c" +9bd35a5a64fd7fc3a23d808eceff3d394d325d1c = "7486b6e08e38e5d44bc6d13e204d0f8d1c8f040b" +bc3d611e124842cdb4300447089ca7cca8fa94be = "74e19105a2075a23283a188c42cb07852e5a5154" +c69cf60893e7505a361314a8367ce8f1183ebad4 = "d4209aa16a0e0cb3887bbe1a1ddfac24629a670d" +e7baad5e5b1d4a0e0103c0eb87014822ae1a93af = "1981f63001c99ceade772718adb22af2e146f569" + +[08cea906-7a73-5b72-9a90-5814a991aa32] +1e7e638f22598f46aaa0b16ee081c260d4d34356 = "68073d72b558a07a828a1b92e8d0ad6e796efb8c" +32aa2edf641258a2f4de1735e3327f046ac18709 = "bfb30984f898c370ba3dceb0c40e7c50350b5ceb" + +[08eae483-2844-53a4-a2b9-23549d80f877] +e53b59c189a2a10946ed6372a66d4d9ea9e8258d = "afdbf73056c399b7d372cb8b160499d0020ea441" + +[08f7bda6-d19a-5869-bd1c-a698fdb2a278] +deb90ca4040afbe141bf5d4482d6a95cbfed97f3 = "f7f0b9ffcf7e0c5f77b703cec0b9dd613183154b" + +[093fc24a-ae57-5d10-9952-331d41423f4d] +03a4197f5b6583395ee315a34d3af10797ec3efa = "825f8a929874a9398af3069e032ee74169edcf3b" +088e33b586ff849882abacf43b46721cc7f4e0f6 = "04b9a95d62d1a7e0b78d26fa651faaa127ed1816" +0bbc5f63ebf06a89dc4ab25e4b96e601167c12b9 = "5a7d5e88b2fe52265ca869c137c7b48f8dc060c1" +0c924e05f7c986b8153f43d63b71903289343602 = "5a1f0e2b07e2d95f32eabe214b59375c8c58b5f4" +0dc1e27f337fd0159e8cfa680dab55fde15163dd = "bba48e9f811c41919c8ad3ab5074bd3ee4dfc825" +0f221895b7190aa5ab3c12e0183d22fdbb1d390a = "f00ea89ff7e6d61bd11dced99c3c79900ff1eb80" +107c2eade4907a77ce9d9c602d58ed726c578465 = "e752f209fe232c92c1fcf405878bec687621f362" +1823b41a1e14fdb645d3cbe7f563367265caf940 = "b8a937872bbd333bf299110be23c455c437eefb9" +192149852d28d7dfd04c88fd530a39db6f3a3434 = "4995490f08eb04c82215bbf3c20a577f7bbe5dc9" +1cce7dcf78b81edb97e0efb7e95de59061c6e7be = "249a246fd9332ece91f5c6d35e3876fc6a51c7ff" +1d4c341fdad3cfb6954361c107c7a5ca32903ae2 = "88ba315f12a2b3b305bfb2852c131a35adf8702c" +1f559d453bc98b73b566720421d74ddde70a6db4 = "e9e49915dcab58f2abd4f79e548d2ba9eb519847" +26648c5db3e5a0294e26eae383b10edf48ecffa5 = "de3d66391cd0814e8569b58270ceba2c4ba414d5" +27baf044eff44e4e1ce9c2f9d3cff68faa440d2e = "52cf6a3f3c293a9c61dbeceafe26e4e46a93ab8e" +2c4b3b3b4b96fc4da7c28938764eb306b7be9b7d = "f1157649735b35248a467b4ee8864efc25b4505d" +2fbea52cfd58a278b9eebcfdc0d23f78742bcb66 = "30111cdac64791ab6d832ffe291f47285239a5d2" +32e021b216ee46bf173c3de2691a40c82262bb3e = "2e573d0934486ffacf9ca4e2059a3ca4436dc361" +3650afe98466cbeb62b2fcb47d10abe68db46bd5 = "1d9ad46f1aea840880acd6f8d085a5f294f63be8" +38b44302b741f8772985ce7c438a619da00cae2e = "70b5c450dca641b86efa09575767d565c437d17d" +3ae336a6824cd38dc157b4a341bfabb299087c55 = "fbf85ac0acad256235c6232d2aa1d1f9173b35cf" +3f58085a10d9324f1ed980ff3c0029b6f1c355c6 = "c25b867831575efb20f0a489231b869514712365" +414f14d896683bbac8ca60becfa3e811be0ba26c = "1975058a6f1f6f37f6edd5519d0fbdc4bdf85804" +44528ed35df7815cc36ff39c91cce20ad2cc1ff8 = "a0ce0b2850f6ad950b04c791de69e70d2e7f0428" +522392576745b7439cc5acb2b5c5a750ae10a800 = "64591c8e0e8af49ea5911a7fa0a3f1409533f2ad" +55d7b6b4831d7f18450ef1e6a468cc7545fc14b3 = "b27c7d51ab20824fd45bcee259e2a46cc571ff22" +60f7a40eee035043d2e1956fdf7bff8952095388 = "58d51febd77a8b1bd91148ed23d17078e38a16c3" +640e2de7c94a283a50f610050575be47d54581e4 = "b15968acaa3ae9d1b2078f67c27294d279beda8a" +6611c6b3e8f260cf8d176c997acf77e515d16dd5 = "5d19cd2f49844046f7bef81d727396a9dd818d3c" +6b5b5c341c0d7785675018821d8b210f8398394c = "4d9011c665c957e6a08aa79240bb6080d6a27c46" +71e0abc15c8bbabaa049eae0dcf386cad2d82225 = "ca0b08db4d3daff5577470a9eb248b08cafd32ef" +72fe35132959f41efb2a2b66b13886bb68681c27 = "afd6aedc1a38f97e4dceb5a4922efac9c78ec21d" +72ff259bd32eed646623d17905bb3d4851f19ea4 = "a2a7d19b4204f6bbbfada61761372fa9da97360c" +76775fe72f924f99bab048319e8c0e0da1b7831a = "97aaf672c92adce50f4333d260b2148cf55417d2" +821563cf704810dc5aff6b624d800b37ddb3b6d6 = "42173f5cb6d3d00eda019a5884b72f02c9d7f16e" +8562e420adfd63188afcfe28c91c6419719fd12d = "6fd26d71c42de27a9f5f69025f57de6802386402" +8ed203c10078107d63d7768710cb393a43faa29e = "e9c9ad9d43fd6675dc45c80be01c75c2e6d66c4b" +8f1c0be1b7c71439be2386ca6223875d2f8a710d = "c1758ba229a5cced14a10103404290e8ccd78c84" +907e6abdcef575f1128e9451809326a94bef30e7 = "a5b4b51fc60810195b949139346b92a1000b9593" +991de1a99893283637a9235908a50ea56a3b0bc1 = "caf04168a86fb7bb8ad1a9670b1dc63a8053e2c3" +9af5190cb14ff12785698c9716e9322a04179144 = "07fd6233f00c19237fb3591f9af506f767ed0f02" +9d47ee186a0c09c926d9975e67ecd8c1d38eb363 = "ddb6819f146d12038d63a4349b7874fdf7a9b06c" +9dd2b872a7d8bd5355fc85daca96fd7a63d6670c = "0b70f61a9e3ff1704fffe8806bf0ea238a894248" +9eb58904f58a93ce0e13134e0e8457801264e358 = "9b2d19de6b870cac1b8499ed0ec821ae62221e49" +a0a320f36e87dc231cf9baefc1faca4fb5ba1df7 = "8395aa3b8df5e8c44c97b1f7d4c4b1fb7a28780a" +a0d294b7e1061d11853576b9a40371f01dad4d61 = "d4f22139a4a2f4400119d253f3c1fb39c10b1860" +a7493c72fdb3fad6e317cb30a13d5ad717c63b40 = "2c78e0ad8dbf7d6c5daa36c01bd184a13aea9682" +bb49b42b1ef1760e6ea466e21ce13084a39742f2 = "4897a356ed887e2c4eb6ca679e227a45d8409094" +bc89cc145d269a54b835bdc36dd4d7c7f951e129 = "7f85c51537dd23aa5a1362c657c69a3fc2ef80d9" +ca79aabfc81fa16cb838ccf147369bbfd59d08e7 = "dd03865fd17f3f23763fee443733ead975925da9" +cb5d93b366dc6ac82367721ec367061035a2e805 = "0ac699d6ca07f77801b609a1a8ca8fa61f63f4e0" +d0348dc9af988f4d5954e743a3d2e99dbc43891d = "bc27256a6addabafe57807129da462d257c9887d" +dab281af840ef1be1767ef21e39612e70819b59d = "2d76d8fa78f2edda537710ecdbd413cc152eebd5" +dd06b61f56fe59921ea9a91372ca3c21fe39dca2 = "0cbf97573f06b51df9da8db9dc01291047e5df95" +dd952cfef9d7a359d9da87108337502737aaef60 = "ef6ddf547f082c071969a26e34c6bd074666b546" +e6c60016463314a4030a5d6d3403745bf7f19d4f = "fef0a3b2a1bbe16f958b3687d0ce47c5962d792d" +e8a40328149fcf008a499d1320a52fb2b37236d2 = "3006839b82516435f14f44e13d44ba9bc08c31cc" +e8d2eb0a8399a7408517131b0e2c819840e28034 = "4dddf0e7a155aa93c1ddb2202fd142e43f9d91cc" +eed0302226da08c5b3556d7357c2ccd96a4e614a = "2029de3bd12377a490865e60c90341fba5ef00d7" +ef6538fc0cde9cf2a1013e5e54a72e48487fc881 = "c1471149d4633bb8dd70abc8a8f9d0b925839e10" +f93840c4b019680ad7e0aa8e6257c9c4b7ef5b98 = "91f236ffc7b93b8e5f99237535507fefa75e6ec1" + +[09453d48-b9e1-5bf0-a018-8d5c65f8cb56] +01567e5725ef032da0f36c558c31b3bfffd11d7b = "9f712cdf0697b5c2d1229b2e269a80763966c57a" +073556a7c71c28133ec70fac4d6875cc9073f37b = "c08078e210dea1244f834df8714c4f55d66598fd" +18ade998bae00629d619e6c4d833d7a0057cd869 = "87bb150dfe1042ea4c941f3e35da2738f32ca274" +249f114c896644ebbd036a52b3230d180f4828f9 = "a2e7b7bf04cb08d7f1b9617743d91d49929d5ca9" +26aef3981ab47e517d5c0f1b78ff8a56189c7fc4 = "ae6879da878dad036acb20c75d5f5e23509f3b4c" +4e3c60d8ea0dfe9a286bf4c9cfce7f05ad606929 = "0661885dfa5ba8f27f8c494426ab079e5a33658f" +5ea65308d3e069e4c21fee3115faf6ab3cd89cec = "1cd55fcdac881cb9c6c2977b5b0600b4bea1d7b7" +82e3dfd89f9c69cf090e525af2b41f622c6ba3e9 = "4bc5045a821c30727207a87c7b8807399e37f886" +957e95d79c3d9cb2088ae6624511c112df397fea = "a41fea0755a9cb16d0956e79a6c50de088c2c656" +96472cbc1298dda6b222b2cb61e718ba05a1d206 = "7af65f656a26ddf8350838dad6a7c0e883667318" +9fb0d6ac16365dd4ddbe3e5bdd0d71d0aa6086fc = "cf23fd511d8742b312dcefa8684b453805b30639" +cd9e22ca4012dd215ce68da4b0a99d36b11dbc61 = "4d2ebb8b0532b6885d8c71f3e666eae672a52321" +fd53975643d4395f13d3219af7848264d9c4a116 = "96392d5b0d433dd6f6b98e936f454e706bb87ba8" + +[09519885-d2c1-5f68-9f99-0bf084a786ec] +c357c03ea6138a51f61584d846a3d758882e2911 = "5c1e5ef51e9dc6ed5fdf3fc3f41a76beeaba088b" + +[09606e27-ecf5-54fc-bb29-004bd9f985bf] +13abceabd4e12c6fca95e6ce7ef5834f47bfcf6d = "64154fa310e19bdbee0ed583d69aa51165407c2c" +6382b72cd48b70810e8878e222629c846f258e60 = "635e2035e18178b5ae988b43c3b1ffd8b80932ec" +8ee8152159c10cbafed8c30d463507f178b00afe = "2c1c2eab9c1026b1a5d3961eb733e86f110d4f66" +97be7ba29ebb981940f538d26d3d90435652132f = "48df59fcab9326d4d902abbfd6145718469df24b" +a8d5a35c0d9583855a4ced9ab117e9251b3b16fd = "4b5142321bd6fcf0ab2dba8f690bdfd899f752a3" +aa217f5a6eb9e0d96541d50b018c1d737655bba7 = "55d698ccc63cc3095d5cc9a5414ad78ad6d9774d" +c4d942e0a7ef5461024530da69dba2d74da30338 = "061bc10c2cfae33cf41774346e4ca5a617a1cff6" +e3b7a5a6a51ae5ddc4d185d08cd8a7c3899b75ad = "c846813f8d7d72a02804a6537f6a4f9897f13f6a" +e515e7d5f2d56ab21f7cde26f0cba84588131cb8 = "aab723f889169b913cd9874b7ff96216200c97dc" +edd7522975f7750c324b3274b3d5aff32dd3942c = "a936be69348d295b77db474cdf627c5a37753405" + +[0999239e-cb9f-5507-94be-17f19fa7f34d] +2c70437161b108898d9b5b9bed8d230e0e4e2eb6 = "cc5337b660d455cf44436bed519144335af396f7" +2fb04be2d2b169290086eb81644d5762f8c0d6d1 = "dd9aae2dfd6e83038169320fdc36582d75df034f" +645e66a1dc1c55089c00cfdc5b72144551cd0f3f = "712c4394d3cd241bb1e2e520994477df42b6a043" +ea48d0321077ccab88bb1cf57d5da056e53d8bca = "f8afe976b24e097d3d4c33d39196a01c556ac3e1" + +[09f84164-cd44-5f33-b23f-e6b0d136a0d5] +075d20858739ad2daaa9f8e667ec5a80f421ab25 = "a33256a9475130cc96c4b301b01035a7a06c3fc5" +08b1f8044246a45d6f6ac86058f991aeb6120c08 = "3e1c7d07b062327d078d1633bdbb365188ec4741" +0bfc4ea1d3af88efcc0fc51b9262a649bb97cdcf = "494203ba2fa9af79fe994afce3ca6f7b436fa48f" +0ed73dc5ff9c474121949edba24e2ca2443f37de = "9d572b1ca5506bc2e6e753077a3a64c61e40b4a2" +1c6109aa46b6b25c67c3cf2b17904793c38f1551 = "8bb4c626123993e23b0868e842407b52c8031b8b" +533fc9349c5daa8b68b14f3368d968a0038af42e = "e18199924ada70fd137aed38acd1abab77c4bfb0" +56fbf2af0d5de18674034cde0b5b13f268184e9f = "a6c87ef42fe564f0da1f172848e9ec7c193e73df" +7e5c2a14c1ce69c8e20d363dcfaa9ed34a227f4f = "85887ee210dde666bc62b918eb4f92ec1f568238" +80c6eba1d0815bdc6ac0f8331bcd6a6babbf54b8 = "28a31185d691ae9ddb414ff976287a23b9c48f51" +841cf1e40ce4422ae0c713b60ee1b53e38fed35d = "4d44d5c65d994717b735c8ab4a3d1ed40530ec62" +86fec5d34a82d7cccf7a4409a23bec7dda868965 = "bebb9e3abdaadd7b66f9d548be932b3c375390bc" +a8c695529910d3931bd29b8e4e4dfc835b2c0689 = "a73716ef2212cf04c13b816ddf39f95de9610311" +bbe6143920944a75563ae23140288253d996347a = "fe2265b3e24657cc209b8475919f251a3698017f" +d6e1f958f5627297d8dbb2bd5e51cca3d10076e1 = "96af7e7b995fd73ff814991047fa484931a3ea26" +dfb41d4bf7a98d8c5bdf32d7cbf2f93aca9c4eb2 = "19471b067048b0619c18d52ed952e65f7b6df2f7" +e58291eb9edee9522842785bfc07414f1cf5a175 = "6dec2427031cfc0efed14c8ad5b807b3336d0003" +f3c63af3672888076332e0e452473ef709edabf0 = "6bc684e20d6ee2aee714df81610c9ebac8ceb535" + +[0a079aed-d6b3-5437-8291-8c1e09ce1327] +e5e0b3ae6585231c7c8e4a53dc9273cceba4185d = "db01b41f30455d94724ad124a6029b6730654cf3" + +[0a46da34-8e4b-519e-b418-48813639ff34] +2f31ac594e0f28892f57edd003660fc45b0e1084 = "5122bddab9c2e8ef43937cdd3e1c72ad21765ed1" +57392715628b9612aba7a1b81a1c3c6396a37475 = "b5aaaa9de317c776b16685c2e451e592717c49dd" +b7503725a2bb8d5d2c6b64a51419d64dfb860104 = "7e03dd6640fa27c7e6a308fdf42ad9bbe2ad98b8" + +[0a755509-c5b1-5d6f-9b24-59bcda3c37a3] +2d73fae36e53ebb5b6e02ef0c1dc2ad4af482c26 = "7e2217751a307d1ea067903ed5f11579934a53f9" +3c2488fa5ba14b16a167ee1d00c57860da8c6102 = "0ea3b70dddb2e7764e3b69f87eeb9269bf5ece93" +b55f900924e00c5c29a4153cf4152f790b3c3879 = "cf10b9ce981fc8aa8ff89f5c270e8afdf52d935c" + +[0aa23630-203b-5143-82b5-c6be0bbd4ea8] +44addb97be76874869648755c2fa987f2d72835c = "9cc637bb82ecbb7787d0e6c420d4d26e7263de18" +9f63ccfa6c498d061fa87bf9d671e652a755a285 = "f11e5e3c557191466081840127617ccab3097c4e" +c86bb565f096a10a476dd3e942e1de64d09b8e15 = "73ccc6a9ac0cc6c645dfe03c2745213b553bd9c4" +d90a709cc5b6a12c4de0ed400ceb851ea47394af = "c7645e05eb9182447a3945ba2603b7a46fb50f58" +e9aa77bb21e09d9ac0dbc810a05f0f5244e36dab = "4c2f265752a8e37022a8b8cf76708f68ed0cfbef" + +[0aa819cd-b072-5ff4-a722-6bc24af294d9] +08267a97c6608dc3bd6009fe5ccb709f3d492da1 = "1f543dad3ae18d96c424a4b6c46250ee5fc29e7a" +1123351beaba878eaf45cbc94a0ad1149273b1ef = "f1ec75b7b5daee52e679eef61b60301d3d576ca0" +1e39325312ec2e6938ef86bd6134fa19177c1391 = "5bd43f40005e6a035af7d1ed816d8e3590fc4112" +238ca4ff379a5da36a864c022c652c5189150a79 = "e5410fa24138b300eb035048c08654a181474b24" +2610faaaeea7cd92c38c29221101727445f7ab25 = "64af32cf1d47d4c4cd5c1f0c54eb323b537a4e51" +2e0307f9844b7a9d63372a683ead34d817a387d0 = "19eb65f96623a0ac263b378d3d6d7b5adce1eb3e" +3342a60eceada1cc2d3406ce7c258e4f2028fd85 = "d0168839494f9119d387aa89e4cd55cb455d894a" +3f15c075bdce52661f28b104d97dc493a0654ccd = "a0ffaa58cd026e3d1bb4270a5d856b1347cafc29" +470b5cf34318eba4265ef032a961f3533efde526 = "94770dc55edcf9aa30558eaa2800b861686b31cb" +5cdf8d9670c6a383146c7c54ceab2f23fad2ba70 = "1d48d7afd0696d35e6bbb233631c6b7e39af8461" +5d08685129e615592b284ebfb857252faed39317 = "25db428b019970f9347f5d605549cff94bf29550" +6a370c2f33aec8b4555f29e5166e0f7216e45778 = "24a41d82b11094a84fd69f7aac3b528783b36737" +6d7b15860aa1ee3725cdd2a9c1f113ea9a9504a2 = "8a68c5a2b2269e49fd7110af2e609bed01b5a4c8" +6eb988ae3b01641369ad0cd881e70926da4d8e92 = "dda1e82ad6e71d0ee2f7ae893dbc7d1af52d72c6" +73d26f5b3ce4f54066d87484190d1e42e3d23465 = "be98560baf004bd4b3b62635fe19b2cbf009f0a1" +8989864da53416f68515dd85eb4a14a3b46dea53 = "cb24b912ab6da58d46ba564df49b032083208bfd" +a227bc47d3a70bd533e4a8922df8c547a028aba4 = "3f8f6f5fed2845f041baa7d463a628883e76cbc4" +b417021503fb34c37ac3c8b31f608bcb96e19602 = "20a0bc9c87cd92379aba27ad885b653274ef53be" +ba8ee892bbfbcba8d8ccfec4072254c2d1c47b76 = "d17711442feabd4aca146a64bce6ffcfcb7f683c" +cd5970384f4a4a72c27d360d789132a41ab3b564 = "febe0c2e1bfb8a995589bb1dd8b388a539b7561d" +dc4bee41d039a93e9281c598232ff3c1cf43243e = "1d78871b9bc0acd77e2b211233ec3282f281df81" +ea203134508e7fb46f37538098330675c8785bf4 = "eb7882bd795584f8f8df3a18d7969a236b8347fa" + +[0b7cd5e2-b3f3-5fae-9080-a65912ed73e3] +069423d0ccae78d75310d04c25d1d6d6cb8e69b9 = "063631525226af1cd594fd7cd414f98f3efe530e" + +[0b8eec52-1728-55d1-8c35-0960165a0176] +c0ffa188ba92ab5663f04f8337e1b456fce08b5a = "346bcb26bfb5355594eb0dd72ca87140d48eb0a2" +edac727a50db1f500514667dc29456790b5f266a = "7a1755b5b8e50ea2e286e51c446aa392067ec169" + +[0bb624de-12df-571d-ad84-47aef8b93290] +1c121bdabb907b09a6a7911bc30dca2a1b03b8a0 = "0cb58e2ead9c37f4d7a0b3b615fb90c181b5f1a1" +2f4e66921193dd9f93b4e69bfa7de07116c2a588 = "14781a449399dbde7f64e7aa7a48d37d13cd388a" +795849c8a8d7af395052ec91ccf1f9fa9fa33204 = "424f8fd7013f791b55b3b715f506382ca53337cc" +af2e0008ef8d6e340b6879f380ebba74cf2ecffb = "8597afe389426713c3d67c6423db4c98770478da" +b2378701da6ccb7b8a688a1dec146e32ed22e782 = "89a82739aa11db0140639b4c115142db22f2cebb" +e0013c68bee3395f0307e7db50c977818a52a2b0 = "d1cc337b530d129f851c44de5e08b8cbc99ba482" +e0b4bd9eac9b32fa254f0646d10757aca3b549c5 = "c9ef1188e975d37bd443f30f7d72b3e6e17ef09e" +ef9cda6c655fc45d6ef4724476215f7bc12333b7 = "7bb2cf2c9af171f78e7a109c94ec6335f9380e21" +fe9a4b330712c4ca21fd6395d5259858330423b1 = "e33ac956c94b791e569c68d2b3a7ce9026fd60dc" + +[0bc01f2c-55c2-58f2-9882-94a900939fb1] +e4e8bb95c6e3b2fd9cb3619266adf433c15d14d7 = "d8a857b88ffa00b90aae6a713953a660cd8ce49b" + +[0bcc2ff6-69eb-520d-bede-0374fc5bd2fd] +4f7730bc3cdb9983fceefafc3162df33d31863a4 = "e230f2dffe222190e028709e635b6d840a12fbb9" +51e1a7958d9222fd3f2e80121c23eaa0e0173b13 = "3ff9a6bcf5f5045ad020155b0d61930f65802a61" +9a7fa29eed468d025a15365432cde811fd449207 = "2ace5dbb54a431876b8af96c43019e01fb5d349d" +b6c392f8498cffad3671635b4ad23bdb4e87fd6b = "97efc1434db45fec09781db5b9d804c249197819" +cbd1aa001f2148a7e5626b06fd976a1dbe90e79e = "211f661f8c6dcdfaa8ecdf319cd3644f19c95ad5" + +[0c46a032-eb83-5123-abaf-570d42b7fbaa] +05416d5d62c1186dbb01c509f90ce570eb14ed4c = "2225c55fd2786644b2c4c19d01713667a03f1979" +057c4922abd08b410ac4b8e0782684ffcc68eaa4 = "6b8b5a116e955238a2e6df2604dbc91d5eda4e7c" +0e86aabab5eb023a97e44cae2d996c5e4ca3a804 = "5e92c06bc21dec3139670abaeafe7197121af340" +113a9d87403e40ce56c5d017214c11e66f047f66 = "00008d684ca1a6ec9cb47e78ea3b66ba175a9418" +1c4001be9f6f5ce4e1c0b0a3da98f15121f00b91 = "4dbded9cd924a850d8a72e9ad6f054742b65da0c" +280a2a15411756011d9d39d9155ef6c133d99f33 = "ab02ffc49d13827d503d8db5edee8af07eaee95a" +2e30206001f7c729a8115bcb3b567ec94eedcf7f = "02ac6791998ad630c54df77481fd1ec06b6a0987" +2fea5c79be4c10565efadb641f0f9defa1abc9d5 = "97d4b42d30fd801f858678bececf5092e72d250a" +3db2976b60ebc59b7469b8998ef7ba16d9d9c9e3 = "f13a6368ee7eed4e7ee773517bf0f61563f973dc" +4391f554a5c3916513ec386a22e228cac7c50bcc = "5c8f844a0e186ca3bedc9dd8c1c31922ebd8b39a" +48c7554d40e08e75376b618025b33886c0e22534 = "49534aadc9e355f64a5ce163dbabdb30af29a8d1" +4cd4f310e095f655c10b33c4a6b99f56ed1c89f0 = "af88aa852a835f2812250c6aa7d1ee5c1e23855c" +52a2768fcb065c20153df64eb77bcb32568fe529 = "f93bf8a0e22449507d690b98e45b7c09ebae1c4d" +568ac3f72602e495d57c77f3bf258105e2a929c7 = "f4711396f81fd61922c32f4d07c32573f466cb6d" +58c0f0c9ac8be6ab24a3f79fca5436d305d6f232 = "3902b230245208fde579c1cf56d9b8d2bac08c2f" +664c809b3d29a71edef68cb1b05d258910a4518c = "7ee6419e0cc78dba8dc7c9dafe85db20f181a5a2" +6cb39b8515e51f0db44c1b57bf1918db33c163e2 = "5f19d72fda3a8ddad6a684de2c0fedba584c4744" +7a85898cfb895fe0bed23b33b8e99219e7e107c1 = "8946e77dd3d2f4e42dcbb25c59b61bcc1b4cdfd6" +7cfe6232c5b500e265409e5496fe0f882b9ca99f = "a0264326d445e1d4379f8f30c9a341debd3358bd" +a1a128600411fae2c40b5ac5464d515dec32830c = "ac06c57216d32e7f3c33325c66fd322b54e51d83" +a271a1632a0e11f0007df10e8a1eab710e01faad = "9b5d4286d8dc561dd2b6f60a3844d9fb14571d45" +a43fc91d5189471c3cbec28d5fe9b07a7f3aa98f = "049ab3b40ac8f455417e4f9c092dbd69d1de5419" +acaf63da6690731f4e4b4fbfd10671d07e6c14d4 = "c71826b7e887771f97822ba9d913e89aa0bc8dd7" +c0629ae6e6d359e94206f826a235f2aa9ae18b53 = "e2f55d01684c10c12400d4887fb2ffc31d40022c" +c1793eb1a4ef9adbc6fb3d231bb380046da963ea = "2102cd6945495ba4429a5b127f36443414546c20" +c33c5e5b43839ac01c281a1f3b533e9fdf6a56f8 = "dfbe7cd75c39f22462ab77adc92489592f672232" +ca71be19e0cca11ef5df2b048e4c21dcfb47fdec = "dd20b7055d5737cbd41600f89201d9cb3b423cda" +caa315c16ad505d76a5c5901f81a9af1efbeddc0 = "68635c857844eb1a39842834550c40ef359c1b68" +d3f62dd47b291bdfb56c6d594006a3ff6bbed52c = "2efb7673683e53f860eda7fb6b69ed1e4a1c2fa2" +d4f35822bbc9882fbfc6951330acfbd26d99a7ed = "26f4ea046eb6b0b71ecd803be3dddc3ecc0c6f50" +d9d70449029689d814267c3e5ea253536970051d = "a1b9340bdb6b20ef0838c960495762edf91487bb" +db1a0294d1b75cec5973f4076a2fa0a797c1b417 = "da2de93d01c144eb696d687cb7fb7de8196cdc5b" +dbd13a2c8122d97b90d93bff7405dc7523631c75 = "f3a79532484ce0d40ef9adf2f97d9e8c7fb65fb9" +ddc15f76f36069cb5ea17c0dff68543c4414de36 = "19411eb748bb6913c13d1a8b39dc100e7a0e4e07" +e14fe4bee934cff9365545475fd04a51b9508cc2 = "2f0f8c76cb16ab6fc5b315822e1d0e9b6a3a6eb1" +eab10c60d3e81a0328c5fbbd4272d41df9ba57bb = "e46dfbccb03b8168fbbd72ae4540eb823add2cf0" +eed0efcbfece24331ba32d76bf38d5e33a861eb3 = "4bb91ce3443d1f46f3d75a36775cbe54c6413d8d" +facb5dcc830a5dd305aaa71316d32622c707a088 = "f5d2f36550472d3e3726866463db05d21bfb4442" + +[0c68f7d7-f131-5f86-a1c3-88cf8149b2d7] +26b32bffb826f46cb3c8357a0556ea0e2e945c91 = "2a73dd7b102644eb388489c29163064d3caa4730" +34c29122a5286f633bd55d9967ae05373101bf23 = "6d22199cbda6b56007fe58d6bdaa56a4bc27c9e7" +5598067ef2ba804af994f60847164835d19c1af3 = "6422485b094c5d79b8b0f0de4029700727503660" +65874b9fca1e14c86be7db890afe5072651b095e = "66057feeb053d0b13f06ac129d40ef445f5bdf9c" +ea9036ae68af60249bede743a00088c97951e2a9 = "ddade97e2f1c9dcca3afb7c78a7908102c8406e9" + +[0c723cd3-b8cd-5d40-b370-ba682dde9aae] +e3d31174278f084fc1142dcaabaaa043ad03cffe = "4ea9094fd107e2eb9f45b27dd6c7efcb0989adc6" + +[0cef87d0-566b-5ace-96b7-ad13d8157ade] +1664cf34f530d10fad32837aeb22d6d1679a8d6f = "546fb95b84e4f88ff1abf7e090932189c946819c" +cdf5907e713b84840e332b18c410b32f73fa17cc = "6f0f31dca9cba6c824c52b73951b8e5d8c038e53" + +[0cf705f9-a9e2-50d1-a699-2b372a39b750] +98e8e605e299fb5dfc548be86d1f162a390cda94 = "859e4171e57d869cd94ae9a7ac9c456c20c2aaba" +b58c5890a1abc57470fee396727f8a485d10db8b = "195e88ea75c6e48dcea76d321512f8f7c1ecb2dd" +b78cf3dc4f7677c224c8c837cc6ef3866008e3ed = "6445ce7d7b29982b3dcac6d6928b4f2051f2dadf" +e305e5029f2b9a7f20623b2d9889ddd91f4e12a8 = "a16ea8496f501fcf6f095aeee632a7c30e66b14b" + +[0d03fcb2-b6c8-5e3f-827d-1089daad1804] +09e5d7df5a0fb185897b1df73404574ccd681e93 = "aa2133edca8be85db6112a77bc40f26b18d1aab6" +2b65660d4f4074d023d49110e3a3a8c003556a2e = "11eeefc470a72cb8ff1eca21cc0013652130ef1e" +2bea8154329d4a8438c9e5139613cfff5a384b68 = "b09a14105a8eedaeee8441764ad01b56d603a115" +398c162d64f8460497b15605137606da8aae265c = "3bace11fc10fa32662a0fd2a1ef12beed671d685" +6360744e8842487049fffc03c564378bc884ca21 = "b21bcd92583a293b296e01f159ccc9482b72e62f" +b570ccd5704832a1905585350c7e8ab416f50a5d = "1d6c041c3749abafddf40e9a96a190fce7f8b064" +f57cef77f6909c551a7199790bd0c4593272ab69 = "a75ad567cab5ad3d17d926c70fb2550a55b3ec57" +ff7839f25db015125edf6880fb54c9b1ea64f3a5 = "b8f72fbadd8de0c8298bc4e4cfbff894327c313e" + +[0d499d91-6ae5-5d63-9313-12987b87d5ad] +19afbfc6161fe69443f3a20998e9024fd648f9ca = "e935ec4c501002cdcf3ee23c477e0d5fee0d6399" +28d8302e1a145ead37cef5578763de761b9a20c3 = "989eaa7761d2dab355d14d548eb4151579964790" +41da8d7fbfb791ce2758eb086fcb7a42cbb09f05 = "d133ce566e077edd9de7d479e721f4e0556c03c7" +af6e4f52f1c90ee70c85e957facffb658ff841ce = "367a684a1174a93d43409fcf8e5007603c038cc1" + +[0d51577d-51b9-51d5-9c9b-f56d3e616bfa] +6dc1dc528527a32f6ae5a4845ab3bd53e74d622b = "280d0e3e9bd2e9d6a240ab9148099783229bbed2" +7a7813fec55ff3eac4808bf73adeb425b53aad8e = "e83f9c2c2ac776d6974a239f46490555bb91f85d" +9aa781b4752fa270f707c89013f6fa7e5265f24d = "e89be81aba42ffa166d0d48be27cc2b4a7d58ae4" +e1917f044e754c36949d24503d4a9a1440021451 = "e66585dd910e58e2b47ddfa291079b97a153c9b5" +ebe0d3eb05cf71eade88a8ae343f73d9fc6e81fd = "f7575a0e07acae14290b7142ccfffce3a4e1a0ec" + +[0d6d677f-8475-5ebf-bbf8-769304748c2b] +46d6a423fc5c3fbbf76699cc2485532f18922c6f = "f7a6f11a259605ed948762a3b5a21e71a807a44e" +c2a8c6314c17fe2db3c968fcec7e97dbe1d474dd = "511278395572e52929ca38cb39b2f372eb437154" +cf2c3b982f3fe510f2e9803444ea5179d526e7dd = "a59c23c38609ad7b46a633fb37beb8eb30dca756" + +[0d84ce59-e78b-5c9a-b954-3a5400d7f6ed] +01437f68fe724172d4ef8038c44f8d88a39941f3 = "3da3d2a2eed7cb948ac92b76fd636848bb57a698" +3f91ac0de329ea6aff2365b26584924e3765db1b = "ccffa6b57a4513e538552f8b308561fd39764405" + +[0d8eea64-f1a1-5e4b-acfb-dd13f4d7386c] +058f98946525426e105d233b17d119a477dc592c = "a9f0b5bc05a9be0b114e88b669fa42c228877d8c" +3d7cdcb785ad68b723beff2b91b59441d7df9300 = "d0bc79bc6160b23b58942f9614ea965b882a676f" +a096eac20a72cf0a3c6ecd6e03eb1ddff68e6c63 = "a9f0b5bc05a9be0b114e88b669fa42c228877d8c" +a961259a0d67c44487d988bcbc359d48e2ad0593 = "67cb0e27fe4d497a485d049fe69bb7cf5f0cdc20" +d761c2d1405681ae31f5b1757635e038cdf75464 = "a7e96951b35bd894d8f15abbf4df11796ae992b7" + +[0db19996-df87-5ea3-a455-e3a50d440464] +9c45cb936d999dfe9bcd5bbff7ccd77021202478 = "ac27d1690b609ef792f39b07d086399ef57f040a" +ad765c302e540b8bae6bc8b3aa974a5b45056291 = "ebb63ba4fa9cf79df4d8bf92d15eb44aaff5f7e0" +f5acb3be6365539d0aa1cd910426192b3d5c18d5 = "f299f60ddb9f9e1423352c7ca4aa5347ace75d95" +fdca58950cb29b7a64d11ece541278808692e33f = "5f9c668dc2ab9927e8af5a8c2504e1542542df6b" + +[0dbe55a1-025c-5c9b-ab45-55492d058cfb] +8dfddfca661ef650e57b79093316417c17f3a604 = "25598254280c59b3f6feedb537e0537d68591351" +b4cdb4720dc3adc1d0d5a8b5a9738fd942a8dce1 = "907784f296382863c3201c79536d466019dda702" + +[0dca132f-5d13-5402-9020-a5b78506aeac] +29345216787ab151784c423b14a59c1bebdcd79f = "81101bfd98e8293e9624bfbfcb0969526de341a4" +4f0d633c02d57e54c9d162cf4cc33777d9327cab = "c5fd12d30e6a549ffa0aaab367f73a116726b71b" +7725fc2ebeae83e03748f416ca6cbe12c49e46e5 = "ed66342aac65635efe81d045867a5cc0289344a9" + +[0e44f1d2-4516-5e7d-9182-378ae59e766c] +033ae43aa20de4bf978de3c5931493a624456460 = "da27ced643e6db2c40c23f79b18df3b480d44889" +20b309d9b103d80b5295f820ee312c72fd115ef9 = "e3af5bce97bc6248219e0382eea4b1202ee50dd6" +2850fdff017d5e3bb1a3c7234e8f9ee4e6c7fb59 = "6a0b57c4ef8b1aab8ea02f83d45348f74fad26c1" +491ed65d967aa1aff6f5df1b79d6483906e7e626 = "3a9830b88df31442eb0391025bb2f294f7574dc0" +4cb752eb5a0994532b19140ebde453468ec2c49f = "ca2d07420f9d974aa309c8930dc93abe9e9671ba" +524d6c89f172d8002e1e09aa8ea9c6034b9d5d91 = "039e4e0d39a45a6f18fdd5e8dea8c8c807a65335" +81b7f376d2abcf5126cd9c6c4fa162eb999ed267 = "2540faa05ac3f77ae1af2940b63c6b2165975975" +85761252b737eb7cb3728e54ba181838bd948234 = "b85b989166029f2e926496bc0ef33a3190ef662b" +d276ac807305587a3fca61251528e0c33d6d0aa5 = "3d8335e4f81e74877330ff5c4a90f495c924b443" + +[0e44f5e4-bd66-52a0-8798-143a42290a1d] +2ee6bfa5d174bd3ddcf842da05baa4f06a1bb9f4 = "c3cb24382c304af17bd93010a6e5f7cebbcde95b" +353c25bae07c52567dde835265066737a8cd3041 = "6917cd94cd3b5ad2b647c71c392c6551f5225fe7" +452e9f3a062a118bf463fb744d5ad7cb669e509b = "229b3689cabc2aeb03b0b74b3fe4b25b3aba0fa9" +842e48290456a9f2099d2d86cc95cb38995b3edd = "23f0b6971b6a4dc87154dee6258208fbee2bf0a2" +852d1bc0c90e0e386f544e64992987a85ed9831a = "b44c45e611297dba3252a4619bbd21f59bb4e1ed" +9309db4764526cd1885db37f2a36354efb305eb7 = "32a802d033e03637ec7645b911e4b235b4a33ccc" +b40e76af0b9d04d88a974f1615f1bfbf4795a7af = "3fd8c3dc99137558839ca72e6d51d6b1122cb137" +c6ca4a8a693e4f9b94ab4cf5bf235e4e52b18614 = "af8b71c1416b7f6f4f82cff9a0bbfd9cb7a46170" +d31867ee697311c669a377fee13fa987c3611bd3 = "8555d7f08a7b4edf7daa0a47956c1dc6a8297e48" + +[0e486f62-d771-522d-b768-ec41bdde0066] +1caca821c402084ee8628c421d37ab212cff9b2f = "fd8514a1a6a155806746797d5a873bde7a760406" +a3600cfcd30430418c99955c7e2c4311f67e7a06 = "2987d5da1643da6b5fe5e631cd8e424cec6efa2a" + +[0e69188a-a5d4-5622-b4e4-a72373136fc5] +33955a3a3a2ce615ca682cadb2bfc4af0c9ad963 = "754246472421cdea6bfe37df1d6ec276835a9bdc" +66ee005806eb8e7410c7b84cb902771a8396dbe0 = "3fdeedbc9d462a3d597606ad8183cf5907e04896" + +[0ea44823-1ff1-5b9a-8293-5fd55a38e746] +5a48f1108ea3e115e46b46b596c61a5dc06d1a2d = "9b40fd1f81595c0b7c67ea8c51b2b755d46da6af" +78b4bd026765e2436e2365b020fb6f6a393d9f5d = "e1e0688c016aa6abdf87c99a3f17865ceacb8d50" +8339fd6ede2c0a830920b74db88b03136ad2efcd = "fda42b58e2bca31ebf78c70ccb6cb3955ef9ec04" +85a57d79c23f69db1cd6620b8d3e1c5cf6117538 = "b502f951721be8af780fb801e4a3b9bdd03b6ab2" + +[0ef565a4-170c-5f04-8de2-149903a85f3d] +0530d8e470f07b2c07df2f3a288ad98fc62d3c10 = "5b43d7e7aa84d5947c7017855a64cdf1bbd42f3f" +359013b96424d4dea133f3ce59e0e4b940ec0361 = "fe8f0f794fde59b84ebc8be93522cd65054cb00a" +4621b092648a330bc8033edfda56f46cba8169f3 = "3d07527c152266b0a839ad64c84d2896ec34c026" +5cdf8d01bda906dc9dff58abf6a4bb0930479ee3 = "639357cacf68c102008be0362ce6626940b83a2f" +be8bfe5ab45a13ace8f1b5fc413f824ccf4f4363 = "f8897f983f3855a804561bdabc10c0f3088910b0" +caa03dfe338b098e3cff77493046a49119ba1138 = "0ef0342d745149617ff6c2b7580a9481699a4baa" + +[0efc519c-db33-5916-ab87-703215c3906f] +30f92248393f76e4417e7c00595868820144dd98 = "e38dfe709a4fac5cf2018c43f44643cb4d765416" +a339867dde0d1c54a889a190658af75cda0e4abc = "38c02bd0918669d751270a99f36326399985f2c7" +ae858cf645bdf545ca0f3fb899d3fdc5fbb98062 = "72fc8e6c85d691d64a57647b3d0c4c44324de323" + +[0f160d28-7819-5803-9275-299e9913be39] +a2c57b5504eac8cf2bd68e0d047e5612dcbb2192 = "c575b7cf5e84187e339c4490ad3b3cbc466aaa26" + +[0f34fb1e-4541-5b4c-aef0-c26dfe4a41db] +28749b2c2e93d9de7535548e279921a5a329a5e9 = "f5b336f559874eeb2436963cd07918485481e15c" +c77855df271f1874439c4cccb3fe8c97ab9f234c = "e661d2f3cd4c66057a61c89e72ee24f35e4c6a26" +e695224f180a7bb9b4a31a711933c2f0eff6ca64 = "42c4588b4a00f59003e70e0b23cfd36b12aef54c" + +[0f51c51e-adfa-5141-8a04-d40246b8977c] +2f7a7c8d6aa10bb8da1989722c2f82017bec7ed5 = "6bd1522808bb4ba056fcc92a9309043693a79347" +6dce01ba91fe34d08452ad09ed9dcd25bef9d923 = "492b95dbc1df86f55c45ec1ed0d1ec8b30c1ebc3" +bdf1af180ba4d661ae1aed650593812b5cb195df = "bf46bf36a697bdad40b7039b797ab08ef232afe6" + +[0f5c7595-fa0c-55c8-9031-265ea63f34cf] +0b342539a674b16dc34fd3e7f1c209f66f3e4f19 = "545011822ae1cf878d5557d3d7388078516057c0" +17b86b01a30deae3ae2f80dc2cdb246fd170ca2d = "69f39e071b698b6d45d102ca498af1deeb48e317" +4ee4e2fa6eda23a19d0a27b4a06c7388699043f6 = "7e51712ddafb5c96644c05fe65d9694664518469" +545ee34537a092cc4884ba29e1093635d899bb7b = "e2b95d4f7a83ff494be9a17c96c0cb921dcf0512" +5fe6a0b5e5a90bfc2d22cadf9dea288c122ce0b6 = "5ace997b4b7f32316c2f96621cd5b3924e4724e6" +6d340a676772da2aa6f44245808de1b297b9e2ee = "4c741ac7b0c1854876bad8cdaa298c22925fc6cd" +71d8cd90e9396ccb74ebee213306c9f4211c2140 = "5b05cd96364a62a33b595a085a3585bbea34b900" +7896d01dd55c8f1ad32f1decd5b4e1f165578672 = "99f05564a63b7ab6317ec613a57e653b6a7749fd" +7ee09437dc3100b10e3f1795f821973c2b9bfb80 = "e5e94c0eb794a8c70a113b823fe164bd14a65243" +af3bde3bdd619123f34d2529b58ff0d20d340357 = "cece93674b86fe3ae3549f00ce452dff904410bd" +d70e5e89f665d5f22170df88addaee1d41fa6cee = "0547f40b97ba1030793db87fa1a29a1531ac8cc8" +e432286807d29d597ed46a192575b633e89d54f6 = "36f472d374119d1e180dd748fb1c4a265aefbcde" +eb4ed28bf3bd2fdd8f8a6cfc0ba6323d66ee31e0 = "13e7650522ae8f1911769d48a92c25169183e4cf" +eb65b08a7ae0ac1163dbfa1a9c67a5c42b965b74 = "ed69ea49a017764c6216f0ccc21a5491232558d7" + +[0fc2ff8b-aaa3-5acd-a817-1944a5e08891] +08bf5a741aebe224478a588b7adcee344499065e = "f95e0422512d89523701b74e77fdf870b4516ee5" +1a9ec92d2bd725f168ddf11531cd9b4d0996edc5 = "712854023c7acfc3771fa7171ece6090fc5938df" +64903528e1d211d3f9ec5be1e2340fbe1a46076b = "affe9eb47cce030298fd1ca080e4e672ee907442" +71c085bc934723789fba4304afeec182582984af = "e00501a8c00d7690f7c61e7d76664a377932ef5b" +89ed22bd398b8e0f5119af981fa20abdfa9b9a33 = "cbe0f7d6576d8a641eab8be78234a392f7d913ad" +b61649302c7bb431036bd56554b7d740ec4abd67 = "92384487af0999d9ffa42c6925158dea5a2d3432" +bb362f41c9dd598bb6fd1c70444e64226ba72d21 = "3d4bb63cf12f512805b38dfe10ce363c66a1cad1" +d616a0aed0541c46a4bd59f36c4b49165a5e2a7b = "250974023c9b534ee39c93274b50134c5ad25d61" +e9b6bf1ee81d47ccdb4848afbaffb5ffe1bc0aea = "ad143fb6027686557c894c618ccab722a23b60c6" + +[0fd90b74-7c1f-579e-9252-02cd883047b9] +15ed54065d5405d73ff7002fff3c2089d6fb5876 = "0bde90689ac04cc6e4641f04dc5277a819336b22" +2a3976e242e061519b8b980bcb2d37e6653b46ba = "a85d117aaa28c85ea049decaf54d302ccba56412" +32610a66dd6d3809c38e323fc440e702e414aa95 = "d2f301b7f84e2e5156ff9265821a2dcdb02bbf90" +4a0c9fd030ac5257065305901a8083a5cfa07235 = "9fbcf48695f31790c16a8e2378ac488e6668977d" +5a8be1572cdccf2323274def1d630e10adaee7cf = "1a4d32487948577207e3706dbac128c473c7ee49" +6486f4d2dbc11b6bd4e8be9793081bf82a68376b = "1ad5e78b8b31cd9f72e66d5c0f34472841631e04" +6683e8238ac3f79c200c087446c6a57033298558 = "e3b269dda6f714a2af9447641f2fa45ddbad7c91" +a41d231d8d3db068e195df5d2cee71b4de9979b7 = "18bc3dd54dc30b2c95eaf89124bae3c626522a1b" +a5e72c85f4b1ed6b1d26156bb64c424aba13987e = "0339f124ec7d3658bd3107662dcea84a9b5d221f" +a9964dcfdd92186bbfd07a44696ee5423bcb3473 = "176a3e4585549af1a93dddaf987cd3741a656278" +ae9fb312d1506fd7ba888eac9ed699719e6e8f6a = "e1a826df5f81a7fe6ce0c0ab068146d9fb721d53" +c4181aa575dc8f194e5304ecbee011e075e0af6b = "761b9c20a92e9a345e991ee88b42a50619a3fe4e" +cd71b1586c3456c450efee00879664625fe28acd = "48a8a969ab671062b8c8b877d66a341a80a828a4" +e269f452c2e09fd91f06fb282ac5068ac4b681d2 = "8cfbcb366444af50222e36264675c05aab033a60" +fcfec143af37d059cf1677e7b44c108ebbf9d05b = "24407ab271549f5ea23db3bb7cb7a9a13f0034aa" + +[0fe7c1db-08c2-54a3-a222-6d1d3b7a471a] +0001fffd55f8f698bd1045bb5a7f4c48c9ed7cf5 = "1aa4d8976993e5ffb8d92de5f6d53d634af10346" +113550bb2807f89d58db2152b03563d0994b5514 = "ae3cf1f63332b5ffc355167b21cabf54f1513e33" +1cd77da90511e391426885287b254940203912e9 = "cd985a0cca0e20a63b4e42839e470e67cac22295" +245526ee3ff4688eb9aa7ac8df5ae65dfb5fce48 = "c9439c25c1326f542c409239c1a2c1ee6c2cb2b9" +2642f6c2bf326d6d932eff06ae2d4ed45fa43999 = "f7acc449a743a0ccd84af058bac7a633c563d8b8" +26cfa7b1ff84126cf52933453afec6528c2e5a9c = "b8cdb96fdb0d85d5ebd0ad69708606ab95f821c0" +2d3d6e0606e62a7e267c7974592fcd5e7da05e4d = "1632fdc63ef10e246447be339d242f7f70d4488b" +2f235b4de970490a75acb970c55cd4660143367a = "35a792de0cfd951c2eed83a6e7841b8d57585894" +30010f26e269eedfb35b0be35f726a847d570999 = "8dbf07617a6bfe5cbeb5baca955dc361d90fadb5" +359b9f32f6980689b742e99aded3c87c3dd04d77 = "a01d68f9669d8446f81857b50ed23c08db2a185d" +3a8cad5d068d95df33c4d5e33e01e865281b8b06 = "e38eac95d1a353861e561ab4a2a1b571d0463e6f" +3fe861c05c6ff2e3cec4c4f081f964a29b747eb8 = "a7dfcd2895af44654e8ad1fce114b1cec4bfcadf" +40dcd9e155a982a387dad58c5186fc4d5d57c855 = "a3b4dcbab280d5f77c8178ae6656529a138ed7f6" +440fb0a703153f6b2497540da6b1e6e10e8faa08 = "edd7a0d3c270c2ca9cfd16d4e0519043122d6e5d" +44192cf6261d6eed476018fb2770c5ca8dc4e9f2 = "77f7e1de7e463a970452768361cc31d1120a261d" +46b24ffd5349cecc6c582afcf1a7efbd03d6cf93 = "5faae2017121754bd11bd22de0714edc22d9789f" +4742f210c1deec5561edac51110788c5da5018af = "ed635f2d0c67b2b6cb6f0aa90bcc7ea98ed32efa" +4b917dfb512dcc22d4ba9fdcf658aba62e83c394 = "6bd5cd91e5b898a9fc52975d4748afd48fc479c0" +4be6c825261911df2877bf040bec5543b91533fe = "a5c00aa686f0d35a4bf5c3b70309b29b5200d88a" +511e2c7329f100ff9bd1abf5c2ec1052e99291ff = "2fd07d000f7b5171a7f4bc906980486c17fd7004" +52444eca857f81ced59285b5f8d088ee6cfec966 = "029efcec55bd1e0bb447cd6ec5ee60c2f80f0eb4" +57bea9fb43b8c78993508523bd3f35ac1a6c4f7a = "28de2abe37d6b44565dd47a656a3096d0d757032" +613ca12b69c59d8e47915312321158d7ffda6387 = "ad94da9a1d5eb5f8509079b9209dfb384f4b80ab" +62314731571c76a80f466b52cf16def9a135ee03 = "7296a678217242308496f9673d8d5d8ac83f20f5" +77c2592af8458de1b143262a42eb1559b4336c44 = "290f6a5f5334b557b35c2d37efa8b8a94db34a9e" +78327d1e6a8cd27c44d9afbaec419caf6a98893c = "c99802253fc25d6755a1841b9ade6056b8868038" +7a61d201d7fc4da00ed4964e1595242bccc6b071 = "38ef1c523112215c4bd2e95825886779b8107fee" +7aabfa07d8b00f6b44c71666513ea8ce8a459509 = "9f299d55f523cab01a0d8abcea082a1e35c8cb28" +833e531a2236b3e03451227f686b3a7c836f0e51 = "1d9086dc99fec26ddad32318001c41e56f694b82" +88094cfca36cc6ac2fb71863175dca1900950419 = "18f7b9839ee034b8ae9c7fe5d943de498ef53da2" +8f0a50287aa1418db17a52a886e5fdd54c0e9e2a = "7f5bccd6cc6062fe5c6d7f81df9f15d190c04ae2" +9c281b5646aaf779d18d7f36877a52dd12ca83f5 = "b0ab417012caf08743e17cf982d3ee7b6b795bc9" +a65398b60897628efe662e581fd83239fa2a44a0 = "3be3b3111f27e0728bd8b0b9ab8244d1fce908f4" +a7e216934d8f1953cdf7589c98f0fbd58add6e36 = "20256115cafaaf2bc12ff24bafb9709f00ed0ba8" +ae7d8203a1089b2cf05494c6cc209a6043f51b86 = "892203476b1212af21a3a4a146998758ae6259d1" +b8cf8ae816414a365c482803a8f61151dd677f2a = "60cbdf52be10377b9d4a6cfdf31057cb81bdd539" +c1cca79252dc47ed2f27723198a5cab03d145a25 = "a2fdd94a86bf0e877b6d1868fc52557e4ba942f1" +c3fe3a2a18ec5d44ed464a9f3c24354a30ed7aa4 = "4330652e3595d29679177dd3cd5e5ffbb94d84ec" +c588781cd06c21a49b27b246eb345a06e55f4dcd = "50c018ff4934310c044005352bbc6ce58112650c" +ca61510b1c3ee64ce9b2e426907e75b64d9442ac = "d17b63f826bc62a3709a7f1e6c45417b91d3216c" +cc699400e568786d4b01b2e0b397564f6c997a3f = "672ef8e94231449e30c40cd51d857462fd5b1945" +d0a0b3a2eb222182a039c70a1e8e9dab1b76ce1d = "c5100ec4b3f66607640665a300bce7d7979b7749" +d11cba1871c5b6ebebf825d7f4697e0295f524c7 = "889f7ba57c3c393823f3c2e8281f5068efe0ba4c" +d24f21eaaa85a6e99982bf0637ca96eba043feb4 = "7ffb730532baccf2bc54da88e48cb5c4bd90cf32" +d78a6d3141a7ab4c1365a52e9bafcdc74b8672c1 = "575702021cafa05ca10571620e445e1fe45dc337" +d8999c7c372720ea2078c9c75987c5695749cf5c = "b1783c462be488da1f530678f6db23752c1b7ec4" +d9ad9704555e6fe2e668d0f93b78e30b682b03a9 = "9a0f727c4fc9d2c7261430ea27a621f02aa044ba" +e0742478ba1154feedec80cf3563411814699c55 = "c25beb7f766ae70dc94b4c6d70c7abc2b3dc773f" +e0e4a700ebcae108c39c22b671edeae69c478a56 = "dbc3a778a0dc701d098ec099d2cbfca2a7e9c2e0" +e0f7a541c24e17b3604760d0fc33560df85b3cd6 = "d68250af79acbb566d8b24ef15f058a002fe94c5" +e50a0672b3e380addb0f0fda98aa48495e7d17de = "fa1c8e1dd62ad23cbb6677f2c403705344248b78" +e539194104adca6afac2b3282e728c326a5ed038 = "9d2550751b0d41e283178199463f155c917c8c75" +e8fe4f25727dad1f7155c784621bbc50737bb064 = "494cb14e8ca5912ded3652f11f9e67914c437a47" +ef0ee793fa7c20eeb5ba7a2d0ebbc3130ea1f3ff = "9252187dd070fad0fef276dfde784570abf77ffb" +f5d9be6c12240c91144ad28b42f4f35e7aeeee5d = "449cee9fb630ae25bccfa8648c4a761f3bea30fb" +f783cd191c95a976c5e0811d9b8f52e6c4f416bc = "d7f5293e663d2f6e7a0b3508cd05e4eb773e57b6" +fb8c0cd6e164a3f53ba6dc11b87d20cb414dcc50 = "0321cd10a3767a0723ee840788c57438d9fb4467" +fc8a8a1f7713c61c76a3562f17fba8c0d193c82b = "8c06c47f96095c00e0e9b578c5b9a63d466ffca5" +fe8ceadb773e0018c3c0a11df6663dde5e6971c5 = "7d9362f4e08ae2b321d1edca97e278370da15ea3" +ff723df686de2c3d5c80db71b8ff195a5d0aa76e = "f3ef573b7a4431f6316f43fac864e879a0fde017" + +[102930c3-cf33-599f-b3b1-9a29a5acab30] +694b36655fac65e6a02389fa8571dd644305d203 = "0e0fccd6263fe10a8fe4574180762a348a141976" +8ed1623b1a49ead6c388755bbed70004bbbc35e0 = "edadaf5c222d6f8e670e2ca4e5e1fdbcc779c646" +987b83a4d2cb612021de4cbf84290f5baf1112a1 = "6cdc57480330edf6101d94231e09eccc5ee3d13e" +e83f1621d95f854ac9d16a46bd9bbd85799322cc = "d0cccaca9820f1d915ae0540296ec335bbb6fdc2" + +[102ac46a-7ee4-5c85-9060-abc95bfdeaa3] +24beb920404512dbc05b1a3a59bb6ebf7d4a4b63 = "0cfa10cd56ce295395c6d8834256be07be2d20e7" +2f30dff3e774067666d4452a6441e13be6857e90 = "a29db58ffc602a0f32043f10b2bee5a99e039ba2" +6019e9cd14614ebd1997304b69dc5fe6d1ff2417 = "3a6913e6f66f8c61dc9a465f4de713f5df3de769" +b76f4bb9d7c49f110d3e3bf2690e9eb04669b2c4 = "a119829478aa4c4cae73b767e5a6f039c701033b" +e0f721c5d5d73ed3618b646ceff6ab462e4fcbf7 = "5fc5d1d84574a7455769da5ad1df6a95ab324520" + +[102ba61c-8d8f-5910-ae56-8563da4a761b] +0958bbd361fee95a7932e3dbd2fb587494e05023 = "8aa306e0d97a5518ac96ae1b64c65bfa78bded45" +9fa6878260d22942f4fe513d8d146f9cfb63c728 = "43fd0d144216b640e3409f52190ce39384f98f86" + +[104b5d7c-a370-577a-8038-80a2059c5097] +01f49dd9d6cd7f2ce0202584830aebd61e776523 = "30dfaf70d651f31ee201db2f09ea3f8fe950bd88" +0cf26031a5b1c270a91507691bcab7ca4c7429f4 = "9a988f809a9f297b45e545942d21da60b75181b8" +18a88a0300b27020acba04a0d50138ba710b0f95 = "8a10c1ed0adfc89164e6647975f57b385bb461dd" +59c56f988e783a9da67913ec26286831b4762da0 = "df3aaebf30b7869eb0e0f5b621f0f38719525755" +78987bdcc58950b2a314ffff9e93da9f041e1bc8 = "7a490a06045bbca806fdfc92f610dfb274352a57" +872977efc0d23c4aaa1e0f7be4efb87baa18cca9 = "8605639cfd7706e53f6088683a6293d0acea75b2" +94d52ad899de727a281e8e1b5c4c07482e3011a5 = "14b77b274981a8390268d7edebc5b63edc9842d5" +9570932ba379a8c0756ba98f7f5e777c6d581816 = "8b1a4424a9e5f0915f50aa2225e8164ffad6eece" +967d1c13028ba5e78313a0c17c24e4fbbfd8b861 = "b03c059b4bfa72745d31203badbbde88aeaf7543" +a90ec32863e047aacfc66b4d0193497df9e4f80c = "5c8e8fec639c5796a9d553e36368f3023b3b169c" +cb075879c7346dc70cfcb16e5147d236b1ca9e91 = "760477a73459feb626e45349697f6a87baf39bd7" +eb16f72607f8cc0dcfa191836cfa5ef3ba0b0421 = "e30ec53985931195ed2d7b46346c268f006fac74" +f175982e6469a20ed2133293f4ed4cfbdff39f0e = "1758a2239a93bf5b7052f9efff3417705899639e" +fa01c8ad7bea63bcc672bda2fbed9e34adc257ea = "014bf0383a028747cdd0e28577d722550baba7b0" +fe3b5d13845dd396a392f19626e8f626e33e0c42 = "68a21ef3d9fc76637c62024956396fbf8f003fe3" + +[1070d6b7-bf31-58fb-9220-e7913ad0860a] +0d246a1948ea8537395f58d51bd19a4c52df804e = "2b8feee8c38413b7c27915d652a6c99a9a17c700" +811829beea07f0d97c01f94b16b4139dd29ef7b6 = "fc9abce21de370817b5dfa77cca86e61caa6002c" + +[10d0aa13-cc34-5b6c-9bed-444edd59ae61] +235eea41ce1ccda0db41bc4d586e7d05e660c644 = "c052f642bdac5be2154e491b3bbf6f6bb3931f2a" +3d409f26953761605fbd770cd30735cd24214755 = "91327b150457a4ef9abae75def28d5179ff63853" +430f56dd6c2c5041537e73acd6a431a4e1db4410 = "66228d789a0f90dcc3673aa31c1fece98a47e0ba" +438082df85b042b6894a0cadf2562eea75cf0069 = "950a9f99888cbaab37167fa35c09744a64980403" +77cbb09c1987e1d02cbb13ca0e09cae3a6946720 = "c55fee5c7033dedd8eff42dc92a0d667cc2790c3" +9342d7eea4ddf0fa85f00c7c9e9e74e9b40413b8 = "9f593c67ccdc2f718a58353e2ec865a4b07e667e" +d49b05f058ae2c09cb2a9719829ec424590f39fe = "682c4cb13e85d0f9a5ef8ea62d7af89d09c8e752" + +[10e44e05-a98a-55b3-a45b-ba969058deb6] +06e22d971a1ff6fe12a51237fe825fe4ab253d6d = "7a9ea4ff9e5fbe390bd07dfb98adf659274a74c7" +17c1c9406e37eccaf98406db3d2c19092d43fcdb = "d6fc1675a93f158b9507f0681a483fef3f399225" +18f63b2cf99180fa5e3d1952bc387df1208a4a7f = "402f323809cf6351b9d656c9b4849855177f687d" +1cea259b210dd3317a8c87c3718063b5e1b204f2 = "ea1adc90122fb0dbc05f9952d0f90f27f92ae571" +3e1947f7d47afd01f527af7bb8915e2d38eb0954 = "ffcf6b5ef4fcf5a4d77b5ae3e0f1cf3fdd76d883" +44b8363c626b0929bbae1594fec1ef536241116b = "31f5b60953e55689745fc2f3302c4a363fdd887f" +5e563c56dccde7bd1d4e40001a85ef708c46baee = "aa05f75ceb5dee46be66408de39f76534740b9e1" +61f953b4f24805fc3330290f274dc2d1827badd8 = "2879eebfc81fcd8bf4228351fd4c41ca6497b3b9" +6e6c3f21f223c7c11b2e96d4263dafee79c09c4f = "06e97400a972b508673014629ef7b51fcfd7821c" +8fbc07142f62fad8d8565aa635a9745e2ab20d2b = "047e77284e8b6b23cc1980df68775b9bb9d3151d" +9275efb5e2f8695e77e275646adb2522a1155a48 = "544a03db59848531d32e12894124c617f7449629" +a1945a641281d5876f8e9c1c2193113c2e13dd37 = "27868365f02496858455d476acf1ca3a1b2b012f" +a35990f889ca30ffc64171d4c875586cc7bf4c8c = "358aca5de1c2778a2477a33933473b8cb085c297" +bd914b7195b0afda8fa307f8ca3f189b62555808 = "56c13f158ad8e3819bba5dce704c4d862d7739e5" +f1a1897c2dea8facd078b740f67b74938660837d = "1e58bfe7a01f2725a8f5d11df31b6ab9a14feae4" +f5bc892edb19faa8b77c0c803fa282e5d765aa61 = "b3bcebacfb85719b6bdb0f21cd2d18d04d618bfc" + +[112f6efa-9a02-5b7d-90c0-432ed331239a] +05e1f11eb4a01873f17d66baa9d3f3e20e66452d = "deac64da5e04a91274633fca4bbdbccef50aa3bb" +0606fb251ce5c9348ee8706d092233d8460ab5c9 = "19e4712e4b7370f6030f44a6858230c796943631" +a63916c506b1f70d13a96a43dd0455ab25d0df2c = "7f090cccb98c953dfc2a3b9974a6d8597d86a106" +ecb3172517e57b14ffe5d1d2c7fe42432d73b54f = "6766595584159794e8839ac41d6c25a38711a14f" + +[1130ab10-4a5a-5621-a13d-e4788d82bd4c] +0642a7103f28ced165250ff46e8ce405735a33ca = "e96dd16a4701765037ed371b424da75ec9d6299e" +138ee7638a0d7f592ff527162136787429175f9e = "c05d2e2469adc66432e2ce3fe3077475d282ef5d" +1a6783f34c75bec3bdb0cff0ccc1b9c32251ace4 = "6c37e14091be334b9ff730112f3bcf2a97dad275" +2b9c85d42790007fa14906b79a2a75dcf4a97a0c = "7f24a63aecd08b711e870135b9840908d0152be8" +9417bb21944d4fd7ff7f039eeb392e0998fa112e = "f9683cc5ed93838476e6b51b950e352e4f3ac23a" +b1cc279b9cc6b7112cb60999eadd998bd796ff6c = "ab625455e343ad6094764ead936380ac8281575d" +b47fc68e82763d04cc2859e18e4eec7b4540e4df = "e6f181974457c2a1947d3e6bd0127f6dda4683ba" +bb0c788286d396ea0fc807f6590252df092ea290 = "59ddb8136c445406b27506561934d2c8cd2c079a" +bf0199b153db0d4d457e0af6a8ab7ccb62254307 = "5110d6be71a455155aa9f99eaf734610ee18f781" +ca6e9bd5bc3fe7089db0690d4458f5522986a0e0 = "5253adfd4a1d0ca64aabe51b2e37c62d3099e3f1" +dc23e452849572ff2f23c016c6b8c797cee326ff = "45fc140b9d448360c066bd0854e8e38d00af092a" +de5e0643aefb917b144a8a0e9c184b3ce1fee287 = "7484c65d4387c8bc957320556e712ca36fa5896f" +e9d0efc0b3f6625dbbab1beeca53ab6bd4fb6df0 = "248a727de83faeccb41d994bc6abe4da22a89de3" +fea5b0ead86523b1577a67bfdbdf676d4fafa24c = "f742d83dc5129ae266006720689022ff39fc697c" + +[11d3f387-6b1b-5124-abbd-847758a5de3c] +12379a86096d2aa433fe40484f181529f17610b6 = "994c70f2cc2a5f60678af453d8baa84a07eebcd5" +752dcb1125bbd30b985eee9cf4df25947a9351de = "9f487571a7c0f0b4cd6927ebcf817d4a48cbd987" + +[11f193de-5e89-5f17-923a-7d207d56daf9] +57a2df614a3df45b3beb9bba5159f2f5642d2c3f = "ed0611a19e69b26ae9e57d3b796456141999e921" +6a7e6f352692a9d4dc0d3d78ef525d1fbfefba57 = "be2989c954c58e764fdf505709e7484b895f5a92" +77dcef4ffb602fcb22ded9f91ef00d054a6c2e71 = "e514e85df9b5624bbbc6c1dc2641ad3280342cb9" +9ff95e322e8ebbfee089f18e05d299f8a2072353 = "479d4edc470f0cf8052bc0cb23ebff6ff13fcf08" + +[1222c4b2-2114-5bfd-aeef-88e4692bbb3e] +05c6461b55d9a66f05ead24926f5ee062b920d6b = "311d0a6a17feb7d78617f458057aa9ccfd8a8c74" +0c24dca65c031820b91721139f0291068086955c = "723936e336b5730037d80ee1e11d014bd00c3dc1" +0d7248e2ff65bd6886ba3f003bf5aeab929edab5 = "ee8e72cdb2f09b7020d76215ac5a27f4041892f8" +0ff703b40afddf9b705bd6a06d3a59cb4c089ea5 = "2c4a1ae8ab77958b6229f49826d85a324801faf8" +1187040d027210cc466f0b6a6d54118fd692cf2d = "efe2c73a989c98a6b234ce2362a5fee44c0f9cd1" +2ac304dfba75fad148d4070ef4f8a2e400c305bb = "14c2871a2e50d084c5fbcd359520182fe5384869" +2e358ce975029ec97aba5994c17d4a2169c3b085 = "df196c24392c9fd29cda1301908b3db59510c23f" +31efe690bea1fd8f4e44692e205fb72d34f50ad3 = "f052e29e038b0f9049e77b7e1413564bcdd1b2df" +33920266908e950936ef3f8503810a2d47333741 = "f7d4ad08332bd05635435d5519528c00c4c6be09" +3c9d75391c72d7c32eea75ff187ce77b2d5effc8 = "fb187e13e6a459d879c3b1be879f8f699300cca6" +483dbf5279efe29f94cf35d42de0ab0a673fb34e = "bcefb95337d46b150717fe68d34d80f0e0024ad3" +6445c82d0060dbe82b88436f0f4371a4ee64d918 = "e33071ecc92c4f8a29ee3a7aefa7b94247e12fbc" +768187890c2709bf2ff06818f40e1cdc79bd44b0 = "12480857d6852be64452696cdde7b9bdb048c081" +79599ada444fcc63cb08aed64b4ff6a415bb4d29 = "2573a2c687ea64629534e78fdf7a9d75dfb27e4e" +80aa77986ec84067f4696439f10fc77c93703bc7 = "b15b2df56b7c50555207c834559af449f4f356a8" +8227746b95146c2921f83d2ae5f37ecd146592d8 = "4ea1bda7595a12d250ee813f32984788aa4c38ee" +903644385b91ed8d95e5e3a5716c089dd1f1b08a = "4a238dffa9ca2c49093951e23fe3f7d6e312d412" +a05f87b79ad62beb033817fdfdefa270c9557aaf = "663180565cc308269d9467d572ebcfe85a4b06fd" +a2f713dea5ac6320d8dcf2835ac4a37ea751af05 = "ba845b8e1cb72f76cc1e95bb2ba38c3ed849c45a" +ae26b25d43317d7dd3ca05f60b70677aab9c0e08 = "05f73b87a46e170864a6b09d2f3ff475b9737efc" +ae683afcc4cc824dcf68251569a6cf8760e4fb6f = "013cdf9d7901fc890039dc2538022a0430e26164" +b24213b893ace6ca601722f6cdaac15f2b034b7b = "ec537b264dd7da62f3ff7fb44deb444b06eac4f7" +bb73f3489d837e3339fce2c1aab283d3b2e97a4c = "840c9480b51eeba14e6ee69595aedf166273242f" +bddb70374fdbb2256782398c13430fa4d8b55d0b = "ef9dab73df8b626ccf8c882c57b39be5b381ede9" +c03f413bbdb46c00033f4eaad402995cfe3b7be5 = "936e336187794b7d3325db805fbf78d0061e6787" +c8ceeefcc1dc25953a644622a895a3adcbc80dad = "f673d35ac2190ddb29bbc86b6faaa7b2e7f4df1b" +cb9bcae93a32b42cec02585c387396ff11836aed = "518ef1c58630f81242c9ee56226a7fad86b21d7e" +cbe1bee3a8f27ba4f349556857bf4615ee5fa68f = "dab03ca4529608ef0c7fdc82cf7c0b2afcf0c53f" +d386e40c17d43b79fc89d3e579fc04547241787c = "f99623880b74ba75ee4b9913bd1d560bf3022036" +e0ad15af54feecbc4e4b91281c2c15eeca7d6515 = "7bc2569adcbbbf2f4ea4ddd6f120b2c08e2a7965" +e44b5939057d87c1e854077108a1a6d66203f4fa = "e9c9e57078d44dc7fbfc338b3e22c38c3c0163df" +f4c6c9d4bbbd9587d84494e314f692c15ff1f9c0 = "5ec2d66880c6372353cadca92d3447a224cccd54" + +[123dc426-2d89-5057-bbad-38513e3affd8] +093e5250f0ab392a5a0f8a18b6cd79fb32ac4266 = "04a7bfbc9e71d1e6cd8c0b800fcbfff82caf6775" +139f6133e2bbb05cbcaca2cd138eba27819dd01a = "f79fa01ec289d58ba6e22c91a04b438e2a898061" +438c4383ae33a363707ec83d0bb8a812912d0fa8 = "9ec797055e770c5aebfd366a53b69a44e2cead21" +7886714237f25fce816597c7bd9151c02355013e = "e071f6413d732bab16aa0688fb149279a65aef67" +8dea68f1d94fdcda0f273a525c705127de33548c = "3b00003c635b64bdcd9f94cec95f9196d585fce4" +8f4790ed11379ba37766b8bf22ba92843be049e6 = "bfb40e7d614c2231ec37d747f87ae5c01362e983" +c501d2191b267e44b2fc738c1a8c7f4ec5f0e2b3 = "4f50f1075b61576f882db6f6601b2e1571beffd3" +fb40ba1016b714371ce38b3535a109f7d4cccc1b = "9c1a194a98d43cf5a86b134c013b784d2ef46389" + +[124859b0-ceae-595e-8997-d05f6a7a8dfe] +ad36413e42939adc37f9b1d5dcd1a79ccf6fc97f = "1a9690efe82dfb40c56f8624fae1ccdccc8edd6f" + +[124a6c59-8edb-56a9-bb1d-56f762e41daf] +c361fee6e13024372baa2ee9cabeffcc10109717 = "fa8d48ad92c64982cd27b668873e0e8b16e37cc0" + +[126761fe-f960-5dac-8eb4-3469629b6dc1] +5449dc1ec823af833199fbf9c7c61c16a69c547b = "2d9a7a48330c593f14156aea59d4a9932f601989" + +[1277b4bf-5013-50f5-be3d-901d8477a67a] +8302ca5207287789d8347825d18de3885a91877d = "1c3ea60b6d69046689a8ee9bbb800f7ef6a65617" + +[12a3da48-b57e-5905-8e12-c27bbf7a5065] +accd76d30d27ce3f48cf5890f51e7c2a14069258 = "55f96b791f51fc65f5fb3f140bedcf7544f1b5af" + +[12aac903-9f7c-5d81-afc2-d9565ea332ae] +43a532ea895a4894e25e780b2c63bcedab4d594b = "646e63797a3f98356209b3ba487d49ffc133a281" + +[12d937ae-5f68-53be-93c9-3a6f997a20a8] +0140e0ace18d9fca62982e85017e84664f8ffd35 = "156baafe27f3219d387c085e2636a868184f79bf" +014d6a1e9d611402fb2b4151db93be2f2564d829 = "2ab42b6c45661108aa716105e6498aa799b7032a" +441439eb5e2b108a0737d0e29f34708044be1305 = "ac6f0ee7037781e7b7cb3b36cacc988306f0f7c3" +795314d17a0fd742fca296643028385e906f9f1d = "d1af5d3694cc3f7c40c9f924646d2d784abf91ae" +9e3cc825b4ba19d250fdcf938237a37a5f6098b1 = "9802edf5b6dda13b0bd7920cac05c39fe4eda509" + +[13072b0f-2c55-5437-9ae7-d433b7a33950] +1cd88f4a25b98c292145de827de74e10a26c92b8 = "b8e2660a50da045bf187fccdae6db19745b719c1" +2c57a55be1ab717a7e120b4dc9b9226331d837f8 = "0266ed43aa2ffd0e0968499e66b063f8f9af86a5" +3800b725b01fc1bb6b69e84d181cd92378004528 = "722154d41bd2f3edbe44d0ae5250fd385398e27a" +50dbaecac498d85ab59e992da8c2a5d6ac56bd87 = "9c152cacad81316007963727ab843612b9f4faa4" +57e93ea12a2399f6e11602c258df54f97a9ed037 = "918636b847945d05f0bf5e7844a9d5fe8282f687" +6cbd6b9f5c5e06bac562e83dda291a769d1c8623 = "fcd4e6aee86d35aad3a138abda5e3f2f31a36166" +9f8e3f4ec6eb58e1178cf10c7d139ad19366e4af = "21d79f187b6f8f108b892fb40801354d8f315a35" +f1f3d0f9601a04bb098cada9c5a8f2b2844206d6 = "5d7f12d7f1a53ee5fd31d5b05b7f09033703fba8" + +[1313f7d8-7da2-5740-9ea0-a2ca25f37964] +024f498690e1e15181aec953c80dd8c0d5402968 = "fd9bd4a1facb9ad74531d4378f27adb4d4e04f97" +13f1ae0982a3305d4a9c2bad3ceabc887ca5aad6 = "e076198999ae75856ba8d778f0271333c44eea90" +386f22eec163b169ffed81157dc763615658eae0 = "5b3660b8dc306fad0481f2ecef5fa2be6a154691" +4f727e106f087efac9271b1c3650a54ba58d8ae8 = "27a4bd1f2d0601c56065be683b12eef0927ae7b3" +6f01dc7bba9cb8a6f6e4d2ecfe1fb3d0b5734a43 = "b37128790a3727016e622010f56c5b55ae87f83b" +9469fc563f603ef214b184bb5ff90e2657089896 = "11d645653df764dac69f31f6f914cbdc6524ed37" +fa1f50c343c99b4d79b917fe0eaddda8def3dfb5 = "83c79e0f6b656501f7793e17adb0056fbd73de6b" + +[133c4774-c510-5f25-b650-129312f89f69] +2334381bfdcff48ecd183e29ca92ffeb587c8d69 = "c458c826e20d8929fa31ceb6651a9b206eff08cc" +864fdce2c82c4f113bdf760da9e4dd19a6484589 = "2723d69cbb5a88cbbaac897fcaa58837ea14402a" +ef13817c52284adb704d122536769242a6eebfd1 = "37574de42e496d3fa97b6914a05229b50ea9ea65" + +[1375f997-1772-542d-b6fa-a8ee39124556] +20fa71a6378317c87691ce1b8147a7221a9f969c = "53bcbeec06a185bf19866233dfe440776a355dd6" +6e2e48ca3be2f405d519c2b26eb81c10a013e848 = "14c3a5839b7230da1be6d71b14758d61d75cbf9e" +7f4b52d56213175df1f613fcb8dad49b2071984c = "d23814cf982e0c5e6a4836420b0cf1fb5cd41d30" +b2fe0717127f11f3d2183a06c68f30786ebe4bac = "7bac3f1ddb70039892719835411f71121463e74d" +c2f91cfd4e43c6a9768d15b49d3e0b2da22e02ac = "d8000c4ef858cde1ec430d40141d77bf55c20db9" + +[138f1668-1576-5ad7-91b9-7425abbf3153] +09f2467f8258048c354258aac7c3e32169fa688d = "c436b11bf8bb18e1c689827e199418c5f408b608" +18ff6d9c2819d63201b7cd74e8e4207b42155189 = "3abb19f086f683a4cb54d71d000bc096cba0fb19" +1e7dc3769b413300debf0f32c2a03a75b25bf561 = "d5e3d9e45b1e1cfab294cb30da6d25644bb0e052" +20b6d501a4784ce9c54b2edf678275a6554a9ede = "5228b691576e530aa58fc6af58b2df09d84aae45" +809a79754a2580b4d17aed699c5f8a2be4fd34e0 = "c0bf1e00bba717ad116123f3839b3053cdfb34aa" +e0de41fd24f17806d3e654bc115d425fe8281748 = "d031a63a1206c45d1c763e350391273c38ecc8e0" +edc8e17404ee85704868e15ff2847c14c445763e = "c4dc822935df6a8a5ba2e0aa3c526928bc2e0d69" +ee14e1293a8b6242eb80b68e2a2d8c69ef8a2b66 = "64eb31d90d164c4e5aa0be3163023b95d8eade6f" + +[13c4ecad-ea00-5001-86f7-0fc03bbaafeb] +16f0ea771bbce98e7a4ed3027227bd1cab9ee085 = "7d34635274830cf0f1bfc34416decb47ac484d2b" +1dce8f39470f3c41efeea3301a367c965331e82e = "8791d7285623e679627548f57c83e6b02746516a" +2d9fcc6d2260197d5bb183a5f84e84bde7b8e39e = "0d4cfa2db715577a326a1009e837c73ed6ba6df1" +36536e506cbd9501c27d901c1b949858027a9603 = "e3c44bc06381a2befbb9228e543a6601a70927cc" +792f328e8a0128021a536594f14cf9933ce83ceb = "c1eec49d3913cc775ca09a8af464860fa8dc409b" +8b3e8ab758709df1a17bff065041379a32334926 = "0cb1805d0924ac687e79c2768d2ec35ac505da54" +a0f15518bb5afdc364a593298a088a84bbea150f = "b139cbc6de1f790c6d497736b98887f3245b77c9" +cfbc54562ad26a0a71bb4207e4da677a3952039d = "8c89c9eb94862982931808ce8a19c82d201d3dcb" + +[13d02911-3e28-5d8e-aec8-340b5d61074e] +64023260980138e0bff31b1b2090373f624b6837 = "5452f71f33c2a86c38380c5dd3f59733f7c0531e" +9def6a38aa5acd1a76c52053c549b72fa58d00dd = "c6039d71a29687b15c59cba762e8f64de5f2bb08" + +[13e0c4e3-fd7a-51bf-9e22-ec7679f18909] +4a083fcf53c4efe5050ff226d3888b93ca764742 = "86d111bb94779373b271cba8fd3632223bbc84ac" + +[13e28ba4-7ad8-5781-acae-3021b1ed3924] +6bfcebbce53ba29471956b2d0c755e491d22c014 = "f616666d40b655bb150bf29c62ecf6bb150cb0fc" +81f696784541249ac1e50d45d68aa0fea01698bf = "2adcd444098c9df106010bb49976b2663ffc08f0" +cf36f5bf39acda3ba00badc9250648cceffa7c1c = "ab5d78251328ed673cae4b5d263174b2f6dec712" +fdd91b6f891b33790c9af1737907bdc928b0f693 = "4e4586858733f1c2360fe70a0b7e6583bd4d3aa5" + +[1407db8f-3b7b-5b59-abc8-36200bfa8e15] +0d6a6efc32608e05bf0fb7ba6c4a9e44d99576f8 = "c49ef96470fdc68906963e753c42fd14b79b9d65" +9be1d10eed4e0ffd3d9b8c7d5157220bf50c34cf = "2a13b96dd158936be1088d1bf0fb974fb45e8baa" +d5fbe4e4c5ca5064fb7c32fd50373c9c230a957e = "9cd6b0acb21dddb656f9c7ad06a87ec26c68f728" +dd969865b25a3c38cf1b3fc7da0c6fb64f69b864 = "77bc0850d51e5e902b77758af35241223cde9499" + +[140ffc9f-1907-541a-a177-7475e0a401e9] +25a97fb5f15399b607e58c6ad2d54f8a8c3514e1 = "1fc14939ac83fca5e5f32035a7371d51515f9c7b" + +[14223e4e-d436-5d0e-89da-0790356f936a] +3b4e4d1fa1ff9272ad35e17360d290021221cce3 = "0baacea3bc0478e651dcfa13edda700b85fe212e" +5df4822dffa5abcb563eb6a8046c1d50863ee263 = "f7b8c6ca6f9746e11ac07961818408357b2edfb8" +d37cb92b7f8b7a198521d796b61bdcce407f2434 = "af8eec9b351852084e1432e4f606a3ef31b15d7b" + +[142c1900-a1c3-58ae-a66d-b187f9ca6423] +5988d3b8fb4c70d7cfa365b7eb984603eaefed46 = "655a8603226295c74c086fde4824a835f66a1a68" +60f90cc17b6279adda9c509202a040b778895eef = "09a23e2d57ab399bc0fa8733178cf782f8f00408" +891ccc7af186ea702ac865e33e552811856e4e76 = "5c6bdd1232f736c1051726d3bd515d2e28f20335" + +[1463e38c-9381-5320-bcd4-4134955f093a] +0b6f56656b9dc12bd298b929496e4e63ee979465 = "86d7b5bf3be2b2e455dbb6893621287102770d86" +4d6549db9cca9bf54388df1d19fdd2c83453cf7e = "306b3036420889febe5a453366d61c530865dc91" +556a73a59c949314160a097e16873bd33c4324b4 = "873f30c9b25971ce1446ef712ad059544da36148" +94fad8c025ec09643176563cee8f9e55e63e08f9 = "b8fc1835460a3aca87a3baef3e3ec26fd1418e6a" +a7d0cd6324abba2b20931fe45caf608db1c37beb = "3a958c7d29bc5b6f7293097b90e27b7848d2be29" + +[149e707d-584d-56d3-88ec-740c18e106ff] +06412a8d9a7d63f9fc4a35ebae7d483be01a9eda = "0841d3fc80ea67dc79b89972445137c99d8a03b6" +62b1beb4fb246fdcba8a000f270f555297551600 = "f128dbe5584d9a638bcd5306448706dd5dfda4f6" +707a172605667c46896cfee2291568976c0042ca = "653a874f98b8084a015b20d77580c421b902049a" +8303eb8d5cd7b7e0bbe673d9758f8db613b6b7f3 = "f1764cc78cbc25d3c639e12f0da83d392203c3d7" +a851618407ab213ab6685eeeeadd14bc531c8ccd = "a5a4e5d38d43a83fe2e371ff9d7c4089d48cf08a" +c21bca24e48cb0307287e961e6802ecccb0deabd = "7f3f5323db4e221617dc6006db24abea82b603c3" +e242d96556a9a9bd714b4a603f0715c5ae78eb21 = "0ab9b890499ce5a85b9c0e2f1f377bfc88fcd250" + +[14b8a8f1-9102-5b29-a752-f990bacb7fe1] +3ec33bc02c901ed58e42ee4c367ae7ec7552ab5d = "c274068b4b2e54051bdcb06cd12a8234c7980f91" +46066fd5635538102babe0c67ee85cfb9191ccd4 = "cb7babb7348f0fe2362ab489d200129d3297a1ca" +7e38c924132f70b12eceb2dc01dabafdc3a1fea5 = "8f8f4ac51be668cdf7e9fe7e1bfcd28dad3f4ef8" +c7f9eb5974f90ac3a4903a354abc50012df9dad3 = "baf274d2365c4a32ac134c8dceb91cae7b109701" +ca8788d2d41b2ddc27d26eba4cac02f9de09bf0d = "672454258793d879e79b24504f8dd8b18842ed53" +f4e75f3a574929b30dffeaf5f088cb0fffd55246 = "5f8db110b9431d606f3367b7e58c2b845a400b13" + +[14e1027c-497b-598e-bddc-6586fb90d6c5] +014f32e50e9581f41f804d2ae752e8ad0bb97c90 = "27b3e4015dbb3107683e6ae715d199f33c2b2359" +15c1a6b227c5c737509d02eef32d8c55d925cc78 = "1ad44022a5b25b4671f9734cc83e51bf54526965" +804ab3e7102e6e3aa4f67df3de7921a43f12a0f7 = "528562b388a33e8eed95fd1892092d677ba32f78" +d90ffce32d38252ded930d7df14114fd051c7353 = "6fd67a3c87af0d059f6d8c06ea76237f907467f9" + +[14f6b274-bf6f-559e-ad68-649875ca52dd] +0a68a52b357520af7b2990ffd184078448706b28 = "ef268dc36611d85c2715fe097e5752443368a0b0" + +[14f7f29c-3bd6-536c-9a0b-7339e30b5a3e] +ad72f7a8d0f987bb5f2199f2ee0054ce1d02e3dd = "a83bccac7b269a047b1ac18ef427cfc495ffb870" + +[150eb455-5306-5404-9cee-2592286d6298] +18fde145f8734f8020f6e6699146d7aabb697826 = "126560126eb950dd385ad4a764382edb02b45019" +1bf42489fb1fe82c126f766b88375a22f01972eb = "302a6c38b513380677a1e5c96e569056728a0440" +529d9501be719490f54a503d8130e0ed10822cac = "5082dec29d88f5e15db3c6921db3f4ad3c19fbef" +62ba22e0d9e34e0c1b3e2aae5c54cd98c7fa7576 = "2abe6afd4a89736fd69cb06342792b131bf5d4df" +8d88a6aad41e020615e199086c6f62a1d03b4feb = "1cb66dbf39f1de37776db26a0337360b5a51817f" +9f3aa6b6174c378503f612a44c0854e78c8c9a83 = "be449915fbc69d995851595960f3a63213050f0b" +aa16c5b7765c854cbcd3be391b8302538542e769 = "c4bae31f08775a523f74fa2cc26e8a6c89701957" + +[15111844-de3b-5229-b4ba-526f2f385dc9] +caa1b97ee6609559a91e5e3b1406c51dcd16ae3d = "83b207e6852279e9ccba342728aac8c9c1d60313" + +[1520ce14-60c1-5f80-bbc7-55ef81b5835c] +38c53b5b0332d859bb09a08cb217ac6eca6b5e7e = "1733898cf3b3fd395bab09e9e83460383257b778" +516c02ce0d46445151dffaf097e5f5b3d7265c43 = "b6070901fb9ba39855669e2f9ffd23a11c94326a" +73ae234df75b9e3b22c290233509c5ce2ef06888 = "657d6e69fbd4233a501f5a9f34b11768a93a0b1e" +74695d4634c2286e20c75accb2739d07344fe56a = "988a9597d99936407ca41e349be519e2fef1d63d" +9226a020bbc3f82ef8fe0028ad6c0a354a24cd7d = "a69171a478b9b0ded6564e206b206f12c04b70de" + +[159f3aea-2a34-519c-b102-8c37f9878175] +0448f94848b58af10b5eb87673d17d0a436d4fc9 = "ed83b468b4f50035d6eede13dea2e542510af676" +07a1193847af08ffb234b8d00188632fca571def = "bdcee8258f4fb10ebd3a07fc38b1236f394b79a9" +0fa5949fb347fbc0fdd39344ab0c67900b81a04c = "b055281452093bc74d7c7a6d3164ad7e18478af7" +10913a18895481fd49ec661ff6c7a5730814e962 = "91dea8d8eead3741bbd5a034f8fe1eb62888852a" +18c56380dd90b48123bcf1cb579c1882fd320707 = "3a30cb1d164abeb648dbcee72504cbd57ad5fe11" +1f40f46bc2b11a342d80611c4e3f42ff2300011d = "a310b69782d8e77c1e5efa8aea6bbc28ad2f542e" +2ad009c9369afa76383709097614e42e98a94272 = "c1d0d92a041f0f8c1d7e787e74111b26b59fcacd" +39500969af774f0a7b687be5c42a3b1fb3118165 = "7a3e60c095ccb23aa7dcc568b7ad190edb539126" +3b61438bc1ed36131a0f1548eeeebc00a5b6ecc9 = "bf04c3efc761a70f786e1445151c6a76888604c7" +3c84b0eeca4640d151f43691994c3dabaaccd82d = "a3bc6dade4482ffe8f389f3c50bcb267ae9994d7" +3ca577c4e3331afeee3770ec4ab1ea951cc450e5 = "d5dc7abd919bf249ab5ad1a2a2205b343ccfdf8f" +3d38413579ce4d0ab696d54321fc09c8a5b33ec6 = "e7a8fb911cd20cb3d35e3b50efce0abcf26e2455" +4cddb4fe0a0c715318dfeb607e04079dc9ffa5ff = "83ef0c5c954be2b40862ce1ecef02008ec673c85" +4eac5aa41eab304000551ccd5ee352bc98482811 = "45909619e839ffefe22794b67ef00fe0ff41b8c4" +4ebbc3a4ad8c23dbe5b81a5e239ec17e8b0b99f6 = "c06b022fc3b2315be9f40fdef428272f7f60a721" +51cc3050d30f36e56dbb179d57df9163f5d2d5b9 = "cfa66835dfab0d594d5f527d512da41d89fc1536" +5c1c751133cf1d00426dba6ca57e9f5869f7ef11 = "0fbb24393fac66b81f5d523dff62d3cca2376d5a" +63352a59ef5121442a0bf753d37251fd8f28849d = "7bace22031086230bda98e779bca43501e491a14" +65a8c771d47501cdcb4272b559244c78b0a36e7b = "956e3da4ed7f09e73c1bcfd9c7997285a5d254c2" +678935371b0b31383ea7e301f5a5662b40a1b70c = "7ee62ec571aa7988af9e602b9527954994b1153b" +79c34782e384637b4d1a159a6a0b7fdd3805b2eb = "d484684dc7e90d8b075701563772a752d6f18238" +7bbf453044ba4736da8e106601717c30d87f0398 = "ddf8ed711b20f2e37641369b72752aa3b9f26852" +82140cce77695fd5800626cb8012815baf6d0545 = "bb9b1f8c9803334576dec49957e1cd580eb46d33" +8c289524b1ac2a7f7ca58037a452647aeb7ed6ba = "69af7ff2ec12b762ede7b59a762dee04fe330c9a" +8c7fe716d9440d562485eb6bab42f8fc20967d1f = "a971c8e40c9c7fe42c6e70feaa5ddde003604c07" +8d340a7c3331a344c5d2dc419908a21fb79b7bb4 = "9e396f8aa50cdad35160c9ae3eb5a9247e61980e" +8d679af5205b42e9479e3a1e8836aa8f3cac280f = "32ab5420f440bacbd4124c4c5e9aa2b37051929b" +96d35ffda2b224c872ce0d60420a4ac144350c35 = "7b66019cda7d14ed1e8d13a65c894a6864679cbd" +98007fca91c49f911770cb08f1aa01346ae32c24 = "e48efeb953758cdb4a84770e72ca01af03bd02a5" +9a6a8ea7984861a41e34ebd29bef2fca631dd9f4 = "fe37fdd7aadee61db8c9f2452b7093b313b4d911" +9cda5dd33e9021a0db6f88a19dc8d60e8636d47f = "2520d2d9a8cdaab7038940ac1c94b54a9bcb4d50" +ae1c4258dc40f963a3715f251681cfb712b676b2 = "47976bbed64a1a6b384fb3bb5e609ffc322bccc7" +b343cc6572feb1871c001994bee65a6942154ea7 = "a1f24c910f666e3e784ec56713742a78a0e850d9" +b81bc6315aff9e1234dcc88b615696cac6603a5b = "d9b629e30e5057058fdc727d0589a864e6cd0ac8" +b980baf5151a21e9340d339f19da7e05b4596d2d = "a15a9f5b28627450109ad841c1aeb39bf3cde1ff" +c3aa6eaffb07399ca741229e07700ae234dc5d73 = "3a5b42497f9a34c7eceb1f878213b96f8faf9498" +cd923b1b7d90c16006b2c923f0c16277ec2392e6 = "a82e3b94e8b716497726f7d20c369de4f98a8c93" +d6c14465cef4759115ebbb42253cc818a8e74eb9 = "c3cc406b3f60d43cf93f0c867cc9ca2f9000d371" +e288184dfa59242ed0d440b5ff7739ae8ce6621d = "49187ef8cea192c4e1d6621bbbf96ed0e568831a" +f2f8203ff77b8459cc602e2a425f5133046879cf = "ed288bb7f9e597ea8b80e66d865faebced170d5c" + +[15a4fa57-098d-5a77-b233-4f9ba1cdf842] +3d8a9041087f0d14abee9ebea860b00bf8b059ef = "072947c8fe3cf0d763aecc0d7353b068319667cf" + +[15abb135-4bdc-5618-878f-10a5e80a0700] +519f5b2fda78d14c54cc764a127720ad8618a31b = "472cc29a3d389e554db9d6a2180f1bbd762d8b51" + +[15bad361-1dfa-5a14-8210-7c6791966b1c] +e9d0dda2a5ed19e7e4a87baee58bd85425822417 = "077ec07e43102cb873a7b2c363863b3dd4c8f848" + +[15d4e49f-4837-5ea3-a885-5b28bfa376dc] +2e2191092e4bb6737e29ca953e9bf4280d245f9a = "c9c86eea8d0da4335b76ceb6868380794fc83b31" +3ef14d97b65452e65bd82db1e11640670c611625 = "8a37f2e23510997bfad797d9af615b620f148abe" +499726aa4095dea61cb6cc2ed82d15351bf3ffd1 = "03e549d9a450df25a7107dfa9a67a111c3f5f730" +5e08e34287bd223e462901661dc41e3c699329db = "bdabf9b69ae721a16e0bffdb19f54edb3d0fb399" +ddc40abd2b292eb993d0cf29b820d25ca66b9248 = "08a3e84d9d67d6c78f686a973355ebee6904d176" +f6e92c116f694803823575694417fa6ff8fd8131 = "1b294be4f94b1a1aaa4219bbdc228a8881c19bda" + +[15e1cf62-19b3-5cfa-8e77-841668bca605] +60c4bc9e383c5488249f0d199d35f7467201a688 = "0b306cc7e06f4a245cd0a540f8de98b666a960a6" +693c4979cdaf9f2e44b407f1392ddb6d6f509089 = "bb23f232df71d7071b09fea5ed3cdce5f7bb9473" +9931a344268ddffd8416ff070799d21d819ece91 = "59b5dddfdefea26a387352691035aca118ffce96" + +[15e8f15b-3645-5025-a891-6b51f5bb17d6] +24cce9e6ae78f77e16ff25a7149b9482680adc23 = "9e956c7c2f895b0c9f6cf50b221af8c8eff03a9f" +987daebf4634ee3be19857ac677decb3eda2786a = "dce55b6dd94303eded318c6abbc7e073df7d926b" +de8699f635882ad1c3c3d915b4ae9aed8f1c3788 = "46b8ebb27a794b958ffe3b9696284fc02022ff07" + +[15f3aee2-9e10-537f-b834-a6fb8bdb944d] +23246fe5a9d6a293e000d72c0221483ea8c21035 = "d280b1fb4c114b728b99119f6de5e0cf589c681a" +3e6b36cad77a8810ad10b4933b78838dd2f11053 = "97d533212bccbbe02512c7e9cb2565f78d841a0d" +44eca22eeacfd784e83b34212d835bd5d5b35718 = "9eebdbb8ee74f9126cb50ed4c28d82355b124c06" +88bff825e6413674c15ca1a215c0c6192e92b98b = "793c9a00b84070a9ffd6b80dfe825f396d6074e7" +9c740fc35adc90937e0c88718d1119201d77302a = "56f53ced639b3e3fb94f73c7ff21256d21434241" + +[15f4f7f2-30c1-5605-9d31-71845cf9641f] +06f9de8e35a50b38234e75b9d687aa555c8bf298 = "21a7f2e11f0504b681093b86b171e21041f23055" +0c60fa2909d2f2eb42aaedc1bf92b30511bc1dac = "6e08e379d300e2846e6343225ad7f23bb6a8dd7f" +0fa5371699b6dfe60ded58b066d09a3030de0b38 = "4fcdced5c5acfd39f215540f919fea7ae038f9a0" +114b0081b0a65cf78b7e969c5b8abdef3a860e93 = "9cfabf0988e65b87be5cc7d00ee4d78d165a6ca5" +1936b4f1474c40848f1bc18aa9d14c8a5d2fe43d = "ace49bb737f0d55578f43c2f1b5e6802151d8c7a" +1b2880b59b07cc4ed0d5881d04b02ad5c06798f6 = "eea0fe61b8412adb9a214234e2b1a49efe07a93e" +3542065f889473ac22d0f58dc0ab57aa3c7ff32b = "9226df61e0a0d67c2c6d6e54b85d29e281c7bedc" +6f3b6dc0f759e34f5b5756b18adc9dcb5cf64702 = "e5ae37f3c2d5c2c254510e806d39eda02620db0c" +7498fd4c2860af0dd142d24e8990a06e8cab2b9b = "5c1d17d0847980bd2560f0aa528b0f8104c0df2a" +9e6d1706550c9c7c67f90b46cff1d1d07bd55418 = "daa70925f32c116e7b1ade8b953aa13f22331920" +a25b729977f21554d89f4ac902d7a6b5752cf4fb = "45bb6705d93be619b81451bb2006b7ee5d4e4453" +ccc0fdf3cfd63f76ad91715e67b1b5353dbe4755 = "1d7be221432be349272b5e97cc363cd5fa68d719" +e3e80dfb190a8f8932fcce1cbdc6e4bcf79ea520 = "f585d7653822ebe77b7484886092f86384da74bc" +fffc944119257f468f637405a17aa08358bf15ed = "bd186c59faa7973176b2fb5ba7f30816bb599af4" + +[160ba089-64bf-5ba7-9e14-98ab1d9bcb0a] +6765fbfb77aff24b96fda1f3453f60a8bb058105 = "98750813f45cd2e8b28175c12d5ef33444be314d" +ae1da325f9e9795a72550c11085d5e817c19bc7c = "d3b384d85248ba7510f742f42ccba6e1a3ffbc73" + +[16167f82-ea26-5cba-b1de-ed6fd5e30a11] +dabc9ef06749389f9f640faf9c00b4c8a25447e1 = "b6166d32fa5deaf9c037f76b769bc413ad524703" + +[161a31e8-61e0-548c-99b5-a49067c596c0] +1d53d083da021fed77d7d0d374ce9c9070574eea = "426768f5934dfdd03e01513b72a84b1f1fb7f1d2" +70d43169719de43b45726afff0b58db72b80f463 = "16ac6c5293f7190b0338eaf85c63207e84bcc3f2" +991201d9f433aeaf443d7bdea051fc95bdefc014 = "1a60611303847c2446c1f98e4664855a2034c23f" +c4b4fc90a83924e4c4c6fec44df3e9005de3e4d2 = "7d36b91eecda1674586a7976ea541e8cca826cd3" +d100fac87bf96c5ca3b03549a3162927ee26f4fd = "fc8c44c85f4f538aa88350db6a4777e207a1d8a4" +f37eb6d31a84a82a3e78ef57158633b2b2875bab = "ee096d6340e5072b8d585fa033ae9f399a069a73" +f5634617dd8812dd3c7cf77d340036c83ce98a8d = "a34854ec6561425ceb5e335dbcd7d8b5ce6e0ca9" + +[1624bea9-42b1-5fc1-afd3-e96f729c8d6c] +1606690b573b8f76e06879febbfec52da93bbfad = "6e63bd5d5bdeb669eb42dad55ba680266e261700" +36fe174c140b7cef7a58e0cf2fc3a5f2365be3d2 = "f77da1ba5d9e2a45017a2606de9b59fe3a67dbb3" +879226387c4bf7cfa250035e17223d1e4533a125 = "314b2a6aedfc9b2c27a00ac25407f3cfdfd2bb9a" +89ae7f2c35afb4b84c37a2cb4f5d16a18f69ce8e = "46084f71d72861e688bdbb4c434311d3730ad68b" +bf041a6004d98f905a3ec34e4a6fefa6660e8fcb = "5e1ae9ff2516fcc9acf5a06190bed4692991374b" + +[163ba53b-c6d8-5494-b064-1a9d43ac40c5] +02f7ebe4e35ca4eca4709e5375bd0cec2f53cbc1 = "c147de0de11aae847092c1e93888fe90a4272901" +0e698b217fb1d7244568a52e677610fb9928528c = "baf5a39663307221095d4c7903cd8c7015174231" +d49bd6d78c1f600bca237467b375941bb5a3caf8 = "db8acf46717b13d6c48deb7a12007c7f85a70cf7" + +[165a45c3-f624-5814-8e85-3bdf39a7becd] +3600e06ddb2bed768a3c71e36a37afde70136d13 = "f0f901daa0f7a504bffd87c73bba711502e29307" +396480ab30c4290feeb38ef2d942fd4beb131aec = "eecaed6e33741174f3f70ecc28b0026e8ac5c8b5" +63dbb2cf6829f8a5758b2094e496856a6fc936e8 = "489c9f560267c891101881f4ee5eaaf3ebf37047" +74c0c4e3d67fcdc09dda91a543c72b07093ff8f2 = "11c9b63bb44f02497ae1e235d69fc0c63394b47e" +95ca2f9ad0851f697faeafa434d65f45c2683954 = "22752a02fc30d1ccee180132e32600498189c303" +b684a11cfcba9cb16bf72e4be315809a8209a009 = "908af1b74a1d1c722dcca50d87c259e44f9bf9a3" +d0bb3c8afe811f742bca478bd3aadcea661e39fb = "683eb8e4396d3a2135ff95b539d9787f252d1512" +dc7b06f16fbe46877c8bd5d77e4300e18549ba97 = "c9c6fc685975609169e0128708ef58c0c3771bde" + +[169818f4-1a3d-53bf-95b3-11177825b1e3] +75d52ff725cdc8f0c2638192115487aa81e67c2c = "1ccae510ace1bb219e0350b733e44575ac9125e7" +e5ca9c745d394dda426971e0b0d5c1fd11126cca = "24643499058e0edb82fde50515a38354ab9f0e27" + +[16d363e1-28f1-5f2b-b949-57f6f2d5f8ba] +0bce6021a281e1fd98f3e2c0155d804a1836d19a = "7baa33328452ea5a78dc640b1e210e4b6860df48" +3a98bdfe862bbd11263d6bbd897dc6c21e03ef15 = "0a5a5f40553b0342541df1cdfac7061ea39a7ac0" +71bb0331eef4a21b1f39822047d52288f383935d = "7ca6f076bc5528e790eb34791b0f948572b6aedb" +868929ef25bdfa4f29cea7e9255c8946cb081700 = "ff9d1dcde46eab80c4dba0bce33671b1ce2be047" +e268c57bc4103b25585df2715b3008a3ce3cbbc4 = "93af3a62160a98b56940069cb395889e378b7803" +e5da541b5fac5ba50eeb36aea5a1122394b576da = "ea8102c5147761a09f12cfae2003b17596adf9cc" + +[16f501b2-0501-55e6-a1df-7f221b4b01c3] +4846e6a65f1f3af626a373c6d160ebc44ee663a0 = "ece434f4231493ea13ab127d96ede92dd0430dde" +788925256096d500873dddbbb599a1ebca577b2c = "5b0b56f43aa7d3fe81afba568eed01dead6a1f55" +8f301c0cc61cb6540b166a776f6cb900711176d0 = "51142b503c28ac90521a23859ca2729088a07535" +df1837e56a5f5f4efe5d78e7b638db5d7456005c = "265a21b818de312eac5b35fa2f68593752616a4a" +f1d269ac0e827667ade789160e6823840f0b1ed8 = "00e2c9074ffd18290177f72d6f2e0953f7b7e9fd" + +[16f6c422-f222-508b-b0da-15025777bca7] +0b0f9b3846d742e466baa45375ee2e8a0a64798f = "d19584b3cc950e7103581978cd4dc5a2439bc477" +2192f19e8d8f50747f2b178ebc23bb3105445a98 = "e010582d1ab51dc7e01231ef7d03b401c6902618" +43c5b34b48f9b1eea6b4624a465f0102b6a2e08e = "191592f4f19fa6d288bde4dc225776d92810bd47" +5254f02e25233eb79c7892fc27f0afcdb6827466 = "673066c793db4dcdff64c00b4881ea4ca4cf23b6" +613fb08a90804f6bf1d32913e476a6355895b081 = "673066c793db4dcdff64c00b4881ea4ca4cf23b6" +ac812e565f74f9f18ca63683e97308bbbcc95fe6 = "77f8542780104e68605b8403472d14ada65be867" +c5ea5c28d5a80f559cb81f32c88f00b0a4aeea66 = "c9ac578952e2104c90d54a6772da9ff43d4deb36" +e9df0969ccf26bab72f9df9bbaf214c638b3c099 = "44fdeb27ee8ac6fb8e8108f3ea301e871dd8ab24" + +[1724a1d5-ab78-548d-94b3-135c294f96cf] +f8b513c8cd0fc9c8b0943b62ab53c6fc0dd2fcd0 = "c096a208cd42b15f0bda66d6594405207443c777" + +[17511681-8477-586a-8d98-4cfd5a1f2ec3] +0d0f1e1e7b7a98082b39d843c33a4175e0d0a66e = "cf6130d83b0b1c5edda6aba9b1137edea5a57744" +0d44bce524329767159e637d4812e1f56301c44f = "cbc0e2d9dd234371857f858bc563c6c10b2c99c6" +105e36b052cbcc7386a560c386407d419ab2f70c = "0d1340ef7ec32aceef8c90006b8177b9a46eaf62" +23af69b5bcc3c0f8e3bb93cc77d47c8128cf5f2e = "f647073468b6736467e7d0b5dc39019a40df3dc4" +270a2df868b36cc4200ede206489eb29406e5165 = "a6375e40183ebb350474dce0ef9fa86203f34685" +a9594998b524bf44dd9f0ebbb33c39c4588464d0 = "a4c01f64ad410c6aad3de73fcfced85691356f2b" +e364e98cf9b1ad09fcf72ec601c8fb95c3c6e561 = "d009dc955713f21453fcff4720006c484f1da659" + +[178780b6-09b2-5a6d-bf61-2be9dd85b544] +c36bb3d9598124f43f688963fd3ff41d5cb94cf7 = "402de3408daafaa4159ace063f64e681c0a1a00b" +dc90fb7d904a5982cda9cd3fd5286196e70b9341 = "62e478150d7d26fea11aaa005296bf5d0dab89b4" +e22c9ec5dbacc79ca9a81d47bbd59ceb72bb4918 = "cef85849bf1ecc6c4a1880f4a9a60e41bdb2b40c" + +[17a20078-44f0-5f21-b410-214499191408] +0c16156b77d1edde0c438e6804d220573701817d = "325756240df56b60d0bff80cdc6bbc3c61e219a6" + +[17b45ede-fd0d-54ef-b825-8cf9fc64da95] +0357eaa7f21a575ebb39b82a4a7647fb56946eb0 = "3377f477941d7d2d29bcf75133fb2fe045eb8327" +143344eb8736524ab0567adce1bc3e66027ac8d8 = "43f4ca2040ca22917ef7e34d97037584ecbcc078" +1d1c39eb1f8812442521a08a3cd98dccd5845a1b = "ffb231ca01aa7caa11fc6894fbcecd35a7d0db59" +4b33cab9d46e9a4621bf4611ba7074e961e78759 = "4e2b86c3fa721a68e7b8d3b911484373c9d63c8b" +55b54e45934414d22d15f61a91257d18582d7eb4 = "13839af14fd1fc6c613b0e69a4f0bb4138a52258" +6a4977b11675377c8609ea9e140e6a9dfa561be5 = "3c2bd2fbe6d1b43f888eacb5c2ce2611b9f537af" +7d3936a30b3977678b13bd56cbf1a2e85a976a40 = "161c93df66ba6de5b337edcd0d10d6698f5523e2" +87c61f5d2a57717ac7a4a24070571f992c5b4d4c = "08a05f2d99bdf20edaeb17a6796c26d0ad3e0954" +9e73993abf67b527d095c1ad6df372fee5133969 = "e9ad2c0908da9b13ee4d6951853e0494ecf50654" +a706173b81dfe4dbc255ec54910c114d41eba5fe = "b6dbcf2898cf776742086ca5c3006eb771012e97" +b249c05eba7676a385e99a59a8c2a229a14b5fe5 = "f4f4505905e1043b6358270ae1efa1550623f685" +b57bcbc575f40b4b30b32dc43a208e67e68eddc4 = "a87f789cd6310060ab8e4a269d2a09dc24c7fc45" +c5525ce9a1af7afa99a4557eeb3ab3ee14f22273 = "6ec6fe2916846765ced4f300bdc4855f30eefabe" +c62311b9aaf255aa5e8a8d4750124e950e0c4f8f = "d6e14c3017bcdcd00e17e876f594a1810c326742" +dd76f11e759c05638b900ab12eeb66c997dc78b1 = "199faf09e7599e49d23cdf708dd40eab54499945" +f617f9c699fe6527f4b605b0c49241fe709155bc = "0c8bf63d4fdd6b05d087b2c3d2a879a876351d45" +ff21ff3e4fa35487e82cce6d721f82199fc5f86d = "76e8135442a64d38bc3bcecb35365dbc169f6747" + +[17bba4b7-aaeb-52bc-bdfe-ff0c2fe83683] +0448fb7490a79b13455f246b4649f182d76f2acc = "1e3d58ab80196e2648599208eda4535178b311d4" +42a88daf86ad0251a7ee7fd15e0092c207f7b73f = "f0420025872c7e0fc80efe658c1136af73c9fa63" + +[17c455ec-5277-5eb9-8881-1d8f05fa5d2b] +55e98cd2445136e0993f5227e3af11727383b2f9 = "2f24fef65426a3cfe6610440088d62a840a8cba4" +f7885d4b2f7aef8d9d0ddb2d88c9efa604297422 = "3f9dde4ad88595a57cebe47b6a219fc6de6748b3" + +[183c5c77-57e6-5aef-838d-23cea72795fe] +22a1535442ab5e46864ed6a15d60765f6855a07b = "d3e32fdbe4024b16f147b63039bbecab1952f3d7" + +[186bb1d3-e1f7-5a2c-a377-96d770f13627] +974b9a7f6b1026a18cfdf391c24f2838bd5f8a84 = "5a2c783fec6022ac3a3378ed10160ef17f3ee91d" +b36b91c46f25e77d93fe5b94298e16e3de50ec48 = "70df972c7481f052bcea9193f58e4cc11467f935" +b7128c8cd3c64d8dc982b1b7b463bcd7ab8f809d = "f4605a147171ab6719a60503318debf25862c688" +ea508d796696032fdc0923abcb9cda0e22fe0d8d = "6b8616b7c5d5753440b55aa4b043ecac3d24b85e" + +[186d2b2d-8ad5-54a6-bcea-66047609c611] +1caf42ad0c29a0937f9f4c9996a9b50e07cab507 = "73115f56643deca14ea3f101fa0c72a4f3779864" +308855bfe2005c718d4a95b43e35fc27edbc4bae = "b5bfd3562c370d966e98fc4a90e115ff31d9fc13" +78a511e77457e46ea199bb9d28a4180b95d4a158 = "061e38094d7a94f18e677bd9205a3b12351b80eb" + +[186dfeec-b415-5c13-8e76-5fbf19f56f9b] +84e753925a06cbe9f752aa0e23af205a9c0e3a2d = "f0e1daa8a1bce5a4df66416501b5d3cbff64fe67" +d7ada1724814bcae0d564f9e1d0d2f4c0dd37181 = "3aaa51f0e62e7ca6eda2fe95b44ac636cf7ac1be" + +[189a3867-3050-52da-a836-e630ba90ab69] +1b73488232ca459c0008be54765fabc5add07092 = "caba582b2e9ef39b9cfff911aa13c5ca1b9a9896" +7c6c08409044ea53bef06393e97c038369212841 = "7e242a6a1f88ec84aa9bfb1c2ff3abcb04c41f43" +bc6a5f90067bf7aeaf482cfeb37029461271d5eb = "7ef7453f307c23ad36e8ba46db905a844c4ee6a2" +befb707d264cf62f44da58bbd65095c4671f7702 = "926535412d85383475bccdb1ac8ccfdc34bd182a" + +[18d3ab0b-97fc-5e2b-aa05-5bdf3eee57bb] +1147bb61ec4cee1777ce4ba5100f2155ccd20c65 = "d2e415da16c69e9cc309a478909a28369ae6fa3e" +401b43b91313364e6c248254068f8e6e8e9f8305 = "893f5fc4bd5f294eb21f43826a5bd643d1bd7f8c" +6cc4f07920b9b8256b55b551e77a11fcd84333c6 = "10aff834812f275aa42b1030beb1333439242b2a" +ff01601b579b5561a3062689ad0b94d68aa29e2a = "2382cd0abc4c8e95e11eed4b9dcdb29ca0b52e9b" + +[18d88a8f-8a75-5d15-b264-b01de3add918] +68bf8d01988ceacb83c8109d072c1a165d31f897 = "21597511820e634bb53de17c2b698b4d3360d32c" + +[1902f260-5fb4-5aff-8c31-6271790ab950] +038c46a4c016745a54123e34189aab642bf9356c = "6f08d063d09968adbf8c86a7196842d44e4eef47" +2a2cba3062fa6390de59d1b196579d27bfe8fad9 = "5a1a3edd415f4b6a83fd7219378bea57c0c4b70a" +48d49243ba196681e2bb956371c74f004adc4569 = "4a2cf2f7391ed89cdb32c2f5a95525ad769d9203" +8ea130e8403f2bed37101da2834442c4a4846a3d = "1ec23352bf5eb679d85d318d35229bff04058958" +8f77f85929726a53ec978d0a97740e39d789802c = "c5fe3e0e2739a6a442fb665d80ef78e855717142" +ab1ae23baef74f4feab6f455f90b1d36204674fb = "68096889da642ca7f3d990c030240059bdba8518" +c9556d487f8bb8f6051ede86495bd694b8276b49 = "34bf8ca3d6aeb3819ea5f360715379e60265ccb8" +dd76cb25557a618e974dedba8ec50dc63b7c2281 = "0565f96f86743ec51ecd9a273905c33cc5f827a3" + +[1914dd2f-81c6-5fcd-8719-6d5c9610ff09] +101a82d1cb44c0c534dc3009a17e40aace59c967 = "a9929c0284775cff7b843311dbcc645eaf2f039f" +19d36059b79ff27f79135cc89213842d4bdaa8bd = "c14aba2d32a0d8f31efe2b6a128c895a68bb063d" +23ca18070eee5d831abe04318ad666c2b3c651af = "5cc279746b66b77b8472f57962465dfd98136b76" +2acea4ff989e275aa6d4cc40a43d2bba7c006623 = "c07437a25c7948c8340133d50bbcb534f419d5e6" +486081c07bead7eea1ed7f8e5814323a47ac30b5 = "fc997d89e8bb1757dfb8a0f0cb44e784a4bbf71b" +536e02222a487119e6d20008d9250208f9a65b9c = "300e15ea1ab57844d22da716fb856180efd53d55" +732cf05dd34fffacd44c6f5d41fb43d84199381d = "6b89303a6f9dbdfbcaec5eb2d985582903a61474" +7e5dbcea0bdee43d0f4ebc2d0608557279c910da = "ebc497e134afa38dd7eb9479e94f0502110b30ba" +8ded92884b20d6c356868b5de5c379e63d1b9902 = "eaa53d49ad67219d208b51f8fff6b7a3aed995f4" +9d2a3e685994e74aebddc0ef608e8cee5af47c97 = "9fb08d683f7e1d38de00c7c808e6a8bc0b26a727" +e8b6d9219a13113a364e9e212fa0dc89cc6d6fd9 = "c45c81c8a973b2649fb04d0e5b30fd519d7aa33f" +ffce8f322b4779ae6c7bb79cca08fcc14c354284 = "d2eb997c4b1001cfab3c4f8f1ec4cc7855cde85b" + +[191d1da1-0f37-5779-b8ea-a655caa0c150] +9452835307deb191a8423cc2f4389e1e45179036 = "9f9684e4b192b562b1958d0f5136146d1cee1161" +996d3c22c08c49b55b475a26192e35c1e7b94759 = "ba0ea4cb28554d22cc05b88af0ce4906d757376e" +b32df31a1e141c7225522d4f2ebad6786cce5e92 = "21bd7a6b1d1382239a40659edd3e821fb3c4ec8d" + +[192bee09-7f27-5365-8a12-1b6f807ba546] +0a203245ac9521512e8cca7459b2a7f9f083792e = "298c38195baadc5619417117b8fd40d54ec6bfac" +26190bb49f68eb33735aac22807d06e060244231 = "48a57eb793ec8b0864092aca4486a07a8c64dbe6" +6ad5981410eb663c5fc1e45c85f65a53d7d4e469 = "8e3ee874ed87ee4b785bf0c1d32f6b901cb21bdf" + +[194296ae-ab2e-5f79-8cd4-7183a0a5a0d1] +2c32639cecd86496ea7f8eb0588de39267c2a7f5 = "423092420415edd4a85dd90c63489463e518c84a" +32e318fb6bdd42024fe45832209fe7d6dfe34b0c = "4bbd1aa7410d703ef06e5a726f37cb2b57011b9b" +6d2a1744ecc1a07c3ee815c58697613914af5325 = "dc6aec0c3aa4a27b4a2f5aac66a7031853d526b4" +982ead0b094e9873d56376cdab91dceb1ab541c9 = "87589502497b813ed0a578fd2ea14fc5511b36c3" +cd93fc5f05b58bf4326679fd7b5bbc99d1b0b5a6 = "a4fa005a7c7a6748dff34b186f8128564276bb5a" + +[1950589f-4d68-56f0-9b94-9d8646217309] +25b93e581bde4ab9428385ce68ff0c5a8c79c73a = "34841f62c6dae331cb3153e0715e02e1441504a8" +c8e92435ddc65fde715c6344dec2ec4c8b46495b = "e4a458d4db3884e064f0f4200733a8a00d1f29e9" + +[1986cc42-f94f-5a68-af5c-568840ba703d] +00fe4995b54b63a7d5b5e0ec7cb83b041156250c = "223aaafe0ca006dc4d311ba34427925dea63fea6" +2429f48fde4b9d4b3bfa61c0da955268feb8a99c = "30303cac99f5bf6fdb142bf5b381f7ff2d8087f4" +2460f06270e0ea0375778ffca4a8e1d6d0f73312 = "e42f4e76d4f54a3dec524d5f785b7451a3d7b26a" +264bfae39d42247458a78da888a0139a5765ef87 = "4bad57892f9be964d0f8035a7426dae71e35a668" +2a4b520aeed1c25277451c6f0d81f7675812a1d5 = "c2fb5f5d56aa1347b4905c638825b6d93d5f5f00" +35f51c2905bc91e8999319819268062c22c117c2 = "fec907736484c5713e13aeba04944b87e8fe2b4f" +3ff0f54dd4137ca444a42fa553446470187993f3 = "62c928a14fcf2f66a94bed3f866a31d1e1433af8" +630e45c528acd4a4c08407b3b6066f87c02fa70b = "946e14aa83d9af8e38ebd1d33d870975324323fb" +65bc3869ae0909f6cad0ea163bf9c5ffd4215607 = "4bc54484a49a019b2468e8ea953e89be91c6f1fa" +7cb4eefeb9e0c1b4761e432004ccf216cd2dbbec = "9b889290cc026d087c5cd7c2309d80362f0e85b4" +845a05785e893cee3866ebe6638247665bd4f432 = "ea62857f82a0ccc7137e1ae5f95af806b5c76f1c" +86f193c0432898a5d6295678118d86cb568871ac = "db67de0fbd1c9c0fda11ae7f61dcf9ad4ef9a70a" +8b8807b2e15e7d2f0cc950ff8ee100b652a8d7f0 = "66318a9966f1f7c2254f14c1f1d378a83eeae6d0" +9bd63b4bd42855b8b44609e466daeee8f47762a6 = "df08a9e766f47ec86f776c251b74a2bc094f217d" +a429e565c76579d0dae29a97bf782c587ab8ade1 = "08ba95ea8a486b950d92097d59f5189171f834ed" +a742ba2c34c48a3f7d21607ffdd02c5dc87a2932 = "e98d376a935fe714e4c9df9961ea785478ad8fd6" +b1e491a39cf8b5feefed544223d7f2478704c5bd = "7ff48f79980885c8bb7dc87d095ed36eaff09d8e" +c54ddaf4aa22d7e06085b5c6496ef11cc8a6865a = "67649c42ad7aa2bef0ce6aab61c707e507cee609" +d491c10be6e7d2a6e9fb5c9f93b345fc35a80298 = "12956f49b30c08bca43b26e5d2a8cc07659c19ae" +dd7b31c70ff7d5f1544fadd4262044e0fd5972b8 = "fe1c49220d4b224183b624b678339ef00ffe0b3b" +e7188bdefda8d1abfc35efcca11480cab2bf6eb5 = "74d4fc868f46adc34836d4bd35cae4b5ad370e91" +ead2d961cc1ff3d4c48cd50f9fbb306ad4ffb830 = "3ed4956e2cd98934aa181c2b89fbc8cd98096aca" +ef27338a18c6b394344eecf9b3172f34d9fa1ec8 = "9ddcc2742d325c32a2c3ef4dbaa594480a5c2292" +f544bc68fad1679ec169afadc13f73fcee5f59db = "4f1c52eabaf905f7bcc096910fd8b25ea6a4885b" + +[19bc9d3f-2e19-511f-8328-e05a4e11f4db] +1dab1308dbddc4aeb6ab75f546407cc4368c4896 = "3134ced84f652374b907c23fe5430663125a2de0" +4ea0a77bc708b0f3df009437bdf21a3ded7c3d4f = "3a71d164b0c47b296eee345d0853d5c12e62f802" +5da46de9e51af2d0de1a4fc57ef57f76f3a37e39 = "4735dac224058e2f91d02d2230a98aa7e6ce56a6" +5dc60866adce5730841970f87e61d5abb1fe7885 = "21575f27e0c432ab84e51f85c6ffbc7d8fb6bdaf" +5e32edc83e0a0235815b5da32351b2866d2b8c97 = "0b1a93d3d797698e3d7fdf20b61fb07eaa400bfc" +77c1be8145968c8cb95e6e8e42376c9d7ae04298 = "4b0335db04efaf7e9a3fbd4af313ab8c0f3b41e7" +89709e945780ad2d55484e3b6efef1000379316c = "37e355fc525522956643290ed785f90721f9b8e3" +a267e9e44f7d38559f144b36fe2a231d8540d68e = "3fd53a022739f04272c05b1e8b6fa9dee88f502e" +a7dd31b42828e28bad5bba60f490bcbb416c200d = "ef376f8be01c2b22a45cc09b7a7450408fb31ae0" +ac8569897a07bff83ba21fe817b47dd50ea02f72 = "d05566b8a680be7a6178f240a8af49bce6fb7328" +b8c47958b57be5439ed474f1857a900ede455f19 = "8f8ebae3adad6fb83ba584f8463422977ed7434e" +f9734490a2cdac5607b2d931e8572abb82d73fb3 = "acfb7c218a59794c5ef7c79b7dabac5eb3ede385" + +[19dc6840-f33b-545b-b366-655c7e3ffd49] +7a1164af5f599f6490b7cf3e0d8984a9a7ee6432 = "8517fa5a58e1ca61448eaae8ea69da84e14ef7cc" +d5bef9c5bd6055985b1efcb2f1cbfa4d41baa777 = "6d8ee5131ee05ee83ce676d5daebfc06d171e5a7" + +[19e549d1-356f-5655-9f3d-c1d6136da705] +2dd756f4d85eefa335c20d4aad90496584d3b714 = "3903e3ab812d05f8bebe53400a8480f4316deebc" +40d0754ddda531b0255896f304cc58bd1610443e = "bf012062a64d179d8876f14b6e5c1a7d7f0e64c4" +57dabe976d5391bc47e296686db3b34cdd829e10 = "2681b03eacb90544c882e317c97389391663a207" +7263f355361c86dbf2fc64ee688ed3b11def9080 = "23db467fedc1aa35ff1124f610c19ce582fae34a" +9ba3f2e12b44a35382e81ebd022c216c545855a1 = "fbea81e0b485c5687a077beb87caeb1e71f69f69" +bac1b72610441e4dbc0d867ffffc7adf5cdda15c = "edd61360ded7b48c8ee00a5c0751fb04a2eba1d8" +c44834bb8cf598d246f1b4ccdea92e28cf9fb7b0 = "93ea1f00e9c702a8fca959d66542803d7c6952c3" +e555c7010106a827f5c6eb8a25895b90c3ff7cc7 = "f335700f1811d9b37dba468ccf4bd80473ecdc2a" + +[19eb6ba3-879d-56ad-ad62-d5c202156566] +65a2800675458f38470dc2a83c8fcd1ea3c53178 = "939b0f4fac57228dd098957dc6c53a56255ce900" +b7b42457b76f8d9074bd8300bc2a5d02a41982b8 = "87de974172879636f7afbb7874df3526712d2252" +cbda53efe9c44669101713582a7d3c26d554b4c1 = "a145c289fd0295a91ee9eadb774f46a159793285" +d12c665497656d029f4c1048e9c3d88ecfa2ff3f = "a6dfac03bf291c9a990034d942ecf061a0497455" + +[19ecbf4d-ef7c-5e4b-b54a-0a0ff23c5aed] +2de709784ed10c4ffab20ce2495b382e163f2c00 = "d33c8068da1f04794ef12258106614dfbafb8aea" +3413ecbd244dd34a04b67a95035762088588c137 = "6c89d85bc9fbd5baf5fbc12ff5efcd3717b7a42b" +40f53cf63d3686f57222af9b6d4bd7e598cd42b2 = "ac99dff8b1bcb752324e650cd3dbc5ab191d326f" +6d7659f47fbeba8345225afcf4c3e4ff3e6155f4 = "65b0ae46f1d37ae67c12e6c56739cbe2a115a0e8" +a8b6a8469e1d969966404ae8d771fbf573c39716 = "0338efa751659ce3d6235ff56676346413ec33d5" +dbc3b9327fd6e4c84a88a1d0c2c6fc43a6d66793 = "d91b67a4a24d54c500bb48be81bba08b238f2aee" +e490f4042a53354b88c5ad88190173f1eab3101e = "79dae7825aabaf5162598a475d9b14c70511a7c0" +e6dd7966fd1bc4a9bbffbd725f37da3a9a131a79 = "511ccd52570f94e45022ef9698146722d4f1f94d" +fd8881663fa2c12da4cf96b04bc487f402d32bf9 = "9368eb2df34a97ef622cdd843ffe59ef0cff8cbd" + +[1a029416-38b0-5245-b7ed-67249edcb994] +9e404ba190f4cbc22165d2bc3ef7d37114119529 = "e699a9d5a4029b6624249d18aff98ee990624c19" + +[1a0d837d-f7ba-5e72-a8f8-b8273492ab4e] +37ce8cf28b4bbcdfa3479e1f7170ced74012bd6a = "54d651438c3d74cb3993a1514a35877a19433935" +63ef260d6ce8f369b0b7ec6202e4776721481477 = "eae7af5bf6a265aa58fb96292e4004156e2be33e" + +[1a297f60-69ca-5386-bcde-b61e274b549b] +b138617bd1fd9394132f3aa75015f9afb6fbc8cc = "9efbfffd0f94a5db97e4e7484dff1496da8eea30" + +[1a62e0fc-b85c-5ca0-b1e8-6e77e6a3b884] +d1e7832c0b39ce884fa6edb60bf7eaefbcde6c46 = "e88f5c20174f5a8785b2026b058a6167475a2b4b" +d2a2d9a77d2158b25a0c865289d64bf0c41fd013 = "9b6b74ccb6d491f9afa7e539a980b61ebaf1713b" + +[1a7fcfa4-7553-5727-a5d0-072824df3c21] +618c9a38e0c3b850de7b015d34194c47d0bc1d01 = "9bac297b8f1565a6b5ebfb411cfb7a09986f68d4" + +[1a8c2f83-1ff3-5112-b086-8aa67b057ba1] +02d635573a73a6bb72e3d5ecf1b1232a7e114561 = "43670de48552d6c9e71954d087cfb3bd98bc86ba" +1b8a14e02248fb5b5ed70406c4baef95b47dcefd = "f940adf7b8a4beda206dbeb774a95644fb4fe112" +21847baef7c40b0f0e5ab0fe8416aafde8e3b57c = "ff350a603a28f6656319b437e0ef07f3fee7b86f" +2ac8df81b94ff7cd6bcab0122ffd661ad5abbdbc = "e07b58b2add45200604e74291454763af96007f8" +5361ef26bf94d4005067de8327671a9d20d36287 = "f54f0beb42df1c842faf2f9794e4a17257920e72" +5d21aa6a8260a2222147ba2747628cdfafd70176 = "4d4f726a34c11c3cb1e09786c176e8943628753a" +63c7bc625bfb912bf912b5eff60f2782d043ea7c = "dc374a4493d57e385d3ad89016fff8ce18fdf3dc" +676816984f2dfe5a2effb1c409ea38ef68afeb9c = "1b64bdc43d6678fcf6f16f5853bc8af5c774cd8b" +68cc983dea9f9f39b56eaa2c27405d819293a64a = "3db92ccf00711af1cb5712c2abea0d3f1590494e" +7afd9c468de0833f1fe8ad67ec55ce9f75c4840b = "1971c6826d4207cdbfb2647fcec224701d8c7aa1" +a0870e72947ea45b782185d188555023a0e332cd = "42b45aa1fdbe947b75104812501a27e8e275159e" +a86e728b83c2f5af6805c4f511b8619b0676e48e = "4d936422022c96a7be4b361095a135b2a7182c60" +b4d5c4e601d14365a0a95c81cb93c6f4339dd84d = "c3db0207a20e8106ed76aef3b252cb1068da7cca" +ca1b176326840c9e4c622fb3e068294fbdf88e27 = "4993c61e8276ddb7764dd9e07dc73409a5bb4ee6" +cfb09cd5c2916ca741999419f2de25d65d154731 = "d3bd03bf57409dcddb5c3d9206f2315c608c5821" +da18342e5047927bdadba3fb5df3ece9769371f9 = "c0f97759f12575dbc81d6becd5d8cab8cc46e71f" +dfce164d30b81b1735a0fca9eed962c486445b42 = "a1a79048456e7a5502bd882931cf782ddc42c14d" +e3ed8324f34eeee887621b7a563fa12c0679750d = "b1aec4e1eb4e47ee7b602de3c0e12fa260e8845c" +f31f05d79064cc0bbaf2d3a54a08041209db5760 = "4eaa5c52c03481770a3d2655682d99f00659c913" + +[1a8c6405-7c80-5152-b09a-939ccf02cadd] +329566393dde471897922eeb358674586fdc81cd = "ee29a9c0a608d657385502fdaafeaa9eb1f6e229" +39e48ac509132c11e310474364c5e5132680fffd = "a4a21e945ce836f4fea7eb0a7702f28519f82d74" +4280cb483530c95ad07d5f13e22f92cdc37bdad2 = "b8c71354de2e9f47a2b150e4b8458bc930923b8b" +48046a816a0f915ce6e25dac66682db2c875d5f4 = "dff31bf12a687d8aa14a5bd69c1e8a1020cb2837" +4afbfc1cbea42349e090daddc1a02463607e0f79 = "1f70212df8b8ccd705ec084db9135d02f8e069eb" +64ee416dbf929ff3f5e6cf2fe963eb1ddd5bf613 = "9240fa0861d900d4be4338ea19fcea87d95cec30" +66793f08bc17e1bf6436ca130ff8f107f5a247a2 = "8a9b61a7e83b85356ed7c801a7b7cabbbc130c28" +8ea6f4cd140f1f24b1473bc31a463c903c7f22bd = "754b49b3396902c6428c672c001ab4dd1699b842" +a51b3788bad1b9b7d97233e67aa79cc08b186e12 = "3d95e6b5bc45ef91b909a3441f9b3eb6e90c360c" +af6251c5d6bb353e73b4ff8c9e2204e11a75bb45 = "d8b22848519a2f2fdcd46102e14e047ae98ce4fb" +bbe8b28d70432c3c2dd9663029c66459f3aadb81 = "67c5499a787fbef42706c600d9f1a717c18f1419" +ccb5bea54e1bf5c34290835323ebafafe4a51710 = "c4aae6b06922f4f5f7864f6cb4f4314073289d08" +d1bfefe8c20881685425dca9796bc8859aa78973 = "8bdb4e6da878c39d649250aeffad5889337dfb60" +d3b9bd759ced7134af409ca0fb621a73acfb6cb1 = "84dd5c6f8d604d5eaf337bc03bccc9d266995217" + +[1ab33d94-6c6c-50cc-93f0-e3f623a46aa0] +5a7e836f4f1489cc8016aca49f4ff2d0f3bfd0e5 = "0fb2560ea5a92e33ccb5ae00a1fad00702bbb3b8" +700bccdd9b0bc0b58006b1477a1c307e38f1c27c = "d82432524cf4918f4d0c69c49f35607dd8c0ef75" +a0ba28212a54d93378bf95c580a344cc84b4a169 = "8d9013b9a61036019ed0156ae5dd333d89de2afc" + +[1ad140ea-4347-5a62-a6a1-01b178d7cc4e] +3cf30c1d0cd6be8db5f556bdf65a043130b4dfd8 = "418d4d6a72577bee7356a1d35ebf74b97e231c33" +bf0d4e4a7b82f6c66a0df022bde0d450402521d6 = "84539deeed148bf65eb561b355af14d4e21c5aff" + +[1b1ac587-b5be-5dfb-974d-c9dc89f4aca5] +1501160b3eec69fe07ecff31ed65e2a1624e6ce1 = "b41b14a913a55f15893d765c9fcd0041daec2ff1" +2234bbe8fbd37892084fd46be3e91644d15c13fc = "c2f814df13075c590218525e3290ec3c5ee71357" +4a2688fb9f0392b91fdeb91b9c0c9747d77d0cbb = "91ab6fd9fc6c10500091582b71908d9189099cd7" +531f751beb9c2a6850a007d876e171108b1b7ba0 = "26acec1d1a7f27f0385fc38b637bc04101d4b47c" +66905381730e47e890df764176897acf6ece40f6 = "6af94f8f5de6970d065e4e064ad9683a192e6115" + +[1b2943d0-825d-5907-9c5f-04e3ce562884] +c190a5cc1aebb6102ae7914d43ddaae6875a300f = "3734b5a1621856b05a851e4a854f8a15fb13dd70" +cdf44058cdba9eca3e923f04d1ea97d819882f29 = "c16a8e2de9db9c082505e807a76506ae3924b80f" + +[1b4a561d-cfcb-5daf-8433-43fcf8b4bea3] +111de114d99d052928ab980955717cccabe58a2e = "e60eff1b914248e86bc79d7908d68c11883d7718" +2725e479ecbbff5cfd482613909a0604ba1ea419 = "53bef85f65ac941b34823fe25b5112fde9b1663b" +652bab9c02942ad44598f5f4b361ce120c0632f9 = "c06e053a42518b5509c8db7d014a0fa3410b2f0d" +7cfcda4138f7e040338d15dbfb2c17397f48043c = "01963c384de9b179f7508d79e6dc3f557fd0b0b2" +96c851f2051f21991dcad9cc0b91820033914f93 = "43e496df09fec01216d607228094182e99fea877" +bd00f162cdef4fbe2a4376de50366db42d58d748 = "2469b80c6cebb5c78bfc754b5e3cb1457cc7996a" + +[1b53aba6-35b6-5f92-a507-53c67d53f819] +484f045156cea4ef4f1571297f10cec525e4e3d4 = "bc01d0a4f705731056f4ef6400d95be94cf783ae" +f9112991f933ecac6263277961be54977291ffc3 = "d00d8597be7424c4a9c0666b3a6f72a6026c2053" + +[1b8b39c6-5c46-50f5-9c36-ac18d7f28ae0] +6e72e1efaa6ac8f113d9c269fa2523a90720565f = "1612bb2d687de18134f6e028c00ec7976aa7add4" +7ba66554ac9049f2c38701ce4eaf31c22a25474e = "31645aea0fe2c6ad35fcbb3365497bccf978222c" +d3017c1d4bdd1fe194fde73d4e3534191d67a093 = "6f3469a108ef38d67c8762713f3ecb7a5b0c4b7e" +d7729f0433cc9b21519765c90bce9fe27e87092f = "1ffe0c7afbbdfba593694319196ee46568d55f11" +f7276bf633be494931aeb7d28622c032d0d4818b = "b25c67323ec3ad98ec5e53262342af24fb762b12" + +[1b915085-20d7-51cf-bf83-8f477d6f5128] +15067afcbe053ab241d979e53d125a6460d7a9c3 = "281591d5dfdb26c2143db8b6929ac4c86e5e300d" +674ffea0978ab8e694941ed0e5dbb0affae58142 = "ba44d2113398d8ca3b5f991524952e7fc6cad058" +c33155b28a95ca26d892341c74deab5060eebfed = "8398babffcd8fff98f83d5d624cb880a1cdb48fd" + +[1ba2fcf6-b438-57ac-94bf-052622d64a91] +13c5d49038afc6794c1fc73f9a25936bf22924a6 = "48f3e20fd7ad6937e317382922864557b76318ec" +1a235548634fc364f2af1802d282e8c03a98becf = "0773e797a7b39fadc7701e52ba97744930c6b071" +45dd5f24dbf8991d6d4fcca749a71cfd7c218d7e = "c58dc6e1c1ae100b26b47ce8db898755d64f70dc" + +[1ba61846-84f7-5936-906d-801d78ac1a4a] +11b2d50a90019f3a31555f71e61939a37e27b437 = "3c38cec6602717242dac54cdb529e1e8ab1ced36" +9ce1bd4a8ee169ea6072e4e46bf648210ad02f5d = "0cb7fcdde7de33689927988ef7ac1d6e0de31256" + +[1bab7a21-64e8-56bc-ba2e-ce7bd6692a08] +8fd1a78eed7dcc235b499eb65d61831e83f308c6 = "c69d662eddb4fe8f2ba4fd1b719c2a55f36801ad" + +[1becfd5a-13be-5cc0-ae8a-5353609a805d] +7fd0f512c5ca8a4bd23943ee7a72ac1ad6bda252 = "6879b9b31909a83535d5d488a5e9f54a325e5a56" + +[1c4bc1b3-3fa8-5944-a62c-081c1d8ea3be] +0727d762acf03b8d4dfbb8562006a6cf3930076f = "dea4638c98ffabd707fb122a214bd465cb593194" +3cf30b17a4c49f01f71786bbec1afb8bd55c2cfa = "7c208bd649f9ee117e69c64d7d18327a0deddea8" + +[1c724243-ef5b-51ab-93f4-b0a88ac62a95] +00cd066dcbb4e2ffe368de53a6d846d04e1d3d24 = "d200e65bf2d1bd054e5037ed2af4dd5d89f8ef3e" +11aa6aa5aa72e786a51723bc5894ae488d4120b3 = "23d5684f4e69eb8bda89e355954e7bf5dc011eb3" +17c838979a4e1c7b475960e982fea3614c6211fc = "d68be20143b3ce1b440675cf4208f4e98306043b" +18ee4693d1aca13b3485dafa2f069d74b9cfec1c = "6833c35de859041e145581e57e54c8b0a50fde37" +40cc5fee921895e5d3381d98dcf6717d2528e288 = "390de56c97af524aeb54b87ac684ad9ff2398fd9" +43862e4ec490f6cfdab9d64e64c9305dea75e54e = "d9356fc7a577dba7e67f9caf6cd4080acfdf447e" +5b84f726137d2436484a4a0d637a31741921d5c2 = "f851b4a973a273b10dad2750a6d35809e7f866d5" +808df8bf43ad729e34886679c56bfea05f6da5e0 = "3800a641370de3ef26849386dc88920315eabb9f" +8096c29d71ce1ff0a3530226c355d9fb4bc225b7 = "3624df7dd03514cb2f6ad6f42e50d8c8a858e716" +876cf51ce749d2da0e9e48915d0795e22b6a6858 = "70c9305fc63fe11de7dd773389b94b4c8efb25b1" +98c8ddf2a1ddc1cc99ad78b8042421b25b62b2f9 = "05b004b269244bd0081b6d1428dc2f95a36d8bc2" +c48bd8d4c93aed27012f023f23ac9489340ce7fa = "4c609d2f59e0209b0604ea5196969665c828a746" +e7137389c95e91ae3878b9d8e7d9c78398914a21 = "78aee06c8651e5c4eca51bbf79ba750d3e7d86a4" + +[1c8ee90f-4401-5389-894e-7a04a3dc0f4d] +1064c2543da788b1b6a63e90c4ef2f281878f0ac = "3fd9abeecf34168a34c73580335920675c947422" +14742ae2a2ba9da311c1a351dff2c45aa8c32e02 = "0854f24229ba4a2cc8f611b2a4ac603669d5db0d" +301dd32654993f707268bd5b8abf45403845883b = "73b6070302aa0a4d2d4531fde96e073f17c3955a" +3809e2b0d99358859a255ac0e21e3535e85583ea = "b98c3ef01c70990f043e9b23cd92d0ad717ecf4c" +422844ef0a234c470c45e708eff81e68bcc59ba8 = "dcd39f6c926678ce28e881e6ef0e7beb6f87f55e" +4c9ff466325b69498d5b9187708425add7b7dc5a = "ad0164815a150d4293b3f4d598b072b20f5d1997" +5dd87776d4f3629692579fe49e9fe76b9809d2ea = "7a9d8929ce6657db0f3378e15bc464fb559501ae" +92cd6f4f1d7099fc958597fda2157364e311c40d = "1ba8beef81acdf701e1757c06dd5726c60ec18af" +92f256801432f5d0ba08d3b92738e27f2307004a = "524deb27318a244a0883deef4a7d7fdb6070412a" +9caf2f17373cbd69d7fbb3f3e02434769f020f73 = "7392edc6c74f114b308b677efa50223397d24aed" +a1ac6c95a8bde35fafbab2466e6b1b5ad43d7eb0 = "005badcc92611666358f031baf0f7c9854af406b" +af6e26e4d7a434275d8d9c6cfc5790a52182ea8a = "f7404ac6147c643b3e44df3c8c7728d1156977eb" +e9b687c0e7b0fbf6d2e49341cb25c8be5da26775 = "d0fca367d272102ad4f51ac6783715a7581a781a" + +[1cb3b9ac-1ffd-5777-9e6b-a3d42300664d] +1ce6e0847ecdb3d63faf9b2b8330a392c75e7a1a = "a26a1f0e128eace134b6a469431d0ff74d96ccce" +6c22844596cd1063a596df7ea166382f1dbdd5c6 = "ce242f8a0167681483f54cd4c62541b5194c855c" +a119793a5b2302e38276c4506c0c2ccf9ecbadeb = "628571ccbe643c939e28eb4fe1af6e76547f2326" +d0d96b9695b0fd6faaf72c68244eb41fa8f5555c = "0c831fd6c0c769b2c058ec13e753442cab5ea5d7" +d5c179fa1de6554fa8c1f4ce7d4be609736a147b = "312177b9ab96f445f3252c4d377fcef5527ac225" + +[1cfade01-22cf-5700-b092-accc4b62d6e1] +0bc97d3c96c6500629bc3b814869e1688fac33f0 = "85063a148e94c0c038325961fbe56bcf3a12bee9" +0f3e79348bb2b73f8ae90a858055f439c83173ec = "f2a1deb56a7a7329a1ca462a9d9ff766ecbc3fe0" +64ce1a25fa12cea1cae08e02087663a9f77c1afa = "905e75be0cb31dbfbffdaa109ea62e035210c848" + +[1cfcecda-3531-5955-88e9-4d9a0801da84] +91af2e648bf4b46aaa914f4052abbeb7feb68eb5 = "655e848eeb33b893a48f582cbea777a468f08f71" + +[1d21c727-5350-5715-a0f1-d07632c10ec8] +15d70dda19d3d9a9a44b5430c51a8b2e3035dc9e = "ab3db93ef6942e5bacba94cea05c481d4261302f" +300009c3d8b8da6e12235629254403b726eceb59 = "d5f0a45fe462e1a533e3a0ec8fb7cb5801512d61" + +[1d2582b0-0a75-5730-abde-fb3f8b9ef95d] +5236f5af7571c43cd28c75bab4581b6152f9b499 = "3461b805746374bb730f69db8ced18a94faba8cc" + +[1d40253f-d7d5-5bc2-be73-07f0f24a3532] +0f14019e6da41d0e5f025ba479074fd3ca1092b8 = "233e70c33f68bb7f2dc156b6c3e3cc7bb92504b0" + +[1d978283-2c37-5f34-9a8e-e9c0ece82495] +04f79437d26a7f7ad401462a7e347cdb9c6933ca = "caf8547cce83bee6b512d86097ae2a958cdc1c39" +0c7fa9b48683036f751b1cdcb77551956d39485b = "b253f1a7c2ceec8767b33ddc59c888f7acd6f70f" +1127fb5864b6513924f8c44cacc46102189fabc5 = "98d0eed5473115a25f1b511cd78d1a14283860aa" +161e07d954b9c67435fd53702f9ff1d5d97033d3 = "b2348dac4946efbd44a994abe2acd56748a3a1cc" +1e6fdbf59cd25eb0fb66736f79bea2b0e2bfb5d4 = "afbf3a02bf34a2f3403afa81068508f7845cdef9" +2361e91745ee16084ef1fd040a3ccfc57cc37b3e = "edca9ce32f68a619d61680f5d3a87730a8069bc5" +24b1930c3a12ed9f0e63df1777b2d4e1816d609d = "11f34bcac5ea06a2c4b7819e6ee75829e7293e65" +2707f6c7513a7a0b29e0bf9add4f2b557c2ccf31 = "6ebead1ea9be0bda850298ee00782834314781ed" +3c187fca433cda6797d85ca0791b0abed9d9aebb = "25c52899ffd98139ace9ff3f22ccccb9232b9b53" +3d6d8b936f8bea8bef6e415c3d1d54023882a037 = "3adfab3a7cc51b2ce42b1acbdeea7799d7896711" +3ef60410f1a767dd7da2ebb2b6f7f9f1404f3760 = "3cf1ba200e9655f05b4cec42f0e3eb5c192baa25" +422673021a87646cd73651766792c791a932a000 = "4dcbe083137e072ec902837fba6d500ecd06ebdb" +441a56a7632b7c49f2233c1a24ce67c80730db93 = "3fe8f56b1fbcb8fa6dbcf8a4957f8069c6d25e6f" +4c729522d54bdbb87bc0fcc27ec870ffcc7f32a4 = "30b874e07dd47db3e92ed2bcf5364d924997c57c" +56f4f702104b62704278272463210fc43bd2732a = "7a13d3c3155fb83b67d135c065f261543662005b" +599ff6b64a7ad2628b9b31bb63e1261d8b0ce75e = "1eee2fd08d39841ab77827434ffd44894be9b287" +6f19e0d44d6dba106b2e9e3e2d5571aae37f30fd = "d302c5cb03160793fc4c0aa0c4a7ea2c4532f17f" +7f230b33ca05074d7be110148160c3ff6cdcd671 = "f466a2df79a0b83c0d820c1d2a46275cfb8bcae4" +819dd49773a9cd38a142e84b68f913fb4bb79c68 = "84d1dd571146102c59dfed677398a25cc2f838ab" +84a173ad2511c72d7cee3b67514be26ab5ef4835 = "e8e9fd735d1f674f5c72ce81bd4ed275447e965d" +8f6ef9df9caf29abbf84a1b0c627ac25adfa6034 = "3f3b1b639cb884b2999cb963c167e9fcc00af85b" +a8e1c22a939d902b2025b48711ef83e2af0ea1a2 = "f0ef8efc52008ad33e75ac5abffb8f8bc8266f8a" +b2fed762ea69317dd84f96bd46f35388cdb70f76 = "29de06e1c4c6269e1285bc4dc66232755d8d6b4e" +be6791cccce20d1f5532e7001fb5b606592538fa = "43bd01e7db744721d1753f498ec55b1c0b218d42" +d923347cda6b351330c8d08a22ff8e4289fc2d67 = "e3722163fdebd0edade491ce838ada3c9686c2f4" +db32d4b5169ef51be0f5de6b6a6a5434eecfe74b = "868f03421f5caf9b0118b15f5cb4fda06596d8ea" +e2476c09d8e8453445cb0639478e31fcfe085dd4 = "59cca2f0a0d25b526027eec2b3b06f7a6556d046" +f218ff55775e7743fd19f403fd21e338f5eb36f4 = "c930d3c4ea650c1a6f989a5aca804822f94f2ce4" +fdb66116b4dd84d9107b4ce6abbd598611638ad9 = "1b4479c48d6f8db324920b59989ad3e8bc54f07a" + +[1dc74772-2f84-582f-a327-420d6c648a9d] +0905ded159535069cd74ac10bfdfaacaa496da94 = "4531390c290f86345688cc67161c48e09846ddbc" +0c535e781acbd68da92a3456a1f8aac8b3fac5e9 = "019f01faf0edef32307d2aae4e5203e30be8c1b3" +12d00cc26398da13061e606de664c6e34f8369fc = "ff442d702fda3c71564dcf4407738eaef44c7e30" +9443fcd3cabdb27727c36e1eabacb3c15d852033 = "47016b86b32359b1aead108548e16cb7f8698212" +ed78a5fc21bb1daea8e6e43e1c95f1c44011e6b0 = "80191fe422933bd21fea48c2f62b47ebbaf15bb2" +ef125ecc781927f38ed26df568fc28dd66d75ef7 = "855c642dbfd264dae9957f1697e90171bd751f44" + +[1dd54a5c-ff30-55c3-9c22-2141a9b2792c] +3cdbb0fd66493b20865d04bc0403d11f56472526 = "890d9064c7621fdb30e73656935e116c9279554c" + +[1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] +08b8b855764c3d43cdebdc382c7e9c42b0c9d5af = "9c869e714713a6112baae5cbdba9f3e9d9885364" +095ecbfbf7746e6fb65ce2582d496d82226f10e6 = "a177bba8de5d5637879d84db72bc58c0e3839168" +0a36dd322f82ff4bc51683d2c2ad347fa760007e = "e53c364ead9b9201e75362f44a739988a1770d16" +1566721ae3011fe7573cf6b8bc02365c3ba7b831 = "9f201c7cb519feb46e3ba1285b5c5611c5e9c11a" +16639fbd0eff980f1e470b8a267ed36adfdb4891 = "df535a7feeebb05f1cf05ff47074228d4fb3e20c" +1c2eaaba25b0359aee9621de60d2527695a38b03 = "ed0948e9114279a7271cf73d6b704491fc699de4" +1e0e9f7999711c4795a21a4e49b37dbce1c4bfea = "a54701f93f1f0d9ec9ab9df569c299e1b28db209" +215fd89195a7cc5ad205dff4d1131c5ca9fea1b6 = "e631c5801c532ff56f69917de1f0dbda47df0434" +2274941ffe518d6b86cfcb551d5b1d869716e332 = "225dbc832131006f62f085de7aeadb62aed1d348" +22b52572ebc3d03d2d42685c9cdd340a0d704511 = "ab1e6396f2a59c16fbb25bbcfdb0d133e47a8a23" +2713e8f6c7a2feaba0bac6745c789291c71ce50e = "c480e6d05eae3290a46871fbd5b9e3e240ff61e4" +28fe64b9b7be106f4e618719dd18341e23259f11 = "7ed47347535bdcd95ffefe6aceb98be55f17a211" +2c68350dbbdbb38764abab40efb4cbb171c3e799 = "857ff6bf2e4373633c30270513574a2bd643423d" +31bad76d28c8d6841fb6c8f3943b7a71943be283 = "13451f13ed4db6dcd6cc67123bc5eaad7a0e944f" +3437a6891688897cd81148889722a56afbabce38 = "fd1860a85654b91d3b5f75dac07a9ee7ae8dc602" +36864894405ca25b4f75ee16951139f6a993844c = "6b32e4ff6a9dd98eacd9a1f8efe6829db20283ee" +371331ae9d8ad9a8ed4b2535d7267dd98d894ad9 = "171ec79f5482708c294ff4ad45dbe2acf784f260" +39a50e83b64c5992a87efb3fb52fb73fd2ffd61e = "187f6c9fcb67e1c930c5251ff25d0cd0436086a8" +3b4510e51379f91d95d498b21765dfcd428390c2 = "f25463c3810be75e141b084d92b904b9dfce9de6" +3b8dd0dd341f65aa9654a92e636bc4436d25b198 = "0eb2f5921d8ffab93e6a070dd01fdba5aa7c96e3" +3ef4a73dfa61d3e0f6a556288429d0d5e7eacb5e = "09e29433baa651df071729120cb602592c8c2f54" +44c76bc2e472b459f09cffd4e191c53ee32a6ff3 = "8fc8ce0c9e84379fb0376fd3eee52e465728d4d7" +46cac789288f4b3c82537af88fd8ed4b33f38e32 = "10b01e6fa4c095fafeb535c1b8db79f78e7f28e9" +48a0f6886fda7da1051105544889e72a6222da60 = "c1704cc888dfdccc64d4a12547cabcd647ac85cf" +4bbca8e8a531023a50d12e23e23b195cc716821b = "a15d92a9efc33cd99d8bc2fdbe24b647015562f0" +4cd47304f140777614700db8209408cfd29dda91 = "14b5fa9fcc0ee59e40d50dd199ef3dc72afeee4c" +4f524bc6c90264f9700b5b91a29e6cdbba192f6f = "6c674c552f9ea7d3bec45fed26b26c0f7e4c58ca" +515dee4923b4b38fb042861ec96fc7fea7524fb5 = "2fa2d4968c17f978f4742ccd637feb917a5e3ff4" +5468e199d6c2d8a2845613f09429a26419ced2de = "9d7a060c35387041dd3a8ed500f3f43cd561afe7" +5750bb0013ff877ec51861fa5aa8bff6599b0b78 = "74c2cb036291c0aeeffc7224ce6744607a5b1be3" +5869cc601df085cca9ae27e538d019fa12fda8c7 = "4a9f62f30699d2aee423dcdb10dbedf95915957f" +599fde7f6dfdbc169c1fa24b14bd11f147a148b1 = "728c9a49fbdfb9a6aebf8822db884d095b8437df" +5e59c5d208c899029d798cb1f105637dd90b1377 = "7debe9b9312c1aa7850a4935616d71556c72d9db" +5f415aea370918a9d4dd41c7d574efcb596e9a94 = "95001a91e967dcbca1590856393069cbc8986809" +5fc4b2e90a245a7f52eb6bbd390dca85d5fbfddb = "60d390610074b03e3187a42b3a33ae1340091813" +639429453f4b9d10ed78f72e98ff0987a1a7da60 = "243cfef96724b06fc776dc640cbfa9aae5ef4cc9" +65205edddd02729338f2e66eb75aecf2e685e39b = "0c1b01b7a3db1a1913f5dd0dad7605601050b1b8" +6a718574d03d871358911853f179dcd16ac08563 = "b44e41ce57eda82579d5d94166777798d6df6178" +70454b00cd7e408343893b40b380023c3bde01c9 = "e06744bd0f4ed1e150efe0cc1ff464631a82bcb5" +71b5dc8fd3ce573f286bb8b715df8a0edb81264d = "e5ec9b89bc124ecb44d2fdad9e31babd5caeaf3f" +7475db8cb69dbbcb0bf28299dfbf224041b85fdf = "1607b5f02159e5d712a59f8cf315a763f2817087" +747e3b301551b4aaca23812fabbf7a97394d1ce5 = "cc7668228823338659666f7c1cf3b77f33428fa5" +74e06f378c5997b86548944d4ce1beacbcd0b400 = "31f368ca3304de94ed2f07698a5c60501edf81fc" +764191802c95b8e8559d9821edaafc983b7af81b = "2148c890bdc7832662b6b422e2c199640f8c183a" +78d8bcf3107e8404dbe0dc0e2dfd515e46aa5420 = "8abe8c21999094fb352554efd1574d4371918e04" +7ef45fcff4939e14e615b97fa58b231e540ad8ae = "51daa8ae68079673bf6059775c73cc4d8475b18b" +7fb8b1f0cfad42dad608e478a61484116f45b11a = "6feab38ff6c075abc304f0a0730f2f233ff220ca" +805468d7d385572f80beee42ef99693110f73a60 = "e43bac18562d68b792c91a8d493b4a237bd21f95" +822ae9075e5fc1bf4ad70a02271168c729d52a21 = "d8d31d1583be5a69fadd86bdae6041a74dc553e6" +872a570382f7a6a6d9d039dcc573581b6a20f276 = "4afbdcdafb66a6371915ce72eb645751e9882d0c" +8769c76330db23ebe73abfe77e14e94c6b0db2cb = "42c199402b61b506854dccaabb6a89ce1d6ffb4a" +8af219c5eb1335aa3912e5ace9ebf36e55628f10 = "bf850e5fc19aebb5ee3c5a86f80984d45b97ddbd" +8b43554a3f754f49b0f0c907e5fcad8ebaaf36ac = "ecf4a8666c7762007252adcde7f12bbf856f6ce6" +8c2148f1648af1fa3f8cb143eaab3c90915458ac = "c66967f22c533ab4ba002243b7e21aea3d811461" +9012f56c98f7d8f2bf3c1579633b33069f775e35 = "d3653e92f382c32cde29edd3ac0ff6959061c047" +9025565498f0b8259b50ce95c42e1e76518454ca = "880ee1df2bf850e45b0984c9527225bfa261dd9d" +91605cb76c77b74e550733990c852251014afb2f = "46e8f654496aa7a8c7f4cff59e84deaff416f5b2" +968537d2bd3b8c07de94ef622ee9cd607a4e3730 = "ba40b91c4beaf3921f78ec051e89e69091a1df19" +a0d6057fb155ac66b2303bdf36c7315d818e8d39 = "f63d4e22e95724c7493855a15b030f3483275df0" +a10a8fb841d3f404121bc4ae64419fa4c6b178ef = "94b72c620060b16f47369e022f431a31d9f28562" +a2a6c2673235b1b69135ed95ccd94ca85c8def42 = "d437a7343a23f76147e73519be8294ad097e4da6" +a2e129e0413e2fcfaaab806c9d8f5dc0f5170fb4 = "2acd13a0e53a908ee8b72a077cda74da51f4b934" +a4cc81e0c33e31c46ed218719599764cf7bb1b30 = "5a6b03f6d852a526279315d2d4a231162d5e7288" +a516bb90ffe4628a94424f6ceae5501c3dc3f6ed = "5d819f66c3109cbfcc9c4515187bc591e91384d5" +a8a0350f160b4f35e69ffca5cb542fc8cd278b25 = "a5027a5a4e0f4db54ddcff5810b01a6ef05fef58" +aab5abb4b58c6fc2685f9111caf10a41a81cad27 = "d9835e4e23553b52ad996ab82ee3702624f7178f" +ab34d32f072223332862fe76496b491e9e3f3e02 = "ee61b35dce7165e83c2bd9d83cf818a027e3cd7a" +ad1e14e1910f67d94beb02a9999f6498003db8c1 = "936bc24126520c2ba4248724be3c18d946b1bf4f" +afbf7c49bcd26c643926e6354029e2243ffffb26 = "faa44afb20649efec9cec6457761a0d21de1a261" +b035dacb92503bff20ab06560c36f758e076d288 = "1afb1e4463fe4abb745e4c737f66f7995583b72b" +b70c49ecbb55f7c2d7d35afdf69cde23ea3c16d7 = "234265a3c09112193c53d8379c12286aedc166af" +c4609003d8df5a193ef90face6fc94c19325072a = "dffed0f95de2991d7124d9f2e4b315a46f548c18" +c659a088699d2825a5337266c4afa53e183f6c5b = "bff52bff553010ff1580758f755542ce0aac61af" +c8f11f14a101bf10f713e10391e3f2ca50818193 = "cb6108964a90561491fd86b812c066c114dbe22d" +ca3f030a54639bffc33f323ad97fffb0c234a971 = "7634a6131cb80361fcc69b740b811b7ad8ea41ae" +cb3eb10eb926eb0220054b5622d044d4cd960b3d = "a21ba0b6da0f658e8866e26fae377721ace12a2e" +cc1f795d9a743ff6ddf3aa87fe409ea48a2942f0 = "b66b6a2dbc63f54c972113236104945bbcd82581" +d46d242936a88109f37a5866ec46845f27c16084 = "99c2e150be39f4746d79214447a388522d97af57" +d79eb2bf8637726887b16a4d8d520308b9816bb5 = "4ae4f3a7a5d26ff809e4eb8a43ff0187584bd6d4" +db9d6e63601f37af1175006fdf39d38bed4f0e2a = "0e9f0b9dfc7c94a5e65c7c86843cdf30d3fff570" +e812271e77aec426f689ff81c2a765dddf70c0a6 = "c81c25a156efc1dbf92b7655f4dede7f51015854" +e89d7e9cb78356a62b0ba29c163023b45b01d281 = "5c387886690a242e939bf7512ab38b5698a3d938" +ec2f97e07fa41e06ed00e2f247848dae43630786 = "e960b3e2cda343fd9fa301aa344c31dea9639038" +ee2596e07512cfd13db417658e46641bfed448a1 = "b61e20f08ce4149fb85c47c6a53f8d3d8c2617ee" +f1a265b042daa8bbd867b4ecbe54c7f12f59944e = "164329a5433095897c26f88c7033db3b80ab7819" +f2966ce4f44862989a8f7743bd3a27cc1bacedcb = "18a1f78bc2fee11acdef896d68c5e5991132b50d" +f467f61e7034733bf73d4fee3a81b49ecbf879a8 = "6a2177a2d5cab4344cc7b59fe14b95f16594527f" +f4a79a5fa314dbe8bbcae9deb39bc29448a5fa34 = "11983ed8aee251f6e98c51bd141f73bb4e90e47e" +f5143909979857158578c114ce1c4ea100dc2870 = "ec4b726dffea42db56ba51afdc7fc7e90a5eb0e3" +f6bf3ff18a6e1802165faa7c6774a6e5b189d26c = "92d4c71177e83a29d6bdbc2c1487c73f44174214" +ff7b7813da52e60d02686561a4e7bec4e8142795 = "bd934f006e0547f665b995a8bda600cc8850ae76" + +[1e53f5aa-a928-5bf7-8b39-c478a00d13b2] +5d9ca167fc29ea77a26b7aaa424d385fba8be7cb = "f05ed6886f896dc9969ab3aa0f05eb9da60209ab" +ac386b6eb24b2b6d028052d55478ca457a0b8c9f = "288e509927e983334d05233d011a3ed24932b8d6" + +[1e750ffe-536c-5017-b62c-84f0da8e1185] +5e5c69f76e022916d7fed5c3e0aaf05df7c8d5d3 = "a860df5c6b4eb8bd589689f00db6e2802f9d083b" +683c2884427f99eecb84253353803ea86aa38e08 = "dfe4c69f100ebe99e5b80cd91325493f65d4d8b1" +72fb7724f36ea9a11f66f535acdfe8fc12feb97b = "fcd21df874ba22fe1e3df69c77729f0ea7b64653" +75e9cbbca9bf4850b004f06a007692b8aa001c3b = "2eb5aa37bf1e40f5a9c2f1537fc52f9b10b0788e" +d366e02293d5ff5a32138ee6f95effa86f95a491 = "9cdd38679b0f2eaf9197ceb14464c9b7ae7d97b3" + +[1e9eda5a-45f8-5396-91c2-7e7b4c9834d4] +a95655c5260291ec8c730bee69048ce4793608e0 = "f0f5647b1ede2ca7081b053115eb0a6d37ef98ab" + +[1f15a43c-97ca-5a2a-ae31-89f07a497df4] +10e74f2b780960bd4ea10d1c351a671b6c89e375 = "d156dc429b1edc789ccc900415ed774102f80bf5" +1281cdfe8cca0fdc9c4b141fb1b1d963d9fe2b40 = "024a793b643dbcf8530dcb2fe4c38dfd74992e77" +16c4ff2a54bfd7135b3d71b37558019c317182d8 = "dc2caae1f00aa210af4005834d85886786f90346" +249a6f5e3f3f56c19e1dc42ebdfc1d9cd189222c = "1f231192156f7ba4b6c320835daadacef2ff0c56" +3dc95c42b003ff62229eeb445d11f289e2afa2f2 = "1957d5fb14945b80d0dfbc3280d690c37e1a10a5" +41bc238c58e8638dabb0696f0c3618bc3aa97227 = "85671182ff2a5c1bf2c280ec684f36b69e06310f" +45b5e6d75cef49a6cfa321611c187a8ea1221569 = "5740cd74a9966bc189c4afb5a00f8723261757a2" +54121ded0802e1a01db80fb7c89a5ae6773fe1f8 = "cb129111f4f58cbac2498a2338d11cb9547878d6" +61ae68a8d0ab6ecf63e779201bd25683ecf5049d = "60f6cf8bdf5527b547642d0ab3de2cf54ed6bfb2" +776c2294a14852f5d77603f3a1cdbf0c555f3d22 = "ab0ad28349659990264fb0d578b072c922048371" +7eb36262b559627e82983de004e5ba9cc4809a6c = "b489cf1bb1573216e2991e89a6083d15d5472a35" +86642f9314792a55141a30033dca43d2debf7e76 = "596ad74b6195208dac2c59904d7adf75bfc17f26" +9337ff1d5cec3b017bcb772486b8f3e3ee1ae09b = "a75e0521a95a76a1e4d4c4f771f70f2d30041ea3" +9b5be121ce09047add2309bdcfe1797e582b6322 = "e9c37c3a46baf062d6eb27be347ef81a0c298541" +daf011d5e0b0c1fa5abd5786d3c0630b6a6576bd = "2a08a3b78ed4a6b8d09a8bd51dd27119d9f87995" +ea74742685b58fb7a845c9f9f735a7f258c85fd5 = "a95ba10116cc8e461c212af47c8174bc1c131205" +ebb9b47013f515974f7ffb617f429e6b8cb00353 = "a0c2b0d5e7ed6de2d2cc749ebdbbf6c5fbb3079d" +ef510e1488450a31d2651dc5474bd70e4c4ca0d8 = "54b60667a64c3081ec4fbd282bf935fe7ed9da2e" + +[1fa08884-6cdb-542d-8938-eb45e6bbeb56] +1934760e8cfdf01c4b6a47289c443ecbdae007be = "c513ad12189e0dde0fab459a3f69a0790dfc0cd8" +2e203f7155ab16f1290c1eb230f38e91cf80f50e = "14a92e954199861b94da972079e70757be7a7d0c" +50215f1edeaed0b9505947cbab6019b363271ad1 = "4a3fb86026130f0d8851dc965aad3d0ce8e86db5" + +[1fb05d12-6c47-528b-bee1-deadc63ff0b4] +8ee60b23769ea857355675a4d24c3a7b3afdaaa5 = "6a3b5a8245b43db3076d4d3d9f3e767b96d41a35" + +[1fd47b50-473d-5c70-9696-f719f8f3bcdc] +064d2f01a0c3ab825c24a0a38b2b454c7b43ca5e = "34075e9743843c2e9ad1867a262536348de85a85" +10949107c255e4d0d836a2c121c18b1bffbe3602 = "29e05ff144f17d0c4b41299423df6bdaa0728060" +2421a3bee068b92e30eaf448503bd0ce1b0d3e6e = "60b510f14c7eba824cb8f87e43fd7cfbbfd16e3b" +ac7bcfa93efa0a5406f70fda9dab6b7e3702f979 = "70a3211817c6b6b48d2ab3ba20d8aca5e442b57d" +fc047a40918f9b5b8a4758da2b35fd819426b8ca = "ea16d373243f88d6aa6d94cddc591fa159ce7165" + +[202779bd-50eb-51bf-ba18-ab2f8c575de8] +2eeb96d22d37f302a6df4faa348b181f52f1afff = "8434e6787717e72b9c97cbb939402d346c8da7e5" + +[203fad6b-76d5-5f68-8b2e-e85904e86574] +997a6f58e5fcc0608c136a6e9aa2e7e31f384726 = "2aafb14cd13563069e62bb2b3c8855f7ec660339" +a894dbb31d5c095ce537131c3f1dc1c9dd70f9ef = "af94c2697a85086a7fd3e31e782696e4efdc6550" +a9814dd8b16282c44b5c370396c95924e85f7729 = "b6c213c54eb35690eace2dbdcb1322f368254add" +ba4b76fbe95891c21ef150c169453d7f9a463f63 = "e905f19ff307e2c88e8ecbd9f939d5e4585e234d" +c28299e56776d42fe474412d89488dd0f0c43f72 = "20bdf2ae3f3b8397b48f8dbb621d6771fc421881" +d3a29cdd4d7ac85f5842a8e60d3dd1b6d0c025b0 = "c51bb303e47d078f28ae7e767b08abdd2b3b0008" +fb094f3211337881761c73cf5867a0876cfb19e9 = "61e03d43488302ca09438124fc741648df1c3e77" +ff085ae80d2450b5a7f96693ff5b2168bc5acf26 = "ed2dd084cb5f3bac526f608a5b5509063ea722dc" + +[2091bfbe-2937-51d6-a893-7459a14235e5] +3aa456d66e4999dcb867d386e93f93f8996a6754 = "1b188d945fb74b53e89c63b694b61478786ad14f" +ac816d77149de3447048dd7720f1de6ca19c78e2 = "70f98be2a9be07bbfa6d049f6d22a4af0ee55ec9" + +[209c9289-0e93-5bc3-a9c6-3b517a31ee3c] +09a42083799e0088b4bc5e52a0539af485a2ca6f = "26e353104bde2e5c987636979b2625f428497d13" +0a182f6c42ca0b9363d526505123608afb00c2c7 = "6829badc79853adf9cee42ee21c3a2328fb4447d" +445de950b0da7b012621a55427a251e24b5e2083 = "cae8c3602825eb15d2db905920a131d6e1a84992" +63435b26bcda413b4a9e337ffc4ef8b15fef2e4d = "a0c49fc240af0531b16bf4576724bd89c37673ba" +75f477968e00bd77b97dd6db5374446f73556a9b = "8f9a44aa76b8bcc8a929f60c331581ba1280dc6b" + +[20febd7b-183b-5ae2-ac4a-720e7ce64774] +3816d584779733712f318e981f9fa172279e04af = "96ae4eef21d2e86ef3c4ffb8a0f1c5af0d3adac7" +45094675ab6086fe7a4715a945fd96688ee29731 = "431c151eba45a492ae86f9ec2777f31e1b037942" +5fc7c453bc0051034f3fcfe6b4992afbb0e37087 = "22833ccfa7f2b140069dd73e907b472633a64269" +6d5c8549d04b7e500a0f4efdc91df8afe0f17cdb = "1d31914626561e29b822809bee54a6caf582ef06" +91ce77dab19dd7d7d6be6f31c2a481d5c0492124 = "c1db5846c49e187099359f91ff6905a63130595a" +a98715e6a3e9ba87283e4d6336f819bcb834b9aa = "343190de60e32a0c2c719e9105ac07f21eaf034b" +befc26bb7ccc355faf80364df753b81badeeba29 = "5ba6fba0a2a242bddab76133b06a5a515cfc394a" +cc32b1d6931edde70b82511adb8e9acea49aafa6 = "267c97520bee10e8269ec35885a98a68a6d83302" +e5f86ab24a55916322723d71bae19313b5067429 = "5437f94d51c382f59af7d83a231aa0b4ad1335bd" + +[2152367d-059c-52e9-ae52-2d26002cb4a3] +bb3e67f41d29324fbc1200413fddaad33024f2ba = "03ac4fd3a5867114a03c42ef44b51843b701894f" + +[217a5fbf-7069-5d7e-8910-cffeb5401964] +abcfc807daa4671b0542767328af461cfc46588b = "2f3d92673e72a90fb50c642baed1ff39065ca36c" + +[2193fd1e-84d4-5b0b-a3be-f484d363cd43] +1e0323e792f2ed24922c628546273a2134cad494 = "8e26f59bd33745d4f592b3e89b919f4cc96cba6e" +dfdb82f07c49938b13ae87f6633557233e1204ec = "243438f25a7e9c6b0f920e932fd08b4af9b336da" + +[21f26bdd-93a7-5c22-aaad-c68df1035b25] +8c87545785ac377681f8ed89734f172d40235e10 = "89a1870a2111f35b242dfb6b65bfa5d5289ca465" +ac6204b5920170c87098a422860c8d922f2cd328 = "c3bab88c32fac189fd3d42e137f08c1e95a4b67b" +c013e4707119f71e2ca9504cfc70c3d40e7d27ad = "d188d73eaa3cd4b6686c7124d3794081895c5609" +c92a89b91791f61120bfc5a43cc3a57b28f706fb = "07227a41f3f01ca4f2ccb08f5f526038327237a3" +df4a96f7a7447d5f3b4569b54903dd9305c078fb = "a74b6ba218a4af5d99b45d16de0f82814b3b062e" + +[221dce02-7e96-5d1b-a637-f113167531ab] +5d4751e29024efb1c8aedfe75645dcc1595d2058 = "b02e3ca82f7674f62e25f3559317908ebb0b8c26" +6a6113f768ade321f4d5695bb6fe27ea086e1e91 = "8ddb2a67eee3fe96bd67b42609fab2764df0f830" +73057c36aa994c55687f359b550837ecb3361b72 = "d38d2c116b9014a786251994243110a7fa34faf6" + +[22415677-39a4-5241-a37a-00beabbbdae8] +1746336a6b471c986082be9aaa6aa8dacb2dea72 = "a655d22d1d7c6c42fda015be93c344d4c546abde" +1bacbe59802e47077789f9908a4f895ffd7645f0 = "4653f631c9f5af7b9c85cd68a0a71578fb156447" +3855cc762d8d4146791a3d2b48e74699b7abc045 = "906175a274fd774eb2f76e67eb665e66b5fef79c" +3c634d13018766285d0dd0af3838fcf7e21918ef = "7dc19241f70d272bdc46754aa899968d5a9c898e" +486a3706b4450f4f1450e60faac8cda1b6453b17 = "96f125aed3e15d5a5ebf969d8126ad164dbeede0" +4892be3b1720a9aed737fe31582b78bdc72cfcc0 = "3d61692a68979091a8e0b3fb480fe9a045241714" +582c94e7d1249691fe2a5987da4e622020643a55 = "e0561165ac2e56e448e284fef11cd040d05a7325" +7c0dece4b80b2305850d31081859d27ae91d1a55 = "2435401881596bfab8f3fc36721dc34265e5bc34" +86ef7fea816786662e8b21d912a300e5e50b9c48 = "33ddf80f5a2898b17435f8b8523f2a72338001be" +8943e7bcf8d57cba699b29d9e9862c7367654de4 = "dcf2240f1e75945c600472524615866c49f5c679" +91ca1643d30196d272571187ade9fd29fe5668b8 = "9f3829e048bf16682b56a1c19ea3a2b57bfd47da" +ae7728474c072e135946c0db755692114d8a39ae = "2b04847eac4c62a645aab5ec13c7306c93b279af" +d40d35283b6b41048c2c5565487461b4606c4848 = "656f91ce00cb0966191963aeb8749045fe8fe4be" +e14adf085f65a6b3cfcbe0405a530c96974defc2 = "773a722ad520a58cf705e524da469a6273555541" +f601da6a2cc0ebd28ba981d0c487628e2fa7fd86 = "0b92309c56bdcb33650934389de8f393d8133573" + +[228000da-037f-5747-90a9-8195ccbf91a5] +146af78e7c28e1cbbbd79c1a8794a6c0d4b7fd18 = "ec0a65a69d3429557fa2fdfab97e6da3cf849653" +1c577d36e30cb0b94aecad249687ac3798281670 = "82e3d73e94f1b4e6ecf5c715810ccc1151d94f54" +5d3f89da2796f75cd48a0482f83cd36808844991 = "a7022da119e6173eee80e2ca8f4b434f31eafe96" +7a7dee38282f94ed7e944dccb959480ba506bc54 = "9f01623cab1874ab23d593b50047eaf46965046a" +a879038980f3683722bee7491bcda78fbb241ef2 = "32989c3d03a29b832db4294af4517bc40d09471f" +ab815c854be88f1d7885e0bdd86bf5489dab75de = "bfb4a7cb76fedafd2c76907bb890a69cf4c75959" +d13f6d77678f8dd0504f56e9832e625a1646ea3e = "944b484837b69af6bcd5660e27164ede5c85adc0" +d17fbdebfaba1c3be519943fcf59698917cbea0c = "02b7b7b0ce5d1d514c5dc228288e807b63112628" +d7b63d09f7681919119e20d7032878a96cc83836 = "4505c30aedc11e7fb8f8c43ce67d2c77d7fe6714" +e2047c193905e247a6a2879f999fb396caaffe2c = "047cf55f766ca3109d0e8b8fb3ac64eefddb6dd8" +ef60cc7d48b9503de34e01cff99dae18c6d81778 = "8f01e83597d6f7622a4a8eb04cb86608634862e0" + +[22bb73d7-edb2-5785-ba1e-7d60d6824784] +03ed6924caee3499fa10726da1f635b05f73a3a7 = "a3d6f504fe399fea90c5d09f585e05830afa4352" +30553b0bb816fb46d11e6842047fe5b0bd62273c = "cece69381efc5ba96ae87789264b6f8d651731ca" +38a62a3fed28555793d34ee24069d62e919fb33d = "a12db7f5452b277393189de21794fe4ab54cba1a" +75733703f2af3d043a2bf199565cb5fddb7de55f = "4dd9b758499a443a074c207d1b3844cf60b2735f" +8d1407ac2c5e6047de2aed7a3fa53c8b165cae82 = "8e32bfc00c6717877ef8aad88dad7650aa6d1af3" +8f26601ae8802778e81f2d11b50d0d13c289f493 = "56b2d67fb6e6b49d73b699bdefae4fb6d7be460d" +922e0cdab08335ff0cbfa1ce85d02774aca8fc0b = "b3b4a7d1a979bc7c3305f6be6241230a019fa15e" +a72c3a48865194b09942305add64aa7fa2a92c8c = "5eea30a95cf05bea79ce97ba373e3e1b24a00683" +a85235e47e913d72a0a6c82fa2da8f4592bcb834 = "60f9106e5cf1ac550701e843e681235fcd30c017" +b87f141cb55bf70460519796b38927326ab4bf04 = "7fbccd8d279e5e19b8b7153f32a0464628c20366" +cc50cd3068d224ecff888e4afc9ab059655c3a67 = "4d5fb873a970171850b79fc804186294d6c20850" +e556259c38b77502ac65eba19db2be49a7bf0fb5 = "0f493e2692ea1fad7ad775c9cf1d93ee1c34ef50" +e679fa558eaf2d3ed22228f8481ccf2384061f8b = "58de2dcf18025c5490ac779f5156c0a2a43524c7" +f1ae7267bb27bf923ee027b45035c03b3ea176f3 = "8102c24d380f41f4f06d8005593e3d608c8fed71" +f234d037f8e1952ac82f39db940177c76f61e90e = "a4787bc889f59a4c7034108249eb4452b7725a43" +f819a1e735a69410223bf4ee4e819a9a42fa0c8f = "5ea66c566c03833f6649e721c7653a7a7c026a3e" + +[22d8b318-f366-56fb-a292-a93f7d76c017] +142fe5d7a25a7ca5ee09a03932dfc1ad89033c31 = "71a9070cd7634805fe8fe932ccc94fd527f4da43" +28db434c936ce142476d01a433a4debbfde69b98 = "47c0628c2818b38ecad746a68e6050abef5c2a7f" +31d7664230b01380e151f48ace8dbb0f03e3dcc5 = "4266381f600c6460a44675860bf4ffa22532d1ee" +32b3284890074e6d9dd489d8c237b89784d7e5f3 = "87e7695e76cdab3625c5043ac7566eee4f019db5" +6fdb7e58e9e5cbc57e4f27e83558a8005a413165 = "bf31a97436b98ce0be836d938afdd09936aebb28" +74232718c66b7bd0718946f81dd1f2026e26ea86 = "4f2465f028014932e59c8f7e00a3a47d0b7982a4" +92c2095369cbf8e7ddc4f2a313e5f589202f97a3 = "abb380ebc66509cae68b9bed56d355270b9972ab" +b03b5a2024a070f84aee5b1bcdf72c1d62c4533a = "c19b6e657a60976f5514aa9967dba221c04c5d01" +b73a6cf03101fe9378bcefb575be0db6a2e802c4 = "cc026281e22b7330061fcd078fbf43d321a266ae" +bdfe2c9d0bd14b1bb70a7691d2238523cae7de2e = "9804ceba78696099c82bceffd602714e615daa64" +d2846df9171cc17be50274df197c76cdafc8dbe3 = "606135137d504b1515f0d7717207f31ca0f158fd" + +[236a7b2a-d24f-53e9-bd69-8f3c16745bb2] +534f164288b4739313949398cdd292b762c4c713 = "597c892105d4a67d6e24e580eb989d19e7e792e1" +8ff911e53f3bab06a0b2d80f4cfcd84946512c0b = "77d4cf2f453a925c8ff8befa6d0ddb02468c2fcc" +cb50cdf218dc2b10a7c0b1fa81b16ccaaf52aa08 = "5ac83e4b37988b8918345587e836cb8e258997c8" + +[23877df9-4f3f-5b93-82a9-6fc988bf1876] +66dd7d5a1ff311078ff5aa798063a880efe12e3f = "61296418cbeb09a21e80e2e85f2934c6fb8ca147" +a34ab22c9f4545de98d3c03fcff8c211230445c9 = "da1a808a4e547f770006b513aaf51dfa615c6526" + +[238d586b-a4bf-555c-9891-eda6fc5e55a2] +c6e2e66c6bfd0d7997b33f3f9fe73c520e0ad303 = "b1108d3dc7301bf06fd4af291ef87a5af5091a03" + +[23992714-dd62-5051-b70f-ba57cb901cac] +13f042f0749068db3e36d0b9edf0ebb2749bf5fe = "8346283c42ecc99fbffede41d355eff1d3de86ca" +2d64b13757b8ef12e744770240124bac5be74097 = "6f40e47084b87863b0f948ca53c3508062e78f94" +32a35273d9444c4f9a25d50a38c722f59121c7ac = "a216bf53d2023992527e1e5c6212ac6a66e0d968" +334c8741b5e6063dd3b2009b8288da0acfaec725 = "7269ecbb460f045879e05ae207a79b203128c545" +67ea0cb71b091d2ee769cbcfd212b7499bc0a775 = "e712a42a3d5f9c3e57c3f5bfed3b85e707c759b9" +6a2ba2cfb05eaa3c9e31499707b0eb5f64d57a1e = "bcd7a93795f083c1e0f059e3252c29d2c0fc9a7a" +6c29c889df3bb726bed7bc745a89f595c5da8c84 = "94846c8f68f9f12f158210f2b9fef00d0b039071" +6e4701bf0378320132053fce9d717a92f636dfe1 = "38b7a9ea80ee69777d851ff30fe517798b5dd5b1" +73b74309b587180506a408af7f77e7f9506e1c14 = "c19ee41021de49951622901a108664ed3ea1973f" +79c0fb50719c50f1c28df93943ebfdff9d5cdb52 = "2e57464f6ea2463358b01dea30bfc5ea8e9b41e3" +82021f0f3c1de9224296ab703ffa3706adec965c = "2ed0aca38a8f30d79494822b08eb4cf325a92013" +825cdb2b3eeff42c4b47c2258ac1fda822a2b460 = "d3df021707353726b071b4cc96ddb18b8490de53" +9282d615c8ce2b68edb9b900cfff6e9a5e9b04f2 = "2867125226f7815ccebca4cd67c719af2f07fb13" +94140399d85bc074672ba7556bfe0857eb64f3df = "8676ad77021a235cbf2351a6adaf8a33ab777ba7" +9d32665a7c1a2848025f6fa9a0b93db4123ed822 = "92db60030142c745c6b800f8451e9de3bfad49ae" +aca9b261c1f73caf4f2ec9330148659a52f3a347 = "2b8acd90685ac6bd7f321f9169be4cda72139d15" +b39af462d8334e0cbba797f55d56a2795cc41b9a = "c44be7c50fe96ed6e2292356a7d12b3bf32228d6" +dc8e9841502f3cc9b1397c71c8480d575b6f2fa0 = "056485a1d97335a0b986dd4ef78ee9ac1be2fe40" +eed86c0b9476bbdcf6be0fe3441d09e554673748 = "0dd96cb8a462dd0c44cdd3bc5357708cc7ab3a7a" +fb6e5ae33c38117ffe5c213c88f114c6eb06ce3c = "945306cde35cdbf326e6554e8600e5675639f7f7" + +[23fbe1c1-3f47-55db-b15f-69d7ec21a316] +055912a4cf49fd24e5635a73984bafd127a7a557 = "67d6e5ad1ef18cc043f810418dddb4e97d0091a2" +8080774c4518cfc6975d6a17bd176d3d8210a5a7 = "d1470386c3459fbfd5b1d0e4f683c49f353c88ff" +cf53951b89aed678aa20c0dc1bae69dc81986aa6 = "129e4c347d01bf22e4210f23d54a22e10181f3c1" + +[24249f21-da20-56a4-8eb1-6a02cf4ae2e6] +05a2e855e42d6dcd44425aa9d357868924c5a165 = "f20e6a5f8d8901f334d7b3850b712600e439dcaf" +089edf2fe4afc0122d1fb3b1247a3f46f784aee0 = "58947813bbfaad91cb700b51b274c06e214ea13f" +0fd8b9302efd0d45932dd3bf40d9b87526c21ea9 = "89cccb681446b6a16435a3e1f94ab55137781cb7" +11109e34baffe463ee79b168bc152f4997428b6b = "08b321a411deebb25bb069c2118746cc9124d975" +18109d7306be598b8f1ed887e06db578ca30ae87 = "a3e8b0d35435d92618a7371f17b5e0ed7970fb32" +22f7f0531c9a56be65655c3fcaa7d687f57cca9b = "6cbc63bd1c0efca26e1c0beb6d0d40be08e3a534" +24a5215b9fd78578feede7e812557634d08fc508 = "102792ebcfe8144477411f3dbc600ba2b3f5f181" +31df1fc83277ac181a1786121ee6b89c83e08025 = "8970808e0fcbb897600b0bef7a7acd1a569f8005" +37bae9645678556a28757e3282e85daa8dce0a25 = "5a7609e32ff1a7ddee56aa3b755bf83687d22935" +3908b0e18c283abc4b022a076787a96877cfd827 = "7e4db0defbd3adc01561f7518c0f85339c2235a9" +3f42e11b50cbc21953682b730cdaa0c0a76b14d1 = "8ede56a5c2393c40c9c0a62eb44e2ad99a08299f" +44ef174582746df1e7eb7e2763a3088c7eb9abaa = "9a511ecf931d11e0a99d43feacd1bbf64df7ea02" +4953df8e878b778d56ffed513d3b39d494d34d26 = "f9cee40d8bee914951c4277baa31da24bafa02bb" +58b0bdb8be1cde150cdd9374156d886a39645022 = "d5d161821640833e2b0693c421ca0540725582f2" +5baf86de868757b6c11c5609dc71206180b19df9 = "36b3e82dc47bfaaae8f83f18f0ff63e9cf7e2245" +629345756ad693f97eddfc7d84e679f32e4a2504 = "9fc4052c11c4360fec03d9d61690c718f81a928e" +636655aaea00b17f042d04256c24e69265203bae = "7ebcaf9db54f64d917bec2f92cd39bf9c2c2fb42" +6c18da58e4fe0c7c5c6d8d6f2a23ae072abaeec3 = "0e7874eea6b1fc378d0d3eb9cc8ff4f130c662ce" +726458472b781be7b4eed350afe816d3046c792f = "51cf58882951fc7f514b299a5ad0ec166c6f1c11" +73978df1adf10caf665763e7af41f7d2bc3a20d3 = "952990630a9adba8097b22336bb1e9efd2f4856b" +74b92d73dd99d47dad3f3ba771049ac6858407fe = "35cd62f649dcdc3f7e3882c9c99883f340b748d4" +7d679f114e4ca518bcb2ad39fd379003363f0cde = "d4b4f04c94d4716d51ae46e073d4ddaea0f528ea" +81263a0557bc30974ad5f7dabd612517ef740dcf = "c284a2356c3a94f9cbaf8375f107fca68a085ca9" +8131e194748aae4248d3a1e6f21766804e8acbd7 = "6f8505f66335ca8b022812be25ed145720291384" +8334191bbb0bd180c8ff9269e8fa7d37f1f21414 = "ce5748c36a4f62583b5df27ef1af5eb86a59620d" +8a1bea113344fdc7119547b863e1e0d3ee410919 = "34d8ce7022ba8650b8ec9f74f05e90a43b765b06" +8ca6627441ec491f62d2c5a5eac3f4d36227f5fd = "e3febba8e97d322e9b778574dcce8b48d70702db" +91047e0f63695f22d87dd7bb6c084a31f08fbf8d = "1b885ac140de6797994aca6852bf669e3fd4fa84" +915e4015d06d9f5ffcea32a6f88ad3ae32bd1e5e = "fc7764f4a5f2e0fdf91f47023dfca795568bc3b8" +9fcec5204035bec3baee71c04f8149c6acf24aed = "c9eb9ef468f83bfd0ee836d127e4accff3cb48ec" +a00046a9bd5d64a7c81874d71e603d830a3e38c0 = "408214614dbb1d055688669b5d82d79d0225e6ee" +a67c2b21af1c9ce5bd2ecd82a4dfe2c172f1e013 = "5c3877cbe1d704c681b9618608c6a52d7503383c" +a98c818a204a7542e720422c4e0bee0dd6e27ab5 = "a2ee2857a36046c77ba829a6e0bbc38186b226b0" +a99bac82866a35bf9d61bd2c7802998c4efb3418 = "7787de69ceaae4f20587a10bcb80a33327bc6e7d" +b181d7d0ee62d4ebbb519c83e5a3b3aea8b603ab = "20156635a253f156d4b80167c6478a7a49d89482" +b279c6fa15a9e62921e46e9d284cd29ec7f8c7ee = "c51a37e01dc5da79eec1908e4bec39a0661510b2" +b70722eb0eda4c53939d235c307ba13a1722e6e6 = "a7488f3f1d02cce0060ac8491d8f958fc96a50a5" +bda104e8a68a4ce52182017ec6ced7c0d0c61866 = "8211a2164639592fc54e37551d5f2804edb99c10" +c2d21b243e7da7c53a93c993e2e38011a9811cd3 = "f0bb9dfd3525f950262cd1b2c4f2512c7430098c" +c6d207a4354d6e4d9a27cb948f9b1fb8ab2ac551 = "4f675b7d5d294b071011f8cc4173a1fd703758e0" +d2f08e9d35f1fa84cfb5dc9427a31a4b19d51996 = "e272959ad54b34cdc5f6948fc7db76ff4a6cc8a2" +dd21733a8349592ddb289b44ab83e59409d59df7 = "454af6812660991d7b83d61161f7a188e7ef03a1" +dd3aaa69e44b920aa0bdd62ee751943921b2a79f = "ea62bba098ae8a258298acdec47ea3459e983e59" +de15bc181f16b83584c1d159239eeeea314634f3 = "ec081d5d447fe2cee8e9fac9b5238d3ea8d370b2" +e1886923101594fd4359e4e353887dfc20de44cc = "61672aa2035535830b38751de9f1e1b8ba6b25c2" +eff671d155f54a44fc993c1e34530575c7972f08 = "48f1650771cfa0dedcf3b33821ff7d1693010dd7" +f34e77460eb5334623b21e74f22e07a2d940c983 = "ce4f195e9af9483eb9e66a020470b6d16a3cbb9a" +f648bb9cd63ed36394be6743761873fa8d9c7c11 = "5353f293b5ce8cdfd9ee65725eeb17e57745f1fa" +fd5149aa4b1e8f30a0fb5f50f454b27d57edbbf3 = "b8b12f81265a7022acc9bf5b025ad465f6f59f8a" +fea5666973c3f64fc42a6f01618bd2234f4ccd62 = "6a9655dba2911f33b7e5f6afc669749010ec5e16" + +[242c1f41-6415-5004-acc6-bbcbfa0e5f47] +f1cbd4c4058284b583a3cdd4a8fa0ac82602f8cf = "3fe72b79324a2b4bfea81e6181f6dd99484683b8" +ff9a6fe85143b4ce8ce6af91386be6de2603a460 = "a0b869934a1fe106db12a8d790dfc511be0f0fbf" + +[2431c0de-905f-5065-a272-d48c42d73feb] +e5e69f584922559d46075730ba4f8679e11afc93 = "e729503bade3c775262d249ea5944acfdc120e30" + +[245c20d8-22eb-51ed-a154-2138e8ce21b5] +8e844869cb42156b015b56998b9bea8cfeefafc9 = "53056fa7efd6f66ceaa057b26cc8b1c17bae199e" + +[24678dba-d5e9-5843-a4c6-250288b04835] +a88ed686734a8acd9531fd3fd8d41127d7054233 = "c0583365b6a911bef3b356f5f99d0108c8272982" +ded85efa5d47cc8d9dbb5d58b773ed58f4e414df = "186952b5fbc6f14ccaf50e5ef95a958cf41f6033" + +[2472808a-b354-52ea-a80e-1658a3c6056d] +0131fb0cb53eb1e97092f1f0c23e98ecc381bfb6 = "56143d400df972f225669d254d6437115cf96e05" +0df89a16007553324a87e03702ea6503760fa252 = "d3c3e1777f1e6da4ea1da686cf2c47b1d6884f08" +11a28cf8fcfe3a8fa15d5f0ccbbe9f34092c5965 = "8d3f48ba3e7e6f3941fbdeb72b0606967397856c" +2deea3206f392b07a1e6b1b38fe9cc1baf770ec2 = "e6713d560614e7f02346972dd711d27362dfeee9" +4fab1d22dea7ecc08deb52a41005f08ddf858c81 = "3dabf72d21a7b966a1c0e80b1ed006dd513704e7" +5b8c261c6f3c0485661ac24c60ca0fbca333293a = "2e5ff2915bda7eb7d7329c30cac4f57f661cc31d" +6047a20137d1e87bfefa2f04abe0654195fcd56d = "4acda009ebc20da62bf6c3fab7eb4cf2f924ded7" +74f77dee7fb077b4531b08eab4ccf1647bed0c58 = "43be7bbbddadab8675683a65e18c7dd875912f17" +85fb606d2729ddb9db3d3dc11d21eedbd39326eb = "da711990480bd7ffc2b44f781273458982c8fd1e" +95823288805910a9e869c6c300d4688593ea1ec7 = "2f6a975aac16bc6429e4d0c3fa0d09b3ef9cfc47" +bf7e7bd7308dde115c9f7e03ddb8e6480e533cfe = "6e0500a28af83b9a146407eb66111a7c8dc9f859" +bf999459c928c4c9bb3089043c836b48fa1ad8df = "f38ab570bd1571fcaa0d179f2af9fa62b77bb5a7" +c9ede5d2d0b66a7a6661bc69b70b2ab2443b440f = "d1c93e3c8f904b0e6b67c1b683834c6a9b6a960a" + +[24875eb6-1ad1-5a2b-a058-ae0b6bfd31a9] +2a96c719be20898a580dfdfb1c87c223b7a47bcb = "4e69da4c2ce642cbed7065ea692c00fe6e8e6b2e" +6edbf9591a7857eeb5d2ceb63570e99fa28ab783 = "c1ab973bf60d4ac1d2f1f178c4dcd1d6e24fa1b0" + +[24f65c1e-0a10-5d3d-8a1f-a83399f3fced] +25d11da2c5532160ae014e9169f27c4fd4f1812a = "c3d375b77d812030f9693266ad5e8d453e4054b4" +be61306211737afc3a16a905f22e4d5ba8a589bc = "77d01a1fa07530c257f25f3cc1504ffc61cea903" + +[251f48c7-f5a4-5bc8-b6b6-ff4797c45649] +91254176c298844ace3ec39a454497531e21aa9a = "d7ed051e7539ce1388489c64e3fa14091277717c" + +[253502cb-d042-5725-98ed-f972bb437cdb] +8ae1cfdbbd0a309033798cb47a49707b97d6512e = "a2fcf55efa79bd0ddbd8d6344d57eea015afd3d4" +ae0520bd343c6d1d1cc872c23a6152c38ce06c27 = "89a17e6b21239677ef64b9082c05d08103d2abb3" +cf2d082a4bafa1b33198b0377cf5bc4550f32608 = "7218df15d050df198851aa78f092057a93c46ae1" + +[2535ab7d-5cd8-5a07-80ac-9b1792aadce3] +4d985ae078cc76db82806a531bef43921498f0e9 = "25a01d132ef4ac0fd45b64b9fea8873d6f6fcca3" + +[2542163d-3f63-581c-abc1-15efe995b982] +2df712fb01d451cb98c173c182a4ba806c02b213 = "58777c76cd0262ed1289abd2a16f0ea46ce1bd4e" +5cd84a5f4c26f9f668a2e9547e60ca2d462c6f35 = "614246ee1886f1f8f154f4993d24156e69d2189d" +6bf1fa8c22a8782b4c9e940a570afbf8152e92d2 = "bec682d5ef99c50ba97e6809f03fb765c457e49c" +6d8affe7bc56e9fb52a0f8c2695194061c6cbca4 = "7066279df619ea56f806ea14d01773896e41f592" +cdb7d5a1b59c1a1f234053ee06d4e06eadc0b097 = "109da292b34d3530960aecb02e5ae527b1baafa4" + +[2547b907-48b9-5396-a2af-edc57bff161c] +0a2975eb32f5ca56ea7b14445c83dba576a180d2 = "a6f8ebef87b88f086d060bc79a736b293e319fd2" +1846c6abb9e54a79064429fd3ec812da0de7cb7c = "388737adf0f693b913740c3fffa403d84adacef9" +8771d3ec5b50b713105663f4d65fdd98a76c0e34 = "8fbbd10cee1e89232961ae1dc1f17787a5a6b72d" + +[255f4518-d178-57ab-9c44-739df5d483c3] +49ee15a6527b430007710fbe07946e0a2ee24748 = "999fed5fa58c7e8c543a9eef5594a439779a41f0" +77c465a18eac5810463d46f597b075285ee61e61 = "dfc8c212cad07701de1bb16b53e62b3702565014" +828856d166e30cc1bf3ef8833f7263f2e747ede0 = "46cbc4a8c81c7aece658191795f2cb31bfae6b7e" +cd596962ec9b5e6a5236749b60aad55a683bc92a = "ab6619128774ad333ec5d2e999f8a2e72505885e" +f801f183dc5663544ab3fd9127fd0c50d3037f77 = "e7c538a04f81eb0a6922a8d95413a2e75a10ef56" + +[2576dda1-a324-5b11-aa66-c48ed7e3c618] +2fd68c51817ad1ac7b8c154c62e4010594f7c5a2 = "4785301da6e800e793ac66d0eaeaa6189d286185" +37c16a0528f215cd67a3fa1eaeaddd5d6c6ed233 = "f7024f0e9c4256e7f0fe1f3bd81f4dba6106e39f" +6b4bae61dd8ae209ad6431f82cbd12e7066dee9a = "6cee5a5bd443da3af29ea865e16d1c43ae706b40" +8b85be0f97827954b43442356a380c8a9f7d3556 = "10f123d9f54bfa458755bcef12d9dd399ce11d09" +aa23a70ae03e4e818e33473a00b0ce579c4d9b57 = "1d564d7e57dc396f68efabe531c3ccfd28d7e06d" +f0582642d55290357b61a0623a7c2a8954d83576 = "4e3ce80fb3f81b38ad23a7f0b1fb2a05c6f37dc2" + +[25c06242-cc58-593c-a204-a17bebfb33b5] +51258778a30ea064212a28eeda7bab86434264a2 = "7372934a1d175219dc0eca88236ac8bf71e59f62" + +[25f12f5a-a783-5f9a-af99-e55629686113] +9a0a7876422ea740f3af111f756676977c558bed = "4094d8c30bb0714c2665550c38bfbe74403c47a3" +b5697ddd44675b2b84d4155e296be21e8a456913 = "2d7b53e6b6392c6ca499b723671a50d8f81f96ff" + +[261fd431-d7e4-51f7-86ab-ce9e57fc1fff] +36894e28f8c717e446683b0d409f3e76c30fc06e = "16bb2f8e494153a758d4948e6cabdf8f317f2ad9" +e16c50a9482594b6eacbf7e2918065da3f9a64fc = "273fc6d12704474c4b8337d0b97d95c2a48fd9b4" + +[262c1cb6-76e2-5873-868b-19ece3183cc5] +2617deb25dfc737d986de50e2ca17477de7b703a = "93a5f6dae69209f5ca27fc8fdc58805fc1e5de4d" +3f0caf4b378b7951ee76d91d436ee958d1d4840a = "e9a22101027387d34df8c3ea0b35af7afa480aeb" +547753ffb7cbabe9eb6b7591d20d031c0d5e2b09 = "e29acf3a39cd9cb1ec2818a2649b387b10dd87fb" +810919af3bbd56ac7f92a631902bff14d6dd7fa3 = "dfaa59d02f80ca698a7555124cb22371f886b08b" +c1f6000f5c37d25a4956d9b48222b24242a7d153 = "d0a094d8bf82fc17f4385dc6759c57e1b21e631c" +d1b0a9cb485403435efe482693f18d2ea5821b77 = "03b8df3cbb9aa470cfb84b845524e5d79c58fba4" +e6ae11cdded2e690d84d0f2a41a8f6f77741db2d = "92c9c88ffb65be144f00b0719a93a7bdb3cae853" +ebf1d4f1a9fdf04c39635cabf3626c6f98f59abb = "7fb91f91ded680a65d9ee303140c39c0d579a7ef" +f45f799aa199d18361064c6086ffb0f4f1bcf229 = "264e877b22efd3c37955bed789fbb143c1eadc50" + +[2679e427-3c69-5b7f-982b-ece356f1e94b] +11cd9b339af5ee6a95da1152c96058cc37787f09 = "ae3ec66ba109e670913d9cb2007dfb7339c24e8a" +2f5d2a2b251c9973c337ce24cc86b0fde35a34d2 = "befc0d83fad88f705570bfb2ff3a8f6c7319807b" +3cfd24b2fa02801d748c8cb9fadc098b3bb906ad = "c435ffe60ac53eb61dd133ddd8f45523be1326b6" +6599bbc5cf86dfab2ab79afc1ed772dfc2647f3b = "d9d7e95f456b9a2cd327b71f2887a08b0a34ba88" +9609060e58d8010f2912c60bd21bd2fcc59eb146 = "3da77038403c17bd2ec5f95bfaccbd7bf507ea23" +a9fa90452f6493ac87d2f2796289d78b02d099f6 = "ad491b185249b30feaad1be3836480f48a2aa21c" +b9da91c4c4fe7ae938a25b7ed9eca919f089dc47 = "8c99c461bff9fc992d260b2922f5a84c56866133" +dbde18a1d67964df54933e95b7130e9dd946e974 = "c6aee95d36b7bce5d238c7df2ed6175164f9d56a" +e4a39afc7240706ed8180d0ccd5eca2f44c90445 = "fd34fc2635ec1a4dfaec9860e8976ff5be239166" + +[267bd6e8-c492-5d7c-9aed-5ac0f2f898a0] +13e4102895d26e82d3d7e2492ba9692a59e0acae = "38f10d7e8be9037478af01024226574eb727fcba" + +[26dcc766-85df-5edc-b560-6076d5dbac63] +3a2d546564db5d2e34c87cffa3a6b36f050dfc1e = "ce34f758ce96a832365c9709320a83b650be34f5" +c24830181d339bc347db1c75a6f571edb8791b5f = "13b537f3720cda0a4508935cfa705d80578dae25" + +[26e3df79-567a-58ea-9c5d-b0cd0a93ad6a] +1053ceb1cc8f3552759f56aa1ea007a9ddfb215e = "35068701ddd7ee11b2852d7d546e6d0c9e9e0fd6" +496b11d94a765b62604aad3f8e50a376951cff5d = "b12e2499f6da053d3438281dfec589b159cd0b48" + +[276b0191-6968-5de0-98fd-2a81b0f3910d] +1daefeeff1269af121c71651cbe5bc32942da95e = "0cb4ca2f7d245e255f81878ee25ed4ddf2e4dab3" +304550fa15fb2e8cd9ec0c4707c75194073036a1 = "55a19a57fef47e03be0bbd93a1a6c392cd83ceaf" +30c5ffd2d38dbf779d260e23c198a32edce2e8e7 = "de8ea2905afe8639d5ad65922099efeee1f23a13" +7a9df0a0b1aca12989ab8058bf66e08d1be832c0 = "93d9d12f3ec77aa585f49a8d27e8ff851ec4348e" +ae2b8957bd794770e1c124f93a079f5aac03be3b = "297de09a1de49880dfce2931c9f69c3520938d70" +b66db64954181f3d45715ee03f5ad0a0e8ad33b6 = "3464764bd118910879405bab136af11b819a2bc6" +e54c822a5858f93fba0c94695a728438655bf72c = "52526cd847b0623558555d6fef46ee4de16dc7fd" + +[276daf66-3868-5448-9aa4-cd146d93841b] +033a9ec0faf07b9aa68265ce906b2c0c0ec0c86b = "7a1f4803a75e5c0b114548fec27317d12cbc0538" +380b61737847e598291e6cc0b1702a3971a37a01 = "ab519559b18834944811f7551e3b412118c6f71b" +48429728a02828466b86feac267c88d85480ffbf = "06a14ded3a73e02f117815e8b7e19a7b592e7ca4" +6b686c0d6544a1e0ca59b627f22ea5559ba03e40 = "03e6a824d4f33a6bc856a5fcfd9d14729a9f18d4" +71812c3242ffb48eed00b52d607110bea36d5972 = "9932e6705d08aa70315df7ed81539cb671702a6a" +7fd9f334ed89509c7b6bf1467729e5010b6d571c = "887d2c26d0c6ae77585f9988c560f353f6262161" +8574f13f0f0f969fd66fdff49717ea391b2c8ba7 = "c33c7a8a9d0898141a7e7b2d59e610549c9356f1" +89ac6013b83e53c26c920f6725a4fb901e801885 = "8c74c9db3dc0bf0155664669e496300c15c24d7a" +9151a95d6ecd4a400e08eab83813e9b4058bb7ce = "a22571d3d9d88b8bf56816381c676d98e4903404" +9f204e763ef54ec1a66299256b52fd5735ace555 = "a052147e601e79260de0680f26335800b4f63dad" +b70b52b4f4685ca9859d6b3e4bd1a377406ad1cc = "7aec1f1c05ccf567bc6005fcc966392f756f815e" +c7e09930d3434f55a18d1af6dcea676bb44f292d = "676dab08e81b570fb6666e6e53e489a8d394293b" +dcbf013e44301a55df66a8a27abd630a12201020 = "757e8d3446309ae08e3922f78b68ae2f51782dba" + +[2774e3e8-f4cf-5e23-947b-6d7e65073b56] +014e9b74e3e8c8fe482b0ddfe200548237555c0a = "30c297d8f85ff130dcda5047fe455c3e136d1061" +0b1cdf8edf91f6d6eff6acfe3470e58ae977d031 = "ecc200f575b1eb0bd8293b83e8e2d3c72387e756" +1fe5454444498b129860cde6c1069ceda128e630 = "c5b5a9c37d230a84590c135b17d353f0ac809494" +21c079d994f32b0982367c9c6f54164cc7f19a43 = "223d2dbaf572993cda83641468a7cdc09ae011b6" +22e2f64ada4b112bb121ab529157a4c27e7f7fd3 = "89fa8e216fe121acf0fee9371bfeef84323602d4" +29ea6f1d9f3526620313ecc6f13de10297b8b648 = "0e6c46564bb1ee3cc4e39c7cc8f681d4d2e0ef0a" +38433892ba8eab583c3807749d0bd429dfdedb90 = "dbc8a8c9c18b8326e15ef21dab7b726c055a1805" +3e837b7d3f14cde60b12dffb28225231497172aa = "67b2a8e8a067da53947523fa6714fded35688f1c" +3fbd6057c01bad8d0cef46f0a9f1430749c19fb2 = "2b175eaaf851cc0b12d1c5a4acf6755961723a29" +40b8bdffb6728d152427519568727d53e0aa5ff3 = "15af2f1988880730456c7bf8ac0ead103558d8dd" +4a68f84a8fc8caf3022a02063f3f93616c08196d = "418ce7550e9b2e34f3814c7ee25f617dbd92bc45" +4cb7d75b975637a6f0fe23862225a2bcc4b1d5a0 = "5b1a19138e50de5fb13e61ec0c8036b9c94883c7" +535b7361c700b39b6f1f1148f805c6036491ef55 = "6d2d179cdcb908ba6c39aca5b0ac41bf4f8eb591" +5f0c944943e861eed9c31264c13dc898481fb952 = "b91a6dd5680fe9ba9f11dad8156688ad2db7fe47" +627c89c863f89ded5b354bc87e7badfe40d7e901 = "eb5cb8cba8ef113d89e248240bdd8bea0f883fc1" +6492f5e4e96199022e254b96fa24e47e80d8865b = "7532d958c932f42c6edf1cb0b431831d8338a440" +65d120594f39260a64f2daa7bf4df5b2ec1413ea = "06d92d9713461579061caf4968e584df461a0646" +796135225237dca6e3e7b4c294ea26773ce05321 = "980af06aa1570230ebfde2634074ca718513df96" +7cf6e27751281151c8815a322f1c0bf2df622c06 = "415a53a8ef74c31cac23123d87f2152dfd92bae6" +acf07d94269fa9c343cf195771dfb4ed01012033 = "1eb32aad9aec3c5a49de8ea92f6989cfd6564f24" +b472f3cec1310888484d8f07ab4d671a172bf3b8 = "cb23297aaa46674e99c44c7b2faf5c3385570b25" +bc5bbedf0d9ce67b39dc584221a2767452422f6a = "4211182e11d64e2e6f6d58405eba1e4b3e2a908c" +ced92f85612b4c62fda71e87c6e60eaa99a2acd3 = "10fea68ee918f35e81baebcf4a7735821aa70955" +e093d67a5402dd48f7a5fa45282167f78f86bc71 = "5feb8534b345747410b9e4764c833be412e06c36" +e4d058335c91a87bbffe0c1c3e3c1f4f430a0915 = "994b887605fa54c70ddb910f2994c8902802f504" +ff78c8e1323c0038db8a95a20ce8250bf3b9f86b = "d3c6cd641ffae90ac8828bee7a10d69bd6f7bc2c" +fff21cf2f15cb0812e6a347d6f83f4710d67a454 = "78f8825a4a7d7696581341060a2eee30ee80ef20" + +[278398fc-db6b-536a-86ef-0b56cf867102] +0ba03c50ef3f0d942271b0bc0e9bbb8bf31f8bc4 = "2653a5891a617944dc411fa707504b1b93cc8bbf" +20e5a6e5c650f81b59d12213a2044b192666c1ac = "aa9afb1be5e57a8058b2d6ab208b77b5ae020fdd" +2712fe20088e7f4db0d9757a274ddd57e3b671b7 = "335d4fbc8401ed907ee98bee937238b1ac8914dc" +63c6191f7b8c923672d4a36a1afbf0ae3e3eee86 = "df161a480db900c378f204f916991f6d488f282e" +6e018b2d9fc1de4db1a79d93b80462e86d905580 = "d38aadcacaca76adaf9d142da76f7931cf1ae925" +905aedde1ff25cec5a41218fb80a1475f5ea0af0 = "38731466eecd1ec64b7cd6d3cc36c5f9914e865a" +ab9a5d287c897bf5e82f1c975eb212f53a05c269 = "1a6ff23e29e9df8db26bb0c09025398342872c69" +bad3d76c1bcf589bb3883ac9ee35bd9d45373eb7 = "a6d227fc2a1e12ab49a91174ef840c25abd3de09" +bb440082091c21e40d9860977fb591b4e89c7394 = "7236795a65e107bff013151c06aae7d88d004bb8" +c082f8a962178364a09879b4748bf8c1a0b973ea = "4215f7ef4f9cd6b3d42ac44089da11558d7fba2f" +c82e4413f4f4c3b1f5d427b63e868abee90e1627 = "7b6bd84fa0dec7e70760f4884f455a3065a5a853" +d6354f8fea7ecff2e3a6738a82d37d6d075830b0 = "57ff0392d9eac55887220d7d795288205e2b20c4" +e726732fae19f0ebaf86c4f3eda0335d47ee05ca = "8afe136483473512ffbf0ddfd0c6e48ee60f08e4" +e80bbf5245e7f74f28d3c9d828a2bf3596b0fc88 = "1daf8e2c5efc781e5cf9a29a0ac1817910b3eed7" +ea2dc49e4ba78dad720ab8ea13d02b3455ff86fb = "c07e07263c7dcdd8caaf467917fd966b846df505" +ed947107fdf1dc1e2168b2295ad109d867ed7333 = "c3c365136615d41d676aca935a2418300877ef93" + +[27996c0f-39cd-5cc1-a27a-05f136f946b6] +17edd42ca16a1984d331888a406c9405ef4d9175 = "591e3b66a69f3885448b099bf2ae84a5643ed0de" +21b01e689ee0cdc3ed5cbf2eb34454882b0f832b = "c2dfd4239c68510d7b231aa916ab5dbc28b6e42d" +3f913feff1883aeb72fd823dcfd096d95241cc53 = "ca0a6ee5db78fe28de2f4562e059ae1bb2dd1152" +4358c8a451a743d8641c3a06a76b11b2841036be = "9b369e1523d82237e5d6a69d53019d727eb11307" +50832ba62264f03fa86a453168f703452dc84117 = "71c12e901f36db7ec4aa7c285d2f693e6f6bbd58" +56a2941012974cd4f651f152a1d776d3f9f4ca16 = "f761f7293acf17650bb0d54093abd99cc43a148b" +576646719eda8c04de1d1a0eca913c5e074a70aa = "d9b6bab376c26bba9231e4d10763283a628c65c6" +75399efd314912f84aa77a0e24861e1825d13818 = "6a251427f9306fd53fc4f239ed31b739b4aaa50e" +7c3eff4eb1b017ce31232118a8969ff1b34ef07c = "f3d14b55771e29439f6960b51350bd8211b38b03" +7f122fec26afe0efaeefd4f4024e39b2c34ac20e = "d3e4cef183a88c6be8a63f5493fe5902d84546e1" +8179c208ff5fa16d6d4879c8dce578cc68eff59b = "322f02ea18d29b38eaeaad1bf003e051274c5529" +9cde561c2ebb222720f805efb42b52ef41fe01c5 = "022273db04a925192fafbf0059fb63e74694d7a5" +a5ca713d029c92e90d2c1ae48fa0d1fee54d9f6b = "5c3af0742eb0cc62c7bd06f9c4e5fae8cf35761d" +ae6d8d6b05a3960d937f6b433bf5250f4fd72039 = "8e03d5f1ff5941b8b7938cd85a95a39f74fd86b0" +ef10f00ab47df464269ba24db81713180aa2e3b5 = "57aba9987087ce688ba7578f4c510b9901ec3553" + +[27aeedcb-f738-516b-a0b8-3211cf1146e5] +06a05a03cafe5908c894d4903ab4fd681d45c774 = "50efdaceeff77e02d007800a063517534eb54bf2" +0f1103b4b3662b1375649eebbdebc58f4414da8d = "f910af82d916481d4e2ae0027f99a9e5807feb5a" +27dc55b10fb9efa99011e5bbea713633ed45cb48 = "1517c71e3146faf5b730f9dd13bcf3649cf6cba1" +27fe0cb4ecabbf0234b621bd5668a3a746e23089 = "507803378c87e41d21376c0072405585fa41c4b7" +2d350f47f7b622fe54b5d829abbf932e79576fd5 = "8de5a9d37a9441f6f6a8b33a3efff92440deb81f" +3751f3f2335217f8ba83893523a388d4477840e1 = "6e44b780272ba923cec299f7057bcd7081860b58" +44096e745c4aff47025bc86517a1c992fb147bb4 = "84288cb610e1bb35ed3543ec98885f8e16010b3c" +484f465a950f06289e981bfc7935a43e2d79a4ea = "85a9e9172de29643676b29d4df1cdfb470e57f3e" +6160b56094771a420b9a2af57f234ea18a1d062e = "ae88996605541e91392005047e90476304992791" +68e0549696c5058156ccb0a8e5e28579f3a31afd = "7ddd34b41c3ebced738193c2157992ccab0665d8" +6b0c39501e46e5fa9e831c5e6024aec5e1e9980a = "ba432aa0dc7a5fcf729c4992da81802f84b43c6c" +7692c05f665bb7ea09d7d5ddec04e6341974a1ab = "dc4007ae0c703a1b4838a1ce21eddc06e0b5a88e" +81157ce162d53b3f90a9c114d139efcba7a1014a = "7a50ef22511170477e8d7bade219b9ba7ab27391" +a10e4eb15d1344b8d2bb5be6699cd244ab21b39e = "341bcf32b7e2f00cdc22d6965e0114a2007f4d3c" +b14c5e2d613e51b1bc9f4997732d0701b9d809c8 = "45a254b937efde3457431b166b46f8b39bf6dd79" +bc0ad409d3e4d11a325aefb657f8e0dfdc2b3750 = "befba1e0b56d1efe4f9d6ac0694fed5cf77bf763" +bd9a331269cb4184e27136a8a9e1de59e0182e4d = "befba1e0b56d1efe4f9d6ac0694fed5cf77bf763" +c6995c082d86ca941be35324d56bf6c49e3593af = "9a9cb2c173048fb2843d94f4a66d4a3a7b7f833d" +d2d7933c5ab05a75081418d2afed61a2aa2a60c4 = "507803378c87e41d21376c0072405585fa41c4b7" +d3d6d9ea5cf2b073dbe93c3338c8d0e1ea9dc33e = "9545796b0f956350876310be28efa17880f38f42" +dc3d55be096be1f956c69a0c7b945ee336164e40 = "8bb1dd02b10db8bd35602cbf9d5f0c7187b78d29" +e83236fe4ac1ddf09447108ef456d7ebd2dd64bf = "69a3954a56bd87a0032092d2fb4eeff609af9a8b" +fe2917dad0b0b1a7f106f7d1db9f0b8f5f551f92 = "6ab10cfca9d55620fa6673869bbfaa3ab8661060" + +[27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae] +9906dcd12e3be92a5efd3023ec9580ce59a1ee53 = "4941192b3868309fa7542c39576653a7b4e949db" +acc31a43323612e752db2010546200e22eb0ae37 = "b6c98e91ccae7d193b60e858e71771d8fc666f53" +c78f3af0e9904129e7026c8d2e1592f3c5277512 = "a45bebe0e6d9f70b4f4c264df3b59cd58d895eef" +ceaefcdb4a5c032af6bc497d5cdd46e90895907c = "7e1f3d339a3b8c23375212e656080c27530d5fab" +d9da8d1e9ce256cab9a5f1951d2e6e763bfd939b = "0424e02f73b7ad6cd6b94a6ff4f3956a19cf2189" + +[27fc6e5e-f203-5799-a75e-6abe30976ce9] +011946be8d08114971ee9d939e63f137db9e604f = "a9f48a0e8097205b2d1960a9348a3b0f02b5b2e1" +2e04a6f098f386c931508c06a6b7f509c4fef44f = "40340168b90cecc26c5c8aa5be08073efef1c325" +578d4fcf294f22f3d0318739278a80b923703543 = "eb8f9d91abbd953013a331cb752e1842d8c78db9" +61edac839b41c38ac0b39a4518c4ac59ff8b75c7 = "a854b6d2449fde6da18d084f7d26674fc74f5933" +9046ce6c9106b607ef36b91a9d13a0e68543149f = "b13d7b90f586fe9d324ebb4229d0a63130509f8d" + +[2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac] +047c670e9602e5e52f3fc4f78d815d55250998df = "1853f5da41cd8b86ac2e2bb186411466e3a6a830" +3e9d83e7c5d15184616e9b6ae6129e5402a38385 = "79ae0700a5a302a6ba90138c60f799e155791a2b" +62ca49c91bde647334728f3d1e4b6bf663d5a05d = "e89383d63d136dc178f9682a6bd01dab4ac891ee" +718cc71204d898a9e2032ebe57d705183e2ea7dd = "270936fb3f8fea3af4a1dbcf3516406ec271317e" +8bd2356e4bbd8cc9de28a39878be2a7deef97a7c = "aa360457386a8e83d7ef7d913ef9de40ad754219" +bd40e82532bda8c0306fdccc507336a98b5c28dd = "b6f2792dce4cd1aa7e1015311f5f3f05c7b0ef16" +d58e96595fe5552259d022f890db0128b79a09ea = "97ffe4872db4c4c607fbbb7d3039471bae694999" +e725c52377950b233898a3077e4742ad00995ed4 = "4976431fa79330489fb7de9c01f366a447fbe971" +ff917a1a13d4a7138b414a60e0bd5e9955acb8e2 = "f54d63c201794166a886643882e147098092462e" + +[280722bd-5306-5089-bba0-9ea74ef75271] +a692a300de6e3657b2a0bf57d0df100a0119f2c9 = "195191d5d55fd6bea9836a8f36d8eaa4a7a28feb" + +[281102dc-23b7-58f9-8736-e3566ed2adc3] +28e9dbf696ed46aa54637ed5284b239a8ef44d56 = "1668e7a824500a37a97c203f55e004c67660539c" +33e6a2003530dfc0af4c8fa07a8156ec124894f9 = "332d70406b9fb0a360ff0dd541723cee69cec6ce" +98cb969fd3753061402d2aff49e27719a73ba961 = "24b4c369ff4d07ec77d39ad3f0d441e369c1af2e" +9cee3e9614f10ed472972c98bf0d59ae57084998 = "6aaca8421f2178c651c5e5c6d08ac8421abc6803" +c99c9fb9cd5a2032dd6957103acda73fe3af5c54 = "8bb7861144627a69be05fd82513ea06835c3134f" +fd162b6b95d9f00216b15c868696178fc09d1e6c = "059d272dc834ecc65b66ccbd8dbdedd85b514b1f" + +[2859d429-0a23-5e0c-862a-e399fa3ffec5] +010aa8817134291124f67c9bccf80e727aa2f5b1 = "5b1d05ea0df2edcf6bd2c87bea91989f66a2484c" +349d14e4ca441cbb95c818685e28d4f7a6f38910 = "4fd4dd5a64f1b8cc2462edae363d0b8ddfee46f8" +3ed127d2cf20f73f98a036ab5b06a8d888c914ee = "6cc6db737faa52fccc555b9fbd98c35061a03b04" +47b1a7f49c51f351e41913745f5eac536ce10d0c = "6cc6db737faa52fccc555b9fbd98c35061a03b04" +4c6dc816529407fd393a67d967a52a3bde402adc = "a343942141987b26b2bbde03bfd7810720fd3648" +c592c3d728178193f7d6d19ce63915e7d1483d1b = "68ed67c2b044abf62e0b6cd10aafefa272f1a7e0" + +[288772d2-b0e0-5baa-bf2a-dbc7085676d4] +9e34aa61785b8014f9869365795c193fd6f619a4 = "d731c2c0b173633b6cd1b5e76ecad367d90e79db" + +[28a8edfd-32bd-5648-83f9-9b597c29a4fc] +0698ba9653afe97a00d1af07f80494f430460fec = "0703e705d6db6c967ed2b114c1cd2a381405d6e1" +0cbcbe431182e920a4f67ae048946e82cec34df6 = "e029f14ccafcdc385803e9727788a695c3c95f59" +2476ad9d88e6aed688433b7aa6fc8223f20ef392 = "6123ac4e4c7014fc35cff60bee50119f533ed209" +2e1d098d0892e05748cecdd10a08f4ace165f352 = "816edd477ecfef6b001c2bfbd865e28cb5abbfe5" +852d3b7b7315697c16ae3ef2aa12e2965ac57541 = "60381a016d56ba4b7dd162936f07dbfd7210b3c6" +c4f3cbfd7207ed2fc7e6064b9a220b94d398f92e = "952fbf8cb0de4e1ee3050fb79381b9050830fb08" +c8db872dc22df9e55bc2923d4c1ea06bad38f6e6 = "383cdc4a98142f3e9a0bc4508addf2bc1b78f2b2" +ce7b61aabebbba2ad1c3dbce209634c5d8996014 = "9391e3aed09936350d9912ee8f53b94638d6c7e6" + +[28b42770-66ae-5747-b898-823420be94f6] +cd4e6f26d3b67cff1a2c8ee6088e59877d0e1b78 = "d93477f54ff281f61c03ef22209e03eb69245d15" + +[28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71] +06c57861ccf08aab5362353e94715792a9daea39 = "3da76eb3204c4928232a2415967f60c71aecdd96" +0c46f6e48a34b6c376d97539dbd262a4a651c0b1 = "bae6c63ee7dd17341454fe2bbf616df703c42713" +0ef48858ef931c68bc4cd9556558f0d6af1a6c8f = "67835e2eca6bda6f9f86606b687bd23e4b5c33fc" +1273a2507ffac0afe0ff8835672202583f1d3fb7 = "3b907d9b37cea40d7db04d8ee479d936bc87111d" +16621516cb2a031538f32a66873bf154993e79b9 = "0509699c44b6a481f0e1a09f717a2497fe741d38" +18c05885c5cd31e698d6a2b33508c0e0b17c0451 = "b696246e37a5c61fd7b5517b799896e1daca0fad" +1ed615398fdeffbe1bdb1cadf436d2ed055484fb = "691259b53ef82a40da9999111f6d380528b9e6cb" +291512428c143ccaadd66d653cfc3df5b8a1d796 = "531260a27a5f9034cafdb8c8885f801de2ca5885" +295f08eb7df6b5236a000928cb3f929661976afc = "283bb4199413cfdf8b8b89ab7574e95a4119b187" +2f970a5f32e38a3fc063e712ad3e8deca8685c61 = "80f851264c8ff4cbdc2961d82a9ebbb10ee9f69e" +30672d0ad8dc254d80e22dd130d8940182c4884c = "df34c0df309364cc4a41332c1ba1bc440551517d" +55b513f2c82e42b35e5696cb03212f8d9aaf6a8a = "83259813c4b6344b98cc2d92356b6014f33e7f6e" +5bd980cf58159be9d0e717ae9677595c011f453c = "7195eb6b21c113d2b26f25d2b044b6492cc82280" +5d36fba98931cedee491158412552636795fb181 = "d2c373b3b369e95dc0b4c94a5db69d5d2ed365d2" +5df0f1f69afa45827f90a4256c97e38564ff5457 = "f3ddd1adfa9b08be2de181145945f51e381296ab" +70f731c3de7fc58deb79f3192f766532f7649f9a = "d67d28a1a338a38f88d41fa6f94087db8afd0599" +75fd0208b771444f4ebe8e1cb88f5e54bc70ba2f = "e4593316ec0b21b3417e1a7d1aea8b9ce06771ca" +776047caccdfd7aad34cd58f9352c58bd189004c = "56eaff5fa565c18658d9eed1536a98ae4061b17b" +7abeb35eed59bebb20c3ff7631ae92d8efd96b51 = "f309120e338f55e784ea930b98e5dfd57f87575e" +8eb91b9e8de7c381bbf224a6dee81400030509ed = "1b72866e25e3a8781370bc7b536ee337032c1fff" +90f81e451d884061743c0d200680839418a44451 = "0a358a59baaa2b3419a4459492d2810e07ad5eed" +95d3600d761dc3c04d7432bc2c2265e0ce3eeb17 = "99bc93b360912dcaa17ecadf1ad0ebb0b1fd1dcd" +9ccf71801e48cae09ea2523e59f2b130e0143b54 = "20a37994572dbc353fd316cfab56be347fc6bb95" +a12b8c6fe53d99de1aa40d1f33e614da9358f604 = "902a839004df9da8d27959faec2bc891cbc6ad53" +a348ed682a3b5ba65c313161496042f796014915 = "e6aa5105e86736f80b295fab776b80c6ed995e64" +a8acf5ffcb5fb76dc8d0e567f67c9486dbea9101 = "4f6104bde63365cc025cf9ae58cd2eda12c6fe0f" +aa141735b526232bcfac8d044c00f28fd83366ac = "8b9dd5c1c54d43e86fedb4c0f30c95fe67204a3a" +ac0f5ba9783048c908d655c3279f60413c196d25 = "779ce5ade8e1ac435e27952e42954e8d470f80a7" +b498e299eb80c0ddc62e785501aede4f52108a04 = "e781db7d89b92e706caf2a1d63b68d1884276911" +bad36645ade6e4421a625fca917c2a2ef2dd3c22 = "13d770d1a5f5fbee90ae36cd9f11d5102ed00bd8" +bd1dad07e332386d7567b06925df50c4306db483 = "879b1bc77fadbaf98a2de4b3f2598dec70bf2082" +bdf536ee152561df3517435af307547f08ea514d = "17171bdb96e852934e55448c176309cd00fcf58c" +bef725ca75d87a331fdc68c84f4e36dbde02b09b = "349dd830cd5e5a11b21b1365959598e136e4a09d" +ca0112fa138bcd4bb1e5b1dfc44c9bc916db60a1 = "d77852ed4381ef118fcdbb18c8f962028d8f6d32" +cb7328b57331783daf5e01fa9ad0aa280a4de73b = "06956b2438f2fc6c54eb03aded7beb344994308d" +e0d5ff3637d49a59b78a8daa0af3d0c2c11b697e = "de0982d128a41e2dd8970b5c984b32155f88c70f" +e19c2521749b15f6a8a12f846d10565ead470a91 = "9ea4945b6d5a8e21e50fbde5402debc246a1219e" +e1b972ac79a1977feda0d8f4b4858ba0341e2bc5 = "cbb42708f28f16ad4fad6d6e723e2790b5dfb240" +e31746a96dd567ed0196042a32ec3b336518bf09 = "b16d5af6a9f297d2d5be07f34a587351d0f88bc3" +e662ec8265160d6e69039d6081346b1df6736361 = "99d62bb06874ec07b3093373a8ca313780076d35" +faa5261bee6e9b2d2a9bb73e0c349e9cf7d62474 = "dcb6f5d295bbda568f70bd5521af2370504d0137" + +[28d598bf-9b8f-59f1-b38c-5a06b4a0f5e6] +7c65d67451485e48a076c1907eb996a169295ba1 = "46c5a7b3f4062e9ae9a306c37872e375de01803d" +8b02f2b06ccc9486a5262745eadfffa762382154 = "7f7d1d0e7db52cf18c74934ab1f9c9499ecb5aaa" +92f21180d0be80d382b13c6069e9841795a19284 = "c25a33e961476ea0d3bec73d2b00c16ab5531488" +a2167ba32d33f119dee25288e84dc38825ccc2a1 = "07643c43a5398a3dd5c17199619fd4f53c21670a" +ce7430e3bc2d57b2441f10cbb7f21fbe8bccba96 = "7f0779f074c9c06319a60d567a8b1661640ac47b" +fc5afdd080cc54d0e5f5cb3529a3c0de561e1357 = "fb11574f0bb9d51cd247e35f01a4e7108b26e8e8" + +[28df3e28-0a79-56be-9a03-a8ecf656ae93] +513cf227f57bed5d23dfd23f94f63f474dc0ace9 = "51fc948d8cd97baabba6c34a32fc0d3bf43cf427" +fb9d030c0a72495bf5ad0c5252ec8bceebff19d9 = "4e2f5fe97249b1f0cbffd35bdf08d7336e71c4bb" + +[28ea79d9-6354-52a7-8af1-38e01db141d4] +9d40eb0d7595db6f120a5e9c3d9a0dd4e2733ac4 = "09bf29ac8d6986baaabc2a57cb737ad99606319b" +b683a7df2a00669358c81abba9cf548bcaaa1a33 = "63ea7ea4863605f660c0c48aa58eb17784906e14" + +[28f2ccd6-bb30-5033-b560-165f7b14dc2f] +0c81979c51b15b86d0e889c9ea4ef94a338ee4a1 = "65838b652e74bc54b12fc24a58cf1ed8f8743708" +0ecddc23c2d4c3893e44fb3046e8d7290c68238b = "218b09fc65c9fddc1df93b3783513c2d53f257d4" +39ca43982c476d012aff412a87d319a7806fa56c = "e8e247e19f08e463ddb21b36b0a95a46c6306d14" +40f2ec87dc2212b628d602219ec108f097ba7df4 = "b1afe70ee5afc9b5ed0f62b307232c7534192942" +43c233a6d849803c6891b0060d70cb44ceaf13d5 = "f99242803ad18bc1fb1e23a6331674838fa468d9" +63cf4b453a6692655081dfd7df757e68b1e44158 = "2abd00da4e62d05a3f353423e20e3510228fb75a" +68f697c9a178d623d980407cb60188b0c40ec114 = "2ff6b611065f078d0ff66a11e7d7924c492b5217" +6a42a3c34aa99f0427b6c08f0f22aa46cb6b7fe9 = "c21b36274b6896c0543888b75a45639049ea79e5" +7a20a13d029560ad7dc95ec897fcf12ed1d0ca3a = "2138809b3f56d1de63cf1d5211606f4bcc250eef" +7c6dad842f227bab7fb5234d5c8c11d6467fbca1 = "85103ce811f52ee0a6bd51d2c9daaea49fa2d84e" +8cdb0582f5926ed4d78c6882a015e34dd9be097d = "0e6ce47c2b77491c7936b50b0371b648d8b846f4" +8dfd3d5d6c99ef29c01d041b7d837a2d2592820c = "a62f43cb40a3b9664cbe042ef390a6d634c89df2" +9d73744f053de22175f6504d8e59d1a2e1b5e56c = "b4874426a6dc28b8e7c38d36540e6a4ddcb6928e" +a11e4a9d6de415935f2f00489033383ac5dbf0a2 = "d7d2fb225931c781ca43cef256594478af56235f" +a4141f6562eec07ec85752af355e744bf1a3a5f7 = "5925fa4b78d7c9c3608c67bb4a0213575111d59e" +a92bcac6445dcb5a28f4900de776101e46a3e398 = "34c12ec833fc44643428404960f8f5cf9d7b83d5" +be539bd4af6d05021abf090d6b90a37aa086a22a = "a8499f9b7aec08ce88348b95bba7871fd8e0bc27" +bee2b7d45ff5f2623976e4c012cca4c7440379f7 = "0717e59580385ce0c95f710e53800bf4932f598c" +dac72318bf01a8ffbeaefb93541b504e22893c6d = "400157f679d1e5f4b6258fcf38d4ded870ecdfcf" +dfb745b498fad205bdc5eeb8aa98329b76095846 = "b363063d08adee1d07d33017e26b6708445c2b89" +f0b1cd8e9bb1dacc99c198ea2b895d656749613f = "7615e3a09a38065754f28e2b9c4716c4560376ee" +f73e9d168b0d139efa2953b1bad7fac808db2d8d = "3fe4f1a320705da231f801d90004c5064811ad16" + +[290757bd-39a7-5095-97bb-ca0f46959724] +28758bdea0a55cd05de3f01b3a42a37080d8c4c5 = "a2a528d39a6a5420d4a162e476cd0ce514bda218" +e130eafb87bd83ec7add0848df5320e5de3e9946 = "b513e2348a0468aa5537e8a772fa85b5e822a37e" +fcb6e8f3ea78c8b84d69edb3755d1d27d09f4701 = "ee14dc7c66bdc6bb1426f051442909e0766ffdb7" + +[2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91] +03700097a864588019abf743f3534c1d4e568e83 = "a381a86777a63783670b1303a501587c941ba25e" +075908cbb07b4a65aba4bb549f39367c02b16eb4 = "8da34a4c0725f2c18b4aa534dd8d1a093fc081a9" +0efba512a2bf8faa21e61c9568222ae1ae96acbb = "442e012a63a9126f0d06767ea80d821e1d40aed0" +1239eb0522827c640ab317aa967ba23bf04efc87 = "5d08e054fbf27aaacfaecadbfd6946d4b47ae407" +1c964a9f1f5e3211d66bb6796ec314b0dd8843e8 = "8f107978a32995d93babb9dd9911d02e1c11dd60" +1f529345823583ac85f5b5bfbe52de668071887d = "a4c3272a55d68b5376d61967a5700285ea03b3cc" +1f820915e96c9b5d784fe467f071c00236a60ee1 = "f0a73b00e3905145ff8c37006867a43533485d70" +1fd0983b0af4174a0fd42026ff68333015924089 = "20ee31f9cf8484bd86bc9cc604fd2130640d6974" +204195b17725056ceb6dd640560bc56ea7e59c68 = "fc459efcfa3e0f8631e72b79fa22c79cb485077f" +23b36af460cfd6c147efef9074a76a4e8cf13dae = "f5a8b465b5e000f14393ff3c5bb42267cdb73a4d" +2668b50a37ea968619a10e061b954a7240782d3b = "60fd79e5ff297e8e361b7a60cfc5a94b11aed594" +2a2653ebb64b569a3037400fac3a47b595c5c277 = "3ab7e6186fa089962770deee12ff3b5dd165a701" +30356e3001a12969b4b2d57029de294faa49c59f = "153b491ad7a7a305518fd04a8df6f462642acade" +340d32e1bfff30edf060cad08ee5612295cf7a4e = "4b7d28138899e2668548dc1eaafdb16a21b047c4" +36e5b0159efa59142310ab14ffdd30e07e91829d = "2dffdba5e44928c53328f95cb35b6563475227b2" +3885542a93d2de71a1102da030c798cd51749481 = "579807e48ba233031d3c914666e9fc051c22fee0" +38c62a15e2e3b24c732f9b90b7ded1abc83ce6ad = "4a8426d2108ed433f8009ac49daacb55abe22e56" +3ac64e65a26a44fbbfd82eaf37e9e084c40b2cc0 = "a6f2dd85abc85ab7a648eaf2be55122c14a0a105" +3fc1b86595e96b2c098e91bb2fe56a8c5bbec05e = "4dbfb4143270df431869c733645c69c0c0a23031" +42feefb84aa81d9f8918500ecf159dbee5bcb91f = "0d4f805ee251ffe119ffdbf8d97dc5f8d1ee6ef1" +46876036307915040844a27b5103a91ec9295812 = "c792646928ad9936d1a680f8ad70f26499a38494" +47c198b1dc0a1f9a6af822bb66ef6ce219e966eb = "11e2cfb8db1d26ae2a2494004c36b1d93ed7b13f" +4f34598291e9eb5a976479f15a0ae33bd298ed6c = "57e825c9391d070d25667ef57b844d4d7540a3c7" +506c8964de782d022689f625840a6704a46224bb = "5c57da94f8b38bfcd1e2d84b855a52786cddb5ad" +553a8ce28aec3ef4c49c4c1728ddd7d375e7fec9 = "878804280c0b90012cb1432f7b0596aa318ef6cc" +558d8cfb4be0ebea755ffd92ecdbfd46e4446d2c = "086fcc640d1bca9b1f2cabb68fceaadc5a9d58b2" +576b07bc0fc3a56b7d0018b4d87c77a4eb85d847 = "a0b56637637a9b8f1f99d222c219ebfafa6f2d62" +5e4fbd3c085231f304cb6704eb383aa49f57c6ca = "046e65eab2005c4fbd783879f7350e65e5e9c45b" +6353c322e60a54db8cdd296c6379ffec9473ea2a = "0fdb70bf08c2356e01805a11826208abfca85e2c" +6d588faf6fdf64f4fa48913589b9b13f66afbd96 = "52efc4a50bf4b10d738d3dc5918a46fecf2b78d1" +6df21f0699a189a70938eec809e96ea11e1771f4 = "4820d195cd378926a7a59e6e14727a394cc8f123" +6e1c6a9006964a1ed6e841eafa7d3d43e56e8778 = "bb622fe7480c43f5adce8473fefdb419a1fbabef" +7003962de11031e1df182045e9391f6120a85f3e = "8b9aa2398247421cb894945a34dfa79daba173c3" +716745a39b8bde8f8b48abe87a7ecb300022a0bb = "8183a3c46b660c7b3491a774cfba3b67593e1329" +727c5271f0774a2a98de1daa8e182fd9dbaa9e36 = "9764ad32f9536ed2f35ca3772574e962256ca1a0" +743727f04402e6004f21159a4ab9894e4a2e53ad = "ef1255b0f4f8ff8b4357421f5384251762e0c3fe" +74e8095dbdf55d6ed8322ae52d2910bfef52dc10 = "cfa5f1081288fc99804215a5d487dac978374b5c" +78f5810a78fa8bee684137d703d21eca3b1d8c78 = "4ade14f6e799f71fb6585a351c262a765eef7f70" +801f23f5fd1c36af011c91938a623187d1e8ddee = "3df8c7d3beef82d9ad43cdaaf185a3aa1457f5ad" +85b46d15d6ba14d1ef8703bb16223b0f5684abb4 = "37a2b42c60e63a79fa9787293e389a723e12e019" +87d1c8d890962dfcfd0b45b82907464787ac7c64 = "42fb0066a9c0132f1ed71ee811c55eb88a4e16d2" +8d5b84498e134de9e70bf4d47a0058086c241671 = "39653b48b93ebbc176bcf245dd2e403547834edc" +90c68e116258c36493618833bfbf7d5c46cd9c48 = "35f9748d84586c608a07e792b66c31877ab7eef7" +926f0a395a0c2ca3853d16af480b4e7e475b52d0 = "f62c76546037640b9f8f2ddc905730c1e885e232" +96cd82a5c8461d81ac4d14723abe7b9f075ac7a0 = "75d09d38b2444c08752b4f787b7bee5b6dbfa151" +99ee7c3d3638dfa18a104c89b9de00baa663abc2 = "5f7622208359d627268bb58997b1ceba1d6cf081" +9d851b704cc135ee4ca9bf68f9b0541d64d5814f = "883158cdaf371c92d2630da0ce0b9c73a84c431f" +9e5a83f7364ea9fb6201bd07e9c8b6bd926be4f0 = "63e1db03b40792a752f1912b5ad0716021ff67a3" +a06a39096901fe692a46e3b79c52f255c3fd0508 = "c8f0d68e23733f259cab883115ab6dc30d166ff3" +a1523b93fbe3ed5569a7e241a05bbccabc909be6 = "96df54fb649c28ee7e7078eafa24a6284cd20215" +a2ba466f0b1ba82ed45f35918a9c5804ccc11d6b = "5a0ddc8de18251100b59ab10e364d253f97708f7" +aa5851d83a5b1c5cb3969db0d3b1a6b0bc28b5c7 = "4784541992e77fd8a673912b4d1b411833e3c2a9" +aaa2476723b941a6e2d7c84debd94da98acc31aa = "689df477d4fa44bc0cfe4d75ed55db3a6949b4ba" +ae435d118a9fbd09f528c1b3c0d7a142890e8278 = "238e69cc3c0e1a46bf5521e7f3d48d590d84e22b" +af2c1279b55c179bc3130203d1bf3614ca23ccf4 = "1f503129b3c549b24901601e6988c8ef6edc1a33" +afa33d6fff1cb50e5aa54b0e90613d1b481133a0 = "dcf9fb4db43b5715601efbf57bd54f76347f09f2" +b0974403b8e00945345fea9a4b5943b824a59e21 = "cc4ed06a941d7e031e72d90ca6e8aef085531829" +b249317c3f2969fa5b8f7d1ff1347521309ad62a = "7d2a3ab19a02eb009e119b3c113abbe27e518800" +b2b5dee86eaef5745e05ecd0de9045bd92f703b3 = "8e866758b2457d7ad45c98ff6d0ba32539292a75" +b976eacf46c4e18d6f2fcce7cf77c897315027cc = "041ba5d583a7c5168b02458c8ea620c5af4e4e1c" +bf8e7752f8541e5f0f7ead514b0a3055ad0bce23 = "abae4c19ce940435c46d304d6fbe56f9125d58e6" +c5677e95c9f737eecac254041cab718596cee5cf = "0fc776a0ba91025930ba43ade73aadf86d78221d" +cb2668ba75d896c774762a323c1ffef0216c9b9f = "ec4c7a75021e8fa9497f7a7c7ff9c243eb0e8a67" +cd95f1807def6b03ccdf064c72f1be56f48c1f74 = "3ae8f34d7cdd3a42c2232f15e11d4da413db1d18" +cdadfc5ea72d6330a0f60f3cf46f51a4d775c98d = "3a13b417f7f6d826183615291312c7feda586ddf" +cf943919e9033b84ad1591307ddec5e5a6e451da = "ca77a5636098e5c94bacdbb752771b0b3461f28b" +cfe55fff535df4f70c71d23af0f304a637732d68 = "23bfbdbfb72f612e2bc871ebc4af9a04a4a7952d" +d241266328c17f4c588f6a66985d4e02f2741c01 = "8b86d978bfb8fee67a9ec23c33d90d13e6735dd3" +d2fb04edde3a8afa376d32b38381c86921f8c5f3 = "56c6889a4ec694f17bd226a5e58da2594004cf18" +d6b524c383b71024538fd68efa571f8f1ca9f944 = "b7c552653ba2b81e9d98b08d08d7dda20a80d5e1" +dbc39a54ee7b7174802c1f97fc7091c5c6d792f7 = "3e2d0a03ab363dddbea9740609890f6cbd693720" +dd16c108438a39fcb9d0968ea8d83171036df484 = "afe1b064dee0745c8d68e1d610faa38d787750b9" +dede3150b1fbb04fd0c53018685140c1d9d33c15 = "3de9b9267bc99685d225b294d6570ea988a020b1" +e200a7299a40e1f9d719179b98968542edc19f3c = "342c0fc5f8ed1ac41c65a96db526fd4b4efc72f1" +e21b766cad2440e60ce56144a0aa776bd5a7cdf3 = "dda0935d9734c080e7b61eb34f7bafa1f160b98f" +e6411b644c02d470036d44fe25a49cdf89a15fff = "ed31fbce010eeb967934a1b25f37afca62c28d74" +e906bcb386a70a13bdd95571ccace23ecfdfd0d1 = "c2d4da8c46e5d2041ab7a98d983cb3a11b562707" +fad9642ff8b7a39b0685db4304f137a518f82fa9 = "78da7dcc6ad3aa62e07e50cec4d869f838d0d155" +fca1ba5720da85e054801f9e5ca7fb06d029bd47 = "9f934608fa99ead96c426556784294720fbc2a8d" + +[294b8cca-700e-58d6-a0fc-7d74c0d9f51a] +4d9b2ca64127ed457a04d3d7768b151bdbc7cc8b = "24b1d0d718a574e3d08b3b98c4b325fe1e97c992" +a7a7582690ba5fad62ce784daaad945a71b6841c = "54d0e7b1ff9d776dc01fb9862954e5fea1d26773" +dc78ddc33aea1fc296766681954414345c2a3b35 = "142d30a3983d3084c51b762d15bfcec0c3584f2d" + +[295af30f-e4ad-537b-8983-00126c2a3abe] +0ab150ed5320b01851b3962e4f4c3a61b2e0b233 = "6e815903a237dfaf27c6a3e5b06402f12758061b" +147af43699e3e6c2a5bf69788b47c0f9378f91a0 = "458b898dd50325115ce43b84e50f77576da71108" +17bacf0da01abd04e79dccacbcb8f4f706064c4e = "61e80389c9f4e7729c1eb8bbc4e0c8d3a5380283" +30691f5c61062c172dfc13d40ccd01c34ab23235 = "3009298e8662dcf915a6ec7733f7ae9185b58797" +416ff37ea2080b0bb4c55b66f757d05ecb412d26 = "d30be50f9b192910490152702da9fdb39029616c" +454379abaa01dfdf43e74a4c5690e5ae6c6291bf = "f529d8cdcf49d214e04e1fdc60df0bdfe908f74d" +703912621fd59b21b738cd21cff34d35a797892a = "84c823c7c6ffb25231eefc9b8e8ee0f97522a091" +76e2ce5643e1a35bd4ea680ac5832d76abed7339 = "3b05a3a5f52f22521931cd67362d90c5c00a718a" +7b2266cdac3a6b1d8060140ce89cb09cdb5ac8fe = "884787b371abf0545a318d88c7a48c9ca1b137fd" +8bc57c1ec6909fb14b72fe34068320360f5a5aa2 = "9cc60a44341f57c923d021246a32a18c85c321b9" +8cb8b190ac3d66752db06e8ce39c70069e524980 = "fe2d8b511df29c1aa4cc7e09d7c1ea2c845483e4" +bba3dd267b61dbb9ec8b578b305f410e9ef02f38 = "b302328cbbebc83e8615cef5d68585c4e4c40030" +ea5457d98c692f234200be6b8afed1444aab337e = "20c79d49d6d2448ff4ea73f6aecab31c285d14b3" +ed7dedc11b9a9cf8e7c8ab5a872e1406306cbf14 = "5fe4d1c59798b2e939d68af3f864a38a550a522e" + +[298d2fe5-ed61-55e0-b3ba-7e58c5ff2f7d] +b8ac7e70e95237478fa47957e808a110dd23d9cf = "0f0b1f8c2feea0ebdfd3d98144ad7998e40d9025" + +[29a5b9bd-5f4b-5ac4-b55d-354adcfa5575] +b8624e6585796956374087fd8277738e02f357d7 = "5c28f13e8b8399e0d3f7c575dff8ec22c17f3cdc" +c520867e746416be80e3441d413bf57c56b2d23d = "5b0fa0b4110538621827abe443e14628a6b9e5c4" + +[29a6e085-ba6d-5f35-a997-948ac2efa89a] +02c17b0c7b7c89a3cd44c942d3ecd6766c3e5b77 = "a59bf460665a2ff8d1e448f8b927d61ea316a1ed" +0e2ddea9d6ecb88d9065f324caaa5a81a87cf848 = "5c29140590cbdf2d57489a3290b3ed5756b8285d" +5b577f900f76e3329a95e51fd0ceab8f3240fa10 = "49b25279547198f466a396f2e3b7beeb2009c930" +64629321379cc9f4a3a398132a60cec7d06d4073 = "b79257445cd65b40113ea5b6b739425f3e11912b" +65379cd0115c120aed79b9e2ddff600d0fddca9a = "a3ab7a8ed0f1b1f5d97d471009e4b399da8c53f2" +6d3e43e0a000daf65d62f7fd9336e7226df8f4b9 = "f6b32f2b622fc72ce71341cfe266f90a54faf349" +8be4c1ca2ced1944354b3c0f7e45c312c9cdd0a8 = "4888e0e3407118e89c2cc7a751f599ede6524ad7" +b79b079e855b19644c344e8808f774c553433f7e = "51930213b059f835c90b4a2dc2bc2d6db9e5adab" +d0eb86de97ce86d220027966ebf956383ab06dc5 = "73a93477266e134f87c06ca69450ffc10b81a84d" +ee0ae2c63f7ae43fdb3b5f09bfd4a70b714a27b3 = "7c27a48840e8ddbaa64da55e8761bf61a6052471" +f68dc9c7c84c350b6ceb13bafc61e2fbdf0b826a = "2d57eb26e604db260827d4009f3b27e639a8bd2f" + +[29b9fc01-2d52-5901-8357-88823a8aad60] +67bc479e4a1c6c2d7121ac995a4018fffc844cae = "f30d0301bba75913c66ea508f49aea486144cb42" +6f89f64f8e2d809ec4dcd90e372fe9627f8a369a = "ca27f305199728092623bc2dc71ddf9c051e62ca" + +[29fbe528-8531-5c35-ac08-d2ebca7928d6] +01a3b85c4ba9d73fe93582e87e9674b9f3c77851 = "762522e4aeef351c8aa343cc548e79f09da7a8c2" +16ed2fc0232b77c23701c61a390784e69c87c478 = "3d47e0328d148867a1be237ffaa3325017e07e65" +28565c94adb55cca190082930aeb6dcf610a1f67 = "ad44c1d4359b379c4e4042627f6cf548b8ec9d86" +5ce69367d610435cf747718bb4a5ad762ded87c0 = "bbc40dbc951ad5bae4ee38002882d1fa74f1c6dd" +85bc1cbc70f6769c14de9017a20267366595957e = "dc78bc7d0eabbb62ff2ac38c5817101c0a16141b" +b195ac29ae55c5a6de69eb4278023b71b3b1876d = "5be322c1eaceecc3543f44d5ff33e3b9011800bd" + +[2a33fa5d-563c-51b9-8885-f62d16798090] +8511788315ddf17335c394691dc470e9e2a82a45 = "aeb471151aa7f2e46862e4c117120b7705307c49" +b118fe1207c47973d53b9628ec4baf5c6af3d735 = "ec75cef7e086323988a44eef7d2d7f7602500714" + +[2a4eff87-6e1e-5ceb-a32e-3bc6a5c2833f] +0aa92320286ac7f4d9cb5a021472a9910f35be49 = "6cc61b59480867447a3c169679de438495cec6f4" +166eccd5a3295fd2920706586e0bde4e00ae532a = "b5e7ecf51deae2c0a84633414f1d44d799b2d530" +1a684001fa87b690ba57fbe1d5b28f2407006dff = "031f1bfcc8d68d8086839ec71105985e22502542" +2f3aa049d09e58af44790d83e65752eddc121caf = "caafea8dc8eba1f2f2500d1db6af9b846eeb542f" +370526dcedcf0e4615f55b9e3ed77bc1670c7aee = "3a8fb5aa3e91aa3cf9f19a415ad29b0a9e5bd16a" +435c7d78df6c3f0b16f046de09455260dc3130c5 = "a4a5fc2e12da514f5149fb68552cadb5e25733b2" +4543b2a37702373d024171b5a6d37f26c7268531 = "b56bdad9c82e546c0ef7ddc09f3b6115aeb6023c" +519f02b90a6b89de1bc2b06d225f51cb972e02f4 = "219d3109827b494fefa44fb31ed63550acff8ca9" +bd2b12fc1a1bd163aa7aef962f25d89ea6b78623 = "825ea5164cebd766e2c341627b9d853fa23d171b" +c5637219405c914deaa3ad0eaee624293a671326 = "104159f4891fa205c2934603a52c8e7079158edb" +cae4c0ad789b767a2b81432428957f12be2a4340 = "4651e488fbbcbb5c6a2028d6ada1622993769043" +eb58d4892dfd417b3d615488e4a4cb4d34cc9354 = "056b0157cf7eaed8430a39485c610312c306fab9" +fd3b9b7f6c6a193eb91ef4cb70667d0f9924dc9e = "c88548e440830f5a1f5253357757af77d2f35af5" + +[2ae35dd2-176d-5d53-8349-f30d82d94d4f] +9596c7668840aa08297b0ebe1c75100ce00ffd96 = "0cd8b4012b55986ffc75fb44a60a4b94c30ee257" +f9297518d83949f2e0e38c8750873c5608494cf3 = "58cd55205e31a162c72ae3138b98a8ca4b20ac8b" +f937a0f9d2c90a6243e9ab69db877b066bfba55a = "72ba105e56e70a297faa59083dc42aff434a3b89" + +[2aec4490-903f-5c70-9b11-9bed06a700e1] +4fd3a525bc19cdcd86d836af03eedcc6e45e96f1 = "3cff6ecf49aae9b7092f38cff941591ef6553333" + +[2aef5ad7-51ca-5a8f-8e88-e75cf067b44b] +1e4999f0bae86987630f39f64e0753d5412b2a94 = "e28c081071760f22ab4a93381cb6429c9620f862" +1eded27a27b4abc6cf29ccdaf65327c5d4a7a466 = "85d0362c3cc2e959cc71ece10e9cb45452f0453e" +3f99898151d433b1600e7486e9c2076b5a691183 = "0024c2fc8e39c45a6a66c0e47d615c3ade805635" +777ebeebb2715f52d2369b74a597c713b3f347e6 = "520a614ea0c2ae8a025658ae3630d18c510d60b5" +89bde5df1e52402b8355e46a3f8ae9866738de2b = "aa1fc28cd785f7ac4a74f0df900e6e6cf1ab5782" +c8a6c60281343ed7b9984949a5dfc976c8dddb18 = "cda3ee6777d825643efd553a16c37d57692fbd40" + +[2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7] +17f606b3a23e117cdf77b75c49f1c9731366e28f = "1f8e4f2dd17a76ae1300da098074c3aecfec9d7e" +1d17204b1b2cf15f2289d3c3190d419941ef4ce6 = "608665061c51b73e843edab3a7884c255d730e68" +21bc9e9dacba4d607ed686de49adcd3529fb9f12 = "05eff2219d8cbc2d3538a7c608bedec81bcd0242" +4ae5fdcdeb9413deb9a2a7787b22c03e4362d93e = "8bd25ec8e759950e670ef60ff2aa9efc2cc8e554" +82356e2f45005d63439fc3ae2338dd2fd1331fdc = "5e2354a41d198910aefa85911feb5d581dbfcaf1" +b2e5208b2488c3544de6b9aa4c1725f3b2ecdd35 = "89d3e13dc6a638ee380a3a5b6306fd3b1c7e59d9" +b373f99f52dacaa640eb519757a9fea01edd0f92 = "5cfec2e6cfc9dd0b1d86ed0fd03d3138ed90096a" +c37b7a7846e13cf20ea6ecc962c7d2c9d1562938 = "074561ef2cf492f1c32ae8d612f3843959337319" +d530c399b9bc68894e30f55199ba633872bab798 = "2576e12699275a1c13e32efc552ef287247016c9" +ddaf44350873ab86fe89018e383c2fbb6efabca6 = "64dff6e69de2e70a6488b12339226f22db6e2c2a" +f40bf8741fe0fbebdc6e1d1a2578a652b5d0088b = "9efdaeb33417ab35a6f7fdc3bf83742d7f771be1" + +[2b3899e7-9068-5c5c-a4f4-f7d195ee295c] +679101713ec88f3b8edbb6f5f9cedd0a6b0de124 = "d09a9d96d5bdca5da037819309bba251300e19f1" +7bedb7091e28ed821af4c2cf622861c73599d917 = "b8d1fd850f36fca83f9b09660b3db4f5d69e685b" +8dd082389968cffc221c967fe7e5347890a2d9de = "e77b116e40472139f6b773d2c7a515733f225ce8" +b39078af7dcbf6d01cf13d725a29901bea047c22 = "2198c72b329664fea9c988c27031571c42a9dd7d" + +[2b5bf9a6-f3f8-5352-af9c-82bb4af718d8] +24a627c9238e2edb75c85bf922d280d326a82a66 = "504e5e34d5c984a6e59e3593fd2eb119ea07de47" + +[2b5f629d-d688-5b77-993f-72d75c75574e] +097119978b61710328f42606a78fd37fdc2a0d6f = "68b8fe6164f6bcbacb9d5cd567399402452a0493" +0ce78b85b600ad7f8f5a3514d88a253eca2a227d = "2505aef7ebc2098f56795697e94b80ed3cb5df85" +0fd1c7a6083510fd2eff04e686bb08234b9441d3 = "ff1f7ecccea893359782e7b9674671eec401238a" +107eaac9c6f261397fe36e9883bfa3f5738597a1 = "136ae1cb62b45a9bd32af1547751ddb2521a5ef8" +158eecc43c61b05e4062778d074e2c6f03074fc8 = "4063fa9252de5acd9645884a34ddbdc4bffa326e" +18b8a716b19a375792f09569218892881c7141db = "a4ca64f39e9c125bbfd78ab1c703005d96eb1e57" +18bae8d2ccc72583fce9be25b1e2e126fd9629fd = "d9cee22f4547fa374549138060ae06d074e40a0a" +1bbf95d3beabc290df34b4d3d067b48f073d0d11 = "5f29d6a4070a385b5e2b734c5d6507804ff62386" +1fb0e96dd16f5eec046053dd40984bde2ce9ce3d = "fdfd0c557291f4cc7213f0f279fdb478c01790a6" +224d132d688ab881d0e25a90fba15e947d5fb483 = "7f3a71857fe3fe3cbb2ebc895e600dc299859037" +22b8650f00ac44eae78584efbb99a94477b86c66 = "70952370e1d39697d3bb44bf270ae4631c5789b2" +249114216a1f0a5e470cdc0579761f3b19090642 = "899ec1df550f2af0199cbb40700ead762082a8c8" +263d46331a896f26cf1faefd2e09e64525863ad0 = "78fc972437a66d3dbaeeefc518efdb5062529e8e" +266412eb17414c649c72f8a837e1a9aa1ad1f639 = "5f09d953217c92837eae70f117881857ebcd1d91" +28200da52fefaceea58cb8c0b703e25af7de84db = "ea777440ef18dbe4a495cb49e0773e3de3fd0bf8" +31bea309a404b3afa125de520bc2660c250c71d3 = "95086186b0952361ea47a714b63fad181e5c50d2" +31d0f54f0627dec80b513e53dc8104ceb7d765e2 = "0d64db6d0dc602dc50de44de9b46ec5a7b9a0780" +3507fd897d9fbc81e16ef9394574c77c40bd1a5d = "c259b7ba2a4f8dd332512dd051283828bbd277f5" +373998562ac67b36e8e4ea150ba03b6af003b5d1 = "ad2cb9591b24929ebb37a1c16c941f7d6a1492b3" +3761deef8f6b20772d223db5fd3f624f07c985ec = "9cf46be3502c061b6972869636078b66cd65ef27" +38ef291e544715ffc98c906fd8ab1e27aa6941a8 = "021b3a4284b6d15193f9fa10e5f7914e9ed9840d" +416323fc3cb6721b7467b25d36bdfc4022b5d070 = "5fcbd4da4cdf6cbf8aa9fe1014ad2aa1f314b75b" +4843464fe92d951d65284d36270c6c1a7be73708 = "864c1fd8376b12314ea9acedd9b8e568a1e30295" +4a1307f62b069aa1fda4fc5f9319619573e2e66a = "60d140cbf0a7f085af90e78ea2fe8b6bd43c0942" +4b7713fbe2e4e2266fb3bd8b5f2e2af92ef6f1ba = "3cd6149da08856470ae3e97f5cf6c10dc7e42779" +563f709c7fac9cd851afd7c64db7a7e721ce0711 = "a75f1a80529f81a6bb36e2aeb4ee786e5ee9b1c8" +5a82b25f77f3004798d4bb0c4892b5e25b7f6561 = "93d63a10e4f852804627a83e5fe92c95947f343e" +5db7d05fa08ec40260a08ebc4a158b7a0219ff87 = "1357003c7d372bda5303002a4fc9765e4cf42d3a" +60718a2613d2cb6160bef2922e98ca4f70a86d50 = "701ceb2d17c7c9ac04c7c279d4c12ee7d3b88fcd" +6125789a0ecef877c33571c554d3dfaa9fb99879 = "64fc01a2fd6dc5465418c037bfbc2a07277fedfb" +6146d23c21fd44329fb405546317a24e7eba7ed5 = "1480266444cb8d255d357c7847505f986a0a2e10" +6859cb2d859eac341d0e3d3ff0b0438098c7d757 = "4ca82e01ed35f4d0f3ab1f677b44beeb54705c83" +6b2d436b5780a53dc7d661663014b01366ad6547 = "f7e007c15c267db6a092397fc6016431fb55480a" +6cc12def8af8e7e51b458d65f48e43d97aee4af1 = "cc7347c5e03a6b773bd43c3ac89939662eefbc83" +6de09407a74e30b6d8c24ca758b7d6d796ffa39e = "d94647fde48dc35752a16e3c179898c695a89d3a" +7131e45fbe6f9c0f585208c4ee049d6ac6774022 = "ebf7480d8461e2f36bfc252a0eb1cce5512d38ee" +7415e3b09ce23c05f6663c6ffa9bf4e9d3bb31ee = "0a1ec9470874fd64f11bb8317be8e885c024be82" +742048aff0532c69c082185f078f25ae5b1695bd = "c48b70581a6335798cbef5c8686fa1b336e8359a" +7515a9eca2f3b402e7758b46ee92df16f627842f = "f7654aa32d9c1f3170d98c4667e5e734ca06a98c" +77dcc498fe8f1268914b80a601e44ac91cb200bf = "d77ffa703af4b9ccec4022db993740c4cafae621" +79b57ce6888720b397adcb0e85d84b9b1e67fe97 = "e14184b03a046d5e5e79224e2ece6be03feb1ac3" +80df0f6fe831a819fa6f549d72a3f251ba96ac32 = "833d0037958a8f758c94ef5df0f2df08dffa779b" +81f1c22267aca811c5818b628ac3c6225897c673 = "9cab50bca9164c29c969a1d0ae9b90814f41557e" +876cd17228d6eff8f156ea8c191def45e0eac2b6 = "f716b33fd76f015c0956b4c0371ee25dfd96e707" +876d3b96b269c8d58941cf42719ba5e1c527911b = "b5e9e2caf0d8641c862eeb8442d07e28c7559d63" +91209e3175758a118576152401ec324a18246312 = "aec41487f65af9685ed65f77e485e4220a6d3d62" +92b19c6276d22acdcc2770338b8f75cd69b61b1b = "356ad9d02ed2d5c5d97ef69505c6549afc4a33f0" +99e077dba8345f8490f09470da328dc567446f8b = "fccd4150ac8f6ab08810d7eb99c6c28a4dd86b42" +a6b0d49ed2272f04ccb43692f8e4adc4aad39cb8 = "794de4dc36b5ae62f8a5a6ef067f89ddbff020cb" +aacf5dce6646aac1843b0fcd5b22c550377312ed = "c1e9611cb06a350d23b8f443e7a5c1cd98083d4b" +ae82a17ca286ed1f262f3c574718d35808f5d9da = "11507eb11c010a798f050a3c4a9d283a5bf80544" +af084e64d4f954abc9098e6514528be3271ff89c = "71bf6014e9545c6c5fb95823afe7fee6630f0b89" +b0ad76b3c3b514408b0feda124a9049f7230d3f3 = "53755d2e1208626b266121694c7ac471b01c2940" +b0efbfdfdc7a713d48d1bed563795579fb90f3a1 = "c28bb03c4b845cc4c0cd82848b710ffbec1606a4" +b12cdfdf5d45ff6ec4b290d0294f50d3665238f3 = "fcd4d765ecb8c81416f2e2e8e7c407c76470058c" +b40ef2f290a137044ac9f13decdaa3e816cd6de7 = "70e3f2b79eaaec9474e7b683631af8a06b9f24db" +b5f313b8b6af06146c6a510609371927436b134e = "954a16bcc06ca1ba41b077583dd16afa5354408a" +b7fd36438e1413b31aff996045cdabbbad3ec4d3 = "2f9676e68ad5b971a6342fc8978aa8a8f10556ec" +ba96c2d3d87403c8c4dba43056a4a6ec8ebc902c = "00754ae54cc7b6b67c20c995f42511f3e155cb64" +bb95b694f3e8dd94c509131b9cf4b899880a71fa = "3193429648ed91a0212d1e4ae183083e7d3cb03a" +be480ecd3167104a6524e9222bf1b384622d7724 = "b032e3a4d073bf50ab0fdc564de118a8f073eb56" +bfd3315fe42930b16d5607b86720488983c253f2 = "0e2ce723bb4b72c7703260914dc8ab846dabd359" +c3a26e9248cb32232befb8f945921d1dbd1bd0c2 = "f3eba1aafe28b9506ee71d517841d10e828cd6ad" +c991324af55976c9287dd93762fac5fd45503c02 = "b2d88e0238823d8509fac2b2499f8b20c383ad4b" +cb539fae5bc9228efb7ff18398095d2821456b64 = "af069c5759122e00c0b25014f918b5ec125e4bdf" +cb89140e015df3630054871bf9aef4ed9ffe7d39 = "459287ce73855a042c3a964336b782bede17c1ce" +cfd4cf9f04f16ea392d8e32734eff5562094c5c7 = "7c7aaf3de015c470f4180145f085937c03d131eb" +d2f221bc300f2eff70edb8d31ef6debc1a55e2fe = "23d4655135d9c4fd5e23a5dbecd07c4236de48bb" +d2f77b2df365d31f4f8bb7c7a7d6538df0594127 = "e23207e1d5572ef0cdbaa9d311abccc6ec082ffe" +d3310cb7111452257a930dd872ddfc71870acdd6 = "37103ea0e77d9b3e3a5a225cb7afde57f98c6e8a" +d70aff4d77ffe95f11be4e067f5ab7f298001cc5 = "5fdc5559664b85a7dfbf7b1f5645f9b41e4a6c39" +d9626007728dca0580b361ab23f2d0f6d6409e03 = "c127f297db472f1332ec21c70a53a0f20b014d6c" +daf99aa25cdad6d304256b30bf9f2bcc84198f5c = "f82d5f2d7202eaca8d79ad029ac23f886d7a8893" +dcfc2a38b2eca7e75726ce8346ef21471c9c59d2 = "fa5c7d19d30b71dbbefc9c72f6a3c438f250da33" +ddfa11fec443097624214ee5eee454183d37fcd0 = "594afc90728b04a52658d52a00f6cb33c541a5c9" +df01c646a3f8e38fbf4d254d1091520c5a2b35bc = "e394ab45bd36214c3494c91619d33a6bc66634c0" +e0d9f4326a69cc38b885adc67eb8989fa81f32ec = "5b396b7677089fa0d51a71c263e7c788f12bc839" +e344bc17e7b5b7ea0fc25299686d73f175d5df12 = "19e67b8742b26c123e9721abbfd4091e9c0c3cfc" +e39e0c45f77aa04830a8c493754e873aeb4f3a42 = "55ba070e1e1efe7369cd6c150f905f9891aa3ca2" +e87054faf09e6d720f59ccf6b8bc11578b1bbf94 = "c0bc097f8ae4d433349c4d2adab53803562ee010" +ea347b8d887ea1fcfcef06c0b5a4fed44605cdb6 = "4be42ce092ee6bd763a25c4d5f888b949280ac02" +eb6a836ef2d5e7ba94cbe7fbda9a59b81a2cbe97 = "21782415bd7d7b6a974a7d7621a146691c517f9a" +ee959d4f1133a42649a569fb4941d35244e28890 = "740416ddf95028b7c139b734357ef32ede324017" +f44ecb55cd669a9e2817e27e35be7a138e28e4b1 = "80544662d4f9ec7bc676e5e41367450ead4d79a3" +f497cb7672bfaec14badc0244ee3b698b2c44c8a = "3c283a7a8cb33218cc8c01ee67433a3b8dd0e0b7" +f5a8a8b23809c4eace6400919a0ddf4807cde2cf = "930e48a56621000692d7efca6d6b3e79c50e0c14" +f7603656bf59128b3a3146d04920c70e841cf726 = "20592b28b5fb9e65de096a79846643e0979cbe55" +f7fc25b5ac3a0851b4f6971e57069cf9c66ffc4d = "2631d6b44dba6c7f64eacd04d3d1be3dbb99800e" +f84c545d2cc739ae03a6b0df68c105d98ed680ef = "d252748bb4077b74e7df0fbfe2e4528ee6c83825" + +[2b727f88-579d-59bb-b93a-095bc3108f36] +b4d31cfa307252c50a64c1d04c9b4368df46870d = "aec8dcb552850845f0c09942542bbdc274881a65" + +[2b7a1792-8151-5239-925d-e2b8fdfa3201] +56324d68f84e34c100f2bc05789049f0114258f8 = "4bf337931a0192ecbe731d1b67baa62ae69753e6" +c7636ddc1a3227ad460f34ec06b5c1d4fb568152 = "4ae16beb48985ccc7af67c424588d9968b7721aa" + +[2bd173c7-0d6d-553b-b6af-13a54713934c] +5eb7d11a4a042607b7b83bbe859b8aa6206053b5 = "0f900265ea17ba5c4814c874aec0551d81dfa67c" +7d7f65bdc2f798b5f9aec6098c8559a824aee4c1 = "88fd14646a7c832bac6665205bc680e60b1f26fb" +a430c60a2115069889f56b2b1637ccb5907236c4 = "010b7fbc79420eced5c52a66181b58ca1fbf43a3" +e777aa7b4d71af843be1639bbc20d6198f3fdaee = "6cba1f6ca4cb3b70783a22085211b6d15cfc5859" + +[2c0eff9b-9a80-518e-bf77-efb53308e6ff] +546a91009d7e1e0deb7f4afbb6ab726fb67b151c = "369b807daab0f12dcc5fbaaeabf19abc8ff675cf" +9711fc747efcb1464fd96675eeede02304a17eb6 = "03ee00595b9360f3274b70beeead6843023a30a6" +9a0820f81eb220df53dbb2aaef5764169c20a210 = "9e0f0536a12ed06958d5c1177f4fabdb1bb68f4a" + +[2c79eb96-f1c8-5833-9e83-ed2fdcddfc0c] +dae4c209208ff566ec3b8b0f12d23e7e1a8b3719 = "fda1bf2792484116846eab609901108d213d0cf9" + +[2cce017d-b860-5b64-a7c6-b523e7e6e8b4] +5cb8cd41fc2966afbce12fcb1c9647c2cf36f594 = "fd7f554bd9e55868aaab71b95b4f9ee05afd32d5" + +[2d0ec36b-e807-5756-994b-45af29551fcf] +0b0190665b22c6af82a19c04527da706b28ffc98 = "5290506c9f6b521a9c9a7807225c66f07df9f95b" +b1b763752396dbaf076264c9df79d391301cbe9c = "d819ccb13a9f916b3e9376a3a64af43963e082e4" +e18efc7920aee767524569539e529a86da2ac703 = "8345d62a4cf295d85fc56aee81de4b9a4a770796" + +[2d3116d5-4b8f-5680-861c-71f149790274] +5ec71525b4f4878150b9e7ef2dd5b3a765eb7efa = "f178f6c34231fe2275aaa0955bda9970b2d6372b" +88b4871a877920f9c1379ea77e579ec675f5b8b3 = "00344b943f0a8a3403251a73e064f9ca1a43f2d4" +d12c8728206fd37d64e460d2631d16393f0f2cf0 = "2c2290454bf2043ab45a7c48c19d5a119867b364" +ed79aad8c8a54b1aaefe4ac925cf5fe3fb7259b5 = "7b4040c842046dabb8fb6362e8a65da298b6f7ce" + +[2d52b4ab-c3e3-5ee9-8cd7-16337136d172] +0c4d1518f09a7200068311dede1fa65aa4df7a2f = "b5eb98899963970ef53cd40d51ef2ff6096555d3" +4a46606490fd02cd14bcf54d4e02175fec1ced7e = "b465b5f7f9f38b7150945d1455584b1974a0db84" +59ffa795a2c732af6863a0181ef768b89bfc6962 = "b563196981dd563ed91ddef029d50897c91840e0" +7fe183e57da8045ec4317a54e8b3f887fab2c355 = "78a49f0b3ed725401b68d8c7946681a89df930cf" +9c37b3bebc177bb18430adf5c445508596c9fc76 = "9d9a52c28ed94d50e917a20083515cbeed11f92a" +ff396c611bfc17e836d14d667feefe2ad74a2554 = "7f643ecdfe9ab42ef3dd3d8289fd690493732d8c" + +[2d691ee1-e668-5016-a719-b2531b85e0f5] +1f3d5b3b252069a1627b6e3446edcb26bdccc5a2 = "3bb3f55546b8251598b157a9c03b1c31b773845b" +618b1609ed3bbd44ec685092bbc2032c09d1de98 = "589673418e6597ef3606cdd8e397d402fe7dea24" +6bf719464a50d7d80dd612969cfa6ff08ccf708f = "08437ec937fb8628beeffc2934c8353437f033ea" +aef30d3409478169c9965d3ead1da696f423800b = "d247a68139bacee7c2e40ef814cd3e9d4cda1249" +b4a63b37ce9b4048ca27d3de1d80b63485ae3a8d = "394541b21886813226b5d26ebe9039f5fe6c1b22" +d0c5ff1892d12587c0ca3aeccc6dc6372c3d0f32 = "847562d470ef5745b81d8c4e9f0c2c4a9b2792cd" +ea446282f1766208e4374942db88c72a05b835ce = "bba5bf2793d1245bd702f344122a96cc245a0598" + +[2d8a0fbb-4798-5e24-a1ee-cf44ecca4972] +f9fb1c0c0e47c4f96daaa65b1163f7a0807317e9 = "55aef286e947920c2904b96fe02ef87c4691407c" + +[2da68c74-98d7-5633-99d6-8493888d7b1e] +06932bc81ec450ec447c4ce3b2bb3cae406f3f86 = "c6dd260061bfd5224f89cdd30df551cbdb793033" +2d5c3ed3f080d12e7532ea8e13428230f55e44d8 = "c0531c743d34e0b4cee1e684d0ace6483494395a" +42945ef45c1777c09774cd720a8641f6e489e660 = "55c4ca4dfa17f4e80b90ee97e4baa9205a266650" +74e68ff3a5511f1090a33829fea4fbb46c0da978 = "732eadb24eddb950b004ae9e73b0977b9d1d3dea" +9d7e77294eb1e7ff259ced442c598fde39adab6b = "6c631635633e0546d32ec35871b1d62ef436eea3" +a279a6490e27cff374bb77cb358a2fc458213190 = "0df104e289c725efc537799d1c7c5df6f3751fa9" +a937e5d7e9138591e060cff8e4156ea9af1c83bb = "0669136e1cf7f2c88ded7a9ab28be21261b7eae0" +d8f5bf3df381dfff389492ab4a6cf57f4214d29f = "6cdebd5880bcb8d461efdda40ec56e2df8af3179" + +[2db162a6-7e43-52c3-8d84-290c1c42d82a] +487307f30024944ac1cb0d980f52971857a6303f = "6d0a2d8c3f74a55c468e5cbfdea46d210c9d3565" +82fede6851125287dd1a2443d50ee116036cbfc2 = "90e4fb5a885ce1f98126040a6d4b9e1820973b28" +9a2dcd45d048d45695b0da08a761cdb9381846d3 = "b7c1b8c02f01593182cd30712a3fd8ed97c6a2ac" +a76a1c6b81bab576be52df6d3c57b78331cf7028 = "acba3cb06e5c7b3326e1833e5d2ce1cf0260d3cc" +b2415178cd37f32dfb74d6402151dda3859e7076 = "19a343532adeb69174df8c91acafa58592abc300" +c6fa8d8a1ce548617d6da3cadf5b87abbb45f06d = "7e1e076ca3af38e76dfbcf531b8b3979c870f71b" +d661a430617111b365c5d7579b2ae0d9547ff310 = "b80af7f1de7073e29674efe7993b952791381c81" +e9dea64ca3e5868d4822d0b1ae09a1e08c8b7cde = "0fb39c913d068c7653a1f33b9b61bb09a042abc8" + +[2dcacdae-9679-587a-88bb-8b444fb7085b] +09f8838c3c391582825ee2299cf6304c9f49dd11 = "a4ff8edd2671b65fc72a6cdf24dafe401cdbabf1" +0d0fccbdc012264157f4eb7f15c6e9b1c228c9c6 = "f7309c24a5fe5f85b115005e76bfbed2dd5eb49b" +24faa0355a1c96790205f6c707d38b5917c0d835 = "d963edabee920b06146d818f18a6c6dabd0d3c37" +9f3c402f5223b4bf23acedf208953228701264ae = "853ef31c209cdba661b1538d6988885ee4bbfb73" +c654163d3ff5cfdff3bc6531f5c3391cc10b00aa = "58edd63407527def5446b77fec3111c17f59bd1d" + +[2ddba703-00a4-53a7-87a5-e8b9971dde84] +3632fff922519d6599c46a4a893a44e9c8b71a30 = "a0f48416a0d5dd1df4f4a898f4c05eb2fb7e745f" + +[2dfb63ee-cc39-5dd5-95bd-886bf059d720] +3c7d2760a36a3e03a8e3e12901b411a69cd97f86 = "79094be09feb62ae90e3a5f7c614ef03d0bf2912" +47e6b14e8ad9c3da995ce8c5627d03b357b65cdf = "ccf42f7e41297bf59cb1627552979b06f77bed09" +761cb054fedb01861759518fd13da4c5a0169f9d = "eaa5591417bfbb3888b5a2c86d4b18941e1aefcf" +feff9dc408f55f59cebe326c0a11766242c4a584 = "dcc18a0703f7b459e2c21f3e3341b87d92cc4a11" + +[2e2ca445-9e14-5b13-8677-4410f177f82b] +2c8319c512c1123a39ffcacf2bf14f2a9cc30670 = "59e6c2b6f12fc8563eadc18e22cf4678f2847346" +588110263af95316dceab3ddd36e0f29ed36610e = "3550a85842c88b236af6158572075b9a55907636" +776ba1047a43a9b646d5b1fcbebefbb26161ba7d = "e2f7aaed1d4892e41158e65aa631864d4f82fdce" +79d24ded57f46978cdd547fd5a00e7deea4c676e = "fbc374f90b5235c0c946795d4d1a438c222bb0d3" + +[2e475f56-4567-5c41-94ff-3f69a29378f9] +11766c15b00da3f9c1941a2d0144010b27d247c3 = "d68c7c47ce40b909cbae52d946244c50085bbef1" +2754aecc02bb3de77b95ff15f819d23c073b5669 = "a372c8b5798df8e814ee27d42d3375a15046c482" +d521139e586b1ff80e2f9aa333c79e62221f1995 = "8a1c4a994d24f59f64577b6000f7314a3ef61ab2" + +[2e7db186-766a-50e7-8928-5c30181fb135] +03fc369a8fc54cd4e60255dc7a674600e0281b6f = "91f8b83bc4713d42df2b32bb7588796a268d8089" + +[2e9cd046-0924-5485-92f1-d5272153d98b] +02fc617bb2efedc90f839a1832f1f8b3b3220cab = "c82b54e37710ab58610dca27a8ee4e892bb083c3" +083dcfdd0545ca85d7fa99686d883a51253e00bd = "6e7ab5d182da3d37e6954ae7d2971cbec68cd832" +0b206210e6a60df20dfe621a1cc87bff01fcc717 = "0356d5481b6e3368640f5141633752a11435d1b6" +0e3974581322db365bdec0dcddd361526fde0d0a = "cf0d6565830a18181ea0aca4a806d442a8ea407d" +19f6fa03ea469d54e05b53d36eb3c804c6bf99ae = "9d3de5295bb29905022556b14df63ed3b4b9b459" +1d1f4cf22e754c359c9e88e45a5f152668ca372d = "f331007710caa681a0fe70e91e161ce3555082e8" +34a1d5a957ef5fc15d611fdf3125de108bcaeeea = "3173132f59fae09aa57c9976078dcf0aab9b0739" +3658c1adce992138219102066dbf1bfe36306257 = "fc7988e779d2dc63ec859dd2d4bce6dcf33fc3ba" +4c3792d5328c7b025de7d76eadabc5ec47a1a703 = "1bb2572bcc5eca719082aeb73f9e5a1fb75b13d9" +4f83c1e9f7884f1ec23f5bc4225ca1979ad66126 = "c0032bb493041df56591652ecc5dee739a56e457" +6f9a2cc455dbe8be03964513614e51462e97f1d9 = "16acaf4cc188f61bd55f2970af330459e95f073e" +73a3d7b65b8b43a4bcdb56e092873e9e57f5e38e = "f6e71ce30ec8900e2e5ab736cb6064fc3dc69707" +75acc22732076014266324f60afef69383611f08 = "a09d810fbd20a7da3429da356bbe1ccc5366c60d" +75d9d1dc34e5d6d82cedb381fecae0d7c341a861 = "e210b407d1dcf8f578dc90f0319222e895decf27" +779a5ce0367dd8710248102b274e34a548c5464a = "c3805db6a999c8c3d2a936a6dfbab2ad2fc3404f" +796638934c8633baa06a0e48f6f2b7cc1590a8ec = "c5ae17feba08049c3a473cb4eb22606e763f0a02" +804e0822b8d3ebaefc9b3d49a4061e00597bd100 = "6d0b5a82e8c08a93fd20950c5e21b254a5ed4106" +81f9b4f02ee4f941a2a39bcb2d99c404c0fd8d39 = "c2346d0b396e6ec35d50075b454d1244866d79aa" +8498bed9a35d3b66723fe09e0101fee2d089dd0b = "0a5c23e506d0f41ba5affb5859646a7e42abf835" +85f8771162106e5d4b8522dbc01ceacd22a53d60 = "27d60d861cc2bf3fa222e81fdb2fd889d10dcfe2" +881d97e3a84d146ef430526dfcb294b0b152a621 = "b1e38f57520a778a7c3b016e95f459c3c3f96b41" +88d88800fb32295dcd5ad1f14718d001f942be05 = "ceebf60d9315c376e7d800b0cf0eba115080bdfd" +897466cb5819d367b81e6056406df64dad43d0d3 = "c7bbabe20ae571965dfe5d07539b65809323b9f1" +8ae65514dd49e5dfbd4e048fc5df3aabaed1d6c1 = "9c29927aa9295b1810c18d6c6bc55d1e219e023a" +923494be3d78bc53456d4399298919f368e8fe56 = "8273f13a15aaab25cf1f2d7680b72bbaf08a6251" +980e70f8550b6e700263c8242e585473e3cf71cb = "c480b41b0de4dbdd343020a25cf0eca49ff0de19" +9f31dd394d3a5c2a0af0789ecd6e64164fa8cfb5 = "cacb785b1c1259383b1bbdf2bb14c6525683472f" +b2988a8582d13ff1c7457db898a4e6d2763a5a18 = "12d37e1669c031fa20c7ad44611ba36b530c682a" +b664e423999b93d340456e6cbf1fc447d0e509d8 = "b3e45dd2bda534020ee6453129874aeb29deb19d" +c8b7f4ae47c6f61cd3e0546438d5baaba8d33a31 = "6cc3b26b0d394bb94f5491cea7cb1a08644d6d32" +cc605d89910b84601c10005b4758bb535291442e = "8cf69d78462fa343a713aa6da52850f1c69763cc" +d65c5b1beee09d6904678ebe1d32ed8dc91f23e6 = "b7a087e20fe67beea3cb9f1728107367e82fd693" +e0281a0e78e6c37e0882420ad692d08230bda37a = "9c7490264f720ce97494152b3bb8c29a9d1c6172" +e518b2d8a442746371510cf5d176fea6ce1f6cb1 = "1edc587ee5402ab7186e71125ea0e1ab14fc8068" +eb15908c640875c33fbb30186c9ba96fd3dc75d0 = "abce65fe0ae9ca440b2fed0ab69834dc9b324f73" +f870e3596cbbff8da1ff46968fa428f1f57d93b0 = "98dfb6c2590ea6a867307e00ff84c3861f9ec00a" +f8c22d0413462840f365d19fc9a8e8f82679665c = "755659e3adea1d32217f3851711b58a1c7a38f61" +f945f43d4859aaec11408e3dedf86f4ab69bca00 = "91a5dae14711b47b5223f286d54af6f4a6b3bad1" +fbdf34849fe91150ed1658bde57df29383dbc646 = "127c2d77a49f176e20b7af088e20d0d07d6922fc" +fd4a3b0ef93a3d762383a009ed23575298ccec5b = "071f158ecac5e5b4c3dc872d38096112f736a22c" +fed04fe57577ebd2f4eeae9c8e1282acb0c02b81 = "838a55fc30379e148f80d9e95bd572bdd72e5c60" + +[2eb9e3d9-fdc6-5d3b-abfa-b97b7f8e5896] +8cb10b52a6acdea418b42e82fe5acefe3e4e6ebd = "c3489bb8027a5e06513b98e112659ab46c5c5245" +9b21100e60ff4e28eb2e40e2ed4052500c6479a6 = "fdd013edc052291c6a3c73b2113068fcf9c38347" +a3ed60fee75ac3467f283ac63749628c70020b52 = "da43b7a8515ae4189b8f1d9c9dfadb5e3d6d0445" + +[2ec943e9-cfe8-584d-b93d-64dcb6d567b7] +0209f706f92f5a90d117bf0afc089fb018190661 = "321442a005b16993fd0e9a870a0d679fa2d977f0" +2911ad2a26ec711833afad04278f7ea219b98d58 = "501a8a5b0c500c3a04adb65a3468e3de5ad4e0d9" +2d78fd415dbb5c2731157701cd66c259ecbff4e6 = "82934a1fbdc650398a7c8143d129c97198254684" +77cb9bf2b9d1b2257637ad96973765a9bcb948aa = "3d66452d5606683e2d6ed87fb3b2cf9d96bc7443" +88899be3898c5b7681a3828f4e95de29b0c840a9 = "0132b16e97787bbb14f34ab7fdee4a46063afd3d" +ba9df4b7710344a13939f4548f0b92bacec23454 = "932d5cd699dc4bdc0afa0f5bd4770b103c031fe7" +d4903d2fbe602b2df1a7788df940f314bf0b3768 = "54ee8760be27d48905fa008672da748388094b4d" +e072678a7ed64ed8761d5e7b7b231bff4c24d127 = "af4ef5af1039949146da474e6842d670504c9bf3" +f0b408970942803420ba8881dbd7b12e7ad14cca = "450432b961b4029e545acbd7c57ea00f12a56a63" + +[2edaba10-b0f1-5616-af89-8c11ac63239a] +324f892a858442def7f22edbf6b3f3ee9e6db6ae = "3fe216c8816d0fddf2cdce224e447909da3a85cd" +331f82ab5c3c0a9028ff2c535cfb93b94c3cd1ff = "56a1c7144595c69fe7673610c3b28767ca5a0b44" +462149350dcf567b099f92c9de0c8bb740f691e5 = "6a2710b53b821bec48a662dc6ffab175bf922726" +46da26e02e45394b66d04b712150fca5a9b7b3f9 = "f230966a313c9b7f546b0a7402215ada3ee541ea" +4ed220062a13560db92ef3a19ac1895bf2bf86d4 = "9da198d372bd7609d20e037fb834030b91d9eb80" +58e80e13410c968f12caa8f0771d19da9e5ff645 = "350420ff291d3af84282350666e444774ed2c6d9" +67d7a754995dcec5a17dc3e2cc763c793a6eb68b = "e9c5f2b9d60a40e7d60695d2a0a0288ba4868794" +6bff8a98adffb07548735b769f501ce2ba55fcf9 = "c92245a81356aa35f0f6214ae28b84a7d407adbc" +a7e680756720736fbf3d66de5eb23a88117eb2fa = "4f5189665467cb881c57f9ae1e3b1227f0bbaf2d" +a97480aedf10ffa178ab9ca955d18a7d8e0d074d = "6609d63e796ec6dc98836b1616814a2290200064" +ab931118b3f259ea6045b7c4bc11f95a7c0feddc = "ec18dbe69540b5f6a34b3a9eea0be6faf85a7fc4" +b497032ee63fd46ada1ba2d38bedae1f4a94242f = "682476bed2f6961b9d12e54825cb1c9417e16269" +c501ab953d0541fe900ffcf800a8a1d712eee50f = "5e4d6d4414c4f35c0cb5f300c43979c538269164" +de569957c6c779c199d2a3f48c710fd6f88b7ed0 = "2704f3ec27642eeff53eaf3fed4ebc3d3301bc8b" + +[2edd74a5-e968-5e45-af77-76d29aa6a478] +547054749621bbd3a4fabccd0d6bbdfd10d00dfd = "94a0c572e683c3a8b45011cc37bd7ace81c18b53" +9fb071ebbe6dcf25bd921910d8ac11b27c44a731 = "cd55eda4fcceefc38ae4d336bfea4c77be39ed70" +ec585b35adcf7d91e84de6a4b45323eb529bb830 = "5856ca6f6c158db7a1a458e0ef9d822cbac50bc9" +fc66102e94af21b5a1bd41dbaee73ccd90b96e41 = "fbf9100b89dff71f60f88fe93f7d7774ca78e392" + +[2f1371dc-8782-550b-8f75-ab2bdac561bd] +6ac8da6a3c4ba9048343ef3d97932f692c22c3d1 = "0af5861080ae5f64106fe67fd01a7d255459cf34" +b75f084d12a12084c3e8afb43c00ede969d80a40 = "4669d1b4b341745f56304b66a0580aeffda91cb2" + +[2f22cdd6-88d8-5d3f-9c50-37b200e63d5a] +295941d4a8acef2d0017d1204be885569eed721f = "8a299f8999715ba8a535903f177f0b22a8a4e568" +8cfa59585d8190b2366e03c27697e8e7b702a37c = "b2c312f43c25caf569e0e034d97ac6884659625e" +cff5b153ff85f1d9246678f3766887e88bb905c1 = "0af9dddce87b574344292050334cca0db2f235f4" + +[2f354839-79df-5901-9f0a-cdb2aac6fe30] +0e4d69b21af19b3ef456d1ae73bf19d5c6612cde = "17ffae81b096fc7f5c0903c9ecb2e06ec266bf42" +157dbda1291f4a04301c83f65572c0e05ec05bf2 = "9c45d1a5293f3f362fcc8548fd53af08f3c5599d" +1e5181512f5fea77cd1db1c25f52cd41c59cb5f9 = "84d21df963ddd8d678f49da34595b763e54b4c1d" +29a5397280fbf3f8184ac50b4c5e309b8d03345c = "26e73d083fa0758397bc97d7040029ebea393869" +57fbdf7159d28a35226bb48d34b3875be974d883 = "0888920feefc8a2431c710dd193a04cd1dab4702" +82e53fc4de58b688f94210115d015f0c9018b9e5 = "e94aeae86cea18ffd6b8106b8579bafbfa4755c3" +8ea30e8682d56fe8be9662922846215a361f8e59 = "467281e860bdadacb62a39c059f95569fdbdbcf4" +940cb3df3667319eb2be399b5cfd90aaff19e9d1 = "d1439a39a99738dbb6cfbfcaddbbfa649c7606d3" +c3a6a26997d8e9e2a6d8054734fb1c9757d762aa = "f6f82bbb63461f8be399c8ef645de4cc84778093" +dc2afcb4eeccdfdc1a771663040e05b328823378 = "9f1c61e8f4bd32edd8888045b1f9d7d807d646e1" +fd0ba67306f4081ce15916bf3527c279ebfdf0ee = "fa88556e9f71817cf3082886859f8b70a14d9082" + +[2f5eb75a-258c-59e0-affc-f41c55f75335] +1856a5bd281b7f1eedc726ef0e1ac9bf4b90fdfc = "5770f3524fe8190c887d4ca0a08d580e4f9ca637" +2158d8166ce931ab8b18182eba680bc1d9c06852 = "1a423ca86296c2e291f871ac767f29eb259967cc" +6506631787781bed72bed3fc29907783a57745bd = "38a7d26e680e64c264d22949336347de86d85c39" +7fac8ca73ec587152f724c6b6fe50751f516fcae = "4374a37c9d8a6739a87a29ddd0d787b16e785537" + +[2f8fdf4e-e012-5916-ad7c-0e4644026d1e] +2f9b2b8b0ef80e9cb77fb232cbe7015f4f8503fa = "b781d386634449e61b35765806d37d8f3df225bb" +5649aa52e7e83f669f81deaf08a271676f4d6f3a = "9f97feebbe280f91242478973aef098c51229c46" +6ea92b235a15a8cc364360baa2c8857d99fc8e9e = "640a771c5d810142a0767e13f94c4c54287ce033" +9036f7d77fe72132a2d0da8fc37fe21db9cf79aa = "fd16781fbf1c6013679dc712b901be1fcefdec2b" +b8972cb37b93a77066bc7d0b3b9991d14f5809bc = "048d483f40443711529ce36739d1596dac597ef7" +cf50a23c292030f3c3126d11fd3e10cc47bf6091 = "b0df4b3090ad3a9124437228602e21d20577cfc1" +df97dea5a67e7c00df644398774b44e96963cb4b = "6d3a6ee423f38a7f970836a6ea60f12a26dc1984" + +[2fbcfb34-fd0c-5fbb-b5d7-e826d8f5b0a9] +a7b83e82bc49763d31612fcf6595a60230d35e25 = "6465e6183e536f236439c30a0d9a671adcd10a44" +bb2cee5a53dac023fdebb2e7f8a1f1b195f90e8a = "d62a31e352679e637be471dc0b75faf87f0e36cf" + +[2fda8390-95c7-5789-9bda-21331edee243] +28ac54e4f84638652df6cc89522f790624c3b9f0 = "3ce5f5db26714f134554c689649806ae429c1c9d" +308361c9f0e7eb7ef36732da3f24dbe2b3bcf4b7 = "664bb8119afdbe73df74bd356945d781f5bf1b17" +4ecb0ecfa6d02c751e6235ff48204e6f3d5f5262 = "51a816eb840bc507dd3d181a3690592e69bbe4fc" +9d8837606046f3bee5ed182dd7314c8b2a456a56 = "d979cd2e82832d1a73d4baf2b9df8246f943760e" +ea9d75e56b40eb093e9ebb67a6ae5754db9adba9 = "e763517bae7d14667ab97e59e0e2239119454d59" +fc03bbd6249c238d171b6bfc0f4cef23ae2a269a = "d7970b53882a66d2ba7e252b7e084c0d87a0cb2b" + +[2ff30676-a39f-58b2-ad74-5d1012d57b9b] +29772f8fdfb2a779ef1d5a2bda282d14405fe26e = "8bffd51cfcc7cf9000b814cfcd43be106e13b5b0" +55d319eaaf04a93039fd51e63a658792760569cd = "9e7a804deec45c35dc3b141660db2bb9cf5b098c" +6f7c4a1b6d3db0d9d95fc1a1e8974bf0752da43c = "97492d8192da5f7b7dd465310327c7214a78ba91" +8470694f750e71adb9567bb4f45df082638718b0 = "fddd5fadf2fd2c531a9a3432bcb649ee7228bfbd" +e6434363d10d6401ec78f7284a4f4649936decc5 = "faf065c5bb133740bdbbf36afbcabdcad26b733b" + +[30363a11-5582-574a-97bb-aa9a979735b9] +4317fb116c0d866eab85a554938ec7c3707ef6d7 = "31ce38f381e7c3e1ba388b6009832c4cccaf9374" +4690af9a7f0098d89c03904be4931cddd5a00fb1 = "bb17220e7ec9cb4ed5a68eeae6074cdc3479d69d" +62db8552b6ed3d39edbef79c15839c50d44a18d0 = "bd8b123c2160905493413664518a25ee55f646ef" +771e3c5cefc00270ec7d354033c95066a8b23ac4 = "59261c79bd1ca193ea5079b39a9c90f5d81a28bd" +7c11272364be32bb3fe0333aad699f00c502b80c = "a34a228636b945ea57741636e811f84eaa0d3aec" +7d793e8dbd30169d26591cf88aadddefa128981b = "0e96c14adab5c696fa8807143ab399abca0123cc" +ae9e333109a8b6434c12f6194b2c23cf2771f1c7 = "8a5ed0cd08aa08bf6fd22afdaf66e37d3b417f24" +bdfeda760fac522bcffc605615dfd0a8d9e91cf5 = "63724c08eafec381fadb534ddc60203f21bb288f" +da316ecc7cc5c40d513427342963920e2a95715d = "f8b336e43d71f05bf5785604fcf94a7c9c3d57b5" + +[304d3983-6cfc-5ebc-a572-0ee435b2341c] +400beabd65cd9088167756dfd4211b8100eeb287 = "f80d4088f7c6502707ab5cd9be9e12fda90b234c" + +[30578b45-9adc-5946-b283-645ec420af67] +09cb31ede431668889374f4945a0a6d983f8f20a = "350b23b024593877fc043aa125d0bf40e731e459" +0ee051738dab941a467f1d49bead09b1d100a1c0 = "3f29a4dd44e6efef861902d5a4c1cf1b0fc26cbb" +1c4c5f2af17e57617c018ad060f0ec3c9dc5946b = "f72f07fa7ddcabe8102875989c0adde24709863d" +3b75ccf85666419f805d041f26a41d1bbad29583 = "f1ed40b7fdfd19795d2d8380a25461cabd14baf3" +3c00f48119909eb105aff6f126611b39a7b16919 = "d88af47b612ddf377234d4d4194c7a2031fb01f4" +47963e5b25dc27bebc6d898f4926bf81e00718ad = "b0afdacfe40c16a8628d0ec563e88c5c99f6da65" +49f8cb057b5a50a3f6b28c330cda8dad8e2cb336 = "84e2523bc19a473c6c80850d823b7ce0dd8d0a83" +54a8dd106ee6e261bf9beed5affdbecf593a6cd8 = "eced4e5663747638c6082ec2c5b47d38fe1b6342" +5e3158a05e0c9082b8a7fe35b4f281d1adb6ca18 = "506e8a8bf7799cdb59a04fdfe2527c60310d3d9f" +6ae90da646ef8067ee523908cb9a5d90e934cb0e = "ee84cb71a364b8c6d1498641c9577574f4857d2a" +857fe3d1797c80347388087c6e96daa0571e54bc = "37c11283e941f8f4d5e323de0cd240759e946f97" +887d7df6495114895de9d5e5424a6ee76587d0f8 = "57ab0401278142060b7f6088a9afa615a4a041c1" +933fbcd20be0b31e457c7ab81a5766cd1b361c06 = "4d7f401aee6c91d257711da1edec182840775c5b" +a7d45ea317ef23f4face6d73e5434ad79cdc7ea3 = "11e787cbefdf9955d3a86ed942268fe465436421" +b03188efa3734871454d628642ffc7a9e98a4fa0 = "0f08549d5eef3364bf89b8a8d03057ca047f94cb" +df1c6a6344fcd8f81b1612a19d7f805bb52a5c85 = "496496c725d6daddd06b20caf62f73f311066477" +df52383c1e4fb9143b065f441f1f944e9ed3f0da = "2da9968d8f6afcb19be88a2feb017352cb521cc4" +f7d806092f859494a96c16813bfa298202f39957 = "4a131ecfa3f2557d0b7712228bfe25d1bc06b428" + +[307e1779-6603-555d-8172-ea684b6e5cfa] +c4f62ea9b656a9e1df445ad2adaed6a246b2559d = "84ab2bee66003fafd578599108adc25dfc2c9f73" + +[30a7bc16-7fba-505b-b600-cae92896a3fe] +0de12c06cb843e8e7f9641660cbd5dd06f8c226f = "0fb9e90c7cab3767f4e35d4c35c1be25b3ba12b4" +3686fcdecd9e04a444de546cd4e497d6efce8321 = "248bddb4e9d9be54fd7df7aa9c62db3208b9412d" +3855c912705f76eea1eb7a1d3daaffa5d3e156e6 = "c16b87641e7666deb7444fa203844acc8fc5e873" +3e16605d91502266a58985f7c934c003d0df4d50 = "17d9a4ef75cfe8ab91afc0d740aaa3d29916e23d" +9751b31f91a26696830a13935abcb124fb3de674 = "457b1ee9d816156813a96d36bb454b7624d9f6a5" +ba613af02eed6e91782709e4a54eb377a7ce3696 = "70627850087b37d46092a2540d05de5663476164" +ea68f777f414acc3d9a6fcd2fb46a94b49e49b39 = "df79c1c9daace2b817b56911d9ec3695ab822706" +ededfd60c9c500ba6c55b424ea1b5480c960a9a7 = "c4793d123af62ab1e4543d4a1d4a86759815f997" +f29e9c56fc3747487ec67c63550550363cbce380 = "ef2ef924e55d56a2e0c56d056edaaa112a76bbf0" + +[30d42797-9b21-5812-9dff-9e32203c7e18] +0fed9c0fd31898b3466ba73dd06286b6816280f3 = "753408eb609a921eb25fabbefdb75d0f5741cba5" +865953f718ccb241c6896413c18cfb160e7eb9a0 = "dc88a6a4f7b3949d6fa550da50813d62e4aec8d9" +c9e938f3603d9d856f0cd8e7482d3ae919ef7974 = "e8ee2e18b2538892ea2d88158623a9f99ac1a989" +e87d90699d13e8bd600600f48c5b380d1ace74cd = "96cfe6bd61ceb68afd2174ae1edd234ea48676d2" + +[30ee299c-4142-5be6-b36c-c88c17e1d32f] +491651e1774b2e061e71637c8236037a61cd736c = "33fde554cc01f463e3cef0bfdbf9226afb7afb3d" +a1d419dcc937678dbd5811c0602883b53011e558 = "cdf507f1974a251e123afc1cd1962b4acece23b6" + +[30fc2ffe-d236-52d8-8643-a9d8f7c094a7] +4e955a0ed1fc47e875de1009932d26f5f9fccc32 = "60610f75c2d499eafbf3a1fd65f04f5023bb6c87" +7334d544492ea074f36433e0fe08f2ab6d3db00c = "4c88c063fe9934b0c632aca4e53be2ecf1fd8a57" +9f45628c5d4ae5a2faa4b16ab8266107e60f483e = "49411b43c080d41a29119ce0b536b126eb59c9b0" +a2501327027fa4287b2837664ed14b01cf94a3c8 = "7e04d38a7d64df36df30fd5925e0e697fa84ac45" +c51e787f3bac23c8fdefbb4bfe116b9704755b24 = "a8093e45d1063e4f0679400faea9880d02935a36" + +[313cdc1a-70c2-5d6a-ae34-0150d3930a38] +2f048f754aa4a9c2efdd8c12b8f2f26a26e015ce = "68a1adfff3ab62e16fbee86ff88e51bb32fd3e93" + +[315b5843-54e0-5281-b073-3e322808fa17] +a7a430eb932b712338fdd4e45b6c024d991c2cc3 = "c5e6d0dd56f1cf35bef66ab8e592cbe42c746a4b" + +[31c24e10-a181-5473-b8eb-7969acd0382f] +013643b7334974a1d9c2ed9ad7d54f7af2bcb2b5 = "4ac5e0be261dd67c0c791ae99f8ea025fbea478f" +041315226c919c1a6c7dae8437bddd61907bc73b = "82227ccd772fd67ff03cad8ad3b86624db5f0ef0" +091cad865281c92746dc455cc50f4b2a311d3dd9 = "1041cc42cba5fdceafc53615bb6cc6d41b9ea327" +1056c4761cf4c871af9132c018161c7fe133c145 = "8b5807d29fce69dd4964b70f1b6c8a75fcd592fa" +1115ff2755eb18c356abd84f0aa119b7f5ee0aab = "aa0078a8702055aa54afeec054de264e4b7eb7c5" +13a5626906f53da34082c8509e2d8bdb8430a86f = "88cc5d05ca0ec7b9255bd55cf555a3076949446b" +164c8437034bead41829f4b2ebc6f010876505ed = "14e7d4a89fdd8406b34cee8f19871a25fc479965" +20f819333c83d19e849dd5e1c8cc5c58e96a9289 = "dc0fd6f448a62bf08cb93c4f5688488efce82a21" +2348a545765d3d9f78957987b3b2c7745316d7fb = "478db27a5356f6ed3aca11ab0a83250b33ebcef3" +2459733d3e9b3005645d3682aa6a9e8715892e23 = "22bd0a13b2aead955b2127ae9a1f053380558a30" +2540fe7f36996e474e05930bccd11d816566b3f7 = "982274f15a1e87c4e79d7c1f5500571e12c0af49" +29e996bad486ccf375a1ccf462c1d6a4153e208e = "1d485cd4342c4dc14f6330cb89707b1f76e41f0f" +2d0cc12f44672a3a646ae9258019a3e0fde20626 = "14ed35c54a84fd3a7e8950c7aafd6af004cb26f0" +2f8fd98ea64f873bb7cc3b1c396e0e8fb892c417 = "86577fd66286ccd025cf206572eb9cc4f1ea7953" +34cb37c1913eda0dbadbb087cfe4b6fdff9a344a = "fd4ab437b549da96a2108090739997ce9dc6886b" +367255408e1b506f038a2c8a4358c3ca2fd5f8f9 = "31fba7684eae086f55b1bbbf4f4a55068e53f75d" +3bf11d14fcc3953c90ccf59ea8f7f3839782a1db = "fc2fcd22f56532c388c0bb35065c2b5b7eb79fd9" +3e8d9f946b44a99a182ad176c5c365f43f1f83bd = "f50810191b7874595330bf09d31bbf1a910147c5" +4303d591f5c53a067a46c94298e78604a13754c2 = "19e6bab97e18b953f5c2299520719ecc619e9493" +673cabd469ee4605d3aa43a0484b55af3c10b811 = "533ebe1ec57bced725c7c33c9235355086c0b855" +6abf10ce4f2fa97d5e0240fcf0124206935c5e61 = "0485c8e9b381486b01d8710c836160f65c71465c" +6b428e65e4766e34ed622e23b020b44faeba4e45 = "fd7a08edc8f768e9417bb48d3de7eecdd4410c9c" +6d7c8e5352b8e19a04b44ff07728929fbdef1b17 = "93fd6a114596afafb58b666de4bd1d0924fc9c04" +712e054ff657f31bfa4bf432630cba84bebd9b53 = "d18f842175192c4423327f76114e0f308a36532a" +77eea93ca943a98ca7f0f66302a5385e34e35eef = "4647d9a96ceebc5258a4d7bd819c83c48006597f" +7c399b6fca70112298d712d23f717a507382c28b = "8b2612117d541fd741b3182a62f7ecdc1c03782d" +8355bc6da5fcf0a741aa929b25f2581e1006777a = "07d94fc8e0b6dcdc1f3a4460b3c0db553bb22442" +8740a30e0c5b04b61624453d54d8b4b601eafb4b = "ee57cc7b90de0fe356f73b44a2821752cf8106ff" +8c09df6651d251faa2d746b8d73181cd99d76662 = "ae628d647d7b2ce549551131fca404b236756b8a" +8e617b29ee7e16477c44a8dfa493da640c49ea9f = "cfdb24ff5da2592a7c627a542a2b3caf4f1531dc" +90519bcb9771a5d681ca0b726f5f90f49527d7b8 = "e2276ceac3e9b055e21e66436c2ca4efa1313dbc" +953aa820551a0c5bbffa51eb6150815448d7cf80 = "3ad5cdb7eadf48de7629deafcbb136f73d8e07ac" +9b7d0658219ab751e78489ceb5b7407fab7faf1f = "430237563ca042f5512b361304b847d7b8fc0dbe" +9c2eb72f9ff8e29df90379a07da95f8a9b3afac7 = "7fda72353c40042ee2f28496ed43645a39065a5b" +9e4a72fe98189773b46477b4177be3871789bec3 = "67b5bf704b2035d132e4b7a8e0655c3e3c7d18ee" +a4568d75baa797498983ded6a1e8f0442e326b7a = "fca3e7c46fab15c432554634852954316d01a7f2" +a6db77a60b3ffc41e70571f7d591227e439c0654 = "921579602487f23df94170bd731e4a8b934d867c" +a71f7b48d2feb554459491039d4ca7da3384252e = "e16d23fb87c184c7582ffba5ed37c4e029d18766" +a88451827ddb79a0a9765bae72bf521056e1e389 = "432225f3f48ada533ae5e2ac5115c89ab8cf15be" +a8d84af34b11ef517fb965a692a2aeba3ff7ae20 = "0d2ce2c5eb9c06195f5adfcb5026a98c69ec3b4e" +b4c303e4409380846f652a7a1cf1cb815985811e = "8f076ad0f4724bc9505fd6a3c32996ff22d911de" +b51725416725c18990f099abc9397e14d81e7fe9 = "dedada5bddf7e003278b58d45dbeb51fbfb310ab" +bc1255204e9871cf6d76d58be24660aa2a51b24a = "5f9c734c2d760db8319fde43e5ba4b2875fca482" +c29f5b202a6abf90dc240efd542a7ca27917df03 = "d46fb1e05b6d8af64d11ea8e79f9490320d79273" +c5035db48973bb8f2271ed5d2c25608fb3b51a30 = "05bbf05893e076bf6700e9720e4ec20221f42690" +c5b2af54a1465695fcac959549abeccd64884a27 = "3b7287a0adb45a8ce63f4920851bd2c0c76f9d52" +caa65cd977d5acd564c99662b61ac33ffdf676cd = "9a61b77fb86ec56a0dd044e6b02a432203866590" +cfcd8dc5432100d745187138c455898650cac425 = "11009431f2243bfcfd604c916cb0b45a88174a40" +d144c2ff50f9ffac088b068a653e978f9c47e5dc = "db3a3a96d1bbd8c5c9d808648ae2a278a3418412" +d1f0b34da0a7e7325c5325b579de42a118b918e5 = "44a187d87d85078464990dbfa3374dcd49a96a06" +dbc3b8131ead50c48e3f77491e00756de9879723 = "3a6bdef5eaa99a664a4a63a8c44c1694ec3702d4" +e4b7704eb9f78db3e5deebf68c7979c22c6313f8 = "3e3fc8148301c5ce8a8d96c73c8b2b0dc396f363" +e55560e7298fc1ee0e72cf239fdc1ece6708e0b5 = "099641f665e2a04c90c5f317a036022678d69c6b" +ebeab79ff28f144506f6aa51b284b67486283ba0 = "a4887f126de82d28268fcb9157bd1407a9d772d8" +ed60e8f47e2867adc4c134fe0f90e8b95e42f743 = "15337511b1be8b6a5f6e6c0cecf5ddca3bd382d3" +f0b12936bcd3d34f9de6659ab372af75e81ca273 = "e713116289589baeedb68d1ee222262ac0327b4a" +f4535a6f7d275a718c159452c86fa76aa9ac773b = "2ada46b97e976ed044b0251a565c0c34bae408fa" +f9cb2e6f5bcce2952b7b90fa51e434adb17654ae = "94400f4ccb2c88fc70c69cf333b34fe4b6589a8f" +fe4cba0efdf63c82f85e82fc8885d27d0d5dc24f = "6b8221dce468b72a03c10b1148c9c6271281e754" + +[32113eaa-f34f-5b0d-bd6c-c81e245fc73d] +15d12e6133ceded59f521dd9dffa1a0c467b2317 = "5062d6607223b54c5b1bb70b100a0b1f7389def1" +b27307c30becfb6f14205547889aa3c0450d0ce1 = "68880690d6b1efb6066fee7d7d17933d3d39558d" + +[323cb8eb-fbf6-51c0-afd0-f8fba70507b2] +1002e1f8b8b0a9e61debcc4dea0ab55a3a4a402f = "67003703446b851955694560c18e917322082b9a" +17afc675d5acb0885ea41f958458cab70458d9fe = "aa0e1c717fae58bbad73e3061f323def27b616fb" +32107ceaa8c68b922ae30d80868e0a4b42bd203f = "615b4eb5f2ecf9d490da381b2b52888c23c0d324" +3462bf7ec7d6835cbe03171690530a8cec354247 = "41ac403afb90d5215f885f47802678cfbfe50893" +7f744b6ab81f33276b46deda810c6755fea5ec2a = "e1d1086ac5760b1727b03382024cf2f70da466d1" +9d3829ac010a34a3ddd7c4526528244c53c53771 = "2e433b69703f48bfcfa349c8e7084a818b0e3996" +bb2d33b5206dc3f0e569b299ff3b020b615b8d8a = "a0e3355e9e5de819fe4afb5e4e62f18aa91ce21d" +fe233d6c015da0686c4833189e919cef35cbfe69 = "3c7625fac783501bf7576d266d6eeb2d8d4379b3" + +[324d217c-45ce-50fc-942e-d289b448e8cf] +4ecfa29a6f7b4c6b9f975008fb905713d07f5b05 = "808117f717a97e8414c53c5105bbb9d7f08796cb" +7719d33e35db06a634c9da6de648cbd529caef88 = "4bab0450a0eeffe999bc68288ef010ab6f57da68" +eed2f919a1382ba7dc9c6f231a1ca0b56d130cef = "904a3f2c7477178de566d6094141a178da92f821" + +[324d7699-5711-5eae-9e2f-1d82baa6b597] +02e3d3862eb26a70f21a362a81d7445aa01c52a8 = "1175ea41de084bf9fe849d0615c4389e2325a4d2" +15ab16f4a12894c2fb97d7c23bc14f0cb8f91c8c = "cc7e6c95f8c23bbe4b6e42e35c5fa50be9b5a103" +183110adea7daa572f71eeb8dc71f65fe9d2e2dc = "eff8a079a2abd64c6bb29278e72e5eb9c1da38d7" +267b1025e4dd737b9cf54343c3f2803a8317d9b6 = "772e84bac1bd8b81986d446c3fb477a50040bc5e" +3a401b9adb9b04c8645cb5e893ddd5f5702cece5 = "3bb52eea5ccd011027dec6c8709a1a1af666d16c" +4cf4e2185ee7e7f4a3339021ed01b335587ba45a = "c9e2fe2a25534a0d6c697f10b995f14e275dc96f" +52910fea3f87805a2755fd5e8e3b9ad04cd7c183 = "d2f8a711d54ccdd82b8dff8966ec8b91f6df0616" +76cf24739159e720533677c76290461b4292be91 = "a87c5e473c89cd5ba85f897dc0b828ab3929dd25" +8434ae6abd79a1e44744e93e58afb2d1234c9037 = "cfb115586d9311171a6c810682d492116da6fb73" +874c6eb1e2fe09282982fbe7977950d71bec76ce = "5f6cb294c215818a7ed9883bc181cc6139282d7b" +8e2da16f24fc47c324db16f0bbc851cc8f022268 = "df9bf8c2ae0add4918eb57c72f2bcde1686aafae" +a4b9929a54dabb8ef7ea4207fc5245bd12ed7095 = "aeb8ff933493287551e53d324ba6a1a5e37cb565" +aa30eea34e179afb2872cb3991c7b0060d9c99e8 = "e0d1a36c426043318b4152641961700527ba4b5d" +b176bb45f0f9017d8845d5d6bd7e850978ab6b3a = "8ae3918d6c8371bc5fc8054391c2bf2184309e42" +cdd5060d9d1e684ddbcd5d6888820eebc0f0b8f1 = "14d109cc29940b70db32922b450743a2dddd7220" +d091d0df68bce1606b1b613ad9942ab64c0953aa = "e8a42d7bc7dc6daeb6766dbcfec1412dc4b02aa3" +dabf07b409b477c84eaf6dba8ad17d90fd666c41 = "3e4be96cb54d952f0e39c3b08db111b93ec67990" +e1c57a24027666dc856598e952ecc2c9018f53c9 = "d0dce4a7739d67bb4283f9663e40709ee589e7a4" +ee6bffc639ddb58a758a792267110ba9e43a4836 = "a410621a83d40bb3e4cfaf7737edf2d15ccb8f1c" +f2164f86d6678910610e094d17c681b5a528af07 = "a60bb9e62a04f99ee63666979d73025a701e3dbe" +f3935b60a6c82a69f4f63073e924deea62cb05d4 = "902bf98ab09cd6a4ad744d6042fe9d8979927921" + +[328247a4-1e87-56eb-b3f2-bcec366639cb] +1acba6d2f636dbb7c12dae4a4c49772e36878a86 = "6addf30ae5431e54542782677f5f760d92c09cb7" + +[329a7628-3119-536a-a060-c6b2f8e35265] +a15eb83a2748ce1c1556a168882fd6900a162888 = "8c5f4aa2b0c2c5062de4f7e61ac564b97ae0dc2f" +b8fcc6c9e75d1e863812f9b6df9839c06185aac4 = "47758cd4ab63b2be778c1a879a32598005d58d0c" +bf6d67888aca8e8288a870b90aa75f86fac9989e = "44649615438f864ccd97c19ef5570f9025252eaf" + +[333b5096-10d4-5fe3-8aed-15ce8e90d50b] +1d46446b202dc8d976f57c687d249a0a117605ed = "d88cd83a5140848b0c4fd61bad62614c8551c268" +4e7f27be8d33a42c134f6da0816ac4acfc0db0a4 = "9caeeed80dd8544e08612323e82249f41d66b527" +a195e8e492fc98e93304ce55b396e9babc171293 = "06d64b739f503108b1661429ac3f31e87165ce51" + +[3349acd9-ac6a-5e09-bcdb-63829b23a429] +09782707d6b6d08bc094fd495384d462f7c9717d = "81f1c26baa20bc9ef048026fec9234263625da1a" +0b2579966e6eb276c26f67096808413a4c51d281 = "8c00eb9da7b591ac318b4639358a80108713332e" +0d46c5240ef8df2a5a3678af390059e26b8f3f40 = "7d12da9c8093e78c76266d06ccc9213f64523522" +1477fa6b460f3b5fc5c5eacdf0d3821dc4f0eeb6 = "f5e998524ebaf17af171e7eb82d8a0661ca71ac4" +2ce1f6688c0572eec2da9a0a65740a4fe641c85d = "1df1eab084f0ec6aa113c4162a7ae1b71d2dd2ed" +32c88d7a490710baa3bce2cb66db12e49849ded5 = "9c9c4c51a4fa771204daf894994474692061ee8f" +37b13a3d78daaf76167d91cd9a6f605ec55f867f = "cbc62da983428164ca7e174a0c058a9539edf6f6" +3d335bb6820e1b0a46517dcff52b2525f15ba14f = "5ad183f5e1bd867991360d72e17bb2b0f223d96e" +4046d1ef039ee3c8cc43b8f62bbd431930c8058b = "f7e52ccb21bd4b9c246646683d55c1023596eab9" +45fc695c61397304544286405eba9205a4667f67 = "9c6f780994c434c0e4ee38a95c651c2e38a2f91f" +51fbf7607b6ecb732e48d0b2317a5927335323c5 = "37352b7b332167dff8a3baecd804fdcfff90db98" +561012d8fe9474d65ba4269b3630077d5048c22c = "c84ad3abdae4a835cc0d36615b05ccd02d9a9265" +675fd6d91cc51091798280681746422b75c04d3d = "f391b6325111fa87c947ab4794d7435ed4335e47" +68d0bd3612c4d9b5c541e46f4e705aaf4615b361 = "d79320908e1a49ed6237d65895d3ac20fa4c25e3" +6f324dd6e40cba462d939ce5f85e8c2c6f21d2ad = "ce01102b143bb18873de4ddbecd1a1def389087f" +7743a67633cacf46908149f13c8bf53613cc35bc = "c4732112e69664a4f8bdf8f0843b7cb641cbff8e" +7ec551b92bcc97810aa0de55f85bfa7cdbb66a3a = "1c14deb8d120da8cfa48b346f7556ecf448b73e7" +80eda00cd36da94cfe48255bb184c19ec8d2a2a6 = "2d923149228d037f069ddf051920f643108cc9c2" +81ca05534d556e547834c891c56686bc1510ba51 = "257d1669f67fa830bde9af671d0ca6a8abbb4bf0" +8939e398a0e641adcae54f3b83ef15c5a2fd729c = "61927b1ed761847cc0ee52ef1252927c48c5b3d7" +9e042e7c0fe6e5147e9bcde29e9443ed513112ff = "574f85f4b8a6493e4833bfc54bb4a8455426095e" +a80c99f9ae340ffca793a6aed70865e5bf3365cf = "7113c6578e6b1f88b76e13ddbf66760f6d73e511" + +[336ed68f-0bac-5ca0-87d4-7b16caf5d00b] +042a38abaa1e1efdca8503a30a6735625d3fb7e7 = "b6a664ca8aed44b63adeb8967f487b5eb2186f9c" +2101155936396c348c85e33dbc331edf83ca0d08 = "a227d0d52defd13747ffb020552ac44c10466fd0" +2c58187270213455d15577e85689767f89cf8de8 = "0afc170e474ab4a6735896b97cefcd595c900fd8" +38a36939e086fd97f44912beea812d9fcfeaf33c = "a150c75b9e145c8d431d0463bdd32f1819afa54a" +40edb693796375841f1837ac3a7fec0db5f54760 = "0af2ba3c8a54f00a944f734cec45a8b96594c279" +49e914ad55c36e036cdcf51ade9ea87d81f34299 = "a588f46a72e6c0cd2b0302929a55fa139bc86a0c" +7e0c5fba80012f29d7365f2d85e7dd1d3ee08a20 = "4e44661aa2a57cb7d410d7cef52efe25f900d248" +80ad23bafbd625d0960708e366e0517185bfb895 = "56d19428e6ee739505dc01e4c950f9e36698a7f5" +8b43c4d01d18c891c0af90ebf8dfd889856b3a93 = "39e61b053b84bcb45dd5ff36f146967f39b9b46b" +8f65b720e761a5a33d38b3abd17e62e21b898842 = "1eb696b149cf5e58a5fd3fead2226540f57dc104" +982d5751d128172be43973552d1ce981060283fd = "31b8a99f9afe3ade4de81dbb2856f2eaec5ddf20" +9e0f1da839dccc001177c3dff83fa60413c4de43 = "d81bb9426ce11f826c9f761d3336be1d5e69c84d" +a7066df5ff21a431d43fb5a96c0659c5588b3007 = "cbb157b71328652a55881ed82e225a981f4145b7" +c8c4c3b6acc6a3c3ad86294dcad6532a5ba46bb6 = "84667096a79791262d75fac748a4b0a8577b3f82" +e08c50da9c28458f8341fb9e9bc749e4aee46255 = "8b016f7fb9dee7a8baf48792593d26abc93026de" +e4e772bb613c8eea6b76fd37e0e0754e11d27673 = "09c684044402827b6bb6e7b170976f794de32cbc" +e9f151b085d0ceb1ab157c8ae5d91d80446c6de4 = "01658505f306bb50408f6d0de5e3673b2a7cfed4" +f8826a278862d70f7d180b1fb31acd0d68dd1f77 = "5973b52b2dd50abab01d05d2886efda1853d9283" +f92ce72ff65b4277b5c594cf2b0dde8bd63493f1 = "ab2ceee5ce66df211d60442fc1fd1846f97ccbc4" + +[33729d6b-6e64-5c8d-a7fe-d444d17d628d] +1404ce96d15352c4287103a01b43d7a28906d04f = "c6d303b4860b037a023b752b25a1cdf4ea135587" +977f5d22661ae59da7582736ba6282661b542911 = "14c402d93d57d0f222674fa6f5bf92f44e7e65ef" +d9f228dc92d9bdfa3fd0cec61e087a9d577ab2ce = "2d684ad3bb8ae5c51ea04b53ace163f3519c31ea" + +[3391f64e-dcde-5f30-b752-e11513730f60] +28c858bc9d734bd5a880c0c9a641b303c07890e2 = "672be7ba8def063bc63dede5d7693511d9a311fe" +30612242aeeac7c23c236827a1f013c93c4ac5e4 = "d3bbe3983ec0333ec81f50a96508020637ce0b35" +31aa7ffe2d92bcc8010b32fe2962889550fcd75d = "8c2fd47c762646129345358881784c7b0703268b" +aaefd43a5f50ee9ce274c82ea120693228e9a72c = "3e57d971d883dceaa7d0a9407fb92f232277f1f5" +b5af78174ca5678a5c9ee0db946afcb5f1c71703 = "ac50594d0f5a8206a1ea9b5882464619f621ebe8" +bc04e601fd973f9e79dc5e7a357d766a84210ed0 = "e0f7fed1b80dfba8a7275021ff2c09bd64251846" +cc95315799684837ac2d523998b3fdbb8fa446ab = "a2e4415cd8a181984ebc31bae10facdf873f561d" +d4bd403fc08c030a58a89c54f974f406e9bc5c71 = "2e232e80f24aac9979e38a6df2a9e4f35a2afd56" +e5a1de39cc6ff95ce8be8d5e7487cf859d9d4a13 = "e71458a18f89c2536bc2929d913607250db59f8d" +fe45e13a9baa88ea5fa5193dc9cd3b366d639b40 = "eee2fb7ccf48bf4f5c3ae3ea0abc4d930edd1dc5" + +[33a4982b-2a1f-504f-9f57-5459487c996a] +6b1a3d7e4dab718fb4432a278180387fb84a73d6 = "3a0c55b2f934c1e79737600b09f6524f144dfe16" +b4e232cf66052c053038cfec6fa65bfd42f8b036 = "736a315a37a532b0ba615c9b9ceae72f6459abef" + +[33ad39ac-ed31-50eb-9b15-43d0656eaa72] +37ce1810bdc2d7381ec5445cf93c841b85742e67 = "86ebc34d3325a3f54e6b0095b84bea29f55cc86c" +4a1ba68cc276bbd60b17a04905420cd3df7e35ae = "0f4af37472ea2cc5854d383b4da10bf4c44ace8b" +76d2e5c6d48c94669c6de882afe09b41243f4fab = "2b6e9f68c3aa9d8ee141e85561291bde327d8df9" +7c3cff06e12a146b510eeee68c145254e5c7080a = "caf2fedf93394fa1ab7b7e34358ea417c2272d8d" +912cb6cf19e8abf1a6206106b5f053f8f5e3e176 = "75461e1e1413b821290c403e179b6db19671d66a" +9898feb7fb54edb5ce72067b750f5763648950b5 = "7badcd315e456ae20228ca5abe6b30da0b0a78dd" +a3d30ad857b6bbc5a51c734a133d6b3a811cbddb = "ff8e9c1662f043c59a2451d11ca711c3c3e6e99b" +a5d7349d531b6fcda9610cc8a5060f49cd63447e = "8629ed446c77a3c8f44d264f4d7ad980cb7c7b32" +ccd85899ea9d914f24337b76471a83422c6658b8 = "1cd969ad4d1d06518e3502ad1deb46022e2c3bd3" +d2c8b0ad22e978018a7d52b14bfbddb1fff4ede2 = "fd3b263ed8df4e400a85354b474d7342626b14b7" + +[33d173f1-3be9-53c5-a697-8225b67db89c] +43df1f8b70478275a50a992aeca3cba67a307da0 = "705e6c6523a1f8fd2928517ec33397e481d082ec" + +[34035eb4-37db-58ae-b003-a3202c898701] +034f6a4a9690c98fda47f4681012fef1e863b74e = "b9b29405cc1fcf1cd2b504a8b4515ba333d20705" +3fb845a091a0f253e61521d5ece684571f529765 = "4ae36f307e4f191cda3e12745485fc1059579d6f" +53a06071384117f43c869b830e9735d10ea1265c = "2b10bbaa16999ad828ff03e49723735eb2cd0971" +5749781cdd6029bcd67862266257ff8989245df8 = "72efd6ae98a6d24b9564f5294c8fcc2d0b1710a6" +5a98361ab4d3d119f96c145d5e15a860d8c81cb1 = "257dc4c1cc30745ff03b2a7029bc758c664afdc7" +8f693531ef2d6d3287471d64c15f07bc955dc06f = "f7df494d21ca067a050f1bcb6416cfcca23df53c" +aae471166ccc7b8fa1d5a43c5723e6bc5098d4a7 = "95e906b8f5c9a44462562ecb4634c0a43cfb61eb" +c916331d948d2a219223716c79c8d5f5f4b94c0e = "086571c95b4d06e298a6e33224664c80cf4ddf11" +d2321a40b826f84204f90d6cbdd81cf3754957fe = "d9ef351268fe2e154aa22e34867491d7bbf3ccde" +dc352c9d4d60c533a50804bd6b6a5d4ce86eef42 = "57b6b9d23bf6554eb1a7ba716736ad5db178b39f" +e8c04b739b37d8d924c2019b0598c99102aebc10 = "9f98b6c880fe9135885893f2b0fdcdd828cf83d3" + +[340492b5-2a47-5f55-813d-aca7ddf97656] +156d1be6b3e0165fb70896b00ec959715ede03c8 = "1ee9444558edc5df1736538b0194e54bf78e5d47" +1a895fa3f48c84a8d7dd0424f8f84aa8d040570b = "55c095102b9ffbbd39694295abf855aff2ea0be1" +67fb74b9164c07f16068bdf7331f617a3c952c65 = "ee380f082e1b0db48fafe564146474b4fad14b3a" +c92f4229c9d0f24fc92b0d1fb5d1ed443c6613af = "04ccd3728fb926f74376d71171f9eebc3f59bfb0" + +[34107986-0299-5882-844e-fd949a1ee147] +459dc98b7a0f96fd8219717bdd73918ade9dc9ff = "2e5a7ef9e52624af8e5c005bbeacfe3dc49bb4d3" +80bc656d389d19701ca8297bedbcc84468c96b77 = "c16c3f837d075a90b64c84881ba5febcb2d25248" +834c5dbca4516c42d2435d6616021ba863509b8b = "4025eb48fe1573c386465a9b997bc2b086063cbb" +a83155f180b23c8041a54b2dfef51c544ab71542 = "19e86f0550a844aca480d564525c85abae2c26f7" +ad4e8c2643ab7d46cd082a83b17722712c0914d8 = "247afd71e3c3065eeebeffdf1902958e495d7ce3" + +[34431166-ec0b-5f3d-af82-e2d5065c44b8] +28f86848bd8e8bbaf744185e8f66d1210ddb33d1 = "8abd645f2237f060b87f6f4e08ca6f8d300f49ac" +401c48f7437b5b8959ba864f0fad1e83791b398d = "4987339c8e50c700366427336554b112c124422e" +4d691ae0803fcf83047ecc94fdf13d1c5cc5a349 = "1a35d0b9692b2a3e822e9b5f54b626847b355af4" +5a4e1fece59ae14ae194f5ea47ca15692add9617 = "56b2a98ffc546e87863c6d38a9bcd76a48a5e508" +c241041caff78a3fd0675c5164f43010defda0af = "dd92da7bdb46e15d3ce1cf012a30aee4c4e3312a" + +[345a2cc7-28d8-58b2-abdf-cff77ea7d7f1] +a89685255992f3696a55a4336b8014f51f02005b = "4ef0068d261a769ec42eb5e52642e9ce02be193d" + +[347217b8-be9f-584b-81aa-3fac8492ed31] +52cb9c915d299eae374493a9fd36269aba40ed50 = "ac1179678951cd8d437cf24464af04315b28b293" +5dd1100c24ef3ffd777144dd4d6cd14c69c44699 = "2f3b5301043c71d1a3debb8a7459dbd5f747d09b" +e882f75890e606c1f4916497f271e0c086e1250d = "03885e35014cc51745f4f652cfa48a553d80aff7" + +[348f2d5d-71a3-5ad4-b565-8af070f99681] +0298af1dad8e32de742e1ab44647dcb5263e1cfc = "5cf9be57a5c682a296bba9e4cc56e12d87406813" + +[34922c18-7c2a-561c-bac1-01e79b2c4c92] +40148ff4afd2f40d6921e2324e7a726ca48bd3b1 = "eae522f0bf2c0a99ae332a67deadea8122633534" +48c469903aca5de8721eee511ad327037320fc4a = "c053f171d2496e517932656fb60b03b6452d4ab6" +765f11ff7300979623832523e9496fd2cff12a46 = "9b4e8c50d51f7db532c73eae0c1adfb1b57476d2" +7c72a0e214005b9ae06baf98da5de06c67d5ee9e = "9de7eaaa03e5cd0f9d4b1d229af7a06a530754e4" +b09cae9b295921a204f6602136688752fc8be89e = "61753d91dead78b972800a91a7ffcfadcd00632a" +c86ca0104b0940616aa8f7a75a983265e07aeb72 = "f07ae5e6caeeb7c4a522c314e04193f0a66ea494" +e72c0a08955173b8586433243e2b392aea612958 = "7fa2962e97f49137af2338410d482a0ea54e319f" + +[34982d31-ea70-56fc-a7d3-dc148ae8a7f4] +a18a959158fb146ef1b731112fc27b3d5d3d1b35 = "ab631ff762c2fcdc825717dcf5c816c3e5ec66b6" + +[34c9ecfb-342e-5e3f-98cd-df711e743db1] +085f1bae3be096858b7dcdeed6bdba81947d0237 = "3cb9196de15c15dcdad91593cf2eeb05e8f84a3a" +50610d1252154e9cab93afbb42b8ef30c048519d = "7fa92257285f777bb7c80c506aa1c125e70f453e" +57da37796874fbd6a76aded2dea0eec910d96b1e = "a4b5ec0a07dbf5eee15a53f1e4590e14560a96ed" +6abef74e7332eebcdc4b7e475ca8ac097d714b13 = "b4ddb81a8dd53bbe9a04a166ae4f94603336f653" +8da17067484e2ec277d99d4f49e601201b91e2a4 = "f8c3239c0b8eabf43aec40bffe59d92ace84a2de" +a7295de641b7492ed803f93386783bc0e4e8c1e1 = "cb35e1bb1b190b9c3c57cea4caab9cbce9a55ddc" +c727f0eb02e81df3035112407bedb32e94014238 = "3e9f35ee4168722612b7c45b45850c60cf73c550" + +[34da2185-b29b-5c13-b0c7-acf172513d20] +053a696dcfb11b30095b54e0466fdc00079920b6 = "a9ee48cc169016a23e2fb94e78030171e72daffc" +07111174de2d3f4e35881e0704ea8f641badbaea = "e74e175d5b9c7411f17d7db90ccdfdf492bde9e9" +07cde024c3291652304bd509359d3e9fcb0861be = "15a65c3f5e1f076bbafcd87c1d96381defea2419" +0a37517349e08663f921b0bec96d8b34f1b09bd3 = "5c59f9e7d1e54b97feff97c834d08d13c565aa37" +0b398b8e49a09315af55a1d7d19ec29911c7bd89 = "9d6d610c42ae449a57312b4e26d1a3287f4a83d8" +0b4b92a2d9f868eef869c3dcb3e7df7e2a62eca4 = "82a5048486c009194853f4325da87701e3c5c67c" +0dda698907d21ee5389eb0c3857ffd5354b247c3 = "7ea37fba5864d63e9c14fffcc8f417e870b13dff" +0e013385d9df34b3fd33ea3311cee9115ef845e9 = "bb827cfe017d795a9a8eab8511a27bc142f71c60" +0efce72d06da55837eae2efbe08bcf52f1ea37fe = "cd57c6728bfa4d250ad8254eac84fb8341333bd9" +1699438e4e7c2c4c5ba23989e6f9602f1b8cf145 = "9093106e93fc03b1ed004822aa8ffd5b7afefde4" +188de7a47f874609be576ac69bf8ab9739b7f073 = "86bc9e7e35b259bcb71a74629c87cc571d51a0df" +195de1adb01aa484b52cee9669d82c51dc14a013 = "8832074dd95e8b2dbaa1d6c74f2905c6966a0125" +19e68663873813fe19788e5c1ba1496b6a46ffe5 = "d8d753df7ef7408111842fd1549d3a952ca9f1b6" +1a27ba9e388099ddf03cf202bb7498b0d0211357 = "51a2292fd678ae5900473f69c0c09e27fa2cd580" +1aa2b90b368251c6c05659ebb884581c998299dc = "3f4ea89d06d19cd5a2d8430aac835c038e3951eb" +1dfe1e191f09bd42f633e1537d4e47f4f4618992 = "d3a3a558c2d1e40e03905fea83e6846964705cea" +1edb00fda5d9c0b60f501bc6c530d95876f7227a = "329be17e1151d2056b2bdcc9d7dc03c5d84919e9" +1f302582dfe2c02945bd1f6d75b360a85ad617d2 = "83c7bc88495aa796598e8f3aa682065a1dec8083" +20ba7911c20cd70dea9f15ea265f435f3d028019 = "6d729c8261ce546ecdf546d02824f4c27a5630f6" +20e454dd62c1c36f9eb39164f9cad5da8ba421a9 = "47803cb15d33ae29240cba07c84ab23cd2a10028" +226bb437efc1f5927c77e2f7e0526da776264ab8 = "796ab395151ed47df970529c2eb24082aa6f66e8" +2436d35cfb4d390f397416ec20f43de5c8a61f22 = "6e9c90ac34a173c2a2c179735427078b989a3bdc" +2458d81963e14e44433f73bacdda50c5e3435f25 = "44d5a55d08bb9b3ea71cc728556a461bd0ff670a" +25344358800310ac9797401d32ffc8060a0a4e1d = "5046025b0d770b4f8c10a27db9c32845c263ab2d" +2583c3827f938e3943eaeb0bacf404c8b2e3d55f = "5729ae3c5c149f7f92ca197d0017508241aa2b3d" +2c91b7a12d1f206f06c902a2b687cc2587f7f614 = "a47e1ed9d9b44c887a03727be77eef652f7ec3ae" +2d0f59007ca318c76d1c9007774cfc13d7134ebc = "b7b027f4ba47f6caefa16ec8131d39c422d2b8d9" +304683587e73a42fdeaa696e8ff5cf857ce8cc3e = "defae9c3f7a9c7a2f5bd1fcaacc888e66d708656" +348c29b813b48d6934ca92f0937576d2f2180f3a = "02f71fd9cd5ddbf8ba908c3ab98dfc872a0936d8" +3541c2df0ccf918b97c5d8b5dadd5aa9b1e3f890 = "14dd36a6d0162487a7dff4cce37a69030ac94500" +3582cf14dc64798b8cca0dd8fcb55c01bef038b7 = "84d66dd2ece6d7ee0de2088d0c70848a889c38a3" +36d879c25cf9ad4d451e5f1e13c73f16a79443ec = "087e2aa3bd8d40ab9f79797573c3a913ece53f83" +3bbd9536360ac0925b4535036b79d8eb547db977 = "f940beb99dc8b9234336a5eee6d8d33d069b8699" +3cd0bc660ef1553855a66fe82a4999ad6ffbe4ab = "1a02277c48062aa59872f99c6f5abb62935ff431" +3f2391c34813b0aa930b4f08aafa92a9a1477b65 = "0427af7e2c8610c8d8612a104d48ccacd69a354b" +423a025603d81449878057f5f4e20c0177215950 = "e1e0d3166c2fa736bd2af8785da3df9e17043b25" +4496a6404ba4091f1c0a05e7163b5d952cb033a4 = "049ee1c50ea2fc7f08eb1d5719eeb4965b00d998" +45140ea4a9cdddf0c7f81ca6c6cf03cdd17bd925 = "7627a23d5624c565ed7b220416231740a3a00cec" +4aaff0777481d04470f5a7261d738a22e8ecf1c5 = "2891ed6e8472a7538241dc9e6dec4bbbc3a26f59" +50c6b364e3d4255c50e7eb66e7dbd9fceea07302 = "d934a2992bea726f38d4a2f07de8c3b02afcfa35" +53b706bcdb12ad49bbf7b68d77f4589aff0a8b80 = "9c64a49cdddfd4c393cb1ecfe798923ad6f40e3b" +546eccbeac2ffe3f80ac4854b7d02e853ead2565 = "50dbe2ed765ba5fc0505b8c6a8f7bad1938a8f03" +54ab44412261b7e1de9d0b47242790ac27b13d9e = "89c74cd15f697619c3f4242fcac1a12d883c9107" +55265a76a5773447293365395a1416a6a5cc155f = "b6690cfb12c5da8e79dd9bf5b766ded3fe5297bc" +55dac99f46ea8f0f411100ff1e36444c262ea1cb = "e2e8ea87e891c297c3bdb0c25ca1b31001c11a3f" +586d7843c3d5222728a1675d1174341469b94f97 = "78691465c184fa2fbec6981b9a65e0ec55f71169" +5883a74bcd743bbee356c335df3d4afff1532556 = "fe66544f7d727f17f8986895e8394ce9871bed94" +58c52dc613fbc9e6a9943765d029f308ad79bb6c = "97425d12071446d6eff76adbce43e96dec40bb38" +5a3950aa76119654289cdfd4959ab1c299dcd397 = "60b7d2f7a76d59e5ef9f348ab7ef3fccae3860ed" +5b03745a6a948781329c444f08ad67cff63f91f7 = "173f843eed911bee22740ed33420edc11889aff4" +5f534b055d6fcda4761078e47a00d60b14bc817f = "ecfbd898ce858ba14736d391f99a72b6edeb6297" +6473a35881c4698f7fd4b786974100d0b89ae492 = "eea6d6423c050eabe8d0fdbc42c336527c494569" +683ff26ecacb9251b4ee92b544497d4f56a97b5d = "b1cd185270da4fdd096421f05c52940353c754f9" +6af2f3826201184b4ee67882d95cc4112a0883ad = "e394b5063f625621bfaf6b31643c8b2cbe038a2f" +6de3fbaa99ee121153c97a12a93850aa01421903 = "be2331d61d28503faf8e774a7432ed21a2de7fe6" +717dd90f28f2992c94cee0d364e10e1bc23c649d = "ff972bdecdf60256b5837ef1d6004462c238a3cf" +73c4a03c82928bed5656103ccfede9a5c878656d = "890ff7d5d02a26d5eaed157e47af20146547d3b2" +778a9f85b01177b7f306c04d493dad0c86191cbf = "a9fe65a847c4bbec3abc4d187f740f55ecb5e6bf" +779a8a5da78039b2811d9c989d01028084dcaa06 = "a63512bd95bf4354b3f505955e3896452d55f1d1" +7985d34ad6b17275570861812fccad1c887e8df0 = "aeeb454752cfdf999538074122fa96bedd9824dc" +7ad5db7a6cd3227e726d7043d850f819bdfbf51b = "9af209b0f866a1852d58b161dce78c7919e90684" +7b874aa85e01549240f6eff385e403f70992336a = "1680bda6f248086f8c2fb0f880cde9b5eb8e7c97" +7d3cef6838f0ccd4f6b5b98494abcdfc4e34c998 = "349b3b103faa541f6a3683e4f77181a60ccb0573" +7e6383587cb56418e5e5ed758f35fa49b596ded5 = "bedb63930e9aa2c169367e4a540828a1aa5bf2c0" +8567fd919da21bf14ad695ab98f2e76efdd5e284 = "8ebd3ff62948913d948a4dd6a4eb11879ee24f2a" +86bd62b86a40bdf243e544a1933518c8c9aea02e = "bddcfc76027a8217eedf91a0d5b7e7bde1a06767" +8788cefafce9505c145f5d7531b76f37b3591565 = "4d0323bd8cc90238bd5551f1ea2dc52f9c74a7b1" +8c6b04c747279e1cd9479a14bad32af739f76d3f = "ab62d22e2f54618ff06126be09817c5ec0661048" +8e198e977db5cadd173d9111da2a1fa1013c898c = "bb5d6c740bc164e6510efcc203c099538662b084" +8e20366c3ab40fb9667c6940182d71e750bd09fb = "9e50559590e186c036fda1f8ace0e42fdf2239d6" +8ffe385575550eb358d6a117c2da5498b777654b = "b8f40b8b7b4b83e65c651f9c2a5e67f3ec3dd6ec" +91b200bee3886cc380e07d58f7dacd747ffadcef = "5cca084a79c98084e9ff337107844b91b465845e" +93ff2e1b1b77c11f7387a1997d6ba69b544a7dc9 = "55934ee23f557e9bc54e00587c0936377a9fef7d" +940149756ce61418858ecdb447641c08305b3337 = "11e1ca949f148c7db5d9601e3ac88ec744a05eb0" +94423b421201052f74ff9acc9bdf6cb8838f104c = "cef44d1646a9249c4481996d6f0b141c5e9fed6c" +956b34b719347e6ebaec9b920bfeca7b4d42d593 = "dd0702395158b10f95e751613d663b62df5edcd2" +95b25237b253057906f6c7bedb7ab464b535ea98 = "3bd44feef7c403b146dc6d0f1f5ea35b60713a95" +96218850a5f3f762f666684cfe9032dbb2ebcc00 = "f26a6c847673ebc16ab56fc8139c3400c7e0d885" +9803242605b6cfe659298965bc0f97d4e830479b = "9a80c13785cf4f5cbd51f86d2ac697cb6f9d7a56" +9a64b3754ef9ca9efc949181706b498ff4fdc112 = "06fd9408eb523df862d3bbb690e5c06b06730862" +9a8743f2477d4ac2fa1643da19d20a25c26199af = "30fec5eeeb931047d5254d5c1ac2bae4c0d2d65c" +9a955372b4bde66bd115b683772cbd57e1226bc9 = "2bb88ea8638d0bc560da8ba992287582397c622c" +a2b9b90d6542d36b48900e5b91272317fe65a2b2 = "f9f32f48f2137c4237a058a0d20ecdfd3f4b73e2" +a75cf4fe8129939062ff82ae79883a7c4dc012fb = "007775bafc08b4146c10e7f310fb74608e8f3549" +ab43b410b755317a1b0561a374464bdb3a44f20c = "2602aea1caaeb145f7beb688cc0d2bd1804784b9" +ad38b08fd15775d2068ffa1ee846f1ee97156d96 = "a47e1ed9d9b44c887a03727be77eef652f7ec3ae" +aec96b7952ec366c8d2e9f26abfe92621a9f4849 = "353f08eef272397810f27c3357bd9931bf12ecb6" +afee7526b4d9486465d838c7bcf89bd8618e0eab = "e85260001ea243eabed7e408c745cf78ff93128a" +b00c9a8a333e516088da80b0136cdcf439411d48 = "69e7dd087f6b0c0148e6c9285c6c3722bbcab0cc" +b1098f48f5de27412323eb75f60474370b654fec = "a15332cda6367b956d555190c1b8fecb0b3112b8" +b21ef68dd9cd769dc60cbba14222473d7743d663 = "8170e3d8d311910e698c0b6abd369b053230d268" +b2bb3abe8057793f44d48ebce9f05c23d3dbcd69 = "6ae653863c5d42e7eeb06cff7b190d250f12ad71" +b56640999f12d6d4a7f89e5deb72708f7c922fdf = "e0c0fa185bb245fa495bad54655ab21db07eff95" +bc9f16c6e582345df8517d4f0708fff8138c2baa = "b755a43729c5ad89f0216b97cff35d462d2eff6f" +bda761307c2d742d44defcaf2ef28ab0a9a8f953 = "94008408c0827f0cd27bd8671e68394abdde5ed6" +be6c6d01697432136d4090ae3515d8ed8170b84c = "5d2010b9bdd346aa4115ec2413e5ae8ba00f6095" +c30c53b9f5a17e6c663c9302b192e8262ef6e9ab = "dbf91af89ac28b1d17d0b6956271de24711e80a4" +c38d6cd91aa18a7f874d2b976a3271ccb81a148a = "8d1fa26f18ab1c9752517d51f1774a5b94118e91" +c4413a894ce85c01b988c43d1a350fc5fd2cca4b = "e46bb2d39f486171abe9e60ee78caac6944deeaf" +c6398639989995314c56a1ce69d0f2d2604427ce = "3abf352267f14a481ae2fb930e0db7638ef4900f" +cc89285a9391f029582827d07ec36fc9f1566ed2 = "81478bcebfff5496a2ec6436963c80f529dd9f8b" +d013435640c4098400868df3ac162006490f4129 = "b6f80fc34e4f9e84412c23728b2a7eecd439b185" +d12d6fb3951707c78abb0fb2391d6f4e28e3398f = "5cd85be2d038d8ad8e041b048d5aa544723cadf2" +d22506770d4b52bd2409fc70fa879e707b573949 = "566f99863dad3ceded8924137dced54f1009efd0" +d5bc9f9c5ece8a315091107383c235de1647786a = "5e173f35b9053f2c8ff527ed8f6cc02e5bfce796" +dde44ba380a9526c8687ce36c120ba1aac28768e = "c68ca6a6527cabdfc8c0359660bb48eabc4222da" +e324d638fc7b5f91afc842057a9aa6054831297b = "89d0672ca6f70b3cd1b88d0eb916ffe58e8aa462" +e3ba9152b3740aa033d1a0dafce054ecdb59049f = "79414087c49575c2b21bac361be05130b731e381" +e3f2fc94ea3420d19601f13012414c0c9a424629 = "64081d149f3414343df97568e7ef6c0ede6ae139" +e628eb0c8b4706100b8c5c66ebf112cd62a22b4e = "e069836fcab9713debaf5caae41cf787a1caaa1b" +e6e10def91c59e08a729330f2bdf7015c26208a9 = "7c3198dffd8e8b60657192031ff313319001f3b4" +e7a4884edda5d830f25cb646a2aebc376125a94d = "cc4aeb74a5bece14df4a53fd2c4dd8463a7418c3" +e8e69d197130a689e472e4d9c3f329a037996335 = "dd30524ddca2e009a63ca87f45986cae26b37628" +e96a5e8a1b200c12cf21835c8e57519bb8795c56 = "05a26029d97c30815c42b244edef24d1c6639f5f" +edec13da63a463b83bfd37551764af550f199fc0 = "9bfd137d86e787f5b4b15d861cce031e80ec49e8" +efc3488ec849d84693c6d288e2fe1c84e6e63f67 = "d9e5f759f9f57d9658377cc6cfe134505953f09b" +f373714dbc1085943b6dac9f378521b21a9bc2d7 = "74976af53dadcb78166e2a83888c6cff51620c59" +fa0053b241fee05dcc8d1840f0015dfeb2450bf4 = "46e4768626967c01f0b4c5692e6f1bff8623a990" +fb88e6edf24ae287a05a65451b050ea8dbac0b2d = "4e2ba357963f7b733e6c28cd9b203e6e3a1756ed" +fbd9cb245a89af2c6d3eea0f1622729a14709163 = "7fcf4888fe8308c16ee528dfcd01b628d98db86d" +fc6af82e63e6e225631713491e58cc7128a358e7 = "b53977c8fd6b63d41853665fdbb1b9c4df35330e" + +[34f115b4-9156-5266-a33d-ca359e631fb8] +0959ad8d58211afb209584981c4237d29c33f4bb = "f7d35cf56e02b3b050316a56dde17a21d6cf1c5c" +0d73baff07f2a934c80e4382bbb851c3aedf353e = "303cbb2fcbf0ce5d2373e12943d6198c5b30a29a" +1e980903b45f382f3e3f585679db9192402ed2a0 = "a7d9383fbe224f1ae2f5297866d3a4de7db2198b" +5e3ebc5cf79fc094e27754ef71ab4f1b9cc708ee = "b082b50333b163922a651ee09da5e61bfebc79d4" +cee6708fc77ae9e67208af60be58c6ddfc429466 = "645e3c535fa2724f93cc5210034f92e26655ed32" + +[34f15cae-5318-50c9-93d3-9feadd34e321] +3a96b2fec830a6ffcbb63ed76f32b96c7c4f01df = "2b1152e97b04e8310663456b0df1920a6f1c057e" + +[34f1f09b-3a8b-5176-ab39-66d58a4d544e] +13b43fd7c403c87ddbb1a6c7f00b12c0dc90601f = "85b7ed337179deeb46f123334c3829cea5f368c3" +1b053e7f8d1947fd4b57649125ef025b6f46ca8a = "159a4ce759c9258574a4a078ad03873db2507983" +28935f65b9e5807535e6c3244b0bd3ce2febd47b = "6046c79b4902166428b3f41d78d896fb52f4a2cf" +4d7d805863305622f68a48223918e0ee0560db79 = "eb7f898a7b962740914c40d8a165601bc33fd85d" +588b53a3fbe0e8ff635e73f889c71aafc2e6ec54 = "65e22248e4a0921b9b0b253e9e9650b397af10b0" +652d516e633596b8fec29b0c2b1a8b69d4670b07 = "c2aeafc958ccae6bad6c1b11fb44d64b20ac8c5e" +87e8e9b07c0d2953689c633b2e3f4415314ab7e9 = "229229d6717bf15f7d1501025805fc9171b41a9e" +8a476dc8b999a73f8fefaa9c457b7455bd6adc81 = "086410bc46f0ed34d0c6ddb9bd1e077a7804c3d1" +beb5f444ea4c368d5191aa6e02447db97aaf8a55 = "faf7915c11f0d1f667bdb00c8d0975e0101583e7" +f47ba5bc1108f5c6457a2d9dfedad425a69ebddc = "d1aa8b4d8470c8db9d73eead0d7da62184cc878f" + +[34f3d4b8-9242-5bf8-8faf-4f21e918fce6] +048eb13912427304437e4658e383743dbb8d7afc = "21493efe1e623ba5917e735cf7db9750957c94a3" +d0992bc94798a465355c32b7c9ff950cb5f91380 = "66c2d628e0a025df0f98f2a77f93d669cea0e371" + +[353921e4-b2a0-5f7c-adb9-3f3137bad256] +03613362bddd8c1e69622dc46802b0e48a9480aa = "69a95a4be67e0a7688221bd3853d79954582ce74" +1a3fc3987c9ccf73c027fdb568c6c22f7b60e677 = "b889b5b3f4e7e357fd6dbc5d3590f3c550a30e47" +259710c5fee519d2495a9c226587eb472d6411e8 = "a97f6e0f48c49d0e6a0145371015cb303d4116e9" +326f6bedf4d371562dea0a531b52535bce88b65c = "204c989ec513d70e830327aab97bf08406f43235" +4e5d937fb5468aa776a9279c17d1bf1671d48a89 = "f5b7580277b804843304b3666ec82f38b7822994" +5790da39c7f2499b8bdc63a2d74634a04d0d20a0 = "5cbd56d6e775669f00e68d3e96c66011dd6aa140" +6036a9db7950f6545a1f85f950ba4aa10390e236 = "e01e5a95d844c5e7cbf3e8d66844beda65a070e0" +6b88d638132a18920828c2a7410f9edf75dc5a7a = "9b955e30d820735226087926e6c6c9773d334825" +727714ccb0ae8888a5fd6985a525fd052c3d45a9 = "a3cff522a2d99f6c596fdb399928eddec8d36acd" +7760c900b756866aa25eac32abc954cb5faa5a40 = "97d4bcb1e646c437ab6ac17e54a9c00db193825f" +796a468c404f951a3f783bea50f584bdec14b659 = "619fa891e2980d01ffabc60e4f6142a228211341" + +[353fb843-c566-51e6-ba49-78b3e3d5ebb5] +049ef8891a919ce973ffab7763374c2744aa7e85 = "fd05c82fcb30520763aab9633dfbac71198afad2" +206120409ce6a101aec86716c570c0828f8020d2 = "2dbc6862d3b88d300b0cb6cf28c3c63e614f0c91" +5f759848644a71f1763b5c470666e138e5a845fe = "117069b21d0b190e47515be35ba3f8b390fc4ec0" +e19eaefc3cc7c5c50111a24993881c3dbb55b71c = "eec06fab8d276ae44b1a8d5bbd34b6927359d344" +ee8f2d9b791b18143a36782892c5c80e1ed13184 = "c4de7820457f8bd9a23ec5bd6488443487ef34f6" + +[355abbd5-f08e-5560-ac9e-8b5f2592a0ca] +3f102204aa1943e13d175c0752e5800b6894a39c = "b58d98cb1e03b5d209339c4e3334a3aaf98f1c7b" +56146f42f2a0080f7c514de299c6ca29b7370a72 = "11f6ced3b64f81605cc74944f50d571b4a747682" +81b3a9ff8e055316a4931bf2dd333c1582dc5b23 = "dc761a0a5f1a89e81c294d831ae6c0d0733c4560" +ada4798c16b501fbe0291f9296d7a7c0ddf6f0d6 = "0794a7789e35e7fe5bb02962eb90a3d14182040b" +eca50761d8cf1cecc67921d3d46476298e0907c4 = "4a1cc3a13458859d0ad6999ff1f7ece6201e7bc9" + +[35b54cfc-a451-5a54-a69a-9b99a7b670e9] +82cdda0aea5e7f5e107e7de0a57426747a02a34f = "c5ca9d9f1e698463351f0dd69a0491c28c31fdc4" +ed62a02f0d5b2fc8eaed23b93af9535bc6324ba9 = "e23aeb4e4c2c6b6143a9c4931e5246787ead1497" +f4a85f173ef45a87580a44c61d84b9369320a845 = "4e3f4f362a21b763016c731ef8cbf5e11f6a511b" + +[35d56a6d-6727-516e-9b7e-96cab7480cce] +056898d1a3f1a2f2d3f0a603e51d53243820947f = "71309bb012c8a3abdbb81d7884c5703bb7149f3c" +1b7074c2b78f46c1a47b6b9334aee9a70ebf5797 = "71cd31ee1e3f001bf7be0d0652ee5bf77c242668" +29028abbe7503ad456e4f9a059f1ccfa7f203669 = "5a0802dedd8e2d592b4a4f9662ada79a9b58fc96" +4714b648b6aa142df6af16a9cc0782f31b01bb85 = "71309bb012c8a3abdbb81d7884c5703bb7149f3c" +7f1ea6ec4dae352404b929582edf9909e1653fb6 = "23393f0cedd32a9b5edafbde93f8b6f85cb6ec62" +ffad5891682aaead26b676576e49c50acb4cd986 = "43ea8eff65ee028f4d7fc08bdfc48e02b4985980" + +[35d6a980-a343-548e-a6ea-1d62b119f2f4] +0a613728153178b7b6f7912f18b0d89164e6d564 = "acaf8c527a4d31e5a00956329fa776c7f931b483" +0c23fcc97ddb943fb48dd46ef7629a5f2f27d12a = "2a1bba2cb902fdf8df1a7a53aca1d098aeecc11e" +844bf3bfeb0a1d8ef6e964ecd0fb2953b83d0347 = "ee51d4556381a78bac213633b3ead06db53149bb" +9d1c7c72dec24612ba162cc6445705fc0588ead4 = "3a50e79a26c2d9cdc2f94f652ae1f1c6d2f23387" +d69b8254d6b39f4a63e7dc1e3c07cbf8505c7da2 = "1254df3c7e5ea9869f914bfd7f4aa563a90b6cde" +e883f597332224fcde2172a68d1a5c4b8d711b4f = "6027cde85b9cf97d6fbc840641dbd1ef4ebd3fda" +f0acf187b04f846e4508be3901b9fc58a035da7b = "f09acc46f41cf2bc55b1989ea5159592297b8370" +f5542f6165653267b71f3ae9ef28629e77c83e79 = "9dcc1006f26f49dc57dee29663b3af3fd881c455" + +[35dd6a29-728b-5d91-8fe9-8df4ea503c83] +7ab0c9addefa3c3528947c4f55ca83867683e31e = "99f71360079e9ae30b6d0115024d6c29a4381344" + +[3637df68-df41-5d16-b00c-95ac8c2142c5] +0e0664cce05e10efc1351898f41443c7360e65d4 = "a8586b9e9818f006b83449ff81651b5692a2d235" +2224a458fa54b0964c7a039a7dae7a6f67615036 = "37f766ffe2e2ff7c16089ed47cf87ad88d3e38ac" +2870dfc06abf87702a57408be3e25116de57e57a = "cc2b74df5a8c34e0df9d8013c2b128b5f3f20b65" +485691fabf06d3a7a0397e00ebfb830fe24a712d = "e9b3a6421642aa34422fc7d4e0c0cfc8d22c735d" +5510b3762998d433f539d9fb653617dcf198592f = "b9c425f352df7f45468e5fc3525ee230c638a1e4" +658d40f7d9c4dc39e427b4706db6e610aa3080d3 = "fe6bd8c357e3bc0ab10af6c71c29da03faef806b" +789a12fe4232fa0ac80aed75244b8f54699d06b4 = "3be5252c52d9acad8d46d0c539e903c32f0966e5" +7f5e7afd8ad7c2fab70b812f6596e9163b9eca70 = "caeff75a684dddf62c4d5f115c621d59489964c8" +8f87dadc7bae182e0b3adf7150a54be11dd2dab1 = "0b4711391d792220681a88153094fba3f7fdf5a4" +9bae2aac4542b05db0fdc000a020d8a713874fd5 = "33d137fb9688293ea03c89296d784ca9305abc70" +aa0ee593449bd3b7de74a1c15b5cfb327ab42473 = "125f18c090a126276a715fe716a9f3468244cf83" +c0ad84c4221eacb1b646220de1ecd1ad62647717 = "a380392899db77f24224fa0c2dc4ee5759f5f7fa" +ecba7c7681861d6a078b835c6fb350053e1b1e97 = "90221f7b41244297a2905fc57996730bd0b00019" + +[3646fa90-6ef7-5e7e-9f22-8aca16db6324] +36e79be0a95f05fe4cfee976ecef5d68fd42915e = "ce7396c762516b904ce77c549d3ba341c3208ac4" +4d29bb828f624e3a2c06d2a836edd8bdbfcda8fa = "05e0cb58b75e5fb2d162ad02f9746c8e668210b7" +536ae0e69636d348f71acca8908a66986d12108f = "c9ff6f27ad556609094ed7edb74eeb4f7d8b7d61" +575fb8b3231674cf464ac3781c4c4445aff78931 = "ee59970e74c04c11a8ec8a897088a8d0c8f39fd7" +6bfea3156cf3b8cf80f83e0f09fc059584ad7cc3 = "60c94dce3ae7a8640728bea06551815e9a3da85b" +95ee7137d368e59de51be5009d5bb4e1f043b077 = "04276948cc7f73ed19d64cc93429c7e0d3fb548e" +ac27ecbcb0d2a69ba34000de6959100ba75f2f90 = "7dd444ecd4131c6825f6eab99da44471183da0e2" +b62ad32ae96c83489a7880b25e6aa62c8fdfe571 = "ef2db324fcb84de0199ef165eda3624c36bd02d9" +ca924a85bc245a00d944e95093fe0d10b58e077d = "623a3a2c88581c30ef617cdb229990afa8851cf5" +ce048508b9513b69bb35f0bdde37ff62f8bdafc0 = "9daf715fa5adea958d29bca1bedd1b34c0c4cb58" +d182cf4870d0281502e35351f617121f02634ca3 = "8f8c0d4a6d28621bfab0b31bd20aaa9f6b4e2ba6" +ebf176a519fb0da6dfba61e3bfd398147ad7d7b2 = "2a50bf71d30b003ead491ccbd627e796db2d3cff" + +[366cf18f-59d5-5db9-a4de-86a9f6786172] +21b7742875104380aaf88b7eedfaab34065162c7 = "f2eef16a159827c54bd23f1882e13d59099443af" +30ba38f785256c50af279f49dc22c715bc6b60fa = "b75ff230ae5e1c93b9d37171b1982d865dec49e4" +40fc23fe31db29fdd7a7b5e046c81d2db09d74a2 = "ef1548eadec08a6d78d68074a278a4bb9e1d11fc" +505e85adeb16ed76d15b2279ee8753784ab9ee95 = "e4d79a08b67f6855e8af8e2686ccbd150d2e88d6" +72ed4ce112e9df818f39664317f397cc28256600 = "2f4c5f081a467ea41db74199099e06bf7889b4dd" +9943a0dacf37568969d11976a7a6d3d442341936 = "8e3f749eb6d66ebbdb2c05d832cabf34fa19ff24" +b782a82dffa4c0d89ca1f8697dbcc409dd478b2f = "a26a0f2b45bbc6876f8d4bc3e2a2292d47ec3ca2" +cd58a541cf085b31913e8a22c3206fff0003a751 = "de90774c2f3733c42f3692a4274df690f9658f55" +dfbf7aac31875c69ea8def33400baaa387822bbb = "c0a38fa508ec6a7797d6f994d31f6b21b0f20872" +e87788bc6560223851d863355ae2c96bae6f9f6a = "0e57aa1bc68ede53c42b7d5981c8519b6de7cec1" + +[3672c612-5e44-54e8-851a-917fd182bfd5] +4f40af249791f1a4135642a56fed61676e93e6b5 = "5f241de0df1c8cf669dd2cf7ac2fce90cb932fdc" + +[36cfb952-b4c3-5807-bb82-2c0fddb7e68e] +05a8b176cceae13f29976bc5a5b46395b2cdae4d = "004756832cf985a034e63356393fdc3e055d10a5" +46536ced7e8ab711d354a07fa195b77be9c80cb6 = "bed0d67b04755fd69216e0a0fee41e61f1990286" +90094ba40013c34f54598e0e511cc88b278640b2 = "60b1034bf143a6ee519bd6865cff7ac7eab27f70" +9cba805897399059131992aa49a49d285165f5c2 = "d17221fceaea6f1a90e37e7de3ec98c8fa94ce3c" +a57b7da36324fe14ef0c2f6e830f215225a53da0 = "4db07dcc28db73f6280d7db875814eef49f7a7f1" +bd9a35b1b529af1ae235c8822cb0fe5de2c55b07 = "cbd96473cbf95e60ca976404aeecf31d0f9ec2f9" +e40d0ee62758ec783f0e0b9d20bac315bf83e7e5 = "43ca2afcb4533f9e60f7be87d01005aa0ea2295b" + +[3725be50-bbbd-5592-92c3-2f0e82159c3e] +091b546e3eddbcf6b5a2a8eb8df5f0dd9c5db3f2 = "7e9a02680d2a954b76f626ff3e31811f7ac99ffa" +6a771ea06785b951678c70ac7b7dc16811b49914 = "782cb08c43baa1ccba6474f1818636e264999983" + +[37834d88-8936-577c-80c9-1066ecf66832] +596e4b33ab9946bbd69985a6b843089e0e676c9a = "09c7f7ed242d731cd7cb77893829485212a2e7aa" +6e47e31d97b14ff1b66207df7bee209fbed6d192 = "8f80085ca9dd107bc4b93914317b57049171f491" +867f09fc2c36f538c2205781ad25724bd66e235b = "dca4f8ea3fdabae6a9b03405a763e4b98a27fa64" +8ae444ba6f6edddb21dc2bfaa2b74dd9b19993f9 = "9fd8eae20d8b413d21fac2c6aaf2f3d4fc874295" +b700968e0ac9337d9f14bf9e4b8a2dace547351b = "8f8614b10a40a769b297b8a6442b78f4bed3c6ae" + +[3783bdb8-4a98-5b6b-af9a-565f29a5fe9c] +21a114eeb43283dc4a00f5ce73bd250c34bd3743 = "1d354ad41c9e28300e7b2e0b87b15deeca1b998d" +5da8015ff14bb037e586c559cca15755b0b1ba14 = "a0094860513c23e9861a7938fedae79b7bf42e4d" +8c78f81189f37f479a0f735cd0d1a3d7e2a1e668 = "0e117d8b5948feac63d240692bda6b50bcdc28ac" +a082932de207eb4071861e3f2d22aebad98b71c1 = "71f7f50409d7fd7d0ca663095841f45680264e09" + +[37933770-58e7-5599-b2a0-fdc2bbb99623] +b15d70952ad18de8dd8f5f48a5588a72ff820f12 = "41b678c1a685f587e46f48913b7790906d665f57" +df5351093c3d4dc7f7daddbbd2ef5d48525fb30c = "7d96cbd110fdb4f54c5d8dbea989b1959be7c805" + +[37cfa864-2cd6-5c12-ad9e-b6597d696c81] +58c0db4e8c28aeb2b91e794c0ad2ba6951cb90a4 = "8d99adb1ed78e211731fe15c2b7847171e117417" +72d64744643ba817ef79e07418d8b9afe5620f67 = "b0692380f3171c41ef33c972a1d76e5b0c0e425e" +826fb0a8c7bf0743bdf1e6679be985a3615109d4 = "a5ae4da01e9334753162267a0a7c5d9e2b0b3242" +8eefa802b9be3cc8750bf5f8c4a1bdf8843f9e50 = "00b24ac4d5b34f4a5faaad0164e0f473ea9ff9e8" +ceb7c992ba1022011af637075a6bbf830afb9974 = "1c48f6cd0aa9d5d9211c36d11831304e01e61ff2" + +[37e2e3b7-166d-5795-8a7a-e32c996b4267] +09e74711b98ec8ccd06035cfdf6af61f50a530af = "2e550bc2af96752f04bd15a315c67f283f00fd74" +0b8806626a2739aae1ecd8dbfc04d4007ac8138a = "9926df319a173fd386ce79abb02c80b783996d5a" +296e37e6d9620f73b7823ecd2590b4684b10db7f = "9a215c4e54be533ca0abf7a4e2d42ef32aab09cc" +4f97151d4552c75a1a2eda35eed7e7128f064f4b = "e8628ce1f5a9898fdc0a9eb0861d3dd8c6a8f8b9" +b1496d0e09e711e5b7b651b53c48e1f98dee43f3 = "9fae5ea9ebd62fa4c81b2d7d2a1c29a1a35bb678" +beb031ff6ae669eebcedbb4f9e380e8b41adf7bd = "de10fa7359fd0919ab381dba34335f3960c8f612" +d2225df05a2045e814b9da8baf76b3268eee8336 = "cc1f15455e844ff6134a6063e87af1cbfa10a293" +d41a29f7d2bf8b1a5b6955f654f4fe5f34f61cca = "79d5a0e44cc55d63d43c547eb9af2a0b37b5832e" +eec3108a648e37e832db9c826c39b43003d28391 = "565875071cb41faecf71d153ba7537071c9d680b" +f20052051843d377a7a11abc6b6404a254333dc0 = "a69afb39b7db58c5f70acdd1757768904c96b4a7" + +[37f6aa50-8035-52d0-81c2-5a1d08754b2d] +00255b53e7af60de411a0ead9512e964d38ff3b7 = "25c04659780fc6d40cca5f29179f63ee6c52568c" +06e12bc3ed4be42da92763c819a56bcdda8c31c8 = "a54d2cb777413758c655caafbbb8e80b9162dba0" +0da220d372beec8ee74219de12aa78c729a5371b = "6a85b94717b43b1376e7011485d50eac24eb0f18" +12648cbccf58ae7c33e9fcaf7089deeb1190614e = "f26f083504b6b35f97696d26e137b2b3b2faf35c" +159264999a9190353d63fb4a139f898e4bc6f12a = "a71c389ee72b944cf9bc5a53f8fe6110577a155b" +37b9d71da359b241487107feb10f85404ed9e8d1 = "9473b49020ab3e82a1659cd9470ae5b9cff6b994" +3d7c404810b9f015f50331ae0dc61eefbf9bc31f = "7a2dde5d1d5bafce841f076afac13d39a8b258fc" +438013d9ebf5ea1a620da4f836658bc8ffe01138 = "52eec59c0bc24f86d70aff806bf3b3f5c61e8a82" +483025d0b04e3700b67a32a7a67449f8066db682 = "c244bfc38d66cb4e11a50813c70417c8f324c76c" +51f2a5ca1bdf1fb9eaaccb969f10b5a56c25dce0 = "ec3e8d06fb6301b28feb099590499fa8f0a2a428" +5301f560de05b892079852549be0790e95e617fd = "2bd5a38652d9511904fea37c7c5dc7899f253696" +5363bca4b64ceaf64d0f9989bcc2557571ac0544 = "f779441f09d9e7d13910f2f1a9e11bbb6159e06b" +5d2fa86d73381dbf9caf97d8c19fbe9eccbdb79a = "19953575f0619f8758bb5b5cd8a6edc571b86b20" +630ea40efc44ec723eaf8a189213bf901591e77b = "133141d39d03c67c57175384e48e592d6d2d2575" +768aa876269b20b03ce75d38acff6284dc29b5f0 = "e33866f64a747aca5e6596bd8e512aa5bb7795a0" +77431a96cbdda3af91b96947be28268b7ec315ec = "e38a69f5c5dada189b65b9670e686f0ef94f4eff" +7bb5c828a2b45f0d9f7eb94a6a8aad80847066a6 = "fa24c35c654ef9580a51b07fa59f8121ef82b839" +942bb803e843dc2d679e7cce59e3f09c6178b389 = "c8198d3693aac72a60a1adcf5b6ef3af50ebc64b" +baba140254ca5e1c8f3de50d938041a29f2ea6da = "09f4a7092f3e3f26e850f6de7c4a3116609c4cde" +cf0c8bb1007c2399ebfaaf3f394604a2d39c6b69 = "635916ed8025dc20ba0f54ced76391a1f7ac0539" +f78ae077506b2b3e0b2c69a1a13e65549cf75328 = "4f58867587e1d54a571975f81f981691f134f64f" +f78bef1a7f94b2a75fa6909a2c2dd704c81d3ef1 = "105dced10129d223a7e2d64ad050cbc01695973e" + +[382cd787-c1b6-5bf2-a167-d5b971a19bda] +0ee48cb1e0e0cc66ae17053191e9b5064a5e41e2 = "22933b62ddd41388c543ab37712a501b948b83aa" +1ee00f82119d1e7e69a1cd9c18751d92a902e608 = "674984653b808661a18818b115f1ebe7177f7489" +3f21e1490ac507e920bbd3fca29165ae838fdc26 = "292838b0725ac93cf3f85d8f72a25fac30986a6d" +4c6fd1ae9890f02fe8289be1a434c033b8435a2d = "70d8049e5a52a047ccd15423e8ac2aa14465edc9" +614cdac086d144b0eb3f04dd62b080f26e6616c3 = "a2f864aebe39eb32b8e79847d9cf371f40fad232" + +[3834c8fd-48e2-52a5-93ac-c34d1bd191f7] +4795fbd68fcf37a2db45fae676fe2e5cf631cdf8 = "da3eb1d396ab27ee81b75d30c6267fa61e41b0b2" +a339f8f0bb05ebac90786dda4488dbce69359d40 = "25cac1bf6101c9ba84969677d605347bece0c974" + +[3895d2a7-ec45-59b8-82bb-cfc6a382f9b3] +1e61c1e11b185a5514a6b591517d7fb674183ea5 = "50e973db3a303ca94b4c7e85c8dc49ba0de1085b" +29049524084d11335c82c6f13f25d06d962fd041 = "3a99a34612a4a2df2ea0e207eda2d66c231ceb2d" +31063fa208d11bad8b185c38372d660c60699a5d = "c74e51f3029c3aeb046d30add94f1311d375550d" +4421cd289bc0a3e1cae2fef31a07f06c53fbd275 = "508b8c95c1a25ccac137ee37197c8d41f0edc06e" +44f54e34314e53e4aa3197c15913f5271315ea24 = "28d14214eda249df5dcc23278b31314b9c539757" +4d0c0b46ae297c1128f89b123c9be4a3a47ba259 = "2be69ed4dec0ba89e7a4e05731c21ff6e1d0c5dc" +68d96bc4922fd7c9c0b860b84419df486b07bc9a = "1dc3b78adc24c01333853a05a0b1a22677db0b33" +8cb5c27cfd79841adbcec2e9fe0746b0e7945743 = "73a280b4a30fa1bd8a67ecce16ad0ef9fe524ecd" +a690375c99853d3c2126551d168229b67c81b414 = "68af8d97a80127ab26c2dc0fb02d771f34ea0d11" + +[38a4a31c-f17b-5f22-8721-d9b4a0175df2] +4b7131c9d5d378b65efb0deb5437a046fce27fdb = "9ec90ae0c2fb4d03f9676a91bd38ea3eba79cb9e" +945fdc068eb67de3e2a261483a0d4c00be1ae244 = "25975ca5f3fef3c66bcf56138769094c6c7c4451" +a825bfa5873480fdc3dfdb38502e275bb04b8fdd = "015d7bd10375b0b8d08ecf6309d66c8736591405" + +[38bc9a14-d65a-5c5a-8a51-c6e7361b5ffc] +0d70e06a26d8146194cd088f8ae5908c029cbdf7 = "1e333aa8ac6aa358d3fd91e8bf831b66b78e1fbb" +0dedebd57d07b5e0e70ce1ef874ea58da372b38f = "ba31acd46bfe30193e6e0909cad5af9ee62c2d1a" +0fe50dfebadf2d3835b7241ac165ad9187122b61 = "cd4e5a9f3416a0dba878a27eef69949dd609c077" +11f9874dcdc10523dcde789674e43006d439afdc = "6a6e37d8632d474ffe6a8187996c5c07c1ecfbbb" +21ac6f6c08791c9be0d68836f2488ae78828aeaf = "12650abdd8de3066ef919fa810aaca5627e0cf79" +21b25857e10481ce47b5fff75482d6e4b4b5e908 = "bcf4f25b3edb9cf4f9d8763c2ef829386ff51596" +3fa9dc641da202eae1029adeaab2e7e374427092 = "d95775f9798cda172e4f0cb949074d07a5638331" +62194f37c3e771c9779788a5633dd085f1ff356e = "e3dfe68a4e167fe21d097e48c08d8bf644573ff2" +67893fd043721ba553a3e63444ca5e49531970ce = "187125a0b40e11439213706c56e1fa289cc05514" +71164e445680b9c7b05489cfc968a1d113a3c4cd = "8f727f87d84c23a1a65f81161f5c8f39d19c477a" +7d8fcd59e5e9cce65cd23be13f507f28eade9ec9 = "0e489bfed771bbb7a0d4c8fb3a09d5cb79d6172b" +bf5ff2df0bdf3ba88de0bc2f80c59b39e58ffd94 = "6d66608d8a463c679dfde457957c71f7171277c4" +c394d51c6358000ae347ca95caf12a738885d668 = "1d7a4501807c8846c606d005cecc4995bc4a40ad" +d9e70711585c98371afe9371664d23c88fa09897 = "0c0638d7e5c00575d40ab74f036c77c2ddfbe8fe" +ef1bf1faec0b3b4b402fe185e6f32cca3d414f7d = "9b4b4183fb5e9d0e5b11d827a8ee4e0cd071d8e3" +fcc85783d1d55ab8591bdcb949392ed194d17bfd = "75781e9eb809a17010dfc00a873c6de7cda98c3b" + +[38cab1e9-85a4-5f0b-a884-40c18149b8cd] +6c12acf5208b829b612cbeb5878ed1f0a29b75a8 = "c7dbaa68b8508fa04e3cd4f4c51319fc0d6cc4c2" +f61f8db04c45c6a6e71ce0daf05f209e5a1d3e42 = "1fc90d906acb3eee25ee75a63aef7a8b5ec3e73d" + +[38e38edf-8417-5370-95a0-9cbb8c7f171a] +0258f520324f16a02f5578fa50eb9479faa11ee8 = "9315c7720f5cbbe81d739bb540ed4eea32ddcc5e" +0f86226c88cd13797ad7edfeb7537b70f0f24f09 = "85607bf660c61ca9cbb5cb9f0623ccb7eeee492f" +119530a92986204566fb17bc54ef2b2fc7a80af2 = "5086c2ca8d491b62dda994553e66e289eb96cc71" +27d0d7b19c9aa8f573648d75232e7a6f5b6343b7 = "038729728e25d5723dc72b35d52f6aabbabacd57" +28596177e25d01c03811b21ed197672c846822ef = "3f8f3dd0ff72f05b057bf3a303b3e9aba10aceb3" +287c668acd592c05ec90140dfa70a2887045b4f3 = "6768021fff8f442ffb69668e7bf39bfdec9a2cda" +2e421ce7e3a68ac8db09a27d408beb841504a208 = "cda1240851cee5c7e3175bba524721f37bb7da26" +33229ff87b86acb1cdaa39b5e228469b0c78a8fd = "be325f264475c81251e604cbca53b037265d0a0d" +3cdbfbe33aaa490bc92c5b709cd44f1994b89543 = "31f993bdbdbc09c910474e67d9b4af448067cf1f" +44131fbda5a6cfc87c962045f1d06d2d9887299e = "8c3c194c478df334fbf9d1a875f512e6d0980a85" +4f862cf11a93d2c91ce5e745f51233c49941f836 = "2e8d306266bfc9bfa085c6a9f73c362a630e7608" +5765bffd4c1afbbf6f99dd442634289a59329537 = "a2084489f799c6e2a729d882d7ce4dd764e4f6c6" +583e747419f5d5c49f1174ffb0c17bcffc536c1e = "5fba10b0e79a7a969b1a305b75bffdc22cec26ea" +5fc1cf1b5c45e9f4b2ce6fb1fc7619e443146ee2 = "7361a54d8aaf255320e9303df3420ad6a23309a4" +6052ba9e5dff8ad7ce2ee2bc4c547a3be69ae202 = "7d2b4e585f4d4658f5e28922c3e4f574cf65be64" +62d21a784a1a0227f976974e7941b8ecb4c7500c = "94ec50b8bbe21efbd6e3413707021a84aaa63878" +7419f5449fad90589783891111167bf2f9c3f4d4 = "a2b02a983f8cfe332e1d133bcf29031c9be27e5f" +753569ca95c7990f0ef8eaf704cfeda5ba0ef3b3 = "9e3166132a373cbb680c7f4bd4a6dfeb4afd9e6e" +831f5a5ea3613e342e5a63cd4051e1a437b7df2e = "c741cbacceb4355500ab3be85fb1054b63303681" +83f1e4c5540774109ee4f75008a6db3739028916 = "39100e6a60ba9b04efb7e195cd2bdbc0a7619626" +939bd42ee8257ef317d63d6448f44b4fc8c45b99 = "3caa7a113f8a3fefdb3f0949032db6f69bc6cf72" +9515d57e508b863636017a61f46e14c6b3c30d73 = "03bf7d17f3fb231b2ea6b536f6f856b7596f1d19" +9a734eb3842873962378b239f57b46106c48652a = "02f9e90b9915c1fa2f757389cc14f557a6ad015e" +a5ea101a214f08d8e3d108dcd4e64a5d38bd66a6 = "cbc7cd832071712a3420a7b36ac8e67fa63db5df" +a71c0b7754fb3e8a9e5a11c085cff331af0c091e = "b9afae918ea1759e6c4b83a1f3284fa05d7c3686" +a772ce48b0e1fed196d5d0a7dacd6e3776b95777 = "fa27f6d5acca7b94af9229cf13d5b228f508d6f4" +bd1a03a2bdf64aa306ac491a8492a7372178d9ac = "e8898f7c5a104b5a5333e407557298938c7696aa" +d4e951dbfce965fa4a8dca4897fd6eadbacf40ab = "f40f6a9865863e635974b606d9ffde2c6ec8f5db" +dbad91a9598659380853b042e231af63b86f38d5 = "2118bf00b66fa27365163b8337e82723babd305b" +dc0dcebc09ed2d5c700ea401544d4723ec8a8f91 = "527e1d8e2621133ec024c65b1dbec9c54c002964" +f21b397185db9e28b43fe8255b287e48f3a0b306 = "5687b18b3127319132cacba67b343f1f6d27838d" +f6d420b40749199df514c78985349c77f5a9aada = "2a431656bf85ada6393891143b9db511143b0925" + +[391af1a9-06f1-59d3-8d21-0be089654739] +05307409428ae643a1105850ebda3e6c5e9aaba5 = "24aa74e0215417d9bf077810ae35de3dee54b324" +06e43bb17e937ac394908077247918ca9751bc45 = "ceb4952ea01d641fa53f65ecec786db54e05cd2b" +0d63abcc19a6cda249961b9b4dcce47491b8764f = "d49586bd9a2f831122afafb5c6ff163504fd1e5a" +135e3955da199c5f7cb290c3afa0ed3d8e12c268 = "ba030e8bcdf5a8adc1d51404e0f41a0b2376094b" +25df9606ead174423bcd51519003df3394ad38a8 = "b3a1e1be113e587e9cf094a3fe4d33c2012c72ee" +2fa5956aecd04156fea681f722e0c0edbe04eb5f = "ce21a679529c5a189668e96444b5e32549596262" +30f8fddd279b5200ef07a1b0993367692a2927db = "24802ec37f133548716542fd081450328f5595a3" +4095405d3725f3dbbb6bcdbd836265241d353779 = "833b3330eeba3b75a15c2d1a8ab55f13593346d0" +4a7401cf0816f162e2f5053a0536dabae414f73d = "0779b4c98ed867724d4a6ed29b155180ab5b846c" +75f5999fa3b550b023a0c4c1e47c67db3e2789c3 = "bb857b240a93b35a76c7922342cb930c70fcb823" +789598289a2980d1a3c99de56d92ad38e55558ba = "4feaf71f5c5eb1846ef9c518ce5172f7f1cb58b5" +8194b1310093efd47502fed301c5b3e7a9410d7f = "965abeac8049e9db0d57c2dd33539fad10f903bc" +8b3ffeb8e123ff8fd367cd4f79cfd060fbdc909f = "0a24eaf0d24abb5a00a77b34a7a378dd5f79083b" +90ec96abb45ba81d782ddea4f11d78d53617c3c6 = "1846b5b3b2c79c1676de81a70f3e112b45a331fd" +9ac383a6cfe298d4b2d1d4111c37776e2ac5e47c = "266fbd7110cc52372c4fec2a5b8c829f8e109cdf" +af47a75e860ae42593752fd78ba2dc9dd6b93a31 = "f71cb2da7dd08fec98ff2d4b87ea25e03ff157c1" +c7efa20aa25d5db7af5b8a64e5ccbd0e2c13e890 = "c79f03fd157541ffaebd0d29f6a260545b7967fa" +ca67d93f982eddfa9a1043befc056dbc10c807b9 = "0af6dd53a5574996efbc0117edeab9db03828d9a" +d4742980fd6c895cd2a9547b8da87320660b882d = "948a236c6dd55da97510f927c3fca3ef559652b0" +d80b712b23fc20c7e8ff0cbf97de5d1b304ce6e1 = "ec78efddac73bc03ee2c7ce9564097c724022fac" +db1775e2a82717515eb56cfff7b492627e131b3a = "08d0d75dd992ae204bb0931bacfa8ff2a1d82b2f" +fb6018d19169a1d57c96ba36df4c9fc67ef3b67a = "4219d45aed7c51befc74e0923203276c44454e1f" + +[39424ebd-4cf3-5550-a685-96706a953f40] +1f40e0f45956372f9f602378306c4168da8a311b = "83c8378aaacedeb7012a67e23e65ae253573cb71" +72967a51c6ba2d71479d136d6f176affcfaa3e5a = "2aeb90bdc62902a62bdacdf1d4139067d0c2143a" + +[39abe10b-433b-5dbd-92d4-e302a9df00cd] +5fa2ad2d8653f53ed4293a1b612c99f300144231 = "22a373ec647a79403a35474ad92bf52f6eb0c6be" +5fc89185297915c2e97d850d61b947912ac3c447 = "264cf78e345b34d33b93f338bc5c3813417514c4" +90abdef9c497da238d8f98aa4cf7e68545018958 = "19547dc984eb9a9e44b47a77627d5234a443d349" +99da11396366c41fc48b364ca26ebe5457230d1f = "9230e82bbc5e51441de140f947e9436f63fa9210" +9df77e9aec4923340bcfa90f8048e03232967a72 = "32864c55f92eb5d7518560ed9ce30ff5b3dcf016" +c7024e7e406c16b47b5825a398e829fcdfd57421 = "3ddd3f63881e8cac9458e93fe5e8b8a3ea65e37b" + +[39d38320-a18c-5735-a4f5-135970cd79b8] +697e3b8ef9ef9e558387797c02787f9707ead0ee = "1b85d45ab32eccd0881a4c89d082cbb041c6e623" + +[39dd38d3-220a-591b-8e3c-4c3a8c710a94] +078eb6ebb949d2aa6df68bc610df5036edc70dc0 = "b32dde45ee46a964113955ba11c6cb01b5ac274f" +0e5d0da393048631f3f31f8d4576a0dcfe634f78 = "fcb335b6e09403a2ff8139f24fb616cfb72157b8" +10632b9190b7b5e635d1550dc8566b0b01e5b33b = "b836eb1866d1aea857ef74a704817cae1c6eb577" +67251d5e0e862ec20357be88a02c5e5917d272f5 = "50f75bf13443ecbd16e0cee8f775b1638f9438d2" +6aacac44a8a424cd0c678b9bd7ddb60b1203e8ae = "2b67f574989b5572cda1bc498efec4d52ab6ed15" +8ff4b5fb02734c58677d0c9f6bdcf49b1635ddd8 = "d6ca3ff862746cc1c0ccd663fba0d9d6745f361a" +9fb0e3e31b97f87686a150552488bbea3e8ae773 = "e4c2488a6c79a2d680182d7055ed63dbcba433c6" +a64de2322cc90ca588e29d385656ca7b5fb73004 = "de91fb94370422ed07107f48519a5c11240e91c3" +c11a48a900ab4e38852010d0ab5755fd89e4dd89 = "c9c7c2847bb6c9b12f33426c96d171e3b3b23184" +c59fe13bc460b504d2e786da63a0f17b22be1343 = "8cf3a6535a8cc0d2a5b93dae4231fe29d7bdd0ec" +d41c01ce4979541aebc9072c674c8dcb31b65b4e = "72a73ac5881f885a77f41da41a6a5d8763803034" +d5376783b86d2f4c74f04b3fca239574f58c45c1 = "e7edd9849421137b654a2a760aaa510a8d1da9b5" +ff63273b9452fec3bc9a396906d93fbdd7c271d6 = "87ad9578747c364c2e4f7433a93bd48c98bfc10d" + +[39de3d68-74b9-583c-8d2d-e117c070f3a9] +0c91a4c5a80b4051a1ba1d344e530fbb14b78d79 = "28f57d905509142b5e77ae4bc772938c1a596542" +65263db10d7ca11610179d5c808a92536158f819 = "17f9629fe803890f20241f0b0d7d985b16e02411" +68bb4e0a7b9be42d66e429894bed953b9a8ad1e0 = "4f5260aa90727e0484061e5476362711c417d00d" +6c8cd0ef2989c61c10a4b7b83828ce4e5776eff9 = "85c0540a422218306c6cb648364e4df602c9caad" +75a4394515650f87b64866452405a0aa1110cf04 = "95a467fdf498c5bc296dd3a4efc7e01da56f57a6" +a63fd44fb7e4dd5c6036a4d8a8892f5c515739df = "385dfdb08fed3886dd161538c45375ffcd59393e" +b334d9055283f00b59ca116ac8e0a783b2db4b31 = "96b52f0fe96444a5b8ff915f6661f93d82a6b1a7" +decc774acc126284b1cf3e88c04a3fcb0f3ec3d6 = "efb8a7ba95044ac47bd5c4c3495a530ee063fc44" +dee0c63b9f6b11bda4ab77bee8e6972499727ae8 = "1e0e291a71091f54b02323b99666a8a5ae3efba8" +edd8884b8bb7d4255d7303236d782a315daa853f = "9eab2c76358295a9615d3eff6a9314c8e37341c1" +f0fe6d309776d53bc882aa7576979cd6510a0464 = "463e939e2f6712434110e3b16554d12a0d9d842a" +ff82bc9d392bc5912648aae5ff871fb593ed4738 = "2ad2f546c3ef31000b0b6dbce73a23eb8387f313" + +[39ec1447-df44-5f4c-beaa-866f30b4d3b2] +2c3351a8a337af4431da4ed4039013e00cde5659 = "d29c5529173c6f7a9716740d2fa262c56c181159" +53607e7941a25bf19263c465bef9b7e0c60bb990 = "784818f67082b92a77786aa0691aea8bd4a50d1b" +5b26b255d273a95a4c1376ff284a62b0ca640757 = "0614be2e9114ec85cb34dd15322dcaa8b4865fb9" +63cb60167a426c2e77ec71980213f393f19decad = "c7a56abf1965f035f199637d4600f743740b085a" +ad7043a2f3d1a0a60bdbaf7a38f5b84cebb40a1d = "11cd0ba2bbf96eb22144e19e2e95785e5df95756" +bfc6b05c830dacc40a79681c6091e0cdd59c80e2 = "6a7e8d2a7170f2057aba108ce1583b10f1e4f095" + +[39f5be34-8529-5463-bac7-bf6867c840a3] +06cfb64fe350389acbcc8d355c035fee008ab4d2 = "cf6f199986d2086f342345410aa27a46a0274b0f" + +[3a141323-8675-5d76-9d11-e1df1406c778] +2ff987acfe1f023359ced71bd73b2aaa8dd19de3 = "53b4e44a02dfffa156981014e9f4c5102ad5e24d" +36c07f7d4a9e22c7f8e6a6209b7b68a943223724 = "639391ae37304fb4ffca2016e9ed7d6c2d80011f" +468dfced22e12d0aef6cda7eb3255c012ca23e3d = "bd09b2fbad5faf79bf67304d53871f9900d788df" +939628eb7510be8bf40ca44dfe2108bb2df46d5c = "24cb429ab776adef9dfc82fef15fe31f542685d0" +99d663706343111eb9dbdbba48e8c52b4a7a82e6 = "918af58b54687784b4f0b65c26771d97ec4d9583" + +[3a41ca7c-167c-5dd3-b068-80165705c037] +2c1754aa77bdfd9ce240a9781dfde1c79a86a847 = "dc347acc4a545c3d7667ab8c05107cfd47bbb2ee" +5c19e6afe055a91052f78112eaa1369bbfcb2d2a = "2ccac39165020e4cfdef8d5175e572f6c60e24f1" +8a9c00b44eeac6f24d540a55e312f0e5d4b6fd12 = "27fdf850492ccf60aa21b968a924999b2efb6409" +ad82f8e577f87d564ac3db6d417cf1ac7363de8c = "6bae9f81304d9ba319dc97b3a799babf93ddb173" +b28840489bec3dfbabbad46703509a94f4a48a22 = "230ba352604270ddf50412683542369c7a516c75" +b65a5b84205b305967408a5567aa0cceda22313d = "8dedbba84976a8588313f5fe0f522e65e0952253" +ecd254e01e4a653ad0fea3602146beded1706779 = "f4090f37077d7929b3ad071ab56b7d8f357029ff" + +[3a865a2d-5b23-5a0f-bc46-62713ec82fae] +03ec146e2f8c158bec2a5cedb630c9d44481a31d = "b094bdb88fbaca39989d968dc2b3be85d3ce5ea3" +114c1c82523d140060277ac5760e72408fde234d = "0d2aef21966eb4fd9da719d88c0a6e2e33edd163" +12269b828626bf519e442076caf36b5b9582d775 = "12d6e3f8b66f319f0d6fcdc4047ff27661655644" +3baa9ba4223e42b7a9f3280fc1efdd3f83ca966f = "e6088b5b0b828b2dcd37ce3148657b6179f5cf0a" +54e550b2d8c3fcfaf0009341532d179497a642ba = "6f67e7d41ca973e316cb37de75edf6477aa08d12" +f989092aa5585056828b189257ef73ed5276187f = "510379c3ad5a198f183c7b545a67026e4e9eb160" + +[3a9ba88e-79c2-56d1-8a6d-815ee8f38f0c] +5ef85e31986ba473d096fd4852b2cdabd5c3969d = "39fc5f3ba7f988bc41637a64fc2e9345921de3c2" +7eda5c7f5daf8ce64018b09ac1dee3ce5fdd1843 = "f9c77879291810ab6c2473ed844e5643e08c83b3" +e3f934121229263ec1043939afd54e62e562aa14 = "793417dcd6dcfb875a2d9c2d9ff16328632ee22b" + +[3b2b4ff1-bcff-5658-a3ee-dbcf1ce5ac09] +ac6668210c3775f32fa17e70c69d14efdc95bbfc = "513c0c5447c9f5628bd4754eac5dd5c541a78907" +ff9a40bf31457e5f9b3155d15c3a354d283c1809 = "954856909f7929f5cc04a1833b3758cb20f37316" + +[3b4f27f2-be6f-57b4-96e9-989d478c99d6] +0ae9dbcfb73ae88fbdb58e90efb06e9646ba99dc = "b77a05a0e4c889d4e5ef8288eba5826c294a33ef" +9ff53fea4cf8a2fad2fc717074df137d89beaafa = "a53a641096def0fb2f8d45dd94db399b22a857a2" +ffd684af5ef9c283e7072df6e31612fdb3331db5 = "c5c8807f77e289fbb3344200631384d500d1e20a" + +[3b74c4c8-83ac-59e6-af00-836933a3a159] +e806d9e9ecb4ebce618ddc014d84cddd4dd600c2 = "f811723bc739bacb18da1dc6b256d52c5e4c4716" + +[3b7a836e-365b-5785-a47d-02c71176b4aa] +0f0672c05e7868136cad819bfec33de35605fb4d = "ee051440d40b24e6a5a92f470e9c51acb585c7b2" +14eb167dd8385457c6514bd2d18e7f3c31f0b73a = "6adf35bf46e25186953307cac5e87ce967e4747b" +150d5138455360947907304cf495b6f86d0710ad = "29cbe3c83b566dc943e3bcccb682ef2d5d5134ae" +194f4fb248f9bb92dd46ca11c3e7d0f353b95c74 = "97ab41fd5db706e902f7dbc1cb55e40616e09f80" +30cd8e51474046c9bb5d9d136e46a1560d74b126 = "c3eedd71ea15a25ecfec1d3f7fcb92dbf0b8ee97" +3ab2e8bf850723faedaa7e9fcdc7980699cec06f = "e4d68a0919172791598ed52611e0bfe70b5d2b8b" +429bbef8a352e1f169636e1b341eb5d19459f826 = "fc46419b231a77e3d1a51a86cc07ea36d49be394" +511f1d77ff5a331f16d3724c51e7f60054085399 = "3a2d1756083e65106bb9d9dce6018ce4bc1a82a3" +546a5f2775c88932c5fd2fbe9972466ab4ba4fcd = "ff9a6903d10bf1af9f11ca3f6bb8db826ee231d5" +5a612b621bb761ab01bb330f329020ca0cc7188b = "cee72521df9ad6d7bc754d15864b232d2e3f6da5" +5e603c07625118bdc7e808958e05190be019e3f7 = "897c1d9ef82ba47e43f43e3eff3f395e155a21df" +6b9755457caf87a8295c1d928286ec3891d45ace = "83759dc56cc6d7100433cf0f8bd03d832b7a7529" +706b957b376c1394ff2c76f4ce60efec2cdd9ac5 = "503eefff16aa148f8f9db01445a6bbbcab10fe67" +7276e711c1a8140f70ed6a2d191ab07ae0f3410c = "c9a9acddf2fe6c4273434af19172cd3554c9677c" +7292a550fca799a169730d077b37f8a42711a219 = "a58453395c1a4e2cb9272af40344b6ea04199652" +8cb3b5cb2cd80ddf22268483e96b0deb70aaab25 = "7c4d88474bc41240b4e94901a26ea8c87df07dd2" +8d87a682224fe04dba004567fe94a99af4908db4 = "67fee8f3fed1ae9cbbc3c56430b0a3e833fbe4c7" +90a35c1cb001df92844c6ce84a36916d53055909 = "c8c1a3eae4dff6f051f7ac9c766e4b712df2102a" +935843312e0a272ccdc154da5be4efa690775cdc = "d169e33ffd0712a71a96918087e26eea55ecd4b8" +a0707ee93b4a94804ebc1efc66c7c6bd17aa7f7a = "b4b165bcb2930bf0cb56484e0642de9ef89ca8ec" +a5846bc5000492a9430562dad886e859bda6c397 = "88bddf491e6a0acc679904da072bfa5e52024242" +a603567277d0aa86ccb7070391f1dfc0fbb0bdb8 = "ab7dad7f54de8ee77d08b743355232bc0f3a7839" +ab4e4853ef4f4e9fc4c00085e9c98aecf7ebb072 = "d18b33b2418ba3a4f32d780a0f5307922f3d07eb" +ad63bf581d3c99578371592ec48ab695a1608432 = "1429a5a72b2dfe7f9e631eca67054606281a7e44" +af0dcd9efe59cd0936c20b7dcae015d157d77d33 = "8a90553a61f64940f3f9914a9af82ebc351e9096" +b2bc6f39636b154ab9bc418f297028f129b17dda = "fb20392902428bff24145aa4224b03e93fa6f229" +b8498f860ca0ef5c7ddf857e8a65f5d44a5f0919 = "3f28914976ce6af2e747fbadd0250bbf6bf5d8f4" +be57c62990dafc657c08f2fe8c57048a5c7c4687 = "f529213cbfb87de689afb7d4d4cfbf6fe38941cc" +c27a8672d9377df7b467dbfae26228c5e0f36c1b = "1e98c3f1e64607a91aae699fc298386976de43bb" +d5489479f9442f44beed1cdec7f0b1f482279f26 = "2dde791e578589198c32e66cc329e5cad9a9a79d" +d9c8f13d8f353a9875fdf149dbbaeb49d4ce6563 = "771f776d652e318d03a47860344f082cb40c567d" +ee6557e23d04efaac0e1d138f84075e4a44a13c7 = "35e564c6e07c67c1579d257bbf079e5c8acac173" +fe8518ff62f9fd3c712896ad6d9a0fa49c33e5d4 = "4ab0989b0c8323f0fa00da44b03da2568c0785bb" + +[3b89720e-b86e-5936-9f69-824af742f89b] +dd4cece366650a4937d41e178264dcfe30187d1a = "eb5201c35e38f209d2a0dd337902655f9d07149a" + +[3bad70da-0c46-5862-8b75-4985ed19fec8] +d1d52f5c7983d90d24bd30bf4d2836d092d70265 = "f22b1afbfc78d11624da7a75403a6915cdd89604" + +[3bb67fe8-82b1-5028-8e26-92a6c54297fa] +2bc177c28e9d25853d3f912ec2e1dc94a62fa1ab = "b1e0b1825757512541fe256c7219f6261465b3dd" +3c869fac2e3cc2051340dfaccb6c07582f2b414a = "dae343a8d44168cfb565710fde6d331c03994739" +57a1f80c410ce2dcb7f17aa31b914e9515c39db1 = "63dd201aca28649840f2534951a567fd07b6a350" +6961cf07a49c73b9b1b5c0d7dea621aa7d63a948 = "11a7419316e62a8e62732b613b9d72d3f255039f" +8e01d239da09552bb44360d282e7b5320a2eb811 = "3938566e71b82caae20699fac486c2123d54e743" +f178df689b7d74e50450f3f8434c629eedcb41e8 = "ed427d391986359576593de266ed6aeb7eb64982" + +[3bd8f0ae-a0f2-5238-a5af-e1b399a4940c] +eb8947946cafeda7cad50a5d97295ba34c11ed3b = "978fb4e96e93ddefc0c5959741112b0c67f9bea4" + +[3bf275ae-c56e-51b1-910f-9ec630bf193d] +24ebccaee7b64201a3c6838b0650ca67346c7957 = "2817f0931f902edffe58f379c4a4dddbcc9c9476" +3aab5cb46d04dc524942df26bb898b260c52a310 = "bd8df76b1ab2ccf6c1932fefa4f401a7bbb92245" + +[3c28c6f8-a34d-59c4-9654-267d177fcfa9] +9680751fabdb26ddc7a841c2115c149ec78e7617 = "390d5e3851f14a1efabc56e251fd572e4955d327" +c614cffa8c20ac54584aa34822d771b3fa5ad3dc = "525acd81fd2af573428653f7944c72cf1c7a02e8" +c87580388b10088e044a899a98038b24e65717e5 = "4732bde0d112685c7424bc1db02bc1353341c054" +da0fb8f37acf6776e6b77a406dc46281b772797d = "275872617ad97ccb4e1f2d651640b96d6f6e4666" + +[3c64ce36-c3ed-51c2-a7aa-9c9aa94f3624] +10a42d782a06ed5518cb636bfa743b0255348cf9 = "74a40c72fc27b6d678cc4deec372dc975ca497df" + +[3c7084bd-78ad-589a-b5bb-dbd673274bea] +04fa677bafa2072016fa6d329d419c1153ffc251 = "6b0de796bba8305beec02c1e7281f05d3e6d8e41" +063f7b94d3f9f97d3fd3539e857a6e8b1eff0138 = "b06afd31280ddcd40d3c6470a6cd065c04c10086" +079d5d938d397b0363395c29d26ad62a632c895b = "172ee939e4df39fc7e066ad4d16028a811861889" +13677a1bd930e7c6c2c747de3d6b170c27f9a433 = "9421d41220a09853ed9e8263a6aea1e1e2763a25" +1c7485ba4fdeeb3c2ea9f5fdc45c2a955bf4034a = "38dd451cf109bb00fd89019edf7c44801df2cc56" +1f9db9313af48b6922c27f56af10c9fa2121cf28 = "ae81beabf5dbbc0ab6b9f414b3cf201677be1a0c" +225cd2e795ff377f4c7268b02007b187f28b8b08 = "5b911ceb33b76dc4d1b33eaa0d974ac6e2e949d9" +32948320b9ca3c0b9ee612450bd8119756f3e257 = "252316b4789fd8c1004b88eea8b612a887dc0301" +38e45b5ca54bba22592b4c0b3e8f8180a9eaf1c8 = "a16ac2f055a48ddc50a585df9e722550baa43f1f" +3c3b0729bd9809487ea7b04b5984df285b64671e = "1fe0ade33922cedbfd1a669e54fccba68bf87280" +3d262e692244a182f002963064013124374ea746 = "387e11f885e0550af751d103ff3c9243edd08eec" +42beef841ea3a001ddf43a91a75677fce2fd83e3 = "fdc94ee0727912a62087b7d783558c972ab079f5" +6a4c469fb559402bc19060fa0cf509a78a8fe791 = "11c1f7eb19b04241dc3f9bac8ce5b4ecc8a8e501" +6a57bdf4ac59a84b4b468623233329960397e23e = "296f845f2434b634e0d9de59f92aa6a8f12aef43" +890e72e379b8f19f625d1d55e519de8ec1c5be0e = "3a3b8375f012c4a3c656d285c4cca4a8bf7ff0c1" +a07e520389e2414dacc06f8978e761cc07197376 = "3046aa80297c9d10165ea746e7eca92242c86355" +a25268c5c1a57bad80461419b30bd9f914a495cd = "9c3dcbb81acfc5cf3db0f7fc141ad5315f03f2bd" +a70c14f2f10c25e458271f3964ec7ce4385c064e = "eec1e65cd418252a0b75376eb8f31a4a7903c699" +a85199f7c26e271b41d34feea71c99d9c2a9ebd1 = "3136d9171d44231bcd4ff7d755460c0edbee44da" +ab5988f633b1c3142a3b8b029544582597fc54c4 = "c4e9f45e4167e3b21c6826e6500196bc34f67ca7" +ae65225da7557eaa82bdc2e8ff44795df948da39 = "7bcdfeba0ca4b209f3d9bf120955e399893e3e75" +b6aceac28572b7ae433405af9facd9ac232772df = "19586011ff416d126cb4328c219f797e1208a565" +c79725929d1abf526373a1c595517874f940e54c = "12c06d3e6623784091d09c05befb4406c0799722" +c8a09bc13d2e0ebe68d5e1a4f52f4bff13ba0818 = "a2b3afc4f4722614aa67dbd43b1a1fe6cfd3d598" +e2c23adbc3ed81c9dd8096b22df27d3038c2bca2 = "305dca8ca5a5ca5e2e267b88758422cc5f075329" +e5fcb9697948408b09de08a3f2740ae4813a9362 = "f3e51ae99a947dd8f5133e4c87f216dcbfb2e924" + +[3c71623a-a715-5176-9801-629b201a4880] +00de09cfcaafad720ca628699d06e182141cb21e = "7aa9b7d27b6a6c54b3389337a18ca43034d70f5b" + +[3ca710bb-85d4-534c-9bae-b7b5d9e27e20] +e4a9e3daa4ddde5ddb59baee4ac3f9df61edb65a = "e9ea441697a38661c752ec2b02ac5dda33831ec5" + +[3cb15238-376d-56a3-8042-d33272777c9a] +4e1d1d3d299c1aabcbc774474bd19568aa8cb8e9 = "c665450620debaf99b419d7febc39af5ad061824" +4f48a3ccbb8ac723564a1ff65a0c03e729d822a9 = "9ce34c70763cea55084ecb59992bf2d3c87bb54a" +5a506586a6cf86b0de804212b177ad2a9ee09d53 = "854610850a674608f1c3bf3309c5f125314768d2" + +[3cdcf5f2-1ef4-517c-9805-6587b60abb01] +1558738ebe0945992a9ac1cfdd6e7bb1d8eb710d = "f83f9986a51141d951182a6501c7bd6dc3d2ff34" +2b8e47635b55f09d1987264babc29adad47f85b4 = "e0116c03a2aa48f2fef2af395e7e1773614dee7b" +3d2fc8969f9de2f8df1d36f1728dbeeb2e6d1800 = "392e0a6ef9a6ab91c0c7e0484bc8e8891cb410a1" +47606801541592ffde15d04edc38bbd487cac117 = "0b44a18917b7e21eff32241c1905b5b8d008a5ed" +51165884ca9e18bbcf05d556fbff6914c5f3a204 = "03aa16a8fd837b54ca15e3a2c0cea6e1faef7a27" +61c691478789e50245e2bff232f2ce3684763351 = "7914cf297f96ebef3d4e6531a7dd0694bada0959" +6d5b844d63c7bb854461b75a2ae599cb36776cc3 = "44284731162108b6ebd1d7b1f7c73907b76570d2" +700de20b7cddf3b8ed62664027f65cfd8c38810a = "290687ba45fda4d799252288034ca68319b9d00e" +7bced7d864627f889a1ded7f61a9970bde73ea26 = "5dbe9a14779975a09352f2bfcfe73d440e0ff2c3" +84f588162d9d29a48a42cb4de5e6e6a831072fdc = "15e6341e02dcd0bae851f8eac76353f5ea769b0f" +8dcceb37c0ed03fce527d3d3d6e98aa13642f519 = "a2a69a920726bacce47ac86b415feea8d8cddc80" +91bba81675b779a9e50e36fc094e24758548649a = "daee9855f7a600438ddaea103501ad6b1c291743" + +[3d39a06a-b57e-5769-b499-4d62b23c243f] +faac64a8510ca85878211387733355a85fd2147c = "aeca4ecb1ea41e766c2f2f39c875a1696eef0d55" + +[3d41126b-a46a-5bdb-b7a1-7ea6cc35a8ef] +45e913ec7fbca4a5e46151f9521f6534767df74c = "331631fe5dfe36e16f768ea0873cab9599751167" +89e197ec72e584601beff6c1ee09ec1e392cde28 = "445bfd39114ea26ced98956ef3be7a553da441d0" +94f4bb2fa966f9630a6e54621f492bfbef6771c7 = "8e70e3417ee6e4b32e65f1caee217b082d43d5f7" +d6fc6ad254cc277c6409c867b177c7088adaf901 = "100fc23fb85fd57fed8ce70e018c06d47ff2218e" + +[3da002f7-5984-5a60-b8a6-cbb66c0b333f] +17218b2f9f48e83b8d377603f1a96b1e91e6645e = "d63e3d6898d6c2c5a8a84386e9bb227444952473" +1a9563fa0f1c804527eabb4a9c5dc6c96412b7c2 = "19681bef65e2db4fd6b40c9b2f1792e843d05e2c" +1f6dec30fd1b40456cfc735af04d873da53cca4c = "9593243aa6eb6ada9ae9ceba73e6e6be2f7173b5" +204aa2aa2cf8885fb22b0f88b57cf696b5c34d4a = "84ffd768ebc7ecea3f521cc553266b8f1bd1c6eb" +2b0f939c11cafc1c0a266d780d45474d94c61380 = "439c65941d9669a7bf5eb1d7911316ad575607fd" +326822a6e3697edcbd281ea46d88da3bcb12da04 = "795c5a0bdb11d76821ec130c28b44484407778da" +367821e5f1860ce5d10419f2c3616824c0fe2b5f = "a763a2adcbb89c0d37d6d82603efef1fe14739d1" +3f61f04fb1f283c822811d6c3f49965a9e86f829 = "dbd950815942add08f2db57007ed8396e04b2fb2" +3f7820a5cce99febb3a44744a74fac67026f4d9b = "951a300bc3a86d0cee4e1bc5f174ccdbbde851b9" +3fedf2023a39ec92114868a48c740f9273a2ba08 = "cc290e63bf3344a02b1863dc788938d57281e548" +4816539024b4924135b16ee41e6503b1ba732307 = "c15d3ba9334bdc1539f8130a3de9fdbbfcf35556" +5153675428134a4d843b7ac351fa6165b1817b7d = "67a511631dffe820c46b1824edb53df4565f27b7" +5859091fe41d0be0ee07b1ef56acd3eb2948a6c7 = "200ec268a770e18a6fdcc9c5ac54a9ca6f076d9d" +5dcdaf1cc0796a87b515b8805188e0b56ab74794 = "da7b2ffbe841d98cbbf49dbfb43de9c1c5e6c2a4" +5e0bf49f374103caf712da9607c1eca5cb518c35 = "a98a1c0a7bd28b1331c0547405866a13dc019913" +618e10579799d76bc949632206f10ba4d2835f74 = "0fd597cd4f22007eae694f10c924be82e8afbacd" +620e5f6db64da04a3826d837ff2c6f453894312a = "59a8f20d1043fdd6b2b411ee6106661c4a84f003" +664068d97b4a7ce67a667653dd3d5071bca59e83 = "a303acc893885a9a9d1274a48559ccf006861aed" +67e4c73d1bca39ec6602c836dcdf9462beb2455d = "ae5e3ad28cccdc4703c83dd03eb5c83eaa6ce9aa" +6aed7879481393310596638c52589ca27de710b9 = "6d9527cb553ea73fedebeed4d654d0c7bf89fb85" +792dfee18016cdb77c56e0cbff4d0262e4e7779d = "bc816bbbcef575aa47712c09f1698094358d7869" +8238e6e9bad67df0bea3e577034ccac914311ca8 = "ef54a78fec262afe30aea6f144074444eb922053" +855875568a05e43221b3ba828348fa7b02fc60d4 = "2376c255699d2052f4980d39da8a0f4d21a3394d" +8f08fd3b4eab62a80217e857f443b6d4a91b98d6 = "e4b8f1a5849a48394fe6122f984b72e37979998b" +95afb932376b0b4cb70fb56863395451d0e6ab11 = "07e5365beda0a085e069dcd6ba23d9dc327a5ae4" +9831630232804667ca791b53cbc4180c0ce8665f = "fbc4df1ef3a391febae044a5df51f95a5c5a62c7" +9cb33872502518a17bb8719f639507fbef9910c7 = "c0811e280316dd79e8faadda0034c5a5513a68c0" +a0f98987261aa41bc188b5a7707e7acaa2f71da1 = "74854fe4d7fd9f241fc2b07db5fa5fa1087a0271" +a846a5327a683c1fadb0fa400155d2635eb21b8f = "aad78959885f93545bcc14e29090557970d4848d" +a8dd9a3834b76e48db138141ab586325cd4efaa6 = "32bd04290c893b29da3839af283f3174ad2d1833" +b6ff061fd5b95370a16be309ce8dc6c4db42a2e8 = "516c253e8f07a3b2810880a380464cb1d4e4d22d" +be848d6777c71ef36a619be7218083183d0f0d7e = "06b227032bd7a42156b2d33400872b50d06f9788" +bf47e5a90c2ca6123a834e0065d6a1d5ca27ae79 = "6939b455257e250a71f6f9bb8db8e0d76fc7863f" +c2800cb6a44a6b22cb9527bbb8509e010d194a94 = "ba010a6c2f8c47edce79ab3b9f66982605e3171e" +d1a315d006aac5bd2f8c3dafcd5ff791d5c5759b = "34290a8804e268376b776106a90bdcfa2facd705" +d23a8abc2c04cf9ec90bd38fff18bbf9b2e74ada = "8db725f74d4af2c1c51e438511e782703f64df9a" +e4a382107d7b5ce5b97c32e5134101af9c53cff1 = "248dca43244a75d410c1c93478e0670ac22584dd" +ed6d14099d9257708c85569f2e932e1b9efb0b3f = "bb02c42facd0b40223dde5b01a29b79d81135dbd" +f05cefc6df791ba860e0a7e8cc766ebb410bf09e = "1f04f5afbbf188b572514439e1c0fe101b9ddd43" +f4d43274e2b2361f7a44140fd8a8043cef9eb411 = "a78c927fb6c34da6a40e8f90aae659bd10525582" + +[3dd14ad9-0029-526e-86e9-8aa0bdd2ab0d] +337278f75eb232c53dd219bc58ef3f9f11335345 = "2ca342cac0b16a3e05adc856907aa94c580090c1" +52ef79fa3269207be568cf03740eb2815472ce1f = "e610bdb73696aacae442103f5921970c993cd39d" +718fb764ef72b3fdf739c80e721961b6c5025f25 = "2ee2b8684110baecb44f2b9285e2a41f9ba44950" +fbcd5d4536f06c8f70f5491ea01d862f8e93eafa = "c48ee2538b5cdcf3eebe73b689dc07f2c25902f6" +fd3074c8fac04bc802c537a4fac96ec17b6e8b11 = "a57fd080905d62620e1bbc8b0a95f2878b817205" + +[3df1733e-8da1-5e0d-9c60-b33daa64fdfa] +7983203e8c457826537d620f326506f0b893f08a = "063d622acae763c6e20c201dc9e10d5c10c4ff9b" +ece194681296be259fd5b8758c3227c41e9dce33 = "23419419f10e54a160b15cc5f227777414a07765" + +[3e1990a7-5d81-5526-99ce-9ba3ff248f21] +642cfe49a915a20ca43b0b213c20a3787300c459 = "a0f2eeeb653224acf20a29fc01d72915d02ac317" +674a2aef3deca9ccf7b45cc765c449f80d3bbe5c = "7b57ac435996bdd1ad9cecf3feb9b63abb5400b9" +885ea3c15017f32a11a42df78854f6c50f8b22d5 = "9400eb05dba973977af8691b7de7ddafbac5ee94" +8d49c0d6521f4960d9ea28ff4b440e35e09fb7cb = "2dc27b5779b0c4090f1de06dcee0cab021451a86" +a3ac0f678dd9826eadff59425d98df1a0580711b = "fc941f07858b415b6b45a5b05e5d776599838c98" +e88d103573675b87a072355a250bf6b6d00b4d02 = "3e02ad71ce58acfa246e933c4f1f01f077925032" +f107a8b15d01064f81a58b4d35aabfd6b1873a5f = "72bfa5d5f4b1e365082dc19b02fc98f38f735b33" +f5f5b5607ba7e8b028c721d65cc178a4093f2a89 = "5ee011334b78d53e1ba043b40fa154884e082ba5" +fab6125cf3490b90dc618e6e67d0717c80b5c9d7 = "b86b19cfac8145efdbba7698bafe61769b8c4119" + +[3e6341c9-01f6-5312-b33f-f8894a2e817a] +414f0abbcbb4f970ba8c01435dae08e1f90b3975 = "35d41e90789f72244e047df99785f99f6de9a68f" +6638284189c1646ac94217c4c4fc0c3ee8e49b12 = "97a0c47dffa11bb80e31503ab7c52e808551cd3e" +9a3bacf92ca1f22257141c386dced64afefe40f7 = "6456b331295e7162eb49dd4e2e9d6b8c620e83d1" +c9dcd2eb090d69ec40790f19798c5fef2aba2616 = "342c66e631748b8a72c848a347788c7833a36ac6" +d2436d8c368ab501d05353ab22cea923acc6fba6 = "b5f51d2535ec9fba1cfa74bb23af0916b90b8720" + +[3e66a162-7b8c-5da0-b8f8-124ecd2c3ae1] +5762c3423f65b2ed0d3d729846cc96829d8d8380 = "796b1eb256c9f21d30ba0772c1aef3a58cd5b319" +e0be4e7b3075bb2693e2e0e0bb5657ea49ce1cde = "6660c947d9c3498879d1f256c3cbe93971fb73bb" + +[3e78a19a-cc83-51d8-955b-515f39fd7955] +010dd2229cf9d701fc49dc26769d96182ecb6438 = "9f8ac30d82d802ac2b1a80dfbd1015598a7957b7" +2698909ed1f12d927f978d80d2cdd6030272e528 = "c4345bdc3efb20e4ab860665582449dfe2aebb63" +65e2ac057d3fde0fe1081f12635392ce1deb1023 = "2e64837dc14bccb425e1c6618cc6d99712995dd2" +c21e991a43c55a713044ea2bc5ee05d525c37f0d = "a562934655c4b408de875ee82da2dc24e60bfe80" +f7a7780633553cd88fc19d472100ea799d150e10 = "bb2141ec25337a6ccb738ba7323a154e56a5fb50" + +[3e82249f-a303-547a-a2b6-0781e594f165] +0d9cf018fe55eb5a0927d344c3044f44faebc6f1 = "b5a3871035b4201e069d60fe8ec1083ed44855ac" +485c98d6516a1f9067d0031258ca661f3ad6baa6 = "b4e22fd6c64b536e9d6158c4a57802fff9cac847" +701cdb4e35c6018de2d94574f68477c5d6783a6c = "ffd19248585dc5a8dd7f08513e8a86051517a40a" +cfadb51609b9d853d76a942c603c585693c0fa1b = "42d05e4c8d3556803f520069e1776164df42dab4" +f0a00b0549ba46a34028cd727bea73da4620251c = "4dbe9f1b710b0689968c8e2ca2587ddea01fd78e" + +[3eaba693-59b7-5ba5-a881-562e759f1c8d] +00d476123a491ac4b94ca3e2d6f20ba378339251 = "f71e7fafc4225b1bbd6d6eb5e8b54eb633b032df" +5896a9f3bcdaa40ccc8a18e668bbd823e6cf63ee = "8b090e4d641c5053b132cf87c7a98f830d2f0b85" +85e3abde7aaf4cbe8cbed25616dd50739100be1e = "611ae5b8f7ba30cb3fea533b2e55595ad4984af8" +b94a807c9f6079d41347262681ff608668bd0060 = "c53140e4810da5a0cb51b0203957e3cc8220c145" +ec5ed7bc45596a3e692e4a25adf9020e1a947569 = "317fcaca2060e0423fc6e469932986008f17560f" +f919b9c93aa7f4eeb5c8f4b1b1931adc3e47f085 = "96ebe21fd60ad9d2c090ec03157ff26de3117c52" + +[3ee6bc94-e39f-5162-bd50-f9adad5d8866] +4e54e885f050e719d964d900f2d16fe9b466e35c = "8f592d8416d1dade3511a8835750ab19a35e82dd" +a4637f8dbfcc1f180ff2b623da84db970e3224ad = "ff90f63dde27d5f2206046399e4383da06d3cce3" +baef58b4ca5c90acc81dc33a17f39156b90170f7 = "ab95805a3c84cbd7bca34a0937a5b819cd06d6ce" +c19aaa925dd5c5df5b80a9ff07155a50ceffb44c = "18a414c693b3626ad1d3003ef0273ab15ebd75a9" + +[3f3442c8-4998-5f9a-b6f6-804928b92bc1] +c3b10825bb3ff65a95e2d4e09ec544f0f7b07909 = "c8dfd20ad7155fe1c4256fed0671ce8c56e54326" + +[3f7aa1fa-0fbc-58b7-89cd-01d1190b12a7] +e09457a2b2347d95a0e536fd80d7f60926d2bb5f = "7f9192436174abdbf6cd260a0c7520bd222ac950" + +[3fa0cd96-eef1-5676-8a61-b3b8758bbffb] +0a26277531b1a8b50bb407d96779b28746dde0f3 = "72d59d691043575235c7994fa71bf5715dc2daa5" +7afd79df5a2544e77b614d236d5706fa735d43a1 = "28440105265fcfb537426e32eb587f50da7b6613" + +[3fc713dc-8771-5a7b-b2d9-79d2995ff451] +766e5ae3a9f5a75cfa2e6c44587767a79db90200 = "09d122ed607bc6d9ef1500b3d9781745ce247bd3" +8290261ee6205e97fce8584df449f44f5e2be9f9 = "081766ec438cc4b8b7dda2202baeb241bf8d3cc7" + +[3ffbb5c2-dde1-5000-9600-8fb8e4218afa] +90c2319c821a8a5ed27baeaaadd4854d34343f13 = "e580fa380d636077180597cabd5b8b2e8eab8597" + +[402eba18-653d-57be-950a-da680ed1f2db] +10105a0336196d53bd2e7a4d3b0025254406ae76 = "7dddf32b8cc41942504e204b73a71bec097db089" +4de4071f2b12b548bd7cffee28192e34a4e5a641 = "f491dad722d30f1b848701f66d8fa98a6929e5d3" +ae74a50aaae3939f652f6b2500abcbacd05ea690 = "f150ffa73bc5118fd9561e31a5e47fc2bffa8d63" + +[4076af6c-e467-56ae-b986-b466b2749572] +078a040114c76dd79ab21d62db3ed622d6a441b2 = "4a3747c0c31ca78fcabf2a5e5bb702f9977d5ff7" +0bed3704dde263cc3c010daf591e2e7f6702c3d0 = "8c18e1285782e56441f322112bbfc5dc14687956" +1337c90f9051e2841575ba8f470a0b89c1dcc612 = "fa5daf694f4af217dc2fa666b195951187593a66" +174fe2ee83a43fd02c38f854dfce4070ddb95e97 = "1a99155c77299edc0d2e38687d24bb525c219366" +1e0228abc6f9e968d5c03f21d914f713bd7d334a = "89c595632bfa4597aafd5b60668af4608cadde32" +1ea87816135d76a05d8cae09164eb150d0e61d52 = "388fe0a441bb2d30b7ba3eb5da9ccbdd1f302635" +1f7793a6f05858448ff57516a4085cc8d9248670 = "917f01a55a697272150d524f1136873689db2e00" +275953dd514740475518b7217263b800ad59c2e3 = "37df9f399354571e1b3ff4160e7840d0cf8b14b4" +2c9e9c11dc6d4b807ce3158ce5996af3de02035a = "74adc265d2b55c9d848eb33363381826ccdce662" +44682ab7335a46eedec87c6ee1aacbbdada07396 = "65531376ea78216288574f0f605ab57337807d65" +4588045dbfe47f3d7eb87b41bbcb34682b88d4ae = "ad5436578762feac86a9fc13b166c4992493183a" +45bf62e187852b8f707ad959e0586c075a9b377f = "cbfc3d13aae1ac9e3cff42b6aeac974168269158" +47175560a50cb19697d2f9c48dc83fbef90a00c5 = "4a4cd8653157dbc09e22c17997a4041b88188b2b" +4e1ce4523a9235a23fc1898a029e646bc1e7e3a9 = "30d34bce1312b4c0812f52cd832fb077301edbce" +508345e32a9382f6b1e95895536ca200da6855e0 = "91169b577964d90db5c20a0d1c9e53eaed666835" +5735b54e98cad041af3606b2b1dbccc0c573b440 = "27e4debff4c2a733b0e129e6ca69acd8b5285f0e" +6567b154b9de5c95953c41885f55faa9267a0775 = "7f524682ffdff86b65520ea184a4a41348c62584" +6a6f5a4e3a526b5f1eac46ca4796d69c5a0f065f = "cbeeaaf80105fc2a70bc77a5653d231e95e7b112" +7339ce0c4ee1eaa109ad9a5918a1f1fa8eeea4e3 = "1af5fbad25cb386ed4898c376a899ae539df8212" +74307cb45b3dd582bd457744b808a47027e5cb32 = "7f6d014659a8342813b15d893df7f2fb2eef35bc" +7718d91136af80ba4364cb3ce98e3f4b81e8cc7e = "c3f178bb64022b96de48f15757db04affe6d80f2" +79e9753692968034be0a1ca27331e5a1774611d6 = "ca7845e4650b23ba135d260998dd5ede294197f7" +79edba67c9f37d1a96c03721f7da2ddafaab02e2 = "dcc5fb783527a1f61fc175efe9e7b277130708ea" +83f689098cb0d9feb7e85d8b6356443975c329b2 = "9f07b8f0c6a3edfcc2e185f570c356a4e43f2923" +882feeac840a7736163b19c29628f6d2d1ff65c3 = "6041323946a5bcd478c274b2dc71b88e4db4fbe9" +89b86940ea3e72fb1543deba54a3318f2923e452 = "cbc79ba82b01e5bbbf717b88f187819b542f5edb" +8b3074af0c51cdb12c9411e9a71175614bfe2866 = "5fa3261f1db9a8e12070da38ea079acac04cdb85" +8f165fd72f46ac9438cd53d141379e3263a3efaf = "d41a9b306b006988fca0593f94e9deb9e9c7ad5f" +926cf81e7a638b9f20273df6d14aab1d99ce07f3 = "4e3ddf59002799a162526225074e1108f29e929f" +94e41c722064eb47c1e507ff8da8a9cd340ca817 = "10216b8f6b24090a0ff3d680c05fe934efa53032" +a0b5f0d18de6dec3d6d69a4daafd033ef0387cc2 = "cbfe3dd6c2329811f0cd30480563e39f1735b669" +a22bf7f208fe23fba79ce902d755d53f887b427c = "1e7a9f1584e92e893a9cd10a71632c4821267330" +a242e44d05f1b0baf27b6f6226778e03512bd146 = "45292b8c3b8459c865d60b9439c3273f537a5ef8" +a2cb72e125115b44a7157182d24234557227065e = "ebf52dcd48aad17de16fe534ae93b180f4f253f4" +a306e58b666b330f449b91a8e70e6077edc09c8d = "da603bf0f02503281310c1436dc8d514f1bf142e" +a5823e2f110d993004e640a74aa8a11e3fc1e185 = "9d429b0bd298b1f992c5d8d3e514a9a736811200" +ae7295c9f1fcab4edcf95bc9f9eb93a6909ca14a = "4eca33644f281402035cabe7dfe10c651c3da681" +b4c79f4ce63f422349ed6aef851d05f78c79c17d = "5c60923c8be066bf33ecb160b06b97117c1d3877" +b66346fb8a0270a59e70466bf0d5d6608293b266 = "763f7744b3d3e0bdf017633dc5c696fda9a80b4b" +b78e1ce0142296d918bf75cb8bdd0b195403ec77 = "7631f1583bdbcb40a57abed99b62142303d762cc" +b97da743992307ad12e86b7f7d377a8bc01ad8f0 = "a12a829ca4b1c9e93bcfbf086ffb293ec5d07e2c" +c17fa78e7bf870083afc38c5063c0daa04ee85cf = "9314f9e3f8e31d46b602eba64635c8470d621a7c" +c35353c0a16a906aa57ecfa26076a13d224d1a23 = "d72083421d188e54f31a10c3faf69245f5d7998e" +c89327dc85ef0e6989e4200bf1e475094542a088 = "a432951386a8f3ceb86bd56e92c66eb6917ca4c8" +c94fd708613230110f1177b551580914ebaf2163 = "9b809348992eeebea2e449be42e0e4302aac8b8a" +cb9f85a6f5d2f6e8de1a3ed656b10fcf50f81222 = "7c602597990b02347ff96a415b9bee8608195b4a" +cc3e0900cff48804f118721ac91184b38b2fa825 = "891168a381bcdb02600e6c8891bff46d2cf1e0a6" +d478da4d14ebb117a28a6eade3b659c9997a3ed9 = "19aee25303cfb213263c327742f4d0728442fe75" +daf8de0c2a1a4a8679e5fab9df63b8f8f327bb40 = "80625b2445bd34251fe6bb7c2c0ae8ea9459a0ec" +db1fda6c265fd30a3f5d4bd36d69979f3159d865 = "25f4b83ed2a05e1240142c6afb484f493378bae0" +db50d155418ba76d1322f16777a00d1396a989a6 = "47aa26b560926748e12cd6b6ead9765a14f5eb4e" +dc01be5a899b1ca6291b20f5f3f6a2466a7f29df = "448efce7a2eda963ec0da50926e652678b68667e" +e38332ab6b5f11b60f51decfa7aeb75e10a6d38d = "9dfcb73206b870272fc35f01a45192783cbfa2b5" +e90c0179cef843d8d5f81321b9e5a1a009a192b9 = "9cb374807304a94dd2e6a35fd535b6a0c3b82676" +ec30d38cc95b6f114ea136972920000f03834657 = "793e83cfc2b36a115b27633c179a579de31f8310" +feeaba3e037b4f6e4e075424ddf8b962bd60bfe9 = "f13da77a48ffd5d2f5197edad3c97252453b4331" + +[4086de5b-f4b6-55f3-abb0-b8c73827585f] +06e19252e147e49eaf55643ca6796859540c1242 = "70e8485bd2bab0cc3bb0dfe29030587e8b29815e" +0c97cd9675578d98da944f51adc4bb4d8e646bad = "a0bfa8f285788720a310a8fb7673db3be732ec94" +0ca82a206e96d43c295b0aeb72cf4a5972a2c5af = "58cf63d842d914796a37a8d822121b4ae54fa929" +128f4ff88fe9072a1fdd5f35598851f4475be914 = "5f8554f59bcc874e225c025a1dee5287dce015b9" +1da0c4b672250fcc38277676bb20cb19417c7fd6 = "74f8e8ea9b256202cfa5d5bab8296c4430aeb1ec" +26b34816b7762f12bc2f885fa37f1aa6d9717c04 = "861bca2dc6e400e17ae03338e9f1b7edcc55cb8d" +2f422f3be9cc4380b013df6cff2aed689124ed5b = "d8ff397b349991d87877c42de42a3e16e860cc5f" +36061ff3a5af711937a316e376d3f6487b44169a = "f59686155e02718edcd85f83c58631f02fbdf094" +3cf8dfc82c0c7b1aece5a633b3ba80b8c1bd7c12 = "70b6efce6309bbf266bb903efc805cdfbb090f50" +3edbec15979a4a9db72d6dfc05c22ed6daff388b = "112d49b5074d00be8697495e378d834fc51b08b4" +4f20f40c7dd351192daa15d1ad722eea9f6dd28e = "6473bb515dd3452978d0356a92a3e64c26c4f742" +631efccf6da8fef03f50be94442498c46f7997a8 = "972cdd242aa3ce60567a2d7859f283cab69168f9" +65b8d6682713d261d4268b9712c551df110e34ed = "3ee1cdfdbc9805ef8c4843915f45dcf58271ae3c" +73b12c5a33b8a87e1ad20b28388a2a6eaa4a54cc = "1012a01b20a134e794f54dc1a5387d279fd8f33d" +86c9576bf4c2c09ad4542478b56dff43a10fa8fc = "4c1a52665ef58be58527b1a1c9823d3a2bca4750" +bbdaf87c61f777f7438bc7244c24e5b3f647fe83 = "4b49f8c08d82cb4a8bf558264e5cc4c37ba31a0b" +c3e7a315887c513133266220bc3814188979ce90 = "d3a072d808716d8b0d2f689ec042ace8358dbc61" +e5d82d27c1a8f04c91aba08464d65747ce849ea1 = "c4ceefdd028f55fc35cd33d48705f2455f442677" +f79f72d4d57d38519acd36e8ce2eb4b19723790a = "86aba14e7d51d5ee97aea4c04234a7e4a7d31c47" +fd4fe050d8ead166dbcfaebf4fb8fcd34f94e807 = "ca69eb4c8154a5bc625b84a7b8144e22c2f1ce8c" +fd9e648d7c6d8ff9b1ae79e6b771d05bff480454 = "ce8d516b0dc17f05397c238fb76efdeb4e48459e" + +[40e3b903-d033-50b4-a0cc-940c62c95e31] +0b1be5deab6ae2014b20590fe48acbba4fc57cb4 = "c5fcba3822cb6e5c28f0f3e48c08e5ae350c48ea" +3921bdb0925068dbbf782c1f837f4d747f16529e = "5d17ae5f24ca2222c100707a84d384faba02c998" +4c8e748756f255a8b577ffb837e233cd01325774 = "bfc5b2c4fa5457a30c31420ea0307d4cf4737bfe" +4d636a3fd61e6e60b8659a873f3bd0a79b299d18 = "2ec979dbffe734a2b6feae482ddf9114f27d4919" +75f962316c5d56be3ba1491c80e1d97ea7d49576 = "a29375a86caa3cfb22d4f59e93bbf5a66d8430e3" +c4d18994e7b4f6a5d8de6f88eea681639528a74a = "67c19639c887ab9f9aea358a21d5c02b4a20bf0e" +ca3880c7c977a68193bcf2f570008a6a57eaf9e1 = "7fffe84fc40f21cbc2d276b868781dd85aad3a26" +e9c9597731750d3e2bfab58f20da39cb16561e31 = "5bd73645566da9bd001449f4bdfd6a1f9162c818" + +[41288a94-bad6-50fe-b760-28007bed6cea] +ad92d7ed26e24bba97035db3ffe3e43019deaf9d = "1066e107f20d2e757ecb697cc9734468553bd007" + +[41316d4b-5af7-5582-b67f-8b4865fbb384] +1b76603c49ee020d14c5a6cc6b287f414a845aff = "36cc92a43d1efb5145f237ce2e3384bb66d01981" +894008de47605305b1301e2c7a094b650beb3388 = "0c56df2f716acd48acd8b2d69a148cc600e75240" +b747e678fac1903ad0af91570a341013d61193de = "85a34a8c3031b6b690fb3bafcc7f0631a3a1dc72" +d937c4268dcd6bf0fa6ed88d7348f48c4493ac06 = "69cb65cb53b8bbaf9a376c24d8dbe8d60c9bb773" + +[4138dd39-2aa7-5051-a626-17a0bb65d9c8] +033ad195794b2cd5e42cc90229ce85303bdbe82c = "365b131ef1977e7ee11b9c4f80f386e30e7f810c" +084e1eaef84e0e4449c1fa09483bdc5eb5eea138 = "3a144c49989fdb44811619b320b9326f341f29d5" +0d8894380f5567f22e4cf0a545093a0502f8b7b4 = "f1077aa9607c58c5fa268bb3ec033d004fb9f8ba" +103b9a5b545783326d74f53615d46f2140492b3c = "ceef409e4930de45022d41cc3faf0f132a9ce172" +1adf77183ece207d0040eb0d95ee1996b45d1fc4 = "6e572523580834d41d11d3ecc6e6fa1c642b68a2" +36a2d1f43dcb3d7d980397e1389bf7e4bf06b836 = "b61e6ce21c05255cf5160956c67458e13c9c856b" +3d88c03e0bdd06db8208f419f85b4f37b2ac41cd = "ebb5a18633bad2a726d4a75344a1afc0a69fa16a" +41ac60f86dbc0f34abcfcabe46d1e0edd5be9e9b = "545eda3b73e6563295922de284cb1cf20e1d4188" +4f649f34371b0551c8f0362f8f3bd9217795fb3d = "45372f6c44014e211ce17074837b586463de71c8" +5022d9bbf16f7e379c2e5e86c13406b17cceb893 = "4108ca21de47816c55b850f907a6e0b6dee70cd5" +634694385c904bfbc728659ca3ae2035aacaeea9 = "99b1badf5ecee7d50ab51762f6cfebae67034b44" +689eadce722da44b1ad2e70564b14836fc7d67ee = "ca4651bc6bdaffdb0d6f42ef62869f24dfa8f525" +7b8f7a04c58d7c85a2f9b9bd5dfc2dba898c0107 = "5efd736420bfccb25ed6987b0464f8e210518600" +7ef6040ababe66a84210e6c3bf26fb5b26cffaf8 = "7ddfb5fb8a1ba3cacf41a7535799d90e302fecbd" +adc4692d0f7fc62d2e2824144176060d5cc9228f = "4be5564f411d6bfbbb019cc6f4d1be7dc561f80d" +ae6bacd3848d30f6f48920f51571eefc469acca0 = "edfb7aa7752e9c468639bcb245546e59a35cac2e" +b08d907b2b6815089ac95dfe3e0c5a2124d0e557 = "938baa73df61190b1208d7cc3e7d69dd283a9c97" +b273c5e468d68e2f8e78d2deff35e6df23b4b119 = "3786e38bd5ee0595abe68cb28ce874010bd0c85e" +b8ba932074746809b07aee08978943264c75d0ef = "14180c16bd412b92901f8b2c6514e11c17f70b10" +ba352b12d99cb5674f00f8459b525d777559ff07 = "9394206af1df04edecf23d384b3620e02b160cfa" +d09c95cbbf746406089fc86173ffe0f1cac3583b = "52d5b85ec917325ebf9599a9469ecdd74767e7d4" +d89aa72d362c9b9b5082e149281478ac7732d591 = "0a27604ff92c6368ad980014317e84f4c696c252" +dc55ab4d3bc534451d7af9d0df9475e1c5ee02f4 = "c8aac378815599ad9a83eef15092e89aaf2807bb" +efd7ae87ee1ce611a1b1f403cd680508654d6d3b = "52d3f9bf7d056a2a37c741d2b528432f2eb9de00" +f58eba8d8d132d98c45c16b7e4af0bbce9440466 = "b7b325d63a3e7114e3aedd7790f0f0f586b1d9e0" +fc89c045ef8ea8ba32e257df46ab699f885371ce = "75b3dc5ce0fb56a773092e6c7bf2c5cdf6657f5b" + +[41a43668-ff68-5e81-b2d7-6ef3c0dd3db1] +cfcb7fd45c01a6747844d3413ee6221465bdcbf2 = "8b85887ea84d9500d000cd7b52703f76cdf14f33" + +[41ba435c-a500-5816-a783-a9707c6f5f3a] +70ba65db90c1940f506541ebd415fa4d7c95b7a9 = "06619c2d0cb12b21a01f645099a29699f03634d3" + +[41bf760c-e81c-5289-8e54-58b1f1f8abe2] +32a1f1058e21db8b0935ce72cf5a5ffc42a84636 = "46185ea1efd0f541fe1d25db393f8ce9210ef2d7" +36ce77aee33335b3344623edb9c28f4327ab247a = "8e3b232072c675d1a8098e11f6cce6c4fa2d0061" +3c6fcf760f381888d65f70dec235ba139871a3e8 = "c8d659ab5a8604ed00a00448c0c097ea04360376" +44476b99c3f7641875c82c92762287fadbdb4250 = "5622be2735341b2b4f545b466b8a989d05e305e6" +5209a8d5bd5ad24f52fd4cd628e6472861f3ddce = "73aa531315fa1ae0bf224fb84a2a4c137f89f957" +52deafa384b46dccf07b475bc41cd4ec0227be67 = "7c16b1d2e37a49d3fd0727b15997294704beffda" +565c0194e207be0ba087131206ac2af1c5f366b4 = "93703c87cf938dfd69c570277b188d155fdee49d" +6633d6c72cc775ac1dabeecee2cfcaf94d6791b1 = "c9397e6608087d8a837b01f240beb0cc099aaf09" +89a4d10352336d50fed55fec61ef39fca1c21696 = "ce21c379406b80cd7e80dbf55a4b02cc2fc11efb" +92372ee853cc0e47ce5dbd760a4bfdcdb80e2806 = "ea7045dcaee8dc58a67a54afd06921ea0dacc49c" +aa027253b9c233f2e2d11267e6be3e34b37767e0 = "c1f1a0cad25cbbeb3e72ca6bcc27645abe1708d9" + +[4210c81c-ea79-58ed-b1f5-cefccb200c31] +67a653e2758bba155b7b77a15e1190472ce4dde8 = "26034b9c8788546338d12dd6d21a1c77c052fb20" +6ff713a6fe4271bbc1d217802129226c1c1b87a8 = "c424cb3d8b9fb4c508fca252cfa2fe5627fefc1b" +e7896df475c7a966d5244fd8a5d047cc62bb72fe = "1a76184380f6dca64cfade7c3ec48e8af01bd6a9" + +[42171d58-473b-503a-8d5f-782019eb09ec] +2736ba47334a3d27d96ee92c2cbe421d29714eaa = "601f501a89d25d739889ffb0b8155d0459b260fc" +9e5bee7034adb59463954caab2ccc35444463b6f = "112f0ecdb73888c3f017c961e188c4f82f0e8d4c" +f099cef620156ac9f72be9e84f4a72ec747dac61 = "a31a8f7f6b52472592195cee46808798c434eb59" + +[4225ea8a-3324-57e7-9ddc-5798a2cb9eab] +070380b7b5497813159467a9152a743d21d4599c = "cde1db967a371d5f439f7a23f8de6a810d5f7df6" +083a215431159f5ae26345a7c8b2e460ebc6ed1c = "ad2d85a038ed44611e5b9f7d4ccbce87a97e9189" +0bbb7895a5fa9d80929215e51dc56091b03811f3 = "c9e4615c7c4b1ffb1ea58c4d5e7ae1fb32708ced" +0ee0cf592222d581382224eddff9a1356512dbfb = "a193ed6e3e25214e1d7d2fafcfc9fe68da958047" +1cdaf0ad32170c8385710ff717c0cfd4c1f69096 = "3c6e4366d6ceb2e6dbf488b06cd35902130219f6" +221e26b6ce62c2bf643584d9814b6e78ee2cfcd9 = "7c40ff3d54e0b1d69eb60ca9dab2d705ee830f6e" +2268f5a3368c3a189a9e9fa675e8fd458fbdb52e = "c3a74f83847c2c4a839f9a7f00c99eec7741d837" +36414d6b0699668324fe36cfc98c3af6590682dc = "7cd423441cbf58a17fb734979570b964fed92dd9" +3d1238ae106c6e0b9a391c1ef6a916bb7129aab3 = "9f11039227e1c0053a263cb0290c8c1daecf8bb5" +52218844bc4ab8fdd3da41608d8a2bf7294c23de = "521e8218607e25010cd7b183309d1a55e896eaac" +53d9b557643763e6c82887ba3c23358d3fda80f6 = "a0b3d20c5c6cc8bfba9cdb3131cfd89976f9d8a4" +603b5368e0f12f92ea706b93fd76af2080eb853c = "65f1843222601c85c57a1d764c25a5d269207dd2" +64a0cb78fe8a267f285cb5693ca214f577a7a0aa = "1c726b6a638b6078e936bfda6539b04baecc3ab4" +6a4be57efe0f39b9c963055253e03243ccb59980 = "561a1560d09633092c2014fd6a70b8fe19a66252" +72a60375a79b43c6bdb6806d6da3024407eefb03 = "ede3387fba65288a0fe89ac96e946f6413782211" +73ec700af7e830eb90feb9eba5485b2463fb5d2c = "881f4a5963b8dd88080f5fa7b127750011d40bf5" +7ce41ea77f281e29e42b4decb33fe7b79bdf3380 = "bf0e0fdc6e3b628fe9a33417e6db8bb1ea42fc22" +861074feadc3a53558f436d7d2454fb537a02cca = "1c61c1f1d173d119b15d9e41076cda53056eccfe" +b2e9baf72e8faa8f9b2b6e7c4c5b574ec198d076 = "56ab7ab8127936a4fb60c692734ac8027675471c" +b65a4db0273a957c39b7acb46f739ec2ffae579e = "5faa845f4309c590ef53a292578388bb027d99ad" +b7c643aaa6ed16f02a4d0760a9a8469f7907869c = "fbcf24368317e7f2c07f9db76716b559fa289984" +ba52b7223db16fa19beec5a98ffcf97462f06afe = "47e2484de16d3223df228124c11dfc5fb4d8515e" +c29edfd411638827ccd03ea802ea6e2acb7e7f3f = "7606350b0ee0b52672d93923599626c5e3621d04" +c44f11b46fe057f7401fba71239e91bc9fb1a7ba = "41cf96fa192363747a8243fb0964f31292bde416" +ca82bf6d24460b10a686ecacccb24ade98892ec8 = "0b5b3333d12e7c7e8bb386a150e038b4e6deac04" +cb196e71bf7d9e62d82483d94ad344af7c74b162 = "296164f84bc2a5129ccef143a2f72698e9a79297" +db9e19aef5d2496214e53a716e2af66a0557478a = "ff54fbaa38bdb9178cd3215e529308683080d18e" +de1d4256afa56f7d171798efb3e350da4627244d = "020b19bcdf9429d698df9ff7a872df9ba60341de" +e4d5d995f577442f40ccc7dd61011104d6866657 = "804165f2574e0ace2e9bb25b90498e8b0828e93c" +e8c8aac1914cf7572814be5a8d50537c5ea48017 = "a546fac40f8e0044cd574eb2d1019612ad22b2a7" +f7217062c4922c9650a061ea2c42c4a6d2ea699c = "39c481824c49777de08716f110a9777fbe7a4707" +fbfcdc238c11df96871bc340981fd1dc047793a5 = "766b185998388b4693525b15fef2c92413d9a1e4" + +[422c787a-46d8-5bcd-977a-e425588d3a91] +115ef12d31ee996a04db9ea0cac941d27a1fb8b2 = "3ed4fa6281b7aaf1d8db09225dd2f2b21daaccdd" +355907d8abf38f46b0d55b31d71552ec991f0f3b = "4b7dbc2b78c1e1f9f2256560b41f6f0014373001" +3cb5c49932c82d262256d47207635f2d7a5e0f1b = "d480058053faec67e4248800b75fc4bd1c31733c" +54320f3c541b0ae5614e3860821b197aa7c1ecca = "bb9274664b6a618ff79f3e74b1385578519c0502" +8b11378bf298ae82c77d449dafd4eb2914509a67 = "159a7053b16a23f4560ea7083559265f965ad506" +d9543ea428afc79c38aa30bbb4d664ec00c0fb98 = "4057a1304b90890df60c1dcc1eda88123141694a" + +[423ec4af-fed9-5355-ada1-918c9f4b4566] +918afc2a1272c125c960abe1743bfc3a9de4a027 = "7f40bf0b37494b470fd6b3b7d6f52ad0cce9a617" +b8d68e4f38f85556ab912f6ba331b8bbc05c4cad = "add580ed10e98b65b0aacb9011a5db54dfe72d7a" +fd0e393f4f3b5c78f4174ccc2d62b239a8370ad4 = "2d270aa671fa9e4fcbb6402387bc4dbd83328e8f" + +[4263706f-63e6-5d2d-b5cd-cd6834b0c510] +384c1461eef2627ea75343f56a842bb63757e666 = "b930a19550b6d095ba988c79bfb43c673df519e0" +a0f3c8829f23127be82e3539c13a51f995420fda = "f66692d8528a119d69123c54e96f2f11bf1f28e4" + +[4278c8f4-0a4f-53d1-b67c-7986f76c9f21] +9faa9033c8972fb3a6b1035a2d1c75947a07e404 = "270a148942f0691dfeea74944e8775bcb5ef8c16" +e95fca0247d37fc9d6d10a3465d610fbf69e05ce = "f3e59fc24101d10764726019cbd003222dedffa1" + +[428bdadb-6287-5aa5-874b-9969638295fd] +0ac40a8004b7a295d240f4af276c1ae176370323 = "7e2b3e7d77a39f154796ba9ea8206ed3b458069a" +125333d1693de41c1dd8f3911a52529e8435bf4f = "55ffc24b91c7393ca34e60ca38deada5ef7b723d" +155814371666e2c030654b4974e15195cdf1f2c7 = "5769f0602cd927d8c8e1767ba439fba5e628e1e5" +1f3cf80245f0a692193eea3c850dab07c32abe9c = "cdaf3bdb2c954279f7a55e6cce0510321472b61d" +2153535b95dffb43c424923d471572a34e88bda1 = "2a27e11c87279b461bae559612d785a7d80e0c92" +2bfc0bfc82fc5413023e45ae1de1cb9ab762583f = "f324a5ba7991aff238abf347fbfb2829e66aafb0" +320778928dfa0afbbc096759a5b3e9c6f727d165 = "6c14044057900abf04204ea7116450d96f8ad18f" +65283644adf66caa94450fb3ad9928994d776176 = "42912b491789ed49a7868fa2d1d98311a04bb22a" +6eb67fcbfe0add3e641e55f8d7057fdb68768f73 = "284a8a242d99162c8c946791bb8c1fae8e8adeab" +749a07c38d4947814dfa3d0843b890c8b606144d = "b10f83e74f8a352fdcef8eb7584f2748967e764b" +7e688575206f212eecd0e7f2673f9124a0725442 = "0f37a32d937a1a9c511a5f63348ace56e3022371" +9eee82a7515922beb13c5efb0a060ca5cbf59027 = "dd3e4e41ac1403ce4eed4f7a752a015376623302" +af25eaf5c8f1fbc02dd1a3fabc2c89447b0fa079 = "c755c97635e6337c3aa0e76da344d026af8a6063" +b1bad08b8a1e0af92a4ad4077a1a0851ca342160 = "0ea95cfc021a767ac79ed4258f9cd3353d9d995f" +c8d9567bd5a92f091a11abaac458c7505635dcce = "c4f402094d00d26f0ef9da58ce8a3ce9f061d35d" +cbd775e35a445e497d3b9157977b971fbfc5d846 = "0cafbfccb7e7f89667acd9c49438e03089df6e82" +d0e2abe932d0adfb96fdaddb4ff7cf82301ec02b = "10ca53d498d8dfcc8d3aba65e889b1fb56e0130d" +d1cfd1d2891d389bd683346334bb14981b5c5cad = "ffa592903e35fe5296793036ca4ef10519fb7dbe" +e545bfb42f1320403c559b2d762d6e3592f3d5d9 = "8dbf9ac16175aafbfe62b9300391fdb58139bb86" +ee859c7efb148e1c90c43e3bd6a7f1fe7ab5075a = "f90b0d8555e6d0bb9fd20e5b4eaa6031972b3dd2" +f4dfae54fc14c19cda3f0d99e9ab6800af997cbd = "fb06ea694cbff7f1167c9667e8c6f3c1d8644775" + +[429524aa-4258-5aef-a3af-852621145aeb] +00f671199ea1046a43b87d2743f846e9c2afc0a3 = "3120bf28495975141bd601570f850d89a385262f" +0e6d99284396281f7c3b220a76fdba97669c2958 = "505f5e77092f23f9924afbf6aa2e5ad5fdf00070" +1ef7694c2837af1b30f2b8b58bfb6401ca8ad166 = "0881da0053251e9e03188a52399c544f4a89bf38" +250b50ab5f9bb87576c623fa20fdafb981ce40a1 = "ce5bfa3fe925f614b98d45e060cc581114dc3491" +276c98d3a61432a14fad388debce91d056653b88 = "6633391b87849d9bc00a1ad51d1cb16b6c0084b8" +28cb0952b5c0934a3375f94979ce2a58a194a85f = "aecbe4a0298cb57e2a15089dd53f8c10a5653e0a" +2d1b8226160b8dd8f4aeffd40590539dcad10875 = "4afc412fbb43986a311b542a19b43b3c24bf78cd" +32cc7b73c8beb12fb5c912b137e60dfd984d7f5f = "ebf05954c0d0ac052756a3d1e1afb99dc7e6af62" +420f01ecd832e48e37ac613ba2365a6f6e7f48cc = "9deb0cf87621aff979296b1503562597165dd788" +43332df03ca75751d42460982a94af41c54b2c81 = "b0d819da2add758cf83f6af65d6f973ee453a340" +5308593e5750e2aa51c0f901303c6b62f985ee5b = "d41c9ff4e39783f42b9146837ace5d4a22ffc4ea" +5d31facb01f19f78ff60f47b459a89f3af7ea014 = "d7d6bd0f11be6b90d97b666fa8609ef54d147d6f" +69e9d09453a6e6552b490c6fb4c6ce79a74078c3 = "b489f89a0777086cca6a41a52592f9a5a1f544bb" +6b75aaeaed1526f2f0a00f10e7639b6ac2a2c911 = "492dc14987d6b902690db2645120d1f0e2534819" +6f0be0643d2795c5e9169e63283c2cc5ab7cd309 = "270e51cc2161d5c7f6eae1ac0f73183c9eececff" +77858908144b3b852f2ad8e84d52921eea5e69a5 = "5dc31453d2cf38d4406c8577de82990add623b39" +88657f977cb4da51360b439653eb1ce8dfe65fe1 = "29c55d234cb2205c5fa2b15e1e90247bd37a84f1" +89675ad2a34ca75839a39ca1581cd9617ca3e8d8 = "d706ae5b016110b06d061af49f4802b554d8329a" +8ad3d9b830a3a3246ea056a26366e471d89c51d1 = "1ceccbde3c6784b16f7551350ceda265a133431d" +8bc2dcfb0c4e23e56fbe3dcdca8ed16452b92297 = "8e66946165bd0a8acaf6f95c8c30c956b87ae036" +8e98e0b76f28728e460cb499e7df47ad3eef9892 = "aa80d1d7af8e61effe848396795d470cfdefe924" +90f084767077f83e8cba41869cd73afa9d8c6e35 = "bba561c375ca747c3dd3658c0f5713972bbdd71c" +9b75e9058173edbf0f625600afc1c97f05374d73 = "d8c628a2ae1bc10d480599a2b0330a87c63ff7f3" +a97e6d44720607a671da27f6d81900fac27548d3 = "f966e19923c2e61d96389f63ee4a6c8a2de1fc55" +b01425755c653ff8fe11cc1e3aa41b648331f6dd = "915d34a6b5aa94b6d44a4b227dfc486033bad80e" +b364970e27754f67b47e4f3a8e24852965cefb9d = "c7469c4057ffa8e353251d71f6de913dc3cb5243" +b73ace5fd6729f8e7e10013c81942cb94150c46a = "b0ef8f45a758ebe7a6acee328563d7723ac7a1ec" +c4e0116a5a1df651c5df16afe6c4b80e7411d148 = "9d1dec98f4695d343ac3ed365212277ebc44ebba" +c667a35d96ac5ff8615c57411e04bf9385e5d061 = "a8f14ea0a85ae2a456f5df89d4205ea22c97420b" +d0cbb5a11204dfa6409536a397c5c489f15dcc78 = "ce7e79d8d88dc29aada5e767bda43b1fd88e0ea6" +e24bdeba5de8589d2ede8b50e720524b921532d3 = "d9045b4ebdf0b76f5b3f18e8e0ca592a4331e7d7" +e9056b1b6bd45c72019b4baf0d4f9efe2119a739 = "29a05aca1db0c86377fdb46862a634fac2c92a6c" +e95033d432d4ac9815cb51c365b3fa7894df88e8 = "7819f4bde8891c51465df4c522dfd0bcd0036e3e" +f29374a69b59c470a4b23d99f6db541efec4a233 = "a4ab8cb95eb1416f5a821b4c7db56b3df7a51368" +f98897c27ca9bb4e1c7858dbfa6568ba7cce7652 = "665be87fbdd890426b1351a948f9a683749c41c4" + +[42dc638b-f25b-5678-89be-0040dfb9a435] +17ef4c8132a98ddfeb7cd4b385b45f3c80d8afd1 = "c7a56d0910c4a6a8c35bd282626ccf6788c8122b" +58df7444719775c363c535a265dbf46e3ffa9317 = "7f32f0b6e33db4137c35e39ddef54ca7ae32d11f" +65b994ec735c5f43099b763a535a20bcf0a1fcee = "0b0e55564907bccf7668dffe8968bc425d0eb384" +6dbe9f70a6b51f662701a326ed5e448b7772ff57 = "10bac6566114c255a3ffab4dcadd648827ee3b4e" +73f02e7c18b6d044739b3fe99ee3c376e1c9361a = "a93e4415cf5118d3e18501229dbca546dfe0a43c" +9daa97f09c9bb7fa1c6cff8c5a6af67d3a9b0468 = "c71acb2a303fbbfe06b71dffaa3d2668ef6969a0" +a3d4db7231cfe88b01d24f7ae509152456709054 = "a27292239e351b647d6f220652ae9e5a08be7b99" +be5b10d591e9b32a98d7ba8aa2850d124d1337b8 = "833708f5f57848e2818054ed3e9a4e7933ba8738" +c7c80534e8fb31bec475bc4f4a0dad19984efa26 = "0844e03c2f2a8289b30cd9db72af263aca74b08f" +e4aa600643fd2288b6114f42beae8f2e0eac5804 = "2f0490992bbb2f712fe4fdfd88bf2a1280f9a365" +fe0c52940debe1a29a7bc4225bebc303154dd6dd = "eaa786111fdaf78c507728628d4a9bbc9026eb23" + +[42fd0dbc-a981-5370-80f2-aaf504508153] +0aa0760d73812d9de504068ee48e131f666cc142 = "49bcf92eea5a6350c0c3c2504059dc5aad69641a" +2772d765e505a7ecce9fdc62cc59ec64b58f1cc2 = "6b917188f0a5c38debde8c59d083fbc524acd329" +2b1834126cdea58de22a420bf59f7b43da190689 = "61f4f582e210180c6113076e47b9b9895770b320" +4558f41f71fa03fa0a331f58b6aa0e4658fc232d = "a285f204cdf02d6adc30f77c6c0cf60f6bd71dbc" +4584403fd7dd2367dd3044262a4f417642517be3 = "7827246b7a991171550e5f8fd3bdd1bb7a30c005" +46b05250aa1c7dd1d399d64b8a323d7db37f26ea = "6ff549d223a6a33adcba0d7ce0a6b5f5680ceb43" +a215666bf709c2e66f3801edf6eea5449c42d2f8 = "f382598d4459bc767e2c3321f7d83ea06c4e2508" +d41f60dec1d148ac69e3dc78b0f2e585effcb251 = "b29a3ed94066cc3d7d603f45f643b78b3ce10586" +e0bd5e1c91010836657579e3b72b71bc337129ae = "677b2ad11de9ac518912112814cf370a91259ae9" +fbc8eabec826f7325db19a0a6bb8496ecb9645d2 = "d34162927996bc2d6e6c5b8b54a67d75f97f7699" + +[4345ca2d-374a-55d4-8d30-97f9976e7612] +19a68e0ecf35d4a19b379ed70de93a33ed61fcd0 = "3d65a226c4588c51c558bdfa578d9b813238856d" +3eab55acf9d367c0c53ed9aa804170b6b4467fc7 = "947196ef99fb341d8fe53a8b6bb4b0535c6522f2" +55e3a3fd32668323174ceda35b1cbb53f35588ac = "b281ae14444ebd2a837a67e3a9cd05ace21ecf70" +702800a031d157db90c5686809bcfee50ef69432 = "9e60182a3e8f1bbe365c8bdd87b3e37a785eda2f" +96c1ba356808ffd1ddc68e1c4e79fe891cb2c638 = "a97979902632096f47013becfbbd3fc9af44df6f" +ad2e613e3049bc41e4817b3f09b99c512d093a1f = "b684e162fcc88be88e0d453bc64e98e3639d2e44" +bcc8f1a2488c0ebbbc97f6f9f6eda1eaba0705c6 = "62d775089e1814544ecce8fbb667442c5c35b36c" +d59cb4ad534f9a258ee18b401412a2631684acc1 = "98ee33c8d0b474105d56b754d6a7cba6db602a68" +e61cc8a169aed6162b393cc6a9b9f14c4964ba5a = "4754a66ce6db1026023b41cc751b0e178cecdfb9" +f53def33e29c565df0747d8aa06cee71ee53fe47 = "0830060e7a9ecca9329d475fec1a80137f145a6a" + +[43497bb0-e9f8-5dff-b622-a6beb2ad517b] +22104ce82cdd9ba8e1bef7310e52e3dc18f5beb5 = "06f33013c3e7bac1b456841ee795e50bc3603444" +39f8dc6d3d4d0dda97603e35b6bf38a36baf5deb = "7084bc406f8b1bd34073577ed096e5f7f17078aa" +5711c331b02640ad6e9c7219eda108570eda0ca6 = "7ae92b05ac74c72eccde76f284af8a68c2b33797" +df2ddc41ba6b598ee7f296b856d74f759fa1c4e2 = "c779940bea9c8aa35ac147665fafdbf13acb5824" +edac048b32a4ac1795c49b5daf0ed19dce9e3f65 = "84410f807b3990eee20510d41fa59c055ed51d70" +f29e45becfd8be3c125c9a19e0244c6836939168 = "79689d55da42fa34525ea781cc19dab503867169" + +[434fa67a-6ada-5e8f-9662-b52a532874d7] +920688b9aab8783374d9c7e60bfefa45bcf599ed = "4429126b54623ce15e50701c3a0203b424049de9" + +[435c3d8c-e5f4-5f7f-83ee-d96dcc9b5a11] +0ffcee0aa36146fc0589f876c87df4fdc1df96ed = "87ff2cdca61bf34f8d16ee18b95de94700358875" +26e11e95f3b6302e2abc762fdf79e9e3a6a0531e = "f6b424190f662fe14275d1075088f097603f27a9" +49527f63454771e7de0d0b91a34f60cbc530742c = "3c41b373045a1d85821da62868718e472712e1b6" +9b0106df5d2120cf311d3f29d999daa0acd67b08 = "33e45af700f590a76bb175e9b3ca19c9c126542d" + +[435f3bbf-55e0-5b39-8871-97c6cb0d7309] +51305c92d3e87379861881b6d56de38bc4a4770a = "b4ec41aa1e48c288c4c6160295a830c6901c63cf" +d95969f86d3e726e6f5a372dafcbc917a93e385a = "9df73a41a30640e43d9bea164544e963631c8229" + +[43612063-7f17-5691-a524-c0463e87d2c7] +0c19b6bf7b9cbb45902fbb3fe0b1ba1430393b5d = "74acc58ce05ee714e21c84cfc3682d91656679ce" +264f33906ded6e447b1c62139ee9be5dc463d066 = "20b38f3838f33eb7ffd857065cac7002a8e474e0" +eb4292772ea0df44b33862b8c5fe4a707ecd4c77 = "b8db2f32cb7850d39346faf4ad3cff545a19b775" + +[4381153b-2b60-58ae-a1ba-fd683676385f] +2c38a2bb773204109ec1fa2c047ccc21314aa11c = "a78c45ae70ee4c59bd45cfb0776df458d1b5f73d" + +[438e738f-606a-5dbb-bf0a-cddfbfd45ab0] +0254dc393e3133640cbac53c05367d209754d432 = "abb1a98cbed7cb756166da530a27c672300ad362" +0550f890c86878375f74821a459da41e7cc943f6 = "2ba54612238a85ee6c187a863faf6443eb645dcb" +0c8e5165d61fccd7a2666d94d68ca5507abe1624 = "67349ee5e6715a782678ae3fe3c51e4aad6efb62" +188ceff436d87d864b4d8e3202b0d4c533fe4f89 = "4e21e413cbcc1203664a8cfc22296cef4c707b10" +22c74041c1913d531598ed562817e5910099b144 = "6e5a3659350231dee9c699b62c23033b42b465bd" +2350afc56f2d4e9999ea5d67e25692accbaf0b8a = "9306e31d99d4398832715f7eb53cb1e3bfcd37f9" +23b9c0174b098fafef0db01e5541165d87c6491b = "ae28529da68750fe993e3b1534c1e9bcde5713ed" +2900a87ff8618f3c6162e5b32652be0cdb8c12a2 = "cf2810e667838fa6d3edea9994439abab7dfb6bd" +2b653b8c57c8bd465a0dee05f48068512a0a14e6 = "dce88f172319962fd1a120ae33cc8476fe345479" +2e56f01c722176e19a3fe233423dd3b146e47cb2 = "b2ca3c554006ff73aae367de9375126cf902fdd8" +2ece946d049201359b3868c931473d477913e3f0 = "e6a930f9a31754219aeff25302ecc205fe97a1d6" +2fcffd57c147c6d845bc4028939c79b999382124 = "138e7b5ec4f9de76b5236f3e62ab76da114f116e" +2ff91cff447fb99b0359ec7f32af96925f9bab61 = "8c94615cc0d93397a0ecbc114f3d9bd265173671" +318bf89bcec6a286666ccb6b4c602d6e7ba63308 = "e5d2bc1154b1373f547494e47dac06d0b56f7dd8" +32b10a59cc688106b78f4bad8d93992a379937c5 = "5b41485dcca2291f9ef9dffc2ca84628c90aa91f" +33906a7c985b787583bbad3560799c3c65bd4553 = "ba28962641b82c98cf973e24bbf44c555f53c3d4" +480cf86dff42cb8da0b5dcff922a17b75b47b1a0 = "599fe0f9729f33c475d43cf805578ab3320f462e" +494f8316a868a24bbc09aa2626f0685ec939cf8e = "a76d1e4cc73b546e9dacb8155416d13f513ce559" +4b2732d5f35176e2bc84ce7db1e325e6ae949666 = "76adbb8828f06cc592edec3f49d1954b487a1d4b" +4d7d476440e9094c2fad548b9165ce9bde01688a = "cdb2a82481db7b4cc7ffca835875a2ef92f10ad3" +4ff3ebd39614aacac26a0bba1827dfb6abbcc7be = "c375cef261c6398dde51018a1d7ca4da3ad955dd" +54a3d57d7dd1bf2271df41470049b9bfb191ebc0 = "e225a0f2d4df67be5774d179df45a5675c1cf534" +5da18e2b137d6e442fa6844a1f4fd999944b379e = "19e5b47057c3052bc946902abccd6fa23360257a" +6b2d3e50c70995d5ea4f88e66f2947d072d08935 = "4c950eecc28a1f619b2715c45dfbb2a392c302f6" +710afd454bdc0512457e5161e0177db45e00b63a = "bbd8c05ec8dbe2c8bac3147385bac2c6423781ec" +73c3db71e8e1eca4ef1e950e5aaabe65f544b159 = "6948a178094e1b77bd2999a5dbbe989aaba9a744" +7798d4e44493415c07e9ed2ef7b708f6936bf1c4 = "bfd9c026fb48ed7542c237da7b939f4091bce367" +7a930c92b66c9b4cb6588a873db5fd3f9826687a = "73d7f4f094a2e511832c35ced2fa6f0c0d289258" +7ffa9ae8cada3e458cfae7ec49c176cea6f53a0f = "9d6af6659e956c36be900f6b8a821c1384782732" +802a18dcf9ee24cb517fffc95853f30014906423 = "d34751224e9d27d3a47cf03c36aac3d6c16d2def" +804e065479362f0f3f8a413f8d9ddeb201fccfbc = "ec4d65e34b22920da310b8a9f85fe01db1bbb06f" +806630c90d5cd29b2afbc788c7d0ae026475bbd1 = "384b20d2c5b85b872e3a54016de3f04ac16d91c0" +811ac7271dabda4af737bba55ca3238b996f8fb6 = "d3284c933e0dda292a817b2c30593c36cd8db729" +827ac9893301f7ced621c32f13e5f2bd79350030 = "1ffbc144b52e4a5fd27282b4f60f6401f12db812" +83eef6b19dadff3598f8f07b4579251c433204fb = "73cec8569b7cf56b47ed2c6def8b7d1ba56c0426" +874b044ab4239aa20993cf67e41749abf8dd9668 = "b3bc4acf2b149cf06770fd9cfcfe6d094e55b2ce" +8eda38df092e7176beff369b02727862123fb5ef = "0e063b93c04fb87436c11b68b71aa70d8c4ef399" +93560fb06affbc02acc237023e1b6a85580b3416 = "9ac88a73c5cad73c87e317849fd80c86e5092041" +93fad5cb429339bc67c43ade02790f1b84bf9f1b = "ef7293583d447354fdb7512c1d84a7c0c15acc8c" +945737a0085f933f86762ae40b3695e29e0bea2a = "f0d4abbb43d3c2bf9f0c58b6a4d1a77922d54453" +99221c0e5e1056d83c6f5344baa2fab769484d7f = "2133a0c0bb45d931813cfbecd0cde6435046bd80" +9966bb206d75d7be559e35f0455ca94e1d3ce7c0 = "43e9d768c232be7e0b284cd1514ed8d37e58a5ae" +9a439cd07fb4380392a0221f462d58f20a019c20 = "d03915f27f0c7ea1153c454784693c6c65bc59a4" +b94c2af031622d0b5c4e7be61e0a645ec8ff6bdd = "6c3d08e5191626c780fe2aa9744f4078829eecee" +ba46cf1089f84ab509d6c8277361764e258c0efe = "aabf14c544e852ee6874b47cca2c6d9316281ca2" +be354e07d0ae5b70f819bd93f7f10b914bbf170c = "4a8344494520694f7fc10072a9c085e1034d387d" +ca1eb9db310d73dcf56d012fc0f1cc4cba5d2d44 = "56d401d8cae136a56bd696e09e9684c6f6427c52" +cd6e9b5c08deaa249af1eb91f67b9b2c42eba3c4 = "0fd5ccca64d829ab7b7a794b3a370bd3033d26be" +d086561fbbd39c48f1c214f642103a9b87b39a0e = "277d401ba335a47cb41a3f601da153e0c3d790ea" +db6fca652ebd45e6b68d77db2b3f2a5d9eef2877 = "75090ee0d8b8096b3ea19e0b0ff9adfaa333adfb" +db82657a03db54afbffbc8c676036316a09baab8 = "2e0d399a238f0be739d2ab37c508f499093a8246" +e35224ad380fd35db9c0e64db7d677bb40ac7757 = "b0c0e3607b655e6d079a240789638d2eeaec61db" +e397bc9ebe7a87b08d056cb22f18bf662872ce22 = "6d2a77d457be81bd6915660c237a72077a41fcfd" +e649e89b66f11e35bb23864e23b0d9bc72ffa5f2 = "a313bca5acc909c7a5bcd19e86a0ad20e70112d0" +eb654cb667ab4d6ed0684c31334742806cecac78 = "e30918f519f0fd9697f46efa862efc6d838ab2e7" +ef7dc775060614b0c4ebea3555ed9cd4f1c65c92 = "d774f3ec62b99efdaf84ddd55d2bae18409405de" +f863d82b34969017432be784954029575b2e3e61 = "22d85fea8f6ae56edde0dbd07a5f271aff0b527a" +fcbe0be562d347843d107617ce178cfa70ed1a54 = "4abf3de29c8cbecc85c5cbc6018b479d71350de9" +fef614152839357e9ca27e55c97fc33f33f301d3 = "8f6a748d0338458a9946cba975e1168295ccfc35" + +[44063525-382a-5b84-b7ca-976d099b8647] +7062f73a22f2949f5ee1c7c330046dd06bf1af69 = "30aaf6c8820758109caad46738f859f9cbb4310a" + +[44135caf-e1e6-5817-8029-ae977229455d] +c1794d6e992e632f21d593d1175a61a44b8fbcdc = "a6404160c991be31bb9d34e27dac5f2dca74069e" + +[441973f2-b9df-5c96-8592-43ab4ae4df82] +8bee6927afd8bf15864d02ca3bbdfc68c8ef4fa7 = "2f81f1e2b9ec7a0c7ebfb74bf5c7c678f5a21b28" +c2b7602f9125710831a7f75b5d3e6580e7b587ac = "b22e791da0263fa975f341bdd732c8de8ab58b43" + +[442a2c76-b920-505d-bb47-c5924d526838] +1363c0813b3446bb7a79d95afa21544512d8743e = "e2a2e9c548de4cceccaebe218fb3b11564b324ea" +347a91e675a8a5f37fb8bc32212d18cdfc72e029 = "1cd63929d605456affe2cc34b478f7e7e81045f4" +437bd18191cdf84040c8b397c1801fb0dffe6a15 = "2239b7e2a01d7f46929a524e08257b4576064f69" +b00443465c542b7bfb2deff8e156b15f37345ff9 = "206b95db674edd0f3792f11c3f313b01c3717bda" +b4787178533115a08da42491ce8c5c65f09c532c = "b51560bad1689ceaff59c9663da01ac8a1dba45c" +b6c0971b8579a8da6a98da8fc2fe020f5f1ab9a6 = "1452ac1d6931ad5fb1d058bf6f94c83c965f4ef7" +f6b50605f6bb6e27167f37f7211fb089d4aa9e47 = "06b7156aab646dfba0e51ab6288b77f75246e901" + +[442fdcdd-2543-5da2-b0f3-8c86c306513e] +82a6c6c7e5caf8ec5d7fa15baf10527bb79f133b = "a853d1f6b5ee6207c892f44a764c1b1590f0723a" +82bde724e6937c7f8f9d2c3c281f140bf8ff2772 = "1e71b269dffe3215dd8a63f5b2be2902a6ca0c6f" +8abb515c407d6ce82566ac3f0776f6763dfac0f6 = "e61d74db9a8e41ecafabc764a20cb9ef4d819541" +db6e95584e7b957e1cc175a800c49c1b24949f25 = "9e634d099660090c84f05480daa47944ef945fc7" + +[44b605c4-b955-5f2b-9b6d-d2bd01d3d205] +480751f18c287490f39b076ad920afab1ce82a10 = "32e30dc9c7a419e00708e2d381c9e39c4da3f4f2" +50231571e2ea97a717b88ed47791d92c663f1a2a = "edf6f6b2164a81868ac26202f93c157aa3bd050d" +738135f4c7a859807efa6650b57e324fab172729 = "b8f33329d162ff41a4dfb859511d6b5f68de1a43" +a7b42744cc7f7024446a29b09a17e1b04aed94b4 = "aa044f679def150354628f35fad855a85e6f83ac" +ac1efa49bd5e4979237294a7c24ab7245fbc0b6e = "89dcbc191dad1ca59130ec9c3cc5cddc6eb4202c" +f06cd4cc96f42c626f19d777dfa255b1250db0a9 = "b8de5788bdcad9c76d1d65047b386784d79027ac" +fcabd1f679cc5d21302e521fd3d86b54a139a592 = "af21e7efc2f0929b01f910da999a36c2efd842c5" +fdc316d4b0e534efc1ce1e7cbb69a526aeb6e912 = "eea597547afeb3ed234829e146c59ba6f3ca3a8e" + +[44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9] +06c5933cd1430d3879cf11056a348c89708f67f2 = "79d21ea62e95adb4a4428e611e94732c0d927a8c" +0c36d034365017c045bc2aed2ca2c91918025193 = "10b309611e8c909cfa9a9f1f2dd153dd8393c5fd" +13670b1620f19e36f7cf9ec80b4c048340ea1ac0 = "f3f32f489342a9021acd52eacb2aa20e11ad4c53" +3c1e0e87a9b117c52e46568fb9b4ab60c8a1bf98 = "1b37e34ba3f9d48e9f2bae000adf1153e18ae6f7" +562968f9be234779ebcff20f160d7235b286bbd1 = "8e0411d81dcba88bc9ac891739a36beb952b777e" +6b65075f0d9a3f24a7f5f2a5d21f26edc2f978d3 = "4d009fcb3d6c21679cd42d389ce0edb15bab7705" +6c2f0a7bb5c0c1e3265a632ef90c56450d09f3a3 = "81ac60610383876398fc9a386e44ad51d5f0ab9d" +6dc482d997507860ebfb1195d396576c5d92819c = "9c7673dd3f8f39f973c75b372161c559be484972" +784a524d86f60f6f8a6ee7bfb37b03af285aa12d = "e2841e3910021650280748426ff06030b3080ef6" +87e7965627c526c61c3671bc2a50c91fa26aa512 = "bbdbabf19aea2e2afad2f1f27ff1f26c03671294" +96bc072619d27022b4118e99b891172ccf6274e0 = "5a94cce6395c414822014dfa110c05b0c87234dd" +97f309af1928202ac3540dd977fa209bbbfe0d24 = "7383a6acafb9e431534a8c88824193a4591b853d" +985b3b1972971edfca9fcbcd41c6d1b87f6c3c38 = "6a214a231ab40409dd6f4de986b640ac88ce42cb" +a4891b01a8f20557270f827a9c5a5e5e7c25ec6a = "f76dad6159da2685b0dd27ab6978ac602292dee9" +bdedf37e5b256429364f8370a11ab1fe05f0e22e = "e41d8ee393869c18b8223e4f9ab22848401744a7" +bfd163e50fdc2b55af7e88a7bfdb7e9a0610fa0f = "d4d7f146ad2f19f5e772048250809984bd700712" +c61adf1230dce157821ef535143d2f5bdbfaf7bf = "ecd1fb694f48b6b6a8e48070b35ed740b06fb9f2" +eead8f24a85fbe7354bc704e1f9ed71701470fc0 = "32863901147cc692f4548a352b5e3d596d628ef8" + +[45408861-6e75-55ae-b01d-c0d3f903bc50] +ee301b8085aa2a208610c7d8921cac06c2ed1aff = "c87bf57bc7c0aa857e44894ce26a7015df5c5714" + +[4552ee2b-11da-5aef-8e78-0d48532001f1] +88111bffb7ee46cf6dc51cdc9354fdff13843b2b = "48298393ce215286ffceffde624653d61f2fcd09" + +[459566f4-90b8-5000-8ac3-15dfb0a30def] +1df5505c60d4efa239756cc3d96b5ab8950cac2f = "ac9db489608a44e2395aa5f8f7cd791c4029fb5e" +2d37c748f2da22378a0e90256bfe456edc2a27e8 = "69b460e4fb29ff0c9788edf3bbb395d0e52921e2" +3d6d9377f817d3c2bb53bafa78bfe7407697f4c3 = "601dfc5a0f176d0aca29c2c6ba9c651fed5d01d7" +4427686559d34971626f87b7ca8d3ff35c8ab2c2 = "196672febca34c2cb2b33f9def51ef0259a18b58" +4f3f682b1c5c0f35d1b477007f02d57b11fd21bf = "c728ddabbce0dbac433f5405da6f83427fd74556" +5041379c8a9fafcb1dcf97931261c5a2657de0d0 = "623bd3223ef9a253e1e22df6447422a6c6baa44f" +6ea4a0a0d4588ca714ffc1a01adb0e54a986373e = "d0803201f26b1d5b9953da3cabe7fcaab1eca4b3" +71bb6a686c530c81770da9349a8a108a1b9b46c9 = "4e8a385be9df7f0abf3dbccad94a75649ccc119e" +9133bcf637b36ec111a8aad6297a222fe3acd81e = "2867b72bdf3fa5fbd6efe8314b50ff4dea694233" +94144deae64620446baf4b2bdbf19dda61e617b1 = "85906a5799caeb325a967a0509332e9f0c31c689" +bdffa9f8d882471b3be4f82d4abd2099ada5a4e2 = "b01c7f7d145ef1f20c40ae664b43fca21e09986c" +c019bc1c57a7c35d84de0e94446888f2b0983cb0 = "7012b589cd03dcd6d1629e5dba36c99408a601a3" +c4afd54d9ec4e914f8606cc7f957f62d454992f7 = "022df403fde603eab5c7024f69231a54a8e58e92" +cc2cfea02d9270ac7755edcaed5e2400c9c06044 = "f466815c599d9c625a6a99c2ce7b801b55e5cc80" + +[45d23951-e9a5-545c-8049-e4c4887f5525] +31274cf0121086be43d9f80f4f00fd7b0b7bfbdd = "34b663ce22718afe2a9822e2b5ecdb3a8542628d" +fcb22009cd1616ca2ad532968bf51e7e6b40cea4 = "f1b0d9ac08357fd3f9bd347d9af4865538242769" + +[45d946b0-08fb-586b-921f-9097f984cf64] +0d865948ced62b9867de514c253317cd13243073 = "85f72ed03e5a818464bcb1b0d20bac9a043e8574" +332667a90323c5dd78c63efb888908de3c6060ed = "4022b041087a2785ce6f8787b0b1ba21661cb274" +3dafbc7930580faaa73b8d420c679ba89f62bd99 = "5c3502cb1a661c6f05b621add664f6adc6c11e89" +75e4a2aa64c0049ff5798fe52b26474b1e61bc53 = "a0ae0484369b7815d4aae2eac67559560bebd1dd" +d1e3fce2e25477314908d6de4c7b26e06d723f5d = "4de1f972aac6b0fa6220917c7243511a109ef756" + +[4607b0f0-06f3-5cda-b6b1-a6196a1729e9] +adf01f841248db1212d5f84635f68e1f0f570dfa = "f8dc06de847055e5a1ea635595956f92e81af82d" + +[460dee8a-b2b3-5fdf-897c-8d28408122d5] +0f7d16d698c4bbb78d9b5681f008c8725a40c1ab = "65847e499b22300dd409a5848d8e1969aaddbe30" +2198eda418c04b50f98d9ddd3aa49bdf890f7af8 = "a3fc15ebf18a39ca9a8191ef4ece0cc202958229" +5265a6d37fe252d5948cc92088d64935ba6a7d63 = "10addc9e006bef4f59562092837e2e38f1826027" +54bbe3e8bedc2c0dfc685b43b6af52adee09f330 = "75716bfe12db5943f33c2c50c6cedf565faae8b9" +8d7e2495d948fd8623a6a6c3d6d17ac9069a9a2e = "f3a7d470b3df55f374ce001fe6e4a143a2e81d22" +93b57ccdc31539622051c36ff941ea8e1fd474e9 = "4a790300ca5eb537d31f565af1c8c54ed6d692dd" +a5d158faefd640af5054575641925552483c8cdf = "6a6b135bd83188c9887b27a7add2ddfef57678af" +b61bcbb6ab33ff89f961fd5338ca0946c73e7a5f = "f935db1b4c292f1adbe17259001b442ac9612add" +c967becad426bf053ba45d7e3665754661f37669 = "ef8fb5190e143d156e8418a0466d5d017447fbad" +e1c37ffb093b3f201f024497b645a6d2a20287ee = "e5d6448226b0e40e462148bb8f192da6992fa385" +ed968248bb7c59444211fecd80f235f10fff0d45 = "f37396bfce3e7938ef7efae6b69cba9d1bbd97be" +edd66258f789699a26bbaf4abfec33670c9f7f3e = "086899f739c3050c24e1661518e5191118205fd3" +f7bc9186d4617546e0ab742cacf4ebae968f7b71 = "4976a8e240164083ec91fffc3b328259608ab003" + +[4610876b-9b01-57c8-9ad9-06315f1a66a5] +1028c48de8bd7f6c2e9d0c4fc324ff944d1b2138 = "e5302be978ecffcd632e3812582104eecf671610" +aa3f8ca9cfc48c62b0d31438fe6651b698506d80 = "72493943b7b9e9fac1187bcc82fb49a6d68e8412" +b89ad8b53b5e73ac2f1b7408b6bcca4ccf354b54 = "5d5f331af53318c9951c8b2fcd6bea6128a7df4e" +d5b43757f595be696ece0eb0ddb4c486f1afa9a8 = "8025a524a4940860bea5f8b20321d2f31745bdc8" + +[46757867-2c16-5918-afeb-47bfcb05e46a] +07f39604f27f7b2fb6d3b09bffcbe5b617d27c1b = "0464dcb2d73f5291fe444c8d6e469feff5be60fe" +094e4b5e0bceaa1fbef623174c656a8c8658fb11 = "003235e518964a2d4e796f2013658cf7f33b4ba2" +b2cf7f313c42a3147c16a6ed41b4ac9645e8fe4b = "4e0f24143dbc1c218d1c2a585b9b1c86af05dd16" + +[46823bd8-5fb3-5f92-9aa0-96921f3dd015] +4c7e430d16bdb672518e6572abfba5188cc6bf63 = "c770fdc8b9964b3c692da8e64529349106fb6a19" +5ebd4db513915dd52c6f87dc5630603f26afd719 = "3286b4c91fa00c7a5ff8c54a2742269778183d9b" +980d92c5f67ea6ccf2c745ee49ce5fd30edb86be = "c3ba6fb3ca12272745043ac5db88283176b6dd91" +bb541bceb2b670f553f487de046b82644add52ce = "d291baf72db97ac7b1c9dfbb6bd0193bcfc57a89" + +[46a55296-af5a-53b0-aaa0-97023b66127f] +effbcb1379f34a7d4d1f4332de443e18750d0373 = "d36714fc3f3fd48d8166f12371475bf407b85d32" + +[46b6dc52-43c1-5dc0-9d43-b3fa04378dc4] +0452230cf7474092af87e6b3a11d090ccf995461 = "d2f2f3b8f9162d55f00f5c32df95f3d055d507b3" +06b2adb28f2eabe4ec00891ab83e0b48b2b99254 = "7c97b8e75d8e8f642bc34e96b611977b121f41aa" +1c05e5eea70119af648cbd10c66a54fe6b5cd246 = "c0e2daca8f179ce02ab8092ca6b93b780bcb799f" +25c942e15d2d8f30e6814c4d66695f87eadea054 = "11960e99608f450c3f053417d116e4d6b0dac5c0" +2d54864a2824c252d05c276638ca3fc8ab5c26e4 = "bfa0bdbb6b5d164232a8d21a120b15161c212a21" +2f104c7e693199de4d1f6636b6b9931ef75bf7d3 = "82c76cdd155701bcec85e30567bf2966a14a2425" +39dcaef147541716ca65c633b5fc7e8f7587ed4c = "75e8b1e1e56c6f0abca2ba7719714d8d8224978a" +3c730fcd987a845cbd364b201682434482dc64b9 = "c3f5e974857b1021b23e2ae320f92f7d290db87f" +3ca10e759a19946a63e448dd5aee5cadea06726c = "4a6e73ebe0a4a531299c72c4aa0ab57006be5c3d" +47d688601ef723fcb5532fce65b1dd2775fb08c1 = "db7c0b3f991078b5153abb7761cd381334d17e2e" +505308f7c51f6ba2b12e1bf94d0f0862cc3bdba0 = "1d6829d5cc879075ac573f468a8e2248d45d545c" +5c6bda26d740e306a48f01b16254af323f4e9d01 = "5ae29d511dd8c0e1bdc806a02208631cc448cf1f" +617ededa3b4f2c360ce61bbc4c662f63d78a7ddf = "0128c3202d1be756c978c0b5a6405efdfb25e2ac" +6a3e9cfb3324af4ac1a32e57f8014fa8412a520d = "67de3b28324fc53dcaa4432ce6d549ce0552d9c0" +794a1ac0107c7c709559de372aa5b7c2fbb7036c = "c26db2e16f48f35e7910d574ec5e1d68239ae0d0" +7b5762fb2d81018e6696d4dce4b0bcd2218e9d4f = "f3318374c1db23d0cbc55f2f13d4a7b0f3e6ce84" +7d535e233fd384f4bbdb455d290f8acfe244de9b = "7c90e1fd596d24af0a68521b38a7a9200496504a" +813c1bdfae9f34e807232214fb9b712fbe0796a6 = "d794b17b2b5824ce664d9cefac038ee8af8a48f9" +95d2912500ab4aa96442f805f8dbb0691b3d2243 = "be888d68e49cdd5396d6f4053edc58e97df08592" +9ab8cf6563f45517166ce1b2fdc3a21ee0e2ad57 = "73d91a28b9a5aa3765564948eddb1e2fa40f7a55" +a1a329e305a5c2d2593b95caf7a25ca8f64aa0ec = "c0b0517e923628fdce3d9804b55678b3fbe7e2b3" +a7353d2e6e0732eed102b771a34188fa6fd04013 = "3d2e10903a3b2778ee695939b7d923a34343f109" +bafd72ff5a283a5f494d921b23599c45894f9d9c = "5bef2801641aadef49b71e2ae8a234abab3d1811" +dcefe7a8821081adcb30378041e141f14e8475c2 = "642ae3ee956a3a03961369e0c87ad8a6fc580531" +f0f4943933390379b43dc46b95d24c847c9b2eae = "f90e9b5eab7c29096803249c948c36b3cdfbc456" +fd040edb6a566c32268ec82c57520ea577e825cd = "2704d8fe7975865cbd425d6739d908b7732547a9" + +[46d2c3a1-f734-5fdb-9937-b9b9aeba4221] +95f8584f69a58cb9d2b4bc1247a82eb0d2f67321 = "c9facd8870144bb37e71e16895fd65a9d6e7ccfd" +bd28abac776ea2417bd2250ae4f5b9bbba882400 = "5a52ba3c89aac682e92c773b18b2a381514bfd6c" + +[46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2] +08ce1324bf06e315420e8ddbbfb6f952dc60dffd = "4841a7929582c08f9fd392addd60885c8e09b792" +3cd55e101088d86b09017d6dbb8623acd3be5956 = "fc91ba8d7df72403b9af443c42738f5e970491fc" +46d14ff80dbf3a1624e702641ff20eb100f9b1fb = "b597104986345477f972d1af23db9d4426c36910" +4f6407d576f3bc8643750c3836d1cbd24137a775 = "24e48eaa6b6fc7c0c295e3b7f3321d8cd80e70ac" +6fd283da2322a4360f4bc5681cefdda40cb1ba52 = "dc52ceb89d569e7626e21a91fe4ff3cf99ccb505" +7d9a7a3538d31337ad4e8453c92b4f1514769890 = "bf18ec17895ee2c4805715218d6c552536a3ac33" +944436225834c76e45e75acd6d4b14dca06ee170 = "516c61128589702a33cac0ab736fb76e4890a3e9" +c249e46838743b7e110c8b0e24c6072eb10d433d = "b24f236776fb4dafbeb9a7ced85a30aaa0f50766" +f29ec67798a423af87a52517d8cde5d66cf81816 = "6e07327ff170ac0a30d59c8fa2a6a4157b7a3a35" + +[4777d015-ed27-555f-9f85-cd11107278d6] +1825dc89fd7d4c82bec4fb7023f8ad67a10df35b = "6437a9e842f6859ae2847cd38edaefa1a1126372" +e486ae849ad15285a08755fefb1a984889f57a1c = "6a94be76e3f57dc41ea51b6b963ba1b6d0bd5e81" +e6292f97241444fa8e30a0362fa082fdd208a86c = "83f5cb7f2702ce731c5e9f986998b5e83cefad85" + +[47aef6b3-ad0c-573a-a1e2-d07658019622] +37b219bd8c2a794dae931a7877b40adeb600286d = "882c821fd8cd835f6c76bf6ab8aa47943bd76742" +5591c3415831fa02d0fad9e2b9f2b989cb717db4 = "926234a5fce9b86e3245767e9ec9733e4df991fb" +97a056ae26656f848aa4f7cde754c3338e90d9e8 = "06e2a6de0d1e22f947fca35de5333338d6400381" +b8036815b5a5e0ee310430a309d870c272cdb506 = "21b36e04c2f7a24ada33a3a302779e10323f76c5" + +[47bf582d-267e-5eba-99a4-ad788df502a8] +0e19e9332515b255ba6ed4bead944a2ecd47f585 = "d4d0808831f208df679b7b6c1d366b873d8f59c8" + +[47d2ed2b-36de-50cf-bf87-49c2cf4b8b91] +f112d08b3b48ce91a880e485b59d322102aa44ea = "6552d02fff9f1c4d76e24e507cce800ca349a002" + +[480116ec-64ea-5dec-baca-db6b11e96e37] +0dfb0914c10bbd8d54fe87c6665289b34efaed5c = "222a0e9e9dae71cba42df4c817a0aac7f5f03292" +12fad944dd723f45f11942d325fbdf996f8e8561 = "9211c4d96d762612bad1b4e6ed9f3e2f8a3b0b5d" +1dc4032b25bc79aeb0111362b15fbf5d6a61c813 = "520e6b43cf3a69d24256f8a6548c707c6e24c4f7" +41cd5c1f2ecb6a038035749960518e5098be83bc = "d6a52503ed3e7a0cbb5410c48f19a69ffb8edc26" +457dcd1cfcbef4b834a3f19eaa1560e74871e124 = "06f5951cb670cb4f25deac190479c017470d1352" +47e9b3729c04b05a3b3c63d99634422925107cda = "29b9944ea865608e3a53c294ce06da9c17f31e8d" +57ffdf647afa0eddb5ae1aaf516fae5f505d5d46 = "44d2f5fe432dee98fc3a219e93e272e71fddbe84" +9df6ad8fe3d9b05382db68d3af375bdfd8edd0b0 = "d3e25d35c80096528c5ac6169a641d1deec0ee15" +b128b8ff503bc12585432f25b76c5a2d11c0a812 = "e542b415f3746e49278d9ef72dda883d9649659b" +bd94a992d40d2e535abe751f9566e28b0cdad07a = "95d2835c59bb73acb7f96de310f2977188029b93" +c1c03553b3c28e48549a7a337128fb2261989b1c = "ff4953ff944e3f3116965d1b8ff842802eb53ea7" +c62deef9e8725f8d73d093f366e574cdc38e499c = "ad5161c3fd8bd437a1e40a5fa467e4c322f1d99b" +d29a46d30ffc13825ebe16f7ffb545fccf345675 = "d2554a2a375edb120f610891bab73b21beb13997" +d2bffcd2877b9337e2656eeaba747624f41e9a96 = "dae2e983a61c86db35de3d29b11b90c7acb8aeaa" +d9a5d49da577ab0f1d1a33c4a8162f90a35f7799 = "f5c19eba743d9bc3a67e48b405578ad2f4727d2a" +e5dc0addfcb33539d72fc1a904b6e5df5188de5b = "f9ecb29e20a21b7f904936cc34d9cf64faf0046a" +ec63f7ab23b1573c921e5569e52f3ed01276e31a = "eba5c02c335542ef3347fac865f6b14436fd3774" +f9d31c313bb399ae422fcf2727f42d4a15f9956f = "8ae2a3e16a3799ba593a4c51e301fc85aa94696c" + +[480c51c8-11cd-5857-ba64-2c3c1abd9c7c] +da7bdba10cc5a5a7d33974dabdf3d5f3cf6a5f10 = "61a38156e106a11b2a1a3040d39bcf78c8160bf1" +db90ea064cc0516d41d798b729564b0764b577ec = "fcd0ab0e264ff20906b4a95afbd128fdb158ddd1" +e278467a0e03aae7daf376042e9486e03a5b326e = "6af64f0ac3532aace5ffc54161576b93615d6e57" +fadbd5583058d11a434deb7f91a0a140f3fbb054 = "ac6015d4f70b7f296ad1fab56dcc43cdfef432d4" + +[48487f09-f8e4-5c49-9452-2a9c2dd48540] +bd110c3b36f5c619de5be7843c31aa657f5ba025 = "834a8803fb7848f01c8099078f7a78fa242db295" + +[484db1fa-5b09-57e4-b4aa-3b3c8d692513] +291a8ecce9533d6eeff3346aeb8af8375928d96d = "6627d3659de18a9a048641cf655a6bee152a9642" + +[4854310b-de5a-5eb6-a2a5-c1dee2bd17f9] +64bc1eed336f9420771d6eabe89c8a75ed90c9b8 = "cdb0244cb4ebe84cb8958284995f80d3ab35730b" + +[48a634ad-e948-5137-8d70-aa71f2a747f4] +1f86e74f321147261f85398e844e1d91640370a7 = "e44e8701978a285e36807d7c9cd4ea842f70a837" +560bc99e40507b1ec9da9c4ae2c5ae682ccc93cd = "face3b62ec8cb6f395b62efa8b8cbc4ec1958183" +96f10fe8a13a52b6bb8f4718dbf91d3ec979acd2 = "589672a70dfd5a5ff9d952f51f82c84b1707c6c8" +b72cad701c5007a417a882f939dfe6bb2616f864 = "4f4ab1de9a8e915ce9c3b6bc0a2f55ce15837b5e" +d4a07e29d37f1f1be3d7ece0cde115178cad588a = "6ec6f00d55e5c1fb18e96146de5cd200705c29cd" +fad696c1f75ba2f9c815a335d71f110815da827a = "55c3b9ab8acf468028983c22f9b8e5df2d407ca1" +fef648e224b04ed4ebe6c47710dcd883fc41ddeb = "4ca8fc4bcab6241a0530ae021144e5e8a292e010" + +[491a7021-2a71-5fe9-8857-4768b8bc34b9] +2d116f3782046c59824bd6d26f1d7acdc4ad758a = "fecb8388b02ae430512a98ac7d61228f3473892b" +4de8f7d71484a7c168fcc2293285bdb2e5aa96ac = "e28d62d89e513f9994017f77c168bef7a624a163" +537522ae9bdb5c47495ec054a9f52e528e7314a6 = "b98e490e55df2dd9b3c551dc0564bd4f2f315dea" +6fe373c613eccec5f939f0a031480fce43b6d58a = "19fb133135f490962ce046b3a04657ddf7ce5fc9" + +[494afd89-becb-516b-aafa-70d2670c0337] +022fe13e4f17184e84da00770e57a2c064d7848c = "0a02497589057ea5cf835241b2e8ed8e73188e1c" +06e211b38cd85cb368aefc299771f377ef36f8e2 = "fb21ac31b1cc89922f9e2c373d325ea94224faf4" +39e2ff935848f95c85817bfd17585563ec344a28 = "67580c0d5c1afe59ba188ac7da47c2538ca1701a" +4d5245b48f72ca0decbc94cbdd98dd3bd41cc672 = "37b210c208f9e67a36f64693bc5c9c357c7e8511" +50c4146314e3b956ff7319f33418f3f2340e66df = "43897076220be33ebd00d9ff4004838f01726381" +50fed5f2668140569cfb1ba02ea3a2bbcfbe83d1 = "d83915b8869ba11b087a06669fe9b9f4f38f9633" +5b3dcecd0c14ad29ef2c22789057a71d115d48c4 = "3c86e04aff163e53a8ff3014f3f48c011dd675aa" +69313b342ea40c8ccf6bfb00809b13caca72101b = "0861bbee3ddca7a296269588329779c07a940209" +7a5a7539d6a2f48b36ad0abacbd1dcc589526d62 = "a8520fa2e41f7482a92f230f440a7944cda06dcb" +9717ab38f263ffc12eeba04d6cc1958559487e5c = "5892d04da5f14c54a7a3011b9654e9525f311946" +a185470b73c0f0ff7ae4fa2d56a74fc58f61dc7e = "fc315657063e133015397f66f68f71e96f5d1b51" +a2661c72eef6a687c54ac4fa1bb93f59616885c3 = "2e64291aac4024c8d81b848420da6a73f847a5d1" +bcf31bba466af91d3394240fb49ca1f7b302803f = "2e3a665d6befad6f56229a5cf399055426c4b5ba" +bd40cf5b0e77132b5e2ad561d901079533d3dc0e = "e737f64744f046c65ad6cd62524182cec042eaf7" +c014e51b84bf1c17fa36000a8cc3564836139642 = "2c8b62ab608a8df90fd0efb7aad0c8f6ad461ede" +c22a74c8be296704b87eda53bbbcd72e5b69d55e = "8e1545a2da41ac0e5d8f5e263110f12d0e8714f3" +c51dc07dd9c6ff89492ca718372bd41f9cf94c38 = "50e820c38483132a4192b041ef3121314c97e7de" +cd8815b28a922d7d89701ea4fdd00ca666be4337 = "3079a16de836a0095d5e01fa5413d50a696cc9c6" +e2618325d1183a2c15d2a365f043e7c680f215d9 = "24c8bc3e453573fb58feb7223f9725e0901d12d3" +f609ee045ad8f47f5da995dc0ebfab24d1da2386 = "c04eefc5b017ab57cfe5265c24c39137255296c3" +f8e31f7afaae5a1dd77948b2c0787116ddd1d4ef = "c49b6cf1466533536064e7f36158c73024cebbd2" + +[496038af-b016-571c-b31e-8262695ac102] +256d697fd31054e797523852f183cbeec3834733 = "ceee2023c392f492f6f7bb4f6f66857a56675ec2" +c6c75ec4d5f24abd3f546c040428e3f9aca7a9df = "77737ff8219022948ea9f90c3c4f7dc853d6695b" +f5531ae4892a55a423ceb29fef3e76877746f1a9 = "ef27b0c87cb6c23dcb45f185a79e66ccf2bbb852" + +[4986ee89-4ee5-5cef-b6b8-e49ba721d7a5] +0e602437de741fc670e638f1693d071569485ccb = "c427c8070c2e87e0804e9349b58f26379702cf27" +1c9bf1c69ae61a3e9b3271a994d749052a3dbc8f = "29c6d6416a2bf48d1a6f0517845b4464cabf4ec1" +444cdf1afc921f78325513396dc794beb1600010 = "346bf5eb81aadf42b8629fa0fe76937f59552714" +4a0aee413109007c984658aa210744e424b0b867 = "02a8f4153bad2bd8082ad9cba9d7cd700f32976e" +4e994b33b35ffcdc52fa703d8e6c51a5b45a87e3 = "3dbf4b6ee9b40606695a74e65f8c394dfde7e221" +5e6a230fe855906967f86b0221e74994904cbf20 = "c1ee7ff9a090c5e80fdc46796d3f7f8436f9288e" +672037455e605854323976a40e57eefbee6cf3d9 = "cec3935c1f577032480cc87072ad584c8867d312" +84b1149152a51e75b2d41474741d927cd606b44d = "769283ec07ee072c5fc8a6f689827b921fa42cc5" +9a0c5d8c8a60405899eef92aa19e1c83807d5b16 = "31957ffc305603a1ef4b9d9d880142235219ab10" +9cab426267b78ae27e5a5ef786b92ffca211b3ef = "848e4b8d75b89af3ba0f17a25d47b58d3e34bf87" +b7f2715f172c27e3b0f531d7886bab779ecf465d = "9d43f9382e80c12137725143cd35e4ef41a53875" +ccf07faf5cdb4990bbf01622ec06648a6b46f99b = "e4a5d3cdf94d058386b82d277314866b6260e83a" +ea1e80e6e07eb3fc801e6afc26cba0d0fde21fb1 = "8177b7b53a8f00994f84c609050825ac49222c42" +f2e1b987220e8bc79ce4500ca872ce732983eaa9 = "bc3c632515ec794a5e4aef68078e03d08fa6181f" + +[49c7015b-b8db-5bc5-841b-fcb31c578176] +465ef50f74506ff457fe0959d1e106a9613b94f7 = "35f9bac8b4b78eee66053f66c622a5bd10dc9555" +4f056e6890f115c1993e4d1067e957ffddb5254c = "a6a9b6f3d552ab35fd9678b7c84c837cb2670e6c" +516c69e5f2e0c8cc2fd5baf12aa2bbb733740454 = "410e673600946382400053b2ac2f970e6ee2a536" +856bdbfa418cfc43035b83b7016975ff0829cddf = "fe8ee1f60d64db22707e6c490d40a4b9fb8ed827" +a91c8bf159d4feec52e3eeb0a60f25de6c3d320e = "dfeb2566248d60597dab7eeed6a7de5ab45c48e1" +ae57d0efd15c0a349092c6cd0195ef67de7ad6d4 = "3ff24f8e7f553050b73b6a55c25da36909bc2b19" +ba69369a64629e594da998a71271932a67f1c459 = "63654b4a76acc7b4cd378d3ffec93badca4f74d7" + +[49dc2e85-a5d0-5ad3-a950-438e2897f1b9] +10056bbfee2a01b814408f5a7e6b1b1234e67c1a = "c377e8842d3e4a4a27151b5b70130a349bccc11d" +2a8a8c6b21d7c2718e00777145388914fa8cfe69 = "913d3bb6dea4078de9d78b29208effc51968c67e" +2ec7168c02fcf37eadef838651372e6e9a197fb1 = "495815f8525e41b0eb9ae2adccc13986a2a284e2" +35eb6eb3e37839581317c0c89bc48b76fb2ad5d7 = "adef0a5e94fcbd5196573422d8853cf450087026" +4548c2204988c0d6551b0a7605ad3f4dee17b702 = "8487ff91052c097184b0981008f49b8d8e5ceda9" +5b18dead931afee5d11a64713f18b94b8f68a1ed = "e893e62b098bb741bdb800ae56aea731f3af9a14" +772313093a9524fcbf9577835d0cff02874ea8ed = "a667bc3ea22efc2da3ce0c65aba27c0134cf1fd2" +8e213b8f0beb9189503e0c6d1ac18fb7218f9059 = "b11525767463554b4a0c38af072e7232eb91fc42" +9ad4294abef6820e9842262af2146291c1a361d5 = "d17ab8687cd2f27045515425911841e292a75d5f" +9dfc02abfab4b74a138cfdc7b6669f58eb885673 = "9f9087ef04f64607f0400a07feea9c32f8e79f1c" +a1a4a8df1415d0a5ef928568ced51e7b62482d52 = "8440d315f040701fdc7f9c6fd16c146c56d9b4b5" +a28ed36957610d6b5db8599345661caf79ac75ac = "ff0ef613fb4525499dcf0d159d45d9e2a6755875" +ae9ab47c48af0b872f16f8c3a2b7f2824401346f = "a4f471ad36c0b58e9926fd05b7fee5f99cc57541" +b71a43ffc9fd58277baca01ccfae1ef7bd768825 = "ba85af20a95e8faabd30b3b9f66eedda927521d3" +d338f4aaa36f7a0c6b4c40933d47f38ec3a47c75 = "fc851049f62887f58f98ec8d32f26cb6206b9bd4" +de7ae8b46594ebc24b65ea075a67ae25d1324925 = "4d3a48af668e52d248d8f7f8a9b6abb1f83462d0" +f42f543794be62f11cdff3a1732f6f69f3e9396c = "9b0d95fa5aa0df1d9dfee428b372ea8ab4f91161" +f7b5556a9ebd0cdde45f15d1b2cde331fe5efdd4 = "2055b8e905cb7d844bda1174e6cf2c361e3d4356" + +[49dea1ee-f6fa-5aa6-9a11-8816cee7d4b9] +099d101dd1577902c4e55f499a857b8cdf23ade0 = "afbd14ed1e072f6c544ffe9ce0c1d001b3c25ce0" +1eb727b1e18e8e4c5d42b7572972a245f1e270e5 = "f0e27591dfd28af9a0a6477b8a98c267311fcd4a" +34306b6a2a421f9f4276f28380a6b66369f0dcb5 = "e61bdb4b88a35e9811961a8c80d4ac3c03297f5a" +37e1c9a59741d791d1678e6767ca5a6a11a284de = "9e7df21f1b3295bc2901af8146241757b8d7df01" +5fa0729cc682d4c8a29ddfc9f45f08eef36e3243 = "cd640bf5fc9e865c52df8e2b0726b7440c34dbad" +724bd8aaffddb3c6e22d4e3a90618207f6a05b47 = "e5837452d5bc2568e56a830e5063780d520e146e" +97268c4764cf4a84b16208628224e36d49a469ec = "664139a906777d77eed4bb038f547ebb05d4868b" +9879d943954398ac4c340b2fff67059e822cf49f = "65156e5baad2f89b04ad76d80d58575f03a98b56" +b88a0748cdbe11a7a53e0645b27f17f68eabaf3a = "77e89762d1b57b7b7cefd109a5a8d7c10c3ebe2e" +bcd4f273316886db498aedce052145ad848c00bb = "ac00211204cbb34ae67625ed427476edc9eaf785" +bfec54cfb314818c87c58d19cf6e85b49b981661 = "d5a0c9c001f1b4d28eb892a9682877bd3aed6eff" +cb6013036365e74c98b70d1e32e8efacc0257c1a = "fc1f147094508702d32fecce5080840f732e0f4a" +d06cc37b8a9e1af2936ff83af7bef4c3321e9e86 = "40a0821b42db541c016fd7bb36988c62aa43a14d" +ed4d932486b2bb5490b15f2fa894eb964459fc48 = "67231410bca6ff812da053e2e8bb209f7937da34" +f20cbb3dfc7c31eb0cce3c3f4b05c53f92c58c32 = "f56bb27b334b7886d091acbd945ed35fdddc0042" +f2f417d069e3f767eb0d66c0f85a965fcb731a45 = "5b8b9fbc08d602f238d099162f61fc6156ae7161" + +[4a05ff16-5f95-55f4-bb53-bb3f467c689a] +0014201d45ffaa6b66ee842a08e57d701be89a8b = "f962040f1478d2e917b46f9033f24184b9f70bc1" +62245fad1b3cfc78fd83e14b5ccc89250d0c2028 = "885a8e052057f1ffb06db2173cf0e578c015c19b" +79fc27c7d4ce88cb4e5ccbe04fa454961a888fe0 = "9d9dee003c2d572577f73e95c0d5ecdf4c02fad9" +8f5268191ecf2d396c9746e507ba49e0a5dc716f = "3d727a7e54de464e783e7b53c7f84279186f8e2a" +cc9fb67a5d0dc1d69b05d5b2b73312c1fa0469d7 = "1342cf31c291f781b925e67b5c87fc0e3d17d346" +dddc094e1ec054f478b065b64d6180aa34182301 = "d77458467733d875400e9ff833fa204d9e5479c4" +e9a455e8bac5f75bddf9f275d2ba817de13f527a = "90725ca95af2c918292b21c95a64f78136f40501" + +[4a446bee-a8a1-53bd-a908-d1601923a297] +ddc7b2714ebe7c02315f406029c75a706517880d = "57af3fb7c17aaf677bd36dd68dc5048f33ef09db" + +[4aceb6fc-b794-5e89-b0ac-b6eba507a4bd] +16d2ffb629fada7be8cf6a589ddfdbc114a919f7 = "f62159bbf3cf579e389b58894ae5e0ff8b7294f3" +2e34ac23fa8dee48892324793e7c514ae53a1361 = "82c0aff31736eb857b2d681c847060a976403c2c" +5e538c212006cddc620a7a0e66c947d404aa9211 = "5edfa8834b662a56e4953362f07b435abec26635" +d75bc10925b7ac1d0a3e2a7bed05f1ea0094d505 = "6b81914b069eb5f52b2bb9d55df178b3291f7192" +f7d17f436dc0b4663c90bf97a0f2128bd27f82c0 = "39fb000ecb68774f0fc5867884b2a83a005f4b31" + +[4ad6d227-cdcc-5a24-88a2-850b583613d7] +365879fa2b63a94a09d42c693604215d87f34f8e = "b41aaa089ceb4a7d25009c2e665905c4afbcf60f" + +[4afe4657-7149-58ef-9a68-bf97da7d889b] +7a4c2ee3bbe099821883beb1b27a38c15b4069f5 = "7bae2519006ef72816e2f8bdec9b77c0051de82d" +a377fda5cc7a638ef70fa0f6d92d6656882c08ec = "d142cf7eb9d96009f7f2d8bdc01d5d1ae1d9da81" + +[4b0a1bd3-4a5d-5152-a79b-f00e95e62c14] +2d511c01d8d2351f963677ed1ed221ffa0857426 = "307b2f44c6903eeaed3b6da7f384f7d182682f4e" + +[4b11ee91-296f-5714-9832-002c20994614] +19bb3cabf99ea12fb311f358a354e5f2db4e4d9f = "b024d00713279c164c931eb1e7f5e005408a2315" +9cf2e4c870fc56349a3393d0cf1d3a97a685f4d9 = "d5964e3a45fe9dc4cdbd351cb5b2e8f7b429f50c" +aa231a83baf53dccf69f181327612b80f8ed4282 = "3a5af009707924ed02e86f539e7ebf4a3ba8ba25" +b617ef61b247cf8c3b659ab24237e4da25a14e6d = "8555295e352f956e4cd23e302972b7aa95a509c8" +f0ccb1213b6cbec35421084d6f6867a42b8d743c = "a7d27dbd6b746acbd229d70e6659dc6c6a464d4a" + +[4b9e565b-77fc-50a5-a571-1244f986bda1] +768ea9c4066c8aaa8539f96756bc5ea9e6673f3b = "f3ec68a3c89bac34a30b205ae2c84332d3ad7df6" +a088d2fc63f99b6a9d324749a980d87243777bcf = "b3f5707718423a6230774e2c138422142773fad3" + +[4bab44a2-5ff2-5a6b-8e10-825fb9ac126a] +1b0daf52e1ffff8186a426105c575c519535e608 = "176b3ca8171621ba1793e92f591c8416e4c80a2e" +2657497adf7038279f92761e232e0553213d77ff = "14773a628ef13ed9b90acc9a5c05ba889a320f39" +2e953efc3340235e755809a9508d48cf3c3e2a06 = "922e0f886411585c81963d0857788fe649939423" +6ecc90676fd29c9b6f4656a89aa429705bc11849 = "44efd0cb4a62d901dc9cc06994a7ca3d39c7b54c" +a3f81af5d137d38b6e72893783c68412de95ed49 = "f3f1a79beec66dfb690caf5ffd3b502e032e5e33" +a8e32c6055a0f1b7ff0e378a01f73b4ceb5c7d29 = "87fc8e83a9b45e5b1b32ae0df0dce74ddb72332f" +b9e17be3c97b5b93cabee54a757cf0c8ad24b80f = "09214ff4b6707639242657e697cf36bf1cdd7c06" +c657a7cf45a05eb0945c0dc1d4b80e737793f908 = "98c4bb497190186a6c9f3d52fb07ea168bf979cb" +cd240a9edfb9aabb913a9461015c14b21f710a3e = "98387b55be980a21698ef40154024944d8d824da" +db2ca07bbe5a58c33853057e871a4c9f571ef4c2 = "230b1a91f24bee477ba5becc3a26ef83682a1d75" +dc4f5d7679f85eade12b8d8ca08beb9383024499 = "4640dfdb3e93f82f5c381565e2007d76b61f06ec" + +[4c0c90bd-38f7-5fa4-a4e7-860b1bef477d] +3e642a54e332fe38c36e06cd163bc0b1625d1c00 = "3b7a18fc313fa7f72d3ee4cd489db563d64cbf9b" +6afeee9c23c5be2b41d909476869c55e6221a3f0 = "65095365529ba3257d091b3c6beb8049085fff05" + +[4c0ca9eb-093a-5379-98c5-f87ac0bbbf44] +0e2c7cccb2afabafa4670290b01b779e0e5f4d08 = "b79e0e912c02c695955c49bf69ebb711e07d0162" +1b08531d694b42e55daa68c340ce1f509f2e4ccb = "c0874633b09f2adf6cc5560301fadf88c31e6263" +212591fafb8b52a44169ba2d87eec44aea29f570 = "be8093009b4164e863adf26aeb239dbdaf1de075" +26ec976a55a7de6764abce43800b593bdd9ba16c = "433cac6dddabfac6a547b28b851716babb0018cf" +2b38cdf7e6ce92a5bf3e0baa2bf5e97bf1017091 = "f677fd85efc6c790153cb673e9b4983aad6b526a" +36746a4a7e76771f33781e6452ce1a803d982e0a = "6c5d4570991e25a51b43428e42ebba5125d66ca5" +3f1cffd816759faf5937671b0bea2ef6eb2622ad = "a9bfc14ef4ab454a7fbf32f464fac2a568aff427" +40f7442dea20919c5a7b137594fb6d7636fa2329 = "e6b96fa29675e73a524044f8f64f3a25a39c317d" +4641e33ea02982f5709c739bc38e71955cac8079 = "7410ab9a71ad520b5b939e360fae1df0040cefeb" +49f0cc2fb2225d91f96abe0467cfba1ec87dfc6a = "3fbd882898a49f4ca39e8b6569ad3311c1efff3a" +4d2ac57c3c85bf91a04a27967987fc987c5971b4 = "575e66964894b64f6b0bdfded8ba3ec6b1d5361b" +4f6fd22f2d8f87b53edddc683b489bca60f06760 = "c7a1d597739801d50b2ab0823d804b0edaa2422a" +51d0a52ab6c865f53b0dc0196b11e39450df3ef8 = "bf992eb156c63ea8b5ddedee3bafe43b3c8feb14" +5d12682c9ffa75f7ff5e24d352643e61d9ce10ba = "58d766e5a804b6276f283366ca9f5a99c53bb550" +5e3338caaf01b2746291a29b46057bca30e6b39d = "6b9e0211a2e81e36a62a30c7064d86b588c24d1a" +6298bd465922289ab3f3586143b47e58eedd44c7 = "4f4a1c54733d8166f497b977bdd59d2c5114519c" +64caf82d735a69b8f54da8ad24ed4d0cd9b4e69c = "d6ab6b753e95ddf2755bf8614326eed96c6bf07c" +6930794982eda7d7d6794410741af7ac6bcbf867 = "4ebef4b7279ddfe296e0884a0d21067d6d8686cd" +6b596cc9291525456ec3b599cb208c6270f47d80 = "2fe42a85431b8dedd6425de995325bc2456b402c" +6d4d4bb15f6fead3f152604b112f7047e192b5e3 = "c94ffd62a6f91c604e9d8c222b31fe04b5be84cb" +7d7ff7459b427b9ebc867be911e5332360e2cb57 = "42dd85d4af435192770e5745932da15f9c1c3ce3" +86c391eed8bf0591ee636c2f77e6465be1b9b995 = "352093ffaed893ebf69654549dcb014d98650e90" +86cd5a028234a059801e0c5c4be4f2520d466b04 = "c66623c57cafc3d83c84108e9be8d0df5da91a89" +8c5f3eb2253b9f006a81caacd94bb452d2e27695 = "baee8307b088a3cd95962b27400e304c40f16990" +9692314cd8fcab4aea9c03292ff23103f3da0f39 = "1cf0c04c992f548a55954a93c94f47b64acf9063" +99a53d598c6c405e1b9420992e442f5fb79ff50b = "ba1830d333cc16f63130f543a414d5382fd27cf3" +a087f0b339852c56fd3083050db54a646d688e2b = "eb9fc61332bcd1b45971282179abba913a326874" +ab11a215cbb2381c3387f93bf07e47e7f89c9eb4 = "b66cc7edfdc8ea52dfce3f46cf0ebda98b71e981" +ac7782caaa9f9193edc8b45e25f653476f0ff9cb = "a9d0438ab09a92b6be691d64c0e9e0eb4197cd4f" +ad19bcf59b7ee81ac003538a402708c78acaf3ec = "b87498db1feca0c7e8e0c09896e97e0e488954f5" +b270ee9b21f7540f4187c9ac95e4f07b0306d409 = "3b7ecbc36d0ba1c30311a3e4ee9dc18fb61914f7" +b9bbe78b5c60935d7182095184a3fb16591fc114 = "47e656d2ea2d3b36b99e616c1845d16667bb6eb8" +c8cb239718855ea0f4f881cc3f17f7f43ed111f7 = "cfdb173d5be5e11f6dd2ddb3a12e8755642a7dcf" +ce46612a9a3328a2b8e35d8d25f06bc70b4b12bf = "0c1bad880fae34fa88ffb3843a5dfdbc587619be" +ceb861c5912701fcd571bae9bec17aa9792e4c59 = "a0ffe4fa4304f20c83ad3d8fc2038decfea29321" +d5b0cd744383d476ea2e5e6a17ddf9cff8ec953d = "7b86b3923c67799765a429e6d144b188567b1685" +d9e45a00831289dac9b8a7049f7f506bbc166dbf = "1c9195d3926bed2fbf807765fd335ee8451aef27" +ec02bede8cbc74a89363041ed352894b81306973 = "5308d968ea450f97d52082504e640babe95a6118" +f3747c04d7a3503bd9e70d5f7ef230fd1d56b865 = "affe1b545ef36648f4f704c443750749585eec2a" +f76e2327d6251f3e5570c84e887d0f0cecef2947 = "25a09a5a135de7805bc855305eb10b2742fff6a1" +fd68c156d79523899b5ef00d1d6a666634d7504c = "f05458187782aedfb6b499bc8b256f5fbb084b10" + +[4c47b132-0681-5a5d-b498-3afcf53fd314] +0e97e4664f1f49c13c04a404dbf6f5911311d254 = "04a19812010db1f9bf87084c2e7cc6e4e4635a75" +2aed689cf86bdcef2eabe1402c8b5937f8264281 = "d759f09f891ff7537681473b4d891499ef94d626" +2b38d78ec24e1adda6599c84fb4df1730443450b = "e96e4ad917ff85349509dc916a7fcca2d30df0be" +71e45a4a8fd3c8bf1867ba9afb5cfce71fe9b046 = "a74a958f6895e65865423ca603dcc9bd6c1842dc" +85eb331bec3d349ff4e147f3c1e649475b79bd80 = "0404b48bd87a305201281eae5965417034ad5856" +92e56083efbe2789199a863f05a1f5fa3fece1fd = "7a47c0a6598dc9c01d7507e8e9c0ce070611576f" +94b20ed71931418ac7edad12019d30c3c8c43d4b = "c4343d8cc3352ba2fe4f4e7bdcd7f7d744ece290" +bb98191a2b24794f8de417a6b40022a9eb265ea8 = "38c2b34070d94c83fdebbb86aae439b4d6aca5ba" +de8ec3772ce39d28fe2fe11dcc6e4ca6ea573947 = "df0ae2aae6d34fab39d0fac47ba37dad64759013" +e508085a2339cb272652d3cf35e693d7db9d0666 = "c318f84f7c4fb5d3e2ef589aa26fec0c322e8d73" +f622c416daf285f12e0aa16ae0cf54af5a885c0d = "21d7855cffdb57ac7a266ad522badd7629645884" + +[4c63d2b9-4356-54db-8cca-17b64c39e42c] +03bcdf39d241c05a1165efc892a507dacf2276d0 = "84b7bf5ef0b6dab38cc1169ff5d99ec87e05aa5c" +3db430d439e72f3e2580a0c818b4aaeff803eae2 = "98730730887497491c2e62eb20fd21856226ff74" +4b83f9e88e5a6bd4c8a251ab7f15d8a01fe56e5e = "92ab8aea9a6926136e27afd38fa5bfe594db9686" +5de325f64b4528273310cdcf5532d994c1aa5067 = "c30ca040a01b0d5b3ac8a8c252be68016ae61efb" +69e3522c6f3901750754ad0dc5e7837d02253f0a = "bad3e96345c7d11ee77f5ef7f347fd37ce230a95" +723edaa163c95fc78c8d0b520150a91139acf434 = "3a1c81399670dd69d621a0e5b8cd45c716fc3dc9" +7aa5b33088bed36eed311f9f40ff60c1e15f5352 = "fdf621112d58adf8a050c6febfeea839084f6137" +85b769cef7d0e3ba829be84d42e0d78ad6a10282 = "2b0a7681f8a33ba301b2b51f84d0ff68873928fb" +977722fb29361842ab668f75bc874104e37d1608 = "b9e37ca4da83eed8ac75afe1beae46dc1f8cd062" +b8e379c6a67744b9fbcbbb11fecb2c1116767241 = "fe99fe7c8bf2ab8e1cc55b263a0ae1534634dcc3" +cb17da6260af5f6948a504d8c650c8ed3c7f71ce = "9c1da059055b8a93cc592c6fb4038f760959d2a7" +ccd5e2692e79728da1124b3641b4f143f92db491 = "9dd620eaea59c664f2371a5f898272c523573d01" +d64d64ace747caecffbcc5fe0920db5ce90e7ecd = "a0e6194945b80776a7efd3eb28bd82b99785c54f" +d6b3e8c9aadbbc96014e29abec2ac0909369c30c = "117f544b49f14115701baa7fb1d9ccedb549d90b" +d6edd545c7c57b4ae149ba5c814f153d795ec108 = "45e4355229c938fcbf8b5d4c35203d7b16bc94a0" + +[4c8104a3-dd10-56ac-8d5f-2af7ade365f0] +01af6a930dec2518256dc051df51a23d7fa36efc = "17e293fbbdcf5a994c15a001254a23af37f97ca9" +acdb375d5b5d2e13ed5e01de490ac9360a112371 = "9a03689f33351de6a880a25abf62eb62bd9014ec" +cd0c0399ceb11c3e6ab905852556856b4a724489 = "1f7da4a6e2fc73b808f31bcab5bf604aa982f382" + +[4ccfa06b-4be2-56f5-9ddb-d0d9d9a8678c] +050d8a975954211691ef35b097a0b91fdca72b33 = "0d9cd772b93cbbb1acf5b5e38240d73dc751917e" +687f8b6ffe3245c00d96dd96b21e4fb9186a76dc = "0f7326cca5213422654df6d567a9ff99ce43f279" +7193aee50a888d8d728f3bc3f15ab7b37328a309 = "e48566aef2a44a38f84b29666e32ccaca92e77c4" +99db79a66de8aad83f5ff31c7615071692b05649 = "3d77878735a9bb711509b61a94abd0c9d68efd55" +a2f02948619688c69b64bc07bafe1d97a269dd0d = "e5762791cbeed2943a9e84de696f14760096af6a" +b84a00fcae9a4482bde6ff912de1c94d44c2d886 = "ff3b7627806ae78fc0ef106be61ddfd92ea0ae43" +c55da9ea0171e52d1582fdffda8107f338033c72 = "5bb8a0da0e654a2936c4e0896fb28c2221ad50b8" +cdee4806ab9bdb86870aab3a51a14e7d9ba83292 = "9e8b6357682e0b1e25f59aad83d6e7652775b956" + +[4cd9e25d-7d31-56af-a12e-9449bc3c16f8] +5b994939e1bde4a8fa77b3bcd4d54dc55d5c8495 = "84f3dce993834509b42ae222548f09433f8bd6d0" +b62a064582862f9479d1bd6fd60b8f40cd618967 = "a2f37b5dcf3785a4138d464bb33270dfb9d664ba" +dcbf6f8653f4daf536dd14fcce931e4ea643b730 = "be4f130d98e505fedb7f98197e514e268e40cbd4" + +[4cefb923-2b6f-58c4-9e65-6821f26b7b51] +240d584662196e397f7ded92e782e6ae931a4842 = "29ee22f924eacf5f8652dc97c0f7336058aac319" +37449a9135f5047534865ac57010005c76d6ef26 = "87b05b6a827021743b3565aaa36488a8fbef188f" + +[4d00f742-c7ba-57c2-abde-4428a4b178cb] +0e168911638335a06d8e876fc75eb89ff58a0d90 = "028c9033bc666f85210d1029b90a18e3f4b72cc3" +1075b6047cca8132253d6a36bb10dca26e90b525 = "cb933031c1e4b3e283264b57208c420c5c2d4c54" +26e3ad6fb710a46746c04eefe82ee28d677d2c64 = "3fa55e09b14b6f6b46bbddc0e89be5de33032055" +2df57243de3c8b702d97ec8ee6c062a3a2a76b8c = "f7c7185f076e1514ae8701a01c1da2859cd5dea3" +40486bfd04e824a2509c99a3a1ed52c42f641b06 = "c2b860008693150319ba7878e8f9110699ee7073" +423d1cbffbca4b516dda70490ae3569405a0677c = "12cd7bcf0882cc8f9bef2015e2d0114a74811564" +5e359abd18da947606233cbb0e36257ce4f854e9 = "816ad0c2d8e47a3710ba112d1caf4bf700c48432" +63a4a604fe982ddd503602e1b4386c9f9b97312a = "00fd86de05e20e28fadca00e2afdbf3d53b4aba5" +672a3736e2ae31f79d0b2a584f7a3ec16d3d9f30 = "72944b90e2aba505411e415a49cac858138b6801" +7b7bc81d8ad8fb28d1fa29200e9441ead88b7c8d = "8d3b7563bf3b865b61da608b0d79c3dd1aaf4f52" +81dbd66f0ab8935a99ee2c82bfc885610b310cf6 = "82d09c9babdd5820cb7e7357ff003b89560d3221" +932bbb7c643dc7e008e924fc7b27902a85718804 = "f0a7ad10c63c010804b25796f1032d196e763fc9" +96daf9e2e8ead2f8aa85237b7e4e3083a5429908 = "65116a8c95ca97d20a04bf6ae5cc12214392286e" +b2825cadefb5ec761e99122543123319678c9cb7 = "8991ebb62fb3abb1a84310e2600591cb7995596e" +be100d49933a6d343b1165db0afed2d99273b4e3 = "5fd128436a1991f68b907e8ad702e681108466ef" +bfa87907652efe791d8be2449d4379e6f4b68e3b = "e3aa6936baf7b7240c77105a8640261dcb464e66" +cf1cca1b5f3f726d0c6780e820a0666e9fb0108e = "2a05a2457e32e70fda3fd8629a30c53455eddf93" +e978cfaa8f4c6aab4110d4510db572958268be81 = "e6962b05d1c0a322103c15e43f627b289fafe173" +f058f27922b6ce633dd0eaafa5e96e4e136198ee = "bbc458dbfb18a5b7e2d471ad01fc553545161d5a" + +[4d0d745f-9d9a-592e-8d18-1ad8a0f42b92] +3c4c01a2967ad7bbd5d42213c9f425c603e4d329 = "1e3597950ced86a712af2dfda6af4ed803807176" +475fcb08a5b8fc9e0ee8f6d465fa2c970d67ba60 = "71bf55d4ec364c173a8ff6e3eb7171350ab6cd38" +76e3dbe7dfc05f19c1cb16fb64046c6ee9720d54 = "9c16ead3c0a32e06c8c26aa1755e2f51411745f8" +a2c84be2042dc1c95d3f76b348dda972e79c014e = "3b84953d13665334ea610829bcab831ff23b59e9" +b8d3dfb803628a63ed4e22440300ee4aaeb52d19 = "4651732ee8c5ec1edf3dfc39d6e7c949f2d93427" +c3901214f3108426e345ccbf73777311cc992ece = "8c0f59f44ef930fcccc54cb153ae38ba13f8311c" +fecd63141d328f607763f90d7fc9308a29eac803 = "da23022daf0af1169c448e44c853949eecd01ad9" + +[4d1e1d77-625e-5b40-9113-a560ec7a8ecd] +3ff61d47aa3355f0f64d1a027631160e422da903 = "05176cebbb49ab979006b0bd12008c3f9a54f60c" +7f96abcb886355d10b462d489eb8aefe839620ff = "801e59011bd9e5246c04c390f58433b901023c8f" +df85b1fca3c5e96f6f43bd7751d85f6fcf0eb562 = "6c3e1715840215a0bf6b6765b5bcf40c50baf1c3" + +[4d2f22df-77d7-5622-8d7f-1db4ec2bcc3a] +278d15c1e8dd1f4ff95de9e8c2c4967bd16a98ef = "d6f7206f8e9f4704c42c80873f4faf13620a054b" +28859be0e57b8dbd8626f3fc66d2e84eef3ee9bd = "1b32758cf44939535661093b0e603dcded7c371f" +28e7a89504dce5a635eb9bcf7166607ca91f6e98 = "328ba0e2899b90e5c7095deee7ab47583ac13758" +b12805cb15db2b61951b67b9128bab3d7fde400b = "0e6a522e1bd380535669bda475a6bc82931fbafd" +ff6b381e4a2542555286ea41460f0633745b8c9e = "361e1bff5d9b710c7ce892f7778ce7bc154071bd" + +[4d4711f2-db25-561a-b6b3-d35e7d4047d3] +21dc549844598f6d71c5eed4e4b7ca6f379df678 = "44e764d2029eee1a31e0e6813a6b90a7707a050c" +44ec58951ff22f7b3861849c701ad605e5796666 = "03a0bd1750648b28b37502c1a3be6ea61706d318" +79dd601afbd2717a92e37524a57e8ea2050bb64c = "94b20cba8a03920b992359ab4f0ef4aa0e661e79" + +[4d4a7207-8c2e-595d-b6a1-0355eeb1e38c] +514de3a0edb41245ddc4ceda3e3aef47a3156cf3 = "456d4de88a662a9f71c74e03e7fc36478badb007" +5d1a449e42618aada195f8482d32cf1978651944 = "8b875935b3688dc772b2c32a14163acd9897134d" +93e4042c8aa2e3f2ddbf7b78c939fc51989d0d6e = "5842db924287ff3afde81ac4b1e2f3fbe4d93585" +b10ca95f13c109538abe52486353651d08819b2e = "2581a3e21bb1e01a23abdab2e3d54d751eb284ce" +e228e09a444f87308ef308e19c48caf6df0d22ae = "3bb4bf3f54f0d7f8fac3536df6430967f087f382" + +[4e197955-816a-5ef8-9ecd-699b0ea6e4bb] +0b69783d33e28591e9207975ecf4b05f2a72f165 = "460d794c1af9b1465db34c4cded42156bcfe0b02" +12eea72b414fc36558674f7c08783b189620420f = "1a0b5b295cdef607509e440c2c84952bd0da46ba" +42400b262bd0ea23f878ba2a930a51d4fa82abdd = "bf706317ee997ccb41bc6693ec794b7b404258de" +597c494dfc2acae7851a0b57ae4a169e6225191f = "fa8bd8a7cdf44bc5d4a3e70d18bfdcaada835779" +612d0f8574e52c2a2f0caab7bf5ecd4c848ef79e = "d3a81cbe21d206fa05a7e25d28fdd37a263d7800" +7a1775cd096763508b001a2bae02e58e9372f694 = "8ae794b803fe7e2c484ad0917641de8cc23fdc90" +8d222535eb00ab56a0432edc0b478aac35f5b915 = "8f0a0cf2f40815444d3fc8613fe08559d2490f18" +9a191d3275b24b041b8e53de97cd40b65b82b9cc = "2f1ea06c8cdfaad3001d64f7f969d0ccda5a57a9" +b3c37ee75f5ff043ff5eb36128ad57cdfeb500f7 = "f83bc7018b311d4cfdc63d1d7f4bc9b618472c1b" +c333ef8fac71b0f732d3d0a4d06f76ed2eae9f44 = "8f0dbd722f6f54d08aa38f13cae20c26b9a6ba87" +c83c9f63faa406f2d6b5d90793fa836a89c3a682 = "c86b0eb42835844d5777add4aef520960a1d24b4" +d150ee427a949f216a0c58c33de620d3bc8f18b0 = "5134b1a4a30e9560bbd197b2f1753ef1f2cd0c83" +ed922a2dc22c6242c846061b4a3338422e893ab4 = "5209c28c02b4cdcd09ad6e861a1ef5de9ad36ea8" + +[4e8a8231-0ba9-591b-8620-81c6740d7791] +519ec60796c011508faabda4c7fbb5aaf9f4b302 = "05ec94e8174285dc32a9a9f4e892ba647e617374" +89681a6481e9d0acea87d4e323b0781eb7b790c8 = "7bc05fcc04bda58c106fab95939e1982a08b0374" +c12ff7cd83f99bdaffc589773899ea72f56e50f5 = "43d04a16d6b7a149daf72e8480b42f27b13910b4" + +[4ef67f76-e0de-5105-ac01-03b6482fb4f8] +1c3176503a3cc8f4801cb802be5534f08f5ca5db = "e36669034d5b86fa5831695e999e2c8634359f50" +69f0b40d2bc2e9af27254bfbeb758fbd6ff45cd8 = "3ba1b7b26219776fc0b1325ba055e3c5c111ab67" +77f9d2ad4b7ed0523082bbbc1432157f65f10238 = "75433685cc3b3f8f7dff5fb70ee84c7300fa30ed" +81aabf2f35f894e900aae13eeb176b33d530d77a = "484cb217e0d693cad55799f20dc09155239c9e7e" + +[4f18b42c-503e-5345-9536-bb0f25fc7038] +01da669ad06bec09a1b40b2863ced40a4d60f3c4 = "84cd5eb38653b340cb5ac008ae83d9978d6bca8f" +0b317e971570a7c50eeac61d0d618a121af661ee = "f9e80b1801b67e743f5e38a8bfa4deb0e757abda" +270522af681f7e13fbe87f2809f79bb089ad01a7 = "2032e2121faa676c0f4d2edf877383e0a3dcd91e" +5704fc057743a9a6ad3a7131281d49271d0eaf64 = "e23b8d5ac6a167e7607c6b460ddd73ebd58fa56b" +58f9720e7e2e6fdb472e235b6a8bfd2329c58dd1 = "53d77f7fdb23e6ac7ccfdd91b100ee7e864e8eff" +61ebc4f2c98e2590f902082bff7f54502601da0d = "f1def51134434cab68c0726d6c9a63a034972991" +63a7aefb703245c8f655389585ada85ab63da052 = "26ed4c7c29353bcb7c570c84a4d8421cb18de5b2" +6ad95a41b6bb6988e9e470244d5d57fa80226ced = "9aa1620707c0076b6c7ded5a4ba500248c82369e" +724889daf0e84aac34748795a22b15c7714cda9c = "78623f3a2879b8abaa0a041d0ef743d8e1ed13b0" +86f2d3a22c94767ec9b1a61017e358403c6404cd = "7878aaa18b35abb7dd89419aab2f72be5b30484d" +918759d10f5431446246c13e7b36cdb6247c74fd = "045da2237138beac8447b6e278c9c6e40f683a94" +937b7d5062be44cabb24ed85a87bde7436793230 = "7ffabb34e5c8539338a59111f38986fd419d618d" +943bd542c18444f3ed0bb9476a09604e397b2dca = "898f1c1eb9b4407886fca99b5d7aad81cef9e6c8" +9e4360d489844a48832ece54c053c08b13cc68cd = "48b134dffde6f54d2576b4587bc5ce19efbe1acf" +a96e5d711044d3c70956a063db59607b040cc741 = "8c53d352576900007a830edc6adf2759d2c0a3bf" +c2bc14c7bf8091307d3c2ab63d110880cafba2fc = "fa51fc5607be8ccc364fce37c394895ef2190b89" +c6703ab8ca3bb82c6a7f34cd6f262d49ac525b2b = "2313cde6b1edbc205bd1b5f508b42cddf6f827ec" +cccf4679e0c667f52b61fcdbee2c8d450e5895c0 = "380193c2789504eb03e7ff3b507a49fdeff593bd" +cd26c89eb8fe90523894eb2f5ce5e9d4cdd88760 = "a9ef6837f3e6a28611523f9285183237ac17b9cb" +d3bf8c405d7c114791c03182bcfbbc8ba68b7f98 = "d031cc138cb54bb56cf5b5e4295846438821ae55" +d6070e3678ed649970377250c11f4c6f1e736dca = "66cfbb2d828ae718718e055edd28f2bedbc4073a" +e7490ea865f2e97d9665fb052ceb721a31249e47 = "4a3b6e87fc28f73f2bdcfcc95a7c7b65cb3ada0f" +f8f85181dc96ab414efc8b97f9d73831d555f9fb = "71dcbb58e97005071c9767b9326324ada2487a36" + +[4f1ea46c-232b-54a6-9b17-cc2d0f3e6598] +0302c87c850e83fbea9e4d8fa8490d3c46701d9a = "4e0b7d0ad5bf2197d7f5d77d5c69453802e38ec5" +0bf97c66fd78270fa431337b45f03c70bac7d1f5 = "5492229a8dd1604deb22a301fd4950f191fb73a4" +0e3486694c67631136abab9a9001f85771fe546c = "da9c9fb2f61130f28a8ced9df25e9bd065efa7fd" +10c7bbb53cf7babcdebb35a78385effcfc5c280c = "c72ca07110cee14cb1a4db2a6374baa469be126b" +1ab6d6dcefd6a66a62ec16221f25cb5946cb05d0 = "2928136b4fae863b030e681c14340bd2aba3fd9f" +37e038615531670fc23c3dd4ca7047c87025c9aa = "c9b837df0f092934ded03c0dfc1a013b23474bb2" +58cc2a156b93e562f86ced300982adc14a0ebfc3 = "ac160531507638440dde8f9a03a74f6748ad78a4" +5938252aa70cbe39e338346899389efac326c536 = "28cc98e75036ed55067302dd91bd6749c7b304d5" +604c2290c25d71c1d5c5d3a522ab66579c85a9ad = "42a03c08a89861338d63c498a5e562b8d9259050" +68ffd8a211d35d7fc0dea676cd05a2952bd414e4 = "bf6c00f2dbcdaabad39680270e37b5c8f4873cf1" +78d8052a9d511cdbe5948bb6e1ca1cd573cf31b8 = "25cb79ef5f5d56086977c6ac8b1acea1496cd01c" +7ddf9559e30b355c0d85fc51cacf4a0326e59384 = "b6f5ece60b7a2cb36a3b8a8937842eb5ac391f38" +84ad66140ca6ca34e38fbb8dc23669169793d830 = "cce553166aa03d79f340a5bec802cab4b869bd90" +8b00f411ff26689ada6ee32af69d90abdac7bcc9 = "861e16b2a2f598096c6e3f1a70ac0d35c8439640" +8f74d6fb6a202a60e09b35ee223ff07754aa5602 = "a7ccf98483b1dafeb281bb5c18089123ce555b12" +9330a7b5131dde536ff6645f25822dd552c2c398 = "99e623ee63a128669ed2a98871e288d926e2aa4f" +9466ee0ef4b6c73c782eee26942c8aff8017c5e4 = "b9d77fbc93115afb99dc867e032a5eaacdc66c36" +9caaa4f0d7144824e67d7bb340657ba9faa44031 = "67d1d16004fa40021bff9e242758ddb15d5688d9" +ab2a737ba2bac343fc5c5c04f708200a6168110b = "6d8d6fb652b7316fb55476fdc9fa7c57ab05921d" +afcd9807717d667850730affba215f73edc0f159 = "c91c71cfdeee26d71078dcbbcc7dfb9246020f92" +b1e88217dbdbae0f9ba68ef17c0b514a5d15c1a1 = "1bba8656dc77df438d36cc5a3956619d2c63858b" +b7438b8ae62a6b2329cc1ad0093d959618fe849d = "261c136afaae501aeb72e96ccbb77137b1bc5df1" +be6551cdf6af85799143958aab9e227a4e33f5c3 = "91df286387ec4a0fd4f1dd81489e761060ec4413" +cbe91fdd4433eafd8f2fb052e5b07ce8e9e9dd0d = "dec0b539f4eb51445f2f7a18dca9d4deb59c8003" +df1216674082eeecd2a511599820c924f5c7ca3d = "9ec8c68037dc0b2a829bdd7169c235c56f206bda" +f1c400b847a2c507611d441eacaa50a31bd13bbb = "edeba93f2c87d1eb580b3d5df1e60fb25acea268" + +[4f449596-a032-5618-b826-5a251cb6dc11] +090ebcceb9a2ea0ecb0063497cd7f65328a6083f = "1be7988a22cac02adc0bfeb6fd5cb23af05b26af" +5716410758b731acb3b79ab9b53173a7d838f1db = "5a5bb0218410b5203139eb63e18334aa3fc0077d" + +[4f4ee721-4970-5af2-8560-6c1d960e3231] +08603ab624007950b3458c490474b3300d8dd261 = "97704e449aef7e423743e214774faee8997c7bb9" +1464e29ba7713872a15f93c0ea5b0fff2ebf34cb = "0d1ac7ee5284ab17bffd8be0804bd2003d68c0c5" +499bc5a3d0f66cad82976d14235498252aef5b14 = "295c7c255b12f62974b5eb5d445183a473990d76" +7cd3c9b9ab7be4a959ebb99db63ca47968c938a0 = "cee5840d4fc9e5cda1412a014b795095346ff7e0" +89c2133ae68ebf6153bbe4dbfb5c686fc36ef302 = "13133c974e06ef6ec876809d9e060574c1465813" +9d5b4299dd1a016a3ce1b82e6bac00acb351a510 = "dd8917611a66f3cf4cb11e038be9faad3a32812d" +e6e33e67535528c25e54f791e5638d155e17043a = "4727340ad005d1ab6c7703dd04f78ae2606c09c7" +f4a5df9e4b7aed00ef99296a03ab5ba82f1724bf = "35c3e2af6c8a1711902f920278fec006fb40ef97" + +[4f61f5a4-77b1-5117-aa51-3ab5ef4ef0cd] +7fd168b6f1690df986f7fff180fc82d9769ab8c1 = "ffb46a540b0ba11be4a9bd0c94552f53c3355480" +e43d7c7c59d7fe03020dfae036d886ead44694d0 = "808d260bb3295052b344f90bc44a70efc249b251" +f12b9d8665de640c859df3141ee59cad2773f0be = "70b140bd042b0f1b01df2f73c9513d75b2f8c297" + +[4f6c22ed-8407-5d7c-965b-da23e1d23af6] +fbe85e38fbd351ef6999746bfdf37868e8ed8309 = "d012bc7420723494c74a15deb2fe0d1724980830" + +[4f8c86c6-9e40-5506-9807-98571cb48bc8] +0ae1fe1869afcb6db01c98b7829f1cfdbba7232a = "cc0c31d5925fa1b4457e1fef0f637091cef9ff62" +0f27277c71bdf02e451193aab0bf2e76ffeed431 = "0e011fc9fc522815e182443346e050d5541570e8" +11186425c15b95711303463da48184578d99e8a8 = "ddba1e795549ceb4f295dd254c43bccfdd98f454" +2756d6f24483814912d689feb986a66b51837ac1 = "7acfc3ca4e33577c6277bad5919e8760ca15940d" +3fd3ce089b113e6dda09c96a64699d43d544afde = "e79bdd2f70208b4d41a25119b776f399d231da94" +4c301509fa73620e006ed34c82b16ce12b55f2b5 = "bcc2057784568301a3cf6e6bee4c65cf42affbbc" +4c80ac26b9a24fb3c4992f6ff1795abdd689dad3 = "9dc0ea30b7913022dfcfcebab70d1428bc29b439" +5aa7ef57050a6eed8bd1cbf71213b7417251534c = "787a1eca728874d8701ac573f843d9fdaf18bccc" +6780a0c0007df6ff7271c54eb441697d2a985da6 = "f6da20249252cdcceddb17b99267f48f9608117d" +723ff233ea9fab69d09f8fa41c123b08455a4848 = "cacb1bc9749552dff624d373fed9d3a8fab7586e" +99e725058123913a1ad86a8a7d4ef23193492da5 = "4014bf42085efdd342e9d99b742a6bf98e5ed637" +a9f6cfdd15367eb074e81881e8117ab7feb1e3bc = "e0a0f8de2ed437cde13332202101ae5c4e312151" +baea8cee53e8cba378d580bb1d8c94d895dfef05 = "699b2d1db2bfb6d72e4b1de7340765c4b47b527a" +bf0a9511688647354fd10848c10abcc3c8fc72b3 = "eb369cfb27f7064b867f7a689b8af01344c9a9d6" +e4ceb82b9ae3434d78182fddaff0559a6850e6dd = "e8b6bf603512d23ab3f4a21780251f05841d88ca" +e4e89089ad98c3c7161cf2e029aa68db5f89e911 = "a311523839dbee54cf0b7c795a0ca37ccddd2cc5" +ee14965a84d8f4442ad3e57ac478a6f27dbeefea = "ae8c6bd6ac07fc4301d72412aff11b53dc5e69f0" +fcdb4cef4d5da3fa0d17fd236f0f93ccf7ba72b2 = "151df5bffcd3f2d4d45fac2a41c3139357b6caed" + +[505f98c9-085e-5b2c-8e89-488be7bf1f34] +23f2478a16e9eadb719b321c64d400ece27082d0 = "da294f16aa16ead07ff16efb3eb9b19ca44ae5a3" +6dff2de5a0d8af0970361c12349b408d49967be6 = "7e71159a75b2c1afa9e88fda737391778a7ad414" +7a56d46fee2f874ad7cf3ac4b91d556266215eda = "36150d402ad25d0d9bbeea94f12631b4ef29c808" +a2861bbd8d5731b15853becce55a419ad91e890d = "b1f8f325063879f1419b31f12dd0b1a7530db3fd" +a4cc6158f3fb7161e43988f793d871c9746258df = "4604611bc4973627363285b4c6f4b9a91d144268" +a4f5a76f81a4dbc6c6d9f2c6b487e6ad18e4f28f = "ae449784fd07aab8ea34ee9717c940ab85ec1a2e" + +[5087d2c0-5ad2-51de-b1ef-eaf82f0743fd] +ec4f6f046f95f6a9c2afb66ab2c0a313bbf9fc5f = "a28540ce1ecf647663b54ae85897115453a81b3c" + +[509eaf56-8f8f-530b-95ce-37fd3147b88c] +2b833179891869138ca2abfb4be50c9e3d102fcf = "83d87e09856ba512d469c3e8f81ff798086489df" +8eb9c4573b8e322f55e558de786dd4fb6665caa2 = "78e568a867e3bc92053a0d86f3a57133cfe2b3e5" +a6cd4afd5fbd18cddfadf772814746ebafd7470c = "982c3ae1fdf0db5b7cf97f0c3cc7b1facfee72f5" + +[50ceba7f-c3ee-5a84-a6e8-3ad40456ec97] +2bb5b4518c25dc5152c3b0ff5b1654148a9b4af1 = "3804aa77dfba0f5b8010be987be499819ef06f8b" +2ed701fa3b1bf24897c9b309a59d774208b5a98b = "ada348d8c97e513f0a4d5725550f7663fedf4c6c" +3e8ad106c509ee04fa1cde6bf47cb7685c9e1a0e = "87c948db41cb9f0a2817745a95cda96a8ebbed40" +4e9077952a6dec218e7a44f640a2795e882f446f = "cc919ecd7ca8620b2a6869167295c5b81534807a" +78b86749b7129d7034d7b2044cde78ded40e1b3c = "132bba46c65f34c67037294b46e0cf69dd271074" +8cf17fbf2ff0421c2bb5b4d6cf186444791f92f9 = "31766360d49116cde9a8246a7f5144a26f866644" +8f9bf3f276ae1da0d2e56b8e2dbd4db857118e37 = "d353f74555c113896f637130aca89b5cfc319798" +9027ba70149f0bde622a5c2a7ac883f4d8014181 = "2610fb62cf032fb8ec58eb41bc4e608aa20cc16a" +a6bb3c44db58882a422998722de4e79f71188957 = "7ee823f896939c014852d6143ada52e0dde4b2ca" +d405891a0188a0a3e4cd59156775405b71e63aed = "ca3a8d77a6b93a6f0d309b9f0821119e0ecbb88e" +f4468acd303c020a8ee68a6d2a4fad07ace0ae53 = "8cbe81ca85cfbc2ebec49012ba0eb8d9339a23b3" +f6f75ce6062e2e2eea6dd0465d77a83e35f14c6e = "cc63db280961625fa3fc66f81f0f0deff4aa58ef" + +[50d2b5c4-7a5e-59d5-8109-a42b560f39c0] +03cdf7cf6fee139e835400a94a6ceeac945cccc6 = "67c7ec702e2274725e03c7126f9869ea971210c0" +0411506ad88002a7d2dbd580e10882cfbcee6458 = "950d0c013d603838240d462d24d64fb1639a4968" +0e07c8634db260001caa33d601c4afb6e83b9fbf = "70750d3bcd8cb80c5f57eb0c83031e385d1a0bd5" +18b5c064a44599d9aa05f4b89fa8321225499bec = "508c775e7b50209904fa2db0c2ca096418bbb81c" +279084787b769e6c32492069dc83270e1da3697d = "0eb5661566e9d5e9d4dbd7c0a61949e76b944f5d" +2b7faf2f7a8b1d403873494fa2f294b944bca4f6 = "a559b65c6aefb2d46b6f5363fd3622666483bb95" +42b81abaf56c29e2f42de3ef574d864b822749de = "bff735b87fe068f5409001b7c46ff24e86707c38" +4852f92ad62cf9df92315490bca027a3a072bdbc = "7da874dc47eefc15a738f3230c77dcce8673aa55" +5080c4b63bac6fd75d84f2a202e99292d501ef57 = "1920898681577c9c045b68a5abe048c4bdf4bc89" +5252f875e11c47190ffadc317846723b061d7be6 = "d0863be6f027c9b752b54b4b57cc1ae1a532284f" +5261aa7cf9ceeda693ffec583643ed3e65eab1f1 = "9cdd309ea1b306f04662c79ec38123e7cc837c48" +64124ae960a0249ddaa4a51f821699bfedb0232a = "1ab1e7afa2f93d713abbe79254776eb1b21640c7" +64acced51b9229bdd5cd7d4c7aa4a7291bf80287 = "0b6da04f4eaaeed833609bc77899c49d432b3913" +670b89a895fd56601784c74117a4139238a9df97 = "aa60ab192c9f8b8eff8a9c83965301c6ab0da78a" +80370602151e7d3b8bb64e9b111d6981a1e25409 = "9b3c2f411f1c338fe881b507c552416ab5552a2f" +854e1fc3c489827f8177ba742220f27aaac13fdf = "99ab44f50f3ef89e343e5726f0f5292f1f194de3" +8709dc3148d41f3bdc835408fc316b3db1f6e5cd = "1e610edb0ea5cb3e2f96d82ebdc5662b75fc1aa1" +895e497d8bf7761097713173cc6686f53c72cecb = "d2aa685919ff6fef06a9534d34cfa844ffac6425" +8ac867851c9bc80fdf740e9763823dc993e91659 = "5f24ce439c9501d4103ecb974f1b9cb21ec17738" +ad69f5acbc5833484206bab223bcc5dd24d52bd0 = "35751aa8826dbb6bc4d99b4cc44b722277bb1963" +b9e8c2dbba4e836071f0d2f5bfe0e823b6736bd7 = "f8d1c2d86e2f769b3be790790849fe5badc73bba" +bb9944d9530b7da52f2a7aa8b1e72176220c1d5c = "630de56dc99e5b811284ec77969bc9511c6c66a4" +bd5f94503090ef441efbd1a9ccab7028d8f99282 = "0bd78f46f7d94864bca2106570211e075d4eeadc" +c68e319a61b3e0e91817f81cff3ca4caf1a067ce = "bcfb3dadcd9abdd7fc1fcc109c26277dad66ba16" +c7969de6829591f5a4359b0a1d03a19f626d0103 = "0fe10a24b06634d643ce20baecd589a73af50938" +cb19a5555df2522338fc90afe57e74babcad7bce = "061fa7968ccc1716d4aed580f0c9bc55dde98ff5" +cfe789b141752e26babec2474a02bc0ed7ffc2fe = "07d6839a5b2496f8ed343a14970b770ca7b0d914" +d3a1de94ee27ebb05e4207b2d2f7e3db19cfc538 = "709382736feb22586bab710a94ec90fb8dff4f6c" +dc642b449269864a4a13b84a5b2668d60cd6b6ef = "f13ac62de427841bbd0ce7698dac6cbf52f0cd04" + +[510215fc-4207-5dde-b226-833fc4488ee2] +2cf7ebef3a40855d54712d816e617737d2ea9592 = "c55580107bd3f818ab685d1bf211accd46074aaf" +6c52b39fb8bfe483e5f2e13bbb0e775213ceab22 = "3a7b049aac7c2c82a21425fae39a5cdd3e7ab049" + +[510c283e-d355-5058-8c7d-fdd18bab9dd3] +8e5afb76e2fb97044fc7ff67aeaf178fc67e116e = "dcce62a710e5164d6c2d59a8107e9a2d031c3170" + +[511708b7-8d90-5a63-9f8b-8993ab87fa77] +464031ad146050e30f028eb2c06a225f6572ff26 = "6e4a38a2a727bcdc75463bb3048e10f63c6b93b9" +5150cb65d234c4231fa5628c5d38bacf884848c1 = "843e37191e24aa14217faecc459239385ab2ac2c" + +[512c2d17-f861-5de4-b642-bc357ef61061] +c5eb58b85b1d7d210de9d82c32a1cddf27aa756b = "d1465609a88804cb383099b3540d3847c8189ce2" +ddbc47d1272ca6f5b9e3381bac9fe4683644499d = "bbb856d92394a70f934e2ab4826e3960afa132aa" + +[51556ac3-7006-55f5-8cb3-34580c88182d] +945c79009a5901b30dd1fc968f8076f3af9b2364 = "43fedcf63e094e87d0c56f53fa98316bd04902a3" +9922295d876b83fea6a89cd65d3bdcd8ff9de12e = "5ceec34bec9f8e4f26e674b483eaaaacc918c969" + +[5160dea5-cc57-53b0-be5f-ac191989508a] +0af110e698c450998f26b6ec809283b932fcf73f = "823dbeabb9ce2414ffa193bb44033f522552832b" + +[5169e8c5-36db-5963-a2c8-6f78e2062fe5] +25b25cf0c1badf86636f0b831dc7cefac34a0fe9 = "bab57fbcd3e33c3b9614d4cb9fc50ed1c6887744" +9cdfcf8430edcaa4004776de89ea0cd59c044231 = "f5f2a73343e55dc67bc66810ae5d2136303f514d" +b38f9363d7960d069975ed8f1e35c16b5dc6a150 = "abd68aca157075554157ed9981c921a8ff6051c1" + +[517a45fd-765d-5fd8-b3d2-92ebc25828d3] +22f087ccd86d142c579fbe110c4ce798434fffdb = "2989d35cf75fe87d9e315dcbfd86af0375e58f40" +481f9b1e5e81ece85aa461e18c618618407a6daf = "71f733cabcf67ae0d430b919954df3b5028f833d" +a100d537aacfa7f873a5bce20c054b3e92216550 = "daafe87e7d0700c6142585ccb3b9780f603352ce" + +[51861067-9906-5706-8bbd-ed9205bf4d56] +3a499bb0294e30c57cf05f51535bf3bf0ef783e3 = "abb318d87e20238aaffdc758e8ad8b3981412be6" +431065fd2d162450bb1076e3f4a26746bd1b9844 = "0ceefc13e4f96c82a7bc0f37e21aeb18bf95306e" +6b5eb0f5a19cb0d0453ae5b6d7981773120057d5 = "550b4dca548b70e87ab69886a2051bf3391e6674" +7943ea62d91a6b57feedc30d7d4c42f0497fb5e4 = "0dd1bb35ab54b31077781ddc6a9b3331fed317cf" +8ef1a03705b47f8ef0a130e75ceadeca0d19b1ac = "9f6ca8e832d08df4181c0d3a8958885e9db0bfb1" +9dc2f0307925c749b3d9d26a2845c118e60494e0 = "3ad55e76dd928fda98c2838a68b97df1942ad645" +a2a6b1503fad7e5dd0a3dbc8e9dda89801ab40d6 = "97235a5ff5cea7dbdb5b682b8e1ae013b8b92b8f" +bd82fa931495ba62ea7bdd3ab5d7199712b5ff89 = "346a3c0d949d627fb6d5e3c323c25d3c5a5dbdeb" +c1431adbbf68bcf5de1abd077464dd77639d8df0 = "5dea93fc08a719c79a483c720143ad7f28ae96bf" +dad62eb10c45aee03475d49865779673b1da6b92 = "69928a2315d8561e0025345d775448d47c5f0e72" +fce3e4460d60153f8ed45438672dce6a0c5a2491 = "e43067769bcf9f3916d5d3315d466e26d87c294b" + +[51948d2b-02eb-5b28-9840-c902cc6821c9] +1b503bccabd9f54917d61a4d6cbe365e13f6a64f = "b2d3cd3bdd01a453155a0f8c73af7c51267e7184" +30e4897c79c04ec5fb8fa1c99eff237fda85fff6 = "569e3dce398b3258c803d660514c4274992a732e" +8a0d1909d61388117b167d5a2d160c4c987473a1 = "5a0262f7523751a81c0d85103cc2226a7a100162" +914a36f25f89c2896c27e07090ac162827e5b14d = "7b12ef606804eed6cf2ea2fdd8f1491217ddf866" +a825687c0b1b563d8dad7069fec86aed59356231 = "b6aff9e803981f020b89c4dcba0c76af72d58b13" +d265268a661395a621375af4d645a30aad9b7468 = "3258dd61a06ee3e389b5a752d2b2a6a6155867c4" +e388ea66e3d30fd6aa142d8d09725982b33e96c6 = "3a0909459fc95bd7c3c81f3deb150fb12b9938bb" +ff7bc0c5c253d13775ff302b8e5ceae1e1070d74 = "c889e1847e06d74c06ec71b39ef09457681afd8b" + +[51bafb47-8a16-5ded-8b04-24ef4eede0b5] +129978c5759a8872e7e487784483c46cf07d1431 = "03bf3475937ea3bf1a2269cb00932f431524f07e" +38006ace494efe5ac669976487f775da00af3f31 = "77225817a020667788e3b30e783bb1fdfa30fb71" +4ae2db5216ebfccacba96379bd0922176ddd41f2 = "99b7b5782a567caa09c5004304d895900ff0fcd3" +50e1eed419b95423a0786384d246bc9d08c870d7 = "b64f5ad868e8b76e0c9e895a6d2262f0fd4928eb" +53f713ddc948fe36ce335f61a0b66c0b2a45ef84 = "003c9d8ef684b0feeeda65351813689a6a4faf6a" +66e8c36b13fd3095d98e43a4916b4d8b586de018 = "88b58579d30e1555eaf0db47b5a06b1160e66149" +7291f36819ea0a37b8013a99da09e78c62996143 = "a9dbebc905ffe3cb9430a5a2c2c9d3ce0525a1f5" +79c9c2417c538a371d895bfc90e3d613a3581a7b = "7a0c36c69cc8ebb99f460aefd2f1a25c565e6c51" +964bb6bfde0ec4f6563df7820159cdb24f492987 = "fef244f8b3481a51923fecfbbe00db60bc788b95" +ba72d73ddbf0292bcd0f3fbd7d8cdab5298216e1 = "9db5cd323fedca898cdec25fc4fd07b3b50e1c85" +e3bedd8ec526a100bc9fa8a2931a59d4885cf0c9 = "b12d2d8c6edb3f0d104cbc6ee5507c1505ad05bf" + +[51c06dcf-91d3-5c9e-a52e-02df4e7cbcf5] +15fed385ea8c41ec4d0197622b3fd337f6346a21 = "6990151786f831d40aaf208676188a7878e0c172" +206078dcf84092b44174f8bb1d98c2eac4c767c6 = "5e9d53aa8bb8a368c0026dbe8790e3de86e188ff" +425fdfe47d249088ab0e68d304f1b7c48cdfc822 = "f618ba42f5434b10ee8cf0324f78cbbfe297a740" +5bc71c000fb7b412ddcf6baeea23f5f116bfe844 = "53c47680e6f2fc1e181c01def53901a2b7bfabde" +c612851e0b53a4160e23a5fc8dac58bbd6988fb5 = "17fdbd578e9d6b756e0b2fbe285579f9f5e6642d" +fb178edc00842854fdee81bc1e9aca91f6203f87 = "fee231f8f66861849e2a1cb82e0445274705034f" + +[51c5b0a9-f0d9-5f18-9346-75c2d7aca4db] +6cee4db669de9372bdc1baa21e6d6492e86dbb41 = "6efc51dc89002c43784c840899e0c63f48b1bcfa" +83823744d461cd27a9b90a10255d76c677e7fd6e = "608fb21d99c3a4314e801e89c211352d3a1b46f1" + +[51fcb6bd-ecd8-522c-95bc-4099d1d03463] +b95d554069c450e2e7de771a2e795c367e6df5ef = "941c71b8b2ab4386a17db82c1763423e6159ec32" + +[522f3ed2-3f36-55e3-b6df-e94fee9b0c07] +10c84a114393f6d863ff3bbdabdd96c0b411ad59 = "5024e35b5aa8dfbd2f5200bcf65c47ba1a564cd2" +12aad899cfcdb86baa22dd5857cd66c60f0fb80c = "85cf42507b00135f23b5df9066342035b13e1641" +1b2f3a2774a2202f7d40ee1e3d9a0d542d934f15 = "9e20b900efcba6577f1e7559c7691843f3c7c6de" +271c82087a5c3977c3487f99fbb9b6879010649d = "4034295140d5682c90c943f035548696aa513c3f" +2fd1837cbd04a46b51da3ce802cec2c6eef6fc60 = "ab6c7b243a78ff264053d63e3821cf11f76a4fc9" +3ee8e669b055c595e1d2d9273b66d73106422c13 = "6d2fb69488d6ba932645833f0da11321b2e15e9b" +40df7b78d72a785f03ad3fc54d6b58ff1ff23166 = "360d307b920b5595ed1bc42aa52ba9be57126ce5" +4d95949bb89f340a89f907d831c6628803732aa2 = "7eef00277617c8637416374e5d3591bf54f36c4f" +54ae5d9f209381b1324a296e0843c17ba4232c05 = "84ebda61c467b19976b9a1d57e5aa2cd5e065b7e" +55316ad5296e51ca14064da0ccbdbde7d103957c = "676e6c7d94b6b4a4868d08ac2950528d4dda7e7b" +7f121a0f861871dd5df9c782d5d8195a438600d0 = "10c91f5bd6ad25187722dd1b6da53f2ed1a7d8e1" +813266d7e0395bb8adadfc9135f72a13679ace40 = "24790b3553f1099bf74684fb80de76036598c420" +85e2aea808743ec2142cb0d96bb93522366f2ac6 = "38b4e0a4f6001b6d7c82ff4e691baab908add800" +882d8fc8e8ac899aaffa85b8022a849651c6fd77 = "4864f6a53a0ca66e05cf2456549709c70646bfec" +9210aa37eb19ed1d4b994eb0418f115a1edc76bc = "ec5f5b36e75b76fe7c2da321fefda3ae95e18484" +94065b435b16f048bd6f9163f96907f3a9215a9b = "abbccf52203ab7d60859406d2fa021b01747b330" +9fc5d94af1cf94888a7c0f3d2e0e015d08b334fe = "f3266fcdfa2c71dfc301ea84db3544a96706f882" +a0228aebbc9365bf6a2fdb4646f0b6f615d8db2b = "614437f2fe3792da2979b474d8c3002092e462c3" +a0a991c2abd426081c15353fed5b88b4b4a1d0bb = "b56074811e6e99239c300ebe7564497403b4eef8" +a58191109e4c28a9c9c692c2077e52bcd6fb6218 = "c7c28f53d183a551506058782888d2ed61a04f5b" +b56994181a56fbb80131845830cddd7c66e14e35 = "548037fbf211e1aa8f0be7bcb132384eb644fabc" +cd84e769ff82a34290edcc984629cc9fedd96395 = "7c8155d8eacbe8d9eb1b60aef7a6c29a605d7585" +de53ac688d8c0f4b06c9d4b25ff149e116c6b10c = "d7ed0c0493738bf24a9ae45fcb00e7a8d4ace0b6" +edec8148acfdcabedff954728f4c901ddbb6b27d = "789dbddc61e9c8cc4192398f3e3820891e1f2867" +fd56c41f88fb6a60259d8adb9f922f77664c6eff = "3adf381a443b46a44f859659976ae6e9f2a30637" + +[523d8e89-b243-5607-941c-87d699ea6713] +39fb53516cc1d736c18ba7ac62d51e81287f9246 = "d11cee2bc3522625a60bd8020ebe371fd1b9a635" +dc8e829603a62c953033d796b2b74709a25ade0d = "f40c556bf78b64da1e2b4d657384ba443ba6cdc0" + +[523fee87-0ab8-5b00-afb7-3ecf72e48cfd] +10f6b24a8614b3e03ea7e9ff115f56f1bb57fe04 = "dfe5b3d4fdeef83e71161aa696c170f09eb1422c" +2794d4f55ac9ab5887239c9e28f48a761f78810c = "794e9a9b03e5c9d316e81993818a123a849e13a5" +2e87ac35cd8a67627419a58bc1aa01dbf1a5200b = "0960082ca07825642d40a2f6587083570ea9785a" +48ecb6c455cc78f5040ceaf0317bc1dcb7f78bb9 = "8760f2b1e38b5999404b7fda5c649d917af9b522" +a4637097ab191b5f1ccf5f665c3bae70e8394865 = "e8686de9dbc5bac1165d55b366af8a2d223f1bd1" +cf1076d08799a6c4c6733418052ce7d1bef3ef52 = "0940f01447aa5e0a912e78d84e44e1fcf6ca721e" +dc697b1deb68286ea9869103dc6e8379e58dde74 = "9157b440d63e7722c086b069ca71c4810abd4757" + +[524e6230-43b7-53ae-be76-1e9e4d08d11b] +1f1bb8b510e508a1f8969f7e0ebde5968ecdbfd6 = "dda54f7af6e34eec760b033e8a00d36a81d4dc10" +1f5b320d5a5260b28c88e4d57c21db8c787a80af = "0ffc03e2cf98d532245ee859a528aafa299b2059" +3c21c732cab042462e8ba01e22c2f0334e21d220 = "cb7a779f11da4d019427c0aaa31a864b2004315d" +4e609d30911a0658ae743d0e6753b168b9aee805 = "44802bbdf6bbe3937490f59b3d378adab97bd750" +804413e772b0cadf86cd5782ac72f54d65283cbd = "ad90bd091e3bc214f00ee4773d981a2593d770c5" +9137e7d78c309594f49d158e33eeb2a2cdcac820 = "7c3507b09d87de012e919a486ac1e40105e7a39c" +92e7e28e50de9ad1a4683b9b438a36a3b90c00e6 = "33fd5b55108a9a5a383b673beb73aafd29004733" +9bcb231b70bd961839c773f8fcdfc9213f020b4b = "127e91d228ef51b1d4cf65aa4526248391049fe3" +af6ff52706d70273abc3345352cd5828fac68c45 = "fc77097b917b5ec32d2ca4d6f18052d545597781" +ddaa8cd512e5eed969d3e7c467aa42f1de403011 = "9c62caf2dd2a4e6de9f7d13174f1e62e9aafa8ae" +f4884e0f9428035791584552f803abdc3b55dc68 = "8b457c262599b65677bdef6ece96010b5de0dbce" +f4b0e3023f66213f68df210ba81f2cd2f7a43cbe = "06434975cfac4959de547fcee318277deac40552" + +[52542b9a-e7c0-50cd-8ae4-855872f87c14] +e0559852e578a025f62db4d2cef9a2c6f10f082a = "536b36b53bd0e555ad4ebbe8f556a1b612ecfb19" + +[525bcba6-941b-5504-bd06-fd0dc1a4d2eb] +1bd337ce570f4827b1852eb419a3c478bedceb84 = "91c9c1072b9eaa93eb7e375cbab18602edd4573a" +231378e980fb0cf0d0eca99d79d517f7582bd6a8 = "4088e84967c790e9ba38ef92c38ceac17fbe3c6a" +3001911efef010c799eee125f484082ba8d3e5a2 = "0b61cbec079b3682d53bc9105eae2ca991618d48" +48714351325a2d8f2eb9b3c0da79bf20ee2a2652 = "684533ad0c59a128cb287ccd4e90b0ad2bda616a" +718e4ed171caae99fd9f299eb99e1eda48913235 = "4f92847ad7850ad95176b9cda8d4aac87aef656e" +7316d4ba541cc967925714e669589e6204bf58d9 = "9e0539b7ee37df190be14220c132a1ebc08efce0" +793cda8429685538274791eeb365f254f13fc04c = "a22cf20e4ddaa5b67d21940909c5b0b29f9c4f74" +87484f6b1c81f889f0d1ebdeeb203da3e066bf5e = "bca1d72a059f5504234e9a030db8c196f0c3d948" +87d7f3b30c27c134800bb2288c018e6c6094b311 = "db03bab849a62c231b8c46523a6f53a79aab1dc8" +8c51c739b70cf751cad50c689ce0913cf1be589a = "35d440985cc6e5faead2c344cbdc275f6ebfecae" +920b0a402f6eaba7ea7b60334087bdbdce582eb6 = "3d6eb2ba2294a1d8dae0175a496d76f64f940ccf" +990aacb09c87c78159aeee12faf47934189a7d4b = "3d3cbba8c652aa377e1ad8d24b88ddda582609e3" +b21e27290b4be3901b8c996a2c6496962547056c = "2f139619fced58c930288983ff8ac29989fe1773" +c2420ce928255b432e322a2e88cb2a4b849ed2f9 = "a5f7ff32e89a2114426df74edd99d3086b3dc2a7" +c8d75dcf86125dbdd623a1b07f246971c5fde08c = "2d60b918b601be1fc5be2141c3452174d3f844e4" +d0f2fd2f4dfa3cd9e42d8c9ff73046649c829617 = "b73cc44d6e98bb5b65bb2d6d346fce07bd7f369a" +eaa7ceac0a7a6ebf6c2d9e2262322c7d398d07e7 = "2d964b0fa6b310e88fcdb1fd88ea66ce9943a069" + +[52807dc8-fdcb-5551-b45d-e3a576bdb870] +b8a63ca82788f1dc8a7b33ac4c40810438fb0464 = "10cb9a0f25e2fdd4ac6f7e3436a53ee1df997b0a" +c49a3327d45dd430cd50c6f76a26290f9dff25cd = "65eefb7fc4f20b396e941ba4215eead4f6c27650" +d83e4a7b7543df3aba9a567b4c1eb7cc96728184 = "343ae2e0f3d3ddbe3fc91c3d9ef0a3cda7b0333a" + +[532beb67-69e3-58fb-9a2f-cf496e4acd67] +b59e4d9fc8ce525971ee7917adf383f5ed71659e = "fce34852729f9a68328cefc8b9656c006f2a4dcb" +e5fd0ccfe2de261ecd60503c5437fc57313ef304 = "f8af01e9bc2dd7e882912304dffc6ddf43945e18" + +[534900ff-0018-54ee-8ba0-7a6b38ad4ca3] +0f19aac8e811b446539992ac66e505a86856a735 = "c5c6b996d2f71f9e60dda7454692a29e38544b0d" +31453b8c873925f8dda4549c5c35b8d4a8ebb01f = "cce04236f7774add9af80c1302c765f10d196bc0" +746505a74d6b716fef71d593d58de138dc756ee0 = "31c5ddda687841bd6b36277b2a1c7d69937312d2" +b72c32a784731e3b586bbb8285d0900026eca64d = "249750e349414188db60f9aeefc8b01a3b55d26d" +c053b1d81e2e57330d6e5b7a7e6cd744678f73d1 = "a740dbbd3e305791dfb52ee04e96e85ef3b64389" +d63ddeeddc0054d5d4790a0abfdee20e8b0b11ec = "5ae9630cacff27c71ed63edd2451daa645e694d4" + +[535c7bfe-2023-5c1d-b712-654ef9d93a38] +4172e07c70ec59023425dc8361016dbc69f0bd42 = "9d679a71cd571ef14d7973da978bd25ddd30c13f" +98207060bad4835b8dadc3e3b958e4f7a68548ba = "e6743f263172244db71e99718233c3f041a795ca" + +[535d4fb6-d431-5a58-8b37-282db8e447d6] +283491016ae89efded6f74084590d283fe080211 = "fd560ce5ee76a35e7b2a26ed2f14286ecf10461d" +5fa0e593adab1e1b1087970a1ccbcb9688e83a79 = "6e140580f3a9c1f334d11cb8e4c2b87af4823a9d" +a29e7f006c1ad65a594f654f7f9b10688d25134b = "373b483729ffd1ebb6adb960f4f13d1ac8609d39" + +[53a63b46-67e4-5edd-8c66-0af0544a99b9] +2212b48daf4c961182d57b437f88cc483448cb53 = "91b4615583eb0047446b1c1f8f8034e4d8007ae5" +63e0f3fad620d97f07d85dfd4b9d491923b5091a = "66665b8a01768faeb4afc87a293e806ddaed4a8d" +64a4e66772ca9d929bf4b545eb3bd79dd82a2441 = "cbf462ddc05a4c77c1bd3ad08da73295753512a3" +65f84c20825f05b9e1f665ee771e15d0eb8d3913 = "9da36925d15777ecc3f991b4a5038011956d690a" +818c95c6b8bf807b652875e39e38d6c95abb6096 = "bf2a6aeb6b7f7d1dc99965f4a3015569e131b192" +9c9a611bf869af93268eddb501f57d549972c7b4 = "dfcb960e2c2461f69dc7e95e7cbc5d5ec89d96cf" +b62f269e1fa13457f17c35a1d71bc77fc83483c5 = "b4363a3d7ed83142c0adb605307c24450fd4a532" +bd2c187767ecd419dcb9e0b6365243d7f37317a5 = "d4b064e8385068c53570d6ff573ea99c08c8d918" +c9e2b14e31eeeb406fd55ebc7407b47faf56cbc4 = "2b15481e9ffa7e6af0c6b6e8eb746197a7281dcd" +e1a0630bd65df13851270d9b5c2ae281bf60d177 = "eabda3701f6bbc4178f53631941b8a8e8235c310" +e7fe89087407fc77ce87a9502de471eeb4fcc5ba = "48c574224ce524e99d83755e7ce545e8c91fb607" + +[53afe959-3a16-52fa-a8da-cf864710bae9] +0f61258dfc4eea23c01655cffba92e88bfb8f82f = "4c07ad03580b162fcd5a99c44ded3029105839d1" +16b65a4f6a144aa6240cd7e989e4b575fd2b6761 = "a353219fc03a724acb556dd44929756f01abd5cf" +1e3f017be741a4511fd79bddd88eaa2de44f5429 = "da49f88a35e1d1b2e0fd7d9df2f27ea58660cdad" +788cc65488f0449f49e438163ecc83e55e7e4cdc = "ff5341591fd1982bc30204015043d7c7d16c80fa" +940bc4e2401bc02259fdd641dc0cf78cc4042fbb = "1c8235fdde003fc27f945984bf21f9e6f16f7213" +c272135600b727d448e2d222a1622fe8b971de2c = "34c6f00e9336b2ec6fae9a68d86ad1e7290b4476" +c9c2c2287373622d4990fcbda4e9d8f4053e9676 = "72cb2637da2d1de5cb18bd7696db0852e342539d" +ebd6e21130c7d9103fafdd9bf6630b449c186519 = "ad3bae29346c70fed9d817ac6ae9f9df17ead92b" + +[53c48c17-4a7d-5ca2-90c5-79b7896eea93] +0033458b4cb5e516f13e8ab63ac38a948ce9e951 = "f6a5cd0cbe5c1bc7a3b17e0ea5bc6f912d55e249" +00a99897c6cd0ef8c5044ee734ecb12774e357c4 = "e5a9a3c3404bb7eb45bb9ae3481b77ccc371e3a0" +048a560fe9bd6a301246353af2017ef2969bae62 = "5baa2d4a91e1e7aeac4af841cfbfb19dd8c16cbc" +07acd3fda99275dabbcfce7f980763b7446cc662 = "451ba1270a3e3fe3d95f3a77c21ce7f742639c48" +0c55728f70e6f32a612bf81c42085017608942ec = "2f0658579693caffc31cfb58aea570f4d5404ad8" +14b1f33f7d623833d9975ee2ec41b1fdea74dbbe = "eebf31e500ac014ad6cb173e61e66cea7fcaf1a1" +1f7d94d4831df61f05f4c66448e2ab5fc01e0e5a = "1ee0c2e2d3715edd1a3cd3ecf01b7f82e56fc6b1" +252c202b1731ba5451febdf37cf72d2c4181037a = "c599f3837d5d8bca089a67e8c616d64d4d1d5e2f" +34d7fecd42631a9d7aed0f4ba4941400930f683f = "e33bbb2de7adc0df29b760639ca101a57eebe400" +396489524915969ff5a839d5f5a2a65367aba065 = "e1ed3d4c671d190e4b096d82f44eaebc74159679" +3d86ace04a987ac84b90a03e18d936303e4fc88f = "278ea5d59c0659e4f122e003462869130a77c2a6" +404d4bef6eb278b9a83aea5beeaa88a2f8333827 = "800859cf7969273325d7e2132717f685bc647f1a" +4f81c474c7c8d2c1a20be16eb790a50638285971 = "885704e25b425540665b5e25d46e7d47d4914212" +575ed54fca0dc83c91d984c00c954b27b8cf0ae7 = "f15c685a6e2f345610a78729994b0690ecf2bc3e" +65b5c316b37475a388fecd00c66a343ac1280f4e = "473d2fe4b4a211609e16f88003874042f383ebb7" +65d1b00e02d2a1211ee8ffca2232db77e7c696fe = "18d12b2c58df27ecc0f301fdac1c9a85607f7cbc" +67c9e1a810d174160bd1c6c7dafd23d7b2b454a4 = "50dbea0e7177e4da0ad479f09a98523fc2b50001" +6a8aee86406e1b928ebbcd5fd51a570bb8a6609d = "a684434d8d986fe30fce8fca0513113cf35620a8" +852909e21601c9e64e4f2f1cac0b85c3251595ab = "f6a5cd0cbe5c1bc7a3b17e0ea5bc6f912d55e249" +9a1b40acb854cc307dbf827adc287b5dbb9c2480 = "ec2d82031aa8a1df08e0e2161084d8d05d58ba7c" +a00d54cb2a06e2bbafc8a1dad27bdfec0390635d = "33e47d7c83645de07fce5c24703ac089efbcc3bd" +a1b6fca0067b0c08cd62add678e4548f0cafe45a = "28abeec2bb8a2bf68b0b872b52e76c5d3644ea2d" +aec1b8fbcf259487663d7983522e206a02c2b2ce = "cd85f1da4267f1c7580ec4111b58cb1a4138b60f" +b58c7f0c817d459745dbc57f19e3287842419d66 = "c3d30c6005175b7a80ee0dc1ca91a099aeb19c25" +bb3dee7d07e8b94c9e7b193fe23949f50135306e = "f6af8de0f1fe43adc7145b068dbaf797db4e38c8" +bdbd2faff80b13d92372c9866a0dd9a1a5f07834 = "66826cb8b5fc0a18d2b07bd583f7e9b283573293" +becc788ca7ce1d4bff31bd8f685919f41632b676 = "439ecfe747f044b46a470fbdc7316130365593a6" +c19b6a0cf0e6d25091e379875a34cbbe6d9b43a1 = "ca82d53d306cfbb0f1a96f8dec1ec1d078c9fe1e" +c238d4205ee5abea6d596e71a3e1967e4b1c7080 = "5633e66bfad4e6085b2181963c5699f11897237a" +ccb4267a45687abbb1dc2a543cb3587f58bdaf2a = "ced832579c70233032b9f1ee15d7e81c2a74dcc4" +d2e015cc1660b7db982737f41ff728980f416f41 = "a7d276440f7b91302f49d3ae292887e8d51727ea" +d7ff5131551300892b5dadc9c694f6f48bf14ed2 = "9a82e1bc230cba1d9b7a9af9de16cf9a4972b789" +e57195da0bb8c8e5080c32c19f64557806b7ffd4 = "dcf303a23d3d1e2836a0fe16bc32f5b39e632501" +ecd12759ba78b1180e206e9940ca2100c583a4fd = "164c1973bef1fe6ce2df2a82d217dc7d19189dda" +f1bafe33e7da24e58edf5c10d49151a0bf4cde96 = "3099b7833c70e75a0d25d2c7730afa87b5aa3693" +f3935899fa1507580bb4564d1f0f27eecc7961c2 = "1cbdc3b3e1e7f28fa3035555d380045301ebe3fb" +f4512651de92e50565205765b1bd996b987a3c81 = "a919f07e5d3727bb0d56fb1bfe4008f0f46bdca9" + +[53d494c1-5632-5724-8f4c-31dff12d585f] +2486cfe52e17ec6b5c6aa9710599a3ad0379021f = "67f8eec0afc14f8a9fb8eead00a1b713d7ea2661" +56866046379ab51ffaa3a31cbd06060b4aef112c = "5ca27b2a883afe2ee8b823706f88e7e43eac8b43" +6ef71660b168091b88777188670b2d2ff748f883 = "b637dfb5f8e6a7bfad2e349e50019a9c40a9145c" +98eed1e536452d5fc922bf13ac5ca9e7cbbfa8fe = "e241efde1890611023a7061dfe5c93f33c862399" +e36dc8268c9f6ed03ea8698a5343d18e60907d7d = "309a3880fdec672c24031f0486eeacb0058a4dc0" + +[53d836a6-c591-58fe-bdc5-4726ce2b5b22] +015d4053830f7d07c304db7642356161afff538c = "d37279f94f828009fa00f88a619252e403d6087f" +1821f32c9d76fd858fdd831f7e43dc004369858a = "5881365aaa8bc2fbc7887da80c869b46f1e1b987" +20676c2cbd675a837f18d5e204c870811592d1bf = "f0418b7a408ecaa10fd2c33921077b866da354e5" +e86a73af156ee68929615824e6d78f9c95b35a5c = "1892f47e4c15591fb36acc3787abc6f93892d36e" + +[53eb397e-dec1-5dcf-8dc9-2db916067267] +04d77587d320797c999f9d11b27c83d882bdd117 = "6c3f5c76f22378b3d64d2270d267aa78d219434d" +2c4e74d7665d091cef5d14a824b84be615cc4024 = "196ac49ee9c5bc8b575c3740c69d055cc95273c8" +45193a008004b4129db1f5745c7f9396240f5f0a = "9d543fb7aa2d6abdceef3029bbae37f81adc776d" +b9b42f9d1035ba7cbbb9a670e3718aae751a5ee7 = "5da2936d6bee4b33f6adc46abfb52736abc79dc1" + +[53f79dd1-e2c8-5df5-bc78-22525824e0fd] +0495cba1cb3dd307067c99f061c5e0f788b332a6 = "117ec813709e2bbe371e1bd99443006559a8873e" +1534dbe8c4637426b3b89d3ff3b83c18bb1bddcb = "ed5a663816f8e8d553baff15266a0ae4112538e0" +1af95e78f79e090b108da48369fa33af921d1173 = "61f2fa0c5555251b0c59631e97a7078a006e7204" +1f30945836a9e8063f02e250d92b46868f578afd = "5c0e31b95812c9e3da524080fa0692e3e189a323" +214cffc716294174921598cd7faf857d4bd57d09 = "d87adb83e81246875fc8b090b029205ab9bea9f0" +2f9db8fe21463b8cf19e98df556d3e71506245c0 = "92b9baadc5bbf4c071a5dca952067c18ff794b8d" +33b501f2b7def9bb057f5ff88e0e0c099ff1e42d = "188979164666ca09eb63803138b01ff691dec5f1" +35181ee10379006fdc1137044cad6ece7e81c8bf = "2e560b329bcf607ba49455747e4a63f96927a934" +4b7aa68144660d68e68430d22bb818bc01e947b0 = "89b6a009c14b1351ce98b0b605deb8ae2298f89b" +51ec76163936e0b4ecf39e46e63fa5ac6c2842a2 = "aefb9fac40fac3964c34001223f7814f8caf9eac" +66521012732ea2cb840d71b562a937ecb9a31d3f = "86fc8d4d33d8d6ab2b489938730cabaca807c650" +6d1ae2b5c889c7651aeee44d683161963da53bd0 = "d2a9e3f8a440f5d86a726f971dddd2b5d726660f" +6ef8246462bb2501a7d493071da212b286c3b90b = "af7d54c4a50366c438594ca33a294db90a5751fb" +937f4305bbf7edc8365a66f6ee0237483d82f634 = "f63cf4207621899e228d17bdedda36e49e74afa6" +aae4a5344ee16de739a4a2624ac0f8afae515f8f = "fb4289e9f79176ed41c50b1c40f1a325491c8c5f" +b9da3a353bc0d0079d40db49c6b78b4458fe9bfc = "ae7b3066931b6057cce318ef776c8ef1c7017253" +bfc72e552ce0d30bcecc1b989f909be8ce99b595 = "c8248cfc3d20b8f17e7504fb20374ba3e675e3dc" +c069310faee6061f1ebe8e404f3258bc32d058df = "1254dbc9198b409b50b632a78c0ac2b03ad1219b" +c4307a82d10e857fa1af1e6bf4608bbca25458d3 = "2476b8ecd2cabdec72fe67de89aadb7eda82baaa" +ce9e99484254b9d6c24a5eba7bedf028b497aa64 = "f7a3733e1c65fba941200df97e4dd92ced743f74" +d02dfa4e09129d96bcdf03811bdefad8886082bb = "463a9547518255da2b1c9ee369413d8b4dd41509" + +[54070661-dc8a-5775-9964-1e9cd095ac62] +016d9f01a921a72bc12417a8be2da2a0683443c5 = "0617e6bc82c8637d1760d22631e62500f66260e3" +0f2e4ef2a063903c8f5db0579d085e37b2a1820e = "c7e54d86e60051026ebff7ff4231ede28f822c77" +31117fcd918b0b2587955e115ce5a7740c2ecedc = "ac09029a8eaf9741b08b2c44be2ee39c3d3006d3" +3f31f5ac8cf2933f1bd1d5fa07f27b550278211a = "1d08087e762bee044054cf389b17bb3f684580d2" +58d75e1dba4cb76e01c40b273ccf1c45f31517f1 = "b31890d41f3b295a1dc5039b6f5e41e433ad77bc" +7470da6a8d6f72111fe565eb17ba56130b11afee = "1b2c173275b66a3dfb4274bc3e4d20e2e7783404" +81bdf72fb2d2f463fb7a3c58fe49684f62f69f30 = "df2dacd604eb03fdd67c4fa81c9a99d4e63cacd2" +99d837f559536eafafd507ffa46e9b25523eda10 = "26208d2240aebcba4e4bd07b9aaab0213010e709" +9ef4557c7531975ccde2f7e245596588bcfc939c = "2ffbcc6ef8fe8c069f83c348c0e7d3f62c1525ce" +bea005444160bf49b7a693b75d194a866e8ec906 = "fcbcbfeccde32185a33289ebae3581de11b1409f" +c7f39f381f28e6ab364299f1e34e22f99107d2de = "94c23dcffb82703c22729467ae77e0a58cc9853a" +d1056b36a9e486400752e5e690f1d23d800d818b = "4346ee3da682706ab5005828351a93fb40f677d7" +e4e9cc281f897c032cc3fde024162453b7f0aba3 = "b42112b3dbd0c4069f200376d555dfa1c5a9957b" + +[5424a776-8be3-5c5b-a13f-3551f69ba0e6] +0043e9333af144f272ee86c5f46fa1894d45d9a4 = "3f3d954f42bf7926ee960686caaec0100b3ec61c" +0c11aaf73b17d910254a98c92efb2e33ce805f84 = "99e954899d9fe491e208fbf2d4b978fcca6e335a" +11ccf511683f1e867d36d48d20959bf1d7a91a6d = "258dce94812fd7ca6bc1d9da457d0cd222726ea2" +12a502c24b6673d6073fa79fa9fed1a292702048 = "3d0edde7a3eb7668d74868033f0a61c64772a8f1" +1957124f0bcedaf88c29dfff64c025eac93f5d61 = "159ceb96336a17da5052a4b5a18a74581c215c16" +19650bfe753885dc512cdfdd2f298b0e3ebbf66d = "f02e8893f3c97f683176e4be9544429b83691081" +1dac90d1e2fabdf32f8218adde11f4f57fe0f961 = "f8267980682e5f93147fe49989d25f4c19be4d73" +314257b212397df5b35b123b90085445209cca2c = "a789f249008057d4d3a973a343209c51a99b9d9d" +3a94098a7fdb955e472eb752021f9c09ef5c1b76 = "3dd9f5c735f9efd3fdfa0567ef14c11fcb917b84" +3d48563a7412abb4ec3fb9f49b43bd791bef89c5 = "357a2d85839a1cc254026b1127d3fce9395bc9b5" +44752aa46683ad85819cbda5de5f97a7c3ce2204 = "19a0e6efb64c406363a2dc94f81d527121c8f4a6" +4719e211f0d703c4b91f4493e899afcf9042c5fc = "cfe19080438e0a13c606c3f1aa02f39893d39303" +4f0e9efabd69a0b5243c5b4448a76741e6863136 = "8f697fb3b55b08005f7f68e87201d1659da4efc7" +56aa01d3d149e22d6913726ef6132f4f687b3284 = "7315104c21a7663316baf1d7bcae30e9d685e5c5" +56c94d19e6d8bba3adceaa212de378405062cc46 = "29db24083ff7f113c5c78ccca62d697a82ba0e39" +5bb2340836fb46edd11eea62331ae5ebe31b1a59 = "c9c77e38917df3349a398f431c8e55096cae4a4b" +5fa9d1dc0b1b5425847e84bcd082d52c797a3055 = "3cb862b086d0a816af486d8000531631a870f81d" +7da8e12b74e0489926bd86b7f713a8f92d108130 = "711a824616178c41c0f99e61426e624282e56809" +80c744d2ad72382e09f3b8f92e1f34e13e7bf0fd = "0fa0a962e4bd7faee325a22c2be113cbe8034b0c" +81cecc02a7d525c4dc2482845b6c6447223ef06a = "8d051071eeac24979c7d8c5b42a3544700f72330" +83db0b273f9273c86da25f6f3e310d3d44b37134 = "db0809ccb6dad197c3af8567c935d1860a2dfb77" +8cdba6583cce552f12640fe9c187fe29bf3e31bc = "fec2fcf683573a6a71939a00ae3080377e75a61e" +94e96617a4f134f63f4292f9069769ad9fa9f846 = "498035e31f133ea7f699dd118dc64469bb94c403" +95d60c313ce95a2a4aa5179c3971e01da8957f33 = "2ebbd3d8d773fee2125ae92bb1e51878ec3bed99" +97e18a8f315ab0c43d41a4325d72be07847f87ad = "5d0789bb22b97f7fdc597ad42a1b88881325159e" +9d13c80a2b721599328a8b5fec1d426fe9dcb567 = "a40f768afdebfc92c91a68215d16dff7d282ea52" +abf065da368d96b9b64653b354395ce95b9ed2ce = "878abb152dd30730c51154c2b6d0ede23e1624f2" +b6a0ac5fa511a37823a5f874e289d098c12ea0b3 = "4bdcd0882177fff5654ccc10ed762e6d4327e8ec" +ce0a9445429bc1f02e3689e013725ea52a2b78e2 = "03cf296f264f07b7d760f7276b30b93ee5f92bc4" +e2dd08835e10c3a38bb61658eedf9fb6a7417644 = "927133ad0aa3a2f60a28989bc67068574f6496eb" +eb9b8e08938aecae50ebd038252c063b9ecbe4de = "d6dafc000ec98f5e16a3246f6daca18bdb5bcd12" +ec76a8410a92893a53069607c591aef0868c03e6 = "21e851d9423d8a17fe875c16acf92292e4928ddb" +ef9639d609048d01b56173c5295e7261cbaa90f6 = "e3a46264124f658f8077b599d79acd173b46105b" +f1d0a789068cb8cf2dee5ec77088dd47dbd21b61 = "554570f94e1331bd81f8505b4c17a959bb83cbb4" +f64000611df0615bc7d3e689c8c8c00d77f8bc96 = "cfba3d9a6ecfe21add37d4dba7336ff98c4b8fd3" +ff81400a03b47ed2935c544c6b725b06a2f26aff = "1a191af693245a63a69b42a159b1155ff96bfdc3" + +[5432bcbf-9aad-5242-b902-cca2824c8663] +69000d9150e764a05f36c61e1aa1dd027e927f45 = "d1999497c3a8b5bc1ba4800599142fbe9b3fb466" +cc6348eaeb87bce86c15e968e996504c8e2143fc = "4b8842b0a062a35beaadfaa1246f9d4732701cc2" +cd38932f4bdee9130e6d872876057eb58e8bd844 = "3c9b703b906db4ed484d1a60b4a94b03940f3000" +d2b13203c6e72929d06f09a3687352c0ffada175 = "b9ad2ad5beef2d5f6912472e8de4fd1fc426e4b7" + +[54a738f6-630a-52a9-a2fe-a3febc0a6862] +3c77845bc09ca09d3ede476d123fc3d99d3a7b03 = "a4c8359cec94cd359c01cae43b5094238e2ea522" +ffc35dba755e880b40b38510df30c171f5f80521 = "86493c46071cd43fb1e63bf34f1dd8fa70a1f247" + +[54ca160b-1b9f-5127-a996-1867f4bc2a2c] +0111ab544796863109fb1f2d4a81ccce1ac62dfd = "e221aa8c5f9ef9527ed32c7376e5ccefa01e8809" +13d49dc3dd89747b0e0071edd2845fc9e40dc198 = "856e868b52e9b31948663b8cd50a498faf7924ef" +140bfaf1ddab8f4bc7226e7ea630cd2e0fd1fd6d = "a855880a3f9de71f386231eaa7867db692daacdd" +304c1b831b307a218b9927195fe1bfcf82ba4ed2 = "6ef0d0b9aaca8973358539272a61319bfc6ad600" +49263328a6ec286676d090b761c24fc81a1f51a2 = "0d0bb2c9717f09a7c4198015d3559d25549a50d9" +5c170edc9d4b95779652f7fba7d4561f01854580 = "fb271a23074fda86a92fc87e6fced7c8c58fa30f" +6001bc2ceb2c7e6f31bc36f03c586f84241e3a32 = "6b402e17464d28fe73be4f14001681f617e82ae5" +65028f691e3929f2453737e07c9ba083c0671722 = "204fea2287baf7a3b93874ed6d502817c52feeff" +6a7fb8bffa894f53e252de8857dac234f52cfd63 = "69ee5416bcf643b3ef22022ff5017a27befae3d8" +6fcabeab7b6b21d45509d812cc29f3a68877574a = "3bae4fe3bacf8f771cdf1c9f5271a19995f014c0" +711156af959f98130472708375d05898f2410e47 = "255a54df097e9af41ad4f3a432ac7fb2bf65ea41" +7d35506436f34d6094f6cdc51356eae490b45a71 = "642d26bf2b93702c1fbb261fe81e71deacf25c03" +808ee47baceaab92efb08fadee5fc6c9a60d9e41 = "ca705f1db4dc65cfafa3ea94c481bb3ce7108115" +80becf81aa84e574d25f9fffb6897cbdf2db80b1 = "fd4754841b7fc419d69c8693252d3a0012bd2e57" +9e8bb214a3f84315c59675f237e6f80e0abf307b = "85d62a5581e62b9806f8c74b3ca085d1f7febbd2" +a4c7511f0ff80195bdcd87926539b9f0e49fc6e8 = "8b1ad948b2877e56de2df9fd8221c36987ad7632" +e884f71a5c271615de5a0cb6587b959274ceba8a = "72aa4f7b58e200d8e4bda79dabeeee627d99a08c" +f81ca04771cb66602628c935a3f7e02cf9d72ec7 = "79f2a180caf31f864b4db8f0d062fe47c8cb32b1" + +[54e369d6-cc75-5e05-8b0d-cff347536085] +3a0b7ba754f00c46ffb59301138e152cfbafe4ee = "04fa55d91d8645ba1414c942b0e4125dd96c0bcd" +3d12bafa8b84540805e0a247ed48dd6153d3c11f = "0013e34be225dae33d703ac47ebb40623c953cc8" +67f5e45cd2090351f84f769b06b8df577a0deaea = "c318b44ff6517e05805cc58eecb4ca125c23a9a1" +a8a9ca1d35d556b576a91641c0f0ac4f5991501f = "cbd6eb24f3714ca0f7beea1386645aafa752ed4c" + +[54e51dfa-9dd7-5231-aa84-a4037b83483a] +11cca5d65816fbafd41dddbef56f9ccc99d881ef = "98847c66303f9938d0a3bee86e5f9a04feca0c81" +c92e145d974c597fcabfb9f1589a991e5288e7bf = "29e8599cc973856f2335b0a7ee0cc5df9984fda1" + +[54eefc05-d75b-58de-a785-1a3403f0919f] +8ef1e207dd0321bae9e6e5d7c339bcc2822d4f65 = "e6b358a4e3c1c37583caccf4c49ebac4edf09c8f" +cf6d90b2a473839fca0d9084314c9bc602e93ada = "9a2fe3455d804e6997bc4c370775d5cb578fb526" +e1516f126f26ea8ff572ad20e22ecea23995db84 = "5a350061cc640e309ab11fbfe98d49d657efeee3" + +[54fa3700-a926-5d24-99e4-d67e3ecac25c] +7b7f364f35fc7324554a6adb0ec7da771b5f2fe1 = "a86a74523700cb6fbd57af49251a7206b60849ec" + +[55843cef-4dae-5c06-9712-c3a111be3cad] +3d6cc64c24651460503605f2c1049267b1732258 = "cabf85e41a732b347a1d2d67851b3d148500a22e" +64e5dec1050dfbe23ce6147fb6e8457a181518e4 = "9f3d94ab47b010af05dca71e4572a66e511b5797" + +[55939f99-70c6-5e9b-8bb0-5071ed7d61fd] +093c8bdd2591c84c9fde17e38e80e0f792f4bb7c = "03abc5af05b9165a7897f1d74943d8d4d3007b33" +1e62582f202553af6746c70212346aa8a1463257 = "6f35b840b8aafc798637c0ed45070b25f791d0b2" +2550bca0a83440afe4f5e8e24b9642e1a8911e42 = "f8b2ac6629c785af0305e6bafe1e2f8efc8e2a34" +2c58d1da858e15032690ccd31644f7615458a6bc = "c1024d6ef1de0ff5be4ff6533cc4509a6561ed22" +338f0e054c8830c2d29e18443a595e75c9698c70 = "5e689af9f72877384b6d8b697889e7f14f4f21a8" +3669a757c746530d5aaf9ab60046ab74ec9f6ccd = "36826822580a351ce3b1b5fe19a816c16877bda9" +5fdc88fb24b86c364edc34a7e900f3d2c502f8c2 = "b85d416e8e2074e889eb9c7c676ee6bf90245261" +65adaad98f75c1233a8b77f8ecffc5e4c7f7352e = "3b220765f966c3716995e8f3e5032e5374a3bc72" +8e98e5ebdf8c59488aab866dd6b22b19bd38a8d1 = "a5653c0d8f574d0874995f208c02c2604ed730cd" +b78cc4cc666fcd84523a1733fc782b0ead8de88d = "683cbbacf2e98e70e5cf2a954401d7c91ff51605" + +[55e21f81-8b0a-565e-b5ad-6816892a5ee7] +6934ac06900dfdea8f5d433b819582a2cf8177fa = "3bf3c42bcb3af1ae93c15c6c2a317706185af2b1" +9dd6c30b82bee444e30bf0a336d16c8f205a4a3d = "265dcffd228455fdec64e931934d6bb8284582a4" +b36b3610b4224990d967b275c4fa6a091289f6e7 = "637601c82af2bbf27c57face87261ce6bdafd2d4" +cd089cc3a813c83f3bf48c015bc1538cf11d8725 = "6f663fc6d9d8495c9c54406afab67e2ee498a527" +ef194c835193ad2fabaef29e32b52ed598d12251 = "eed5d577d333a3afbea220c9b9cca44b7a30657d" + +[56060788-a912-5818-a832-966dbeb3eb36] +0c2b1a23dd0b8260c91b34764b460d706edf1ff6 = "d7d068113207ca85fb69804577f02367c41fe14d" + +[56780e9a-f91f-500b-9a21-c8c66253dea0] +01a0815d3ca514998caad6e71ecab471ae06d310 = "e015af92684a104a241dc7b97eb290bd04b56a65" +08914e44204541c1297d5447979e579e75100606 = "6ea0792a129d4c2db9ec85d092f2d035091c1ac7" + +[56b0d19f-0a74-5872-92bc-f48f9c5431d4] +41294b6168a1958202e60cc45e17a06189355d9c = "83559974ec1cbca47edc73ed81e05ccb0451962b" +5b871b58c764d8d65373fd1cb12156b6342df2a4 = "58221dade1ab646e83fd4fa2410d62aab4b449e2" +7c161c183831497723b2e78c910e88e5976a3ea1 = "1c582d52fe30a332a35be69323fb119c10bbf0e2" +bc41d268459ba750a2c0775f259f308c6de135b7 = "b25937e3d75dd47c7d999e3edb37cadfd5169f31" +ed6657128cb192e50d2535994c6e2c3f0e0456bb = "e9d21e65c0b5d2b3db0b5335e2852034ab19d7d3" + +[56ddb016-857b-54e1-b83d-db4d58db5568] +15b4618c5834caa96b720fbb61355decea497844 = "ab122025ca7947991059c798760da556d49c2981" +1893fead5a9c0ade217f2b762ba178566539c839 = "acd1307ec86162e470f45abd7fd783a23de5e5e9" +3aa8466db5908adfd4cf8094b61a666feb8b842c = "03dc88f536142fe8d7814f3375dd09b04c1a947d" +53be63961d4f0b5cd95f68c5d0e9516715d4898d = "4d0178d5c75f6bf2f0134b00e7b30c2dbd44c5f0" +55a53fcf3449aec353e1e29938c29e816608e4c4 = "45a158e498b282ac6a56b50a8527742dc22378b8" +6857b3ac1bebf7b4670404d4b66409cd077c8bd1 = "b0e728814fb6312b379a82063b54015507643717" +7cf0274309df1830e29723d4cf5a4ed63028b5d3 = "385780e2672f11186f23efed5be1f6dd8a2c0ae5" +93ac9ad51cafaac9b15e02606d647165c12fbe89 = "399ce4cf74c0c2200f86b3be3543093bec76c7df" +b356860376c85282af829c03b0d263f41d5beeaa = "9077649acf93bd89b6ec64fb82dc4fc6081294db" +c204c42081cfdef64f77ee1160873acb9773b13e = "ee072fdb98f417c05c02c5bc0a3fbe32313cabed" + +[570499db-eae3-5eb6-bdd5-a5326f375e68] +2c7a16d1bc81c979c91cf01f4fac14c6cb4cae03 = "0ee7a385ad0ab54e2263e771a50da39e6e0f7432" + +[5721bf48-af8e-5845-8445-c9e18126e773] +16d583662c336af16f29816c804e8ac05e6685d2 = "aac3f2e8a6921d64b6c1990df7d852f7974527f7" +3cfafbd5f2910319161e40dc3da4ef292824fb88 = "2d34e1e04cb02e190295de48a241c37fe5b7fb22" +63b76a2d08052bceb9b6b3e88c303b6cf515f82d = "14f27ba6f11c4f0514a25f9d5fb5ea225be09f75" + +[5729c670-c28b-55ad-b33a-9fe1aee78f16] +05f2b6d32436c02920585067bc55e7725e2e3462 = "99bc6793481e1ae93e735432139fc127d5c1a180" +0626de46a99e0154967ba822d9c8d87718e4abd0 = "4fe873bcc60c506183e7103712546c3bbfda8ae8" +11815a42c2419f707b29585135494d152b09c055 = "c09a672086b8c64030af59f8156018a6a35e169b" +19213d8100a4589a00774e26fc39896fe06d16c5 = "4502f95d69288b4fe29d79ef3bfca338479b9040" +22a2b81239f08c9fedbef00b06e727e641a826e4 = "8818e4247a82b1f3731eb2b8bca470a8a9b215fd" +2d4e02c479d86617b31fce5cf8405918407693bb = "c8bdcbdbd81eccbd1a2de73776e522ff381dff9b" +3cc44cc591bc03bfe1199b23e35245cff27d44f9 = "d539930b5bb18832a5b3a08cc0d38965a00e914e" +3dfc33ccc6e5f2021707809672dc1821d4e500a4 = "5b05cd7df445d35062275e2001f1d1c94c054b6b" +41d68862f18b55d465973edfc62ac4c418a18e22 = "851d85a1d2fb278b292bc9e27142730eae6fbb13" +48d0034645cbf0db416a1b288ca1e51510aa8183 = "5dc2c949a2ce7a4b59f9a6b65bdafbf897999ff0" +5662a8fb8207224934f33a26e85d2c0c55d261bc = "421b09014d596000444746ac8e4b2c887881604b" +61ec2a9923705bf7b3ca761a79efe244926506cd = "436045e9245b98f0c20266476e5244c66e72a432" +703a854f1f084213465e07d9379400628b55cf18 = "791898444393bd1e2c2d22d9ff1f16ea4e10f29e" +79441fb604c92525744444f9f9f374234e7ee6f5 = "d8560e7febeb1065ebac2bb6ff9935b95bc46c93" +8b7badeaa0c437c434c2922b817361829215ce39 = "01b4bb03e95e0e79892e41805f2f701641b20ee1" +8ebc78161e96b498c8b1a20f9811dea9499d0506 = "1947611b63e64737825491043a8b707b834f7927" +94bc84d33dd61541c52d616436be044e3b039289 = "50a1bf7eda236f76d9d51dbdb0b1cb9157244201" +a0da46b2f9d828769df9ca4ea63b01cca2c8adf6 = "26c77873ec13a9469e68e0d64e573b8636009776" +a36c7d34fc5a5700b32a46288cdc4059c7ecf206 = "0a81350395c4c381136e355b9e4d632a274fc4ce" +a579fc6a80d1427614f01c1adcb496470c6ae994 = "aac01863cbecb46a17474ca1bca14cb6aacd1c93" +a9fcabfec6c22ec2569bb25d8eb735c0a4b27012 = "aeb2356c7b00e01f114c0ffdd001bd90d018f3e0" +b0d7d5146898d3d661da6c5c342a878061be9832 = "da24650b265466acafb845d2ad42ad3406907311" +b2f6bbda6ea8e1dd377b1e1ced56315ebd4bd37a = "ab009db996cffb562b56d35308b9f31c188b3680" +b3420e517fd0b85a44dc0dc70acb70f283ad46af = "121d12cd2ab9bfbc1412b18dac94545013430110" +d4b9b329a93d693b46af8f3c26c638a53d70908d = "f2dd2d48543c516794553bcbfd354cb4d22d5e39" +d4dee4f5329fb20328cd2d7f8af97615222b5c79 = "a513ce19f9a6f0f6abead62c34e14e8554cf6036" +e97ebd6d1691dfa4f162183fcb8063436ed5cf48 = "fe61df510dd66b7ac448696030091b9b216042ec" +faed8ab07e0618982378f8d4b9d88a4ff5b6e750 = "dd9af7eac42c785ef6c096ff4ef252f5d67ff9a7" + +[5752ebe1-31b9-557e-87aa-f909b540aa54] +5b526df76d3d8935f4eef2e4f00db766611e4355 = "13f7f982631e3c57f5390de3d722950ae04633b3" +5b8500fd1d302e27843c2e8513ed068809984f50 = "6dc887d5beb6052704a39ea9d3f86b1f23363a70" +63486f60e8b2b0ed6457de2a30cf514571a7a69b = "528a367b9929d8de79cd26b29514e827527544c9" +afc3a155f7adf58fc263424d26ae13fc6bb8c9c6 = "17d09008cf4983ea4690254d480ca01505f38ab8" +c81699f9123c4fb299d5b76b61702f136fbb62a2 = "2e4bb007cd3bad4b8ba72ce564b5f4a16adb8903" +d29b1c39c7d188d539c9821b6ba97bc031c95f3d = "3bd4a468c96ee43c5babd8f0a5b38943d731dc7b" +e8535e792e9487527d079ec5d8773a035e9a41a8 = "89fe862f51c2a8e08cbc5500927cf4888ff6b2d7" + +[5789e2e9-d7fb-5bc7-8068-2c6fae9b9549] +0d24ad67ddfb40a3e840a1c687083b24942f9fe2 = "77b040d55d8aa1bd7a0949548a4846b078b17fac" +1373ebd9b89bd0a0e13010df5840a836283c601f = "6f99d4ce14806dcbf14b3c5df01a66e5604b80f6" +15058b179d88ac8cce5d34cde3663d59acdbbb1f = "e715126544e9c147d212d85eecc713d604e78bd7" +1e07cf37044c8273c6161de61a0248f0f8a76d8f = "42518eb3d06e19209babaafbcdd506f393d4853d" +2886a4213858ae6c9065af75eab9ba50207e7d4b = "6e2d4b443c1d0ee9ba03a93da0d831d9bbe7c4ac" +2f77c74dbee36abd85319f3ae6cd218fc29ce188 = "3953276e97084c2ae2e38c31237efef88ea44db1" +34ad95d46eaa07c51826d1feb35386290d0d2160 = "d368d65c222db1a10c83c1854746f4c208c1d1ad" +3ae36a84dc2b96f4c4c1535b9ad44c81c4f8006c = "3dd923cadb11899e6c4b850e5dde9e7736bf25d5" +530ed87f4f8c30f61425233a0ecab2ad94eb1c0d = "610e58717f332ef18846570af67a5c9c7027923b" +5a68c1188889acf7c66cf2b5ecfe69a55be24acb = "b787ae0f5cc4f87a809a9897d7d9855736f76c5f" +5bc0bbf2eed817c68976041863d0af5343329431 = "5ed07ba5244b721aa9191eda37e786321378adf4" +7da378db89401a0c5f1d80ca6b40d0075b3b55fa = "b9c8086ed083859f887322f3b5e19cc9a5448147" +8919166891d4bb5489ed19a829ef861823b977cd = "6617533068cac241d5e2bb5ca719345613649d0f" +8a8f53e5d3f24dae44b91f88fad184f759a86831 = "30b67b70eaa479fd094b0fc3ae3f72fd5c374295" +97acc32088b18ab3fb3905160ba68c98b7583ca0 = "a2976bcad8007a2c7b575ed5ac1f238fe7ae6adc" +9c2c1b5c54627bb67fe0313635a1da8272b2bc50 = "cd39c4a1efdf5cbb23097a25de0f0e9311de0d96" +a80cf2bf3f30690ffb62ec6a725b43e94fad0a5f = "fc12b3e7b3d70c7c2cd85de07a330ce3d0a28c95" +c20c25fc369ef3f5490348b6149ab9035d4d06b6 = "70b4ca63252116153911eb5af81c3f9f60c62629" +c2b212704640b062948acc1f5631926024f7ad2e = "783865db3ebe68c993d5cee686abf234bcc8e053" +c38ef5ab4176f6f5c642caccd22d69f76e9d08fd = "86e2a1913ec8f4397fa2349168b2f124ef3379fb" +c43eacd733a8e6db4450c340f8f7d39fc6a7f5b2 = "c27cbb4286035f06fa83c01e420fee102726d21e" +d0125dfe16aa1ac9c79e9d7fcce961fd175f977a = "ba1ec136b4746bd1431be08cb240bf6cadcaa02f" +d4e34014e508da06e03ea838bc5440d6fc02732f = "16951af6b2cc07ac4c74e15e1b5888228d7bb02d" +df1953be3c0223ba7a05ac9fb57fb75fe51dd4dd = "609b94fa33962f3a124e69cdad7c4309ce7a73f0" + +[58134239-9cb3-5d87-adce-67568cd73197] +12447c5f28744a30c0b4cfd25580d4ed4709b2da = "d73bc652aab009bc43c2f7348eddb03e250b4b6a" +2be7c1e3406237886dc5a5c2f425276b75798661 = "9e489b3e9bf781f538f00cf7c156562868aacd5f" +a54a7bcdcdfd8dc50699642352db9c27f3e28b50 = "44c9f4e8fa9b34d35b2658f96b7146f84e7091c8" + +[58298e0b-d05c-52ec-a210-0694647ebfc7] +3edf313b891e88061282be460bec175f8309fa1e = "ee469018741274ce74fe5237ab3e2949e819b16f" +5a3f81c4f0a3c03bc5de7663f9d559cee80a3506 = "025f6a5cbd8beb326c6dd1c00fde00a6839574a4" +5d294ea233e80546d0c60e56db8070d352ca4a57 = "c7b678ffc1b37247886b5e5a7d51d0b972350992" +70a5c8a0cbd500e3366289615bfbdeabacbdf926 = "2091f49260198491beb84ae9a0fa5cc63e0f0a95" +71f3397038f31288d888103b6157fbf038842568 = "204bfd5622081234d671d61ff98e66384c3c7616" +7b8cc45acdd6bd7dd7c8a16715ea828fe7634260 = "8b7aeafda606013cd59a0893f899f600781c907e" +7b8ed63f9ed08ef11c39f6d94f287a465c525612 = "afb1f23e33162262c2ebee98d19e40b4b08b450e" +a373c7da987ab7810b79c939a416096bd2718d74 = "84dadd54b52eccb463a57e70590fb053fbcf02d6" + +[58537def-5585-50ba-9aa0-2cfa4b6fa1b7] +3d6abc3d61102a991a76cd697d6da738fe1af44e = "eb81830303ef6501e954d1ba386cf8cbe51fa708" +55c1cbaf53baf3d8e91cea09d818de4b184177bc = "8d69e98235fdfaa2a6c867014923e79fb997b545" +55fbd5a4d2b6f03269d66b8d6c953cb2cd855290 = "771ecaa4c8f9d51594695b03d763f43d25d11daf" +5b0700207029d43a9e9a11353a9100732783cfc5 = "1ef17e66fdf763615827fa6dc2bb2b39dc4cd565" +622dfa539fa53c3eca434cff40af37ced69d533f = "c2f614d5607f861af19420a8b718ea1aa253c8df" +7bf74078e7f298c3fc6d4b7006876d6671998d2a = "92ca72dc82a6cfa011e65380f2b1bdb434992d16" +88c44b70edc1d0a256297f91f0ee5bef774d8d5c = "eae5fecafab084cbdd7591288c46b93e936ea90e" +9170c8a4197d5de0421b293f7f181793dddba432 = "af6bf05d9c3103799b0cd9fd45104594f75024a8" +930bfbf5703a7a9e837f343a51057c95598c7976 = "ce3c02b88378425dd3dd58d6d33d684eb56422d9" +989d7adb46e3161c9a4a34a78e32f5b830f8b905 = "1256dd886dce94e65104610dbc8a47288f2420a6" +c7954d7a931fcf48e017a943e4ce4cd13ae6cc48 = "5e3dcb6dc3072b898f0e9a54452575090fb2170a" +d35f14057c0c9d464c969c0850dd8b5d883604ca = "1ea421ab7ba416bdb107c41e5b076dbaf6c278e1" +d9b78c53c8223833412557433a8b5970b6d6e7f1 = "33f51288086bdcd1c903d9b84976f22d70f9355b" +dc286ac19293aa621ac086599d2249a8c6193afe = "a795a0fbfe25a5b38f85f31fd3a001cb1623af16" + +[587475ba-b771-5e3f-ad9e-33799f191a9c] +0f8ba87dc68307050abb46f594280c1873ee4d84 = "6a8e30732ce7a9cf3b0d00bae9d5bc8c9e71ed49" +1c317eeefec910170cc72a4fe09ac54e187b3624 = "483be44dcae53f42a2d5c25932bd2e17d91f9706" +2a66545ef8d3e8d456718670e59d752e778e83c9 = "e537146830c9ad9ee967b28ee6015d5e8811b276" +5f24d61ba3abff93cbd42d871d24b6d6f48ce7ae = "fa1c72008f66acd0592349ad070fcadce374e071" +72eabde373a7d8ca768b6a27c90680f80870b3ce = "520bca0815c38267cf4396107f279768138ba92c" +7a85eff370b7c68d587b49699fa3f71e44993397 = "90224c1582372a864e829b6b30de07eccf3ab8ae" +854a1e18865742c59b6db6c58e16fee6ef9ef8ce = "c3e43a44da125efc6ed7d042e8205c99ef87bfc9" +98b362729dd39c70d327f6f03c82fe949b4a2396 = "3bada51341076a651526306c80e3e1d49211d1dc" +b17eb78e0a7131de18501b621c594a9c4d459372 = "1ba2767540324f3c86c75563d2198304a7a47a95" +d3419c943bd8c8c3d06ffa8ea5618625b3b14613 = "540e9ce53865dc6d900d4c39179aaa8289cf4dcf" +efcb9650da31c183b94b839f66aa3467d007c33f = "91bb8c724524995ffa9a6a1227585ea465278468" +f2052739c17aab1cf0fda0d1fcbea7288e28cfdd = "657a379d601f9c1a83075a3ded6af624c0133751" + +[58a0364a-aadb-595f-962e-ed87e1da736f] +620e09eaada17aa6548c9f8ac30848dd364239bd = "f373b6d56dc8e96756b82fab0d18f2010d912536" +a8829eac75d9ad501d118d2fe0d03a034fe24fca = "872709b6c2926ca17c3178808e1fa666b2473bc7" +df89fe8b917a44854b449b62509eb503bbef12de = "6519e8f02957993a2e18b49051eaa072b158de8c" + +[58afcd03-4a3b-5a28-93f1-5806b9460cd4] +a8359523cb97075847697d06d5e0961d8c90ec87 = "87cbc2c5d6dba5f700b07ef1ba68935e223fcfba" + +[58cfbd8c-6b7d-5447-85c1-563540e28d27] +02c842cf164e4b9392f54c78f16ef99618d0bc40 = "da890945328e06f0a4f2f6fab712fd06b2809067" +032d39beb8639b372e9605a58ad0fc726e9304bd = "efb2ec825f415f15992444b7b0a913324f9839f3" +259b4cd37491164ee3dd2ac2fe9472f6f9516e69 = "0f2b8b213ec1b4e81a33b9557d1627623a551bab" +29a053230e7992a5cd3072dd600ba309e0a05afa = "208726e18fc7967e65c331c28c85a92fcf34ac92" +29f66ad4d8ba5c7fa045a57c7883eec1a6b9febf = "02e8c1e814fb0dd655738e2f9adfc27fc7517a26" +2f9027624b7def7a8d390b0ea460fd50a48790c0 = "c95bee2dfa76606f5b1903f15497d82bb26f0a00" +37d0f0a7e0069c431a8fb5f61b48b1e4a916d45b = "73e80a1115c44c29fcb72db3c68c91acb8a11465" +412e3003994a67ede779cf33d8c5f57cd0fc5244 = "9178d28a636eac27662bdf0fd284534d2d8f47e9" +549c9fcf4c659bd37eba89545362bbc71ac2a913 = "726668ea8f5a7aafffe023e562513adccceb9801" +56c7b23b53d5d9591876085a39b6589b40259a51 = "8c8f5b613bfac9f1b0d1c5848f9462b2fa8481fb" +5fc047b459d1818a9a76f529e0723e0efcf45ee2 = "08002dedb3877b7cfe16e5289850c74360d954c1" +6ccd939fbaff01105e2911bf6dc0973bbb318ee0 = "89ba2a47cffb0fb50d3b303482691d62ac52877a" +7b60a511e0725ed7a4fc64b04e4dba8b5a2dbe43 = "c393df97267c5a1b2cd856a84023d99512782414" +83443aac580e6aa39e642115df0517a1efca639f = "9bd311d2c9f21fd82685be76448cca0cdce38365" +a754cb57fca1231fe64ce18f1edb1e4749d144c3 = "f40e3e59b0e8461b85ac58b6a9be6b33bc752000" +c7c5beae20166d0b8ec7846a1c0aa71bc8176f59 = "89e32ebb7459a0bd9e8c9b3ae49141b9d9d5178e" +d23805c7849baf00be0f1d81789569fd6c5f5a30 = "8e06d6a0d47a393b0e542c2b5e1f931a8300496c" +d7ad86e26c141b18494e9db46a7ecaf8e4502d34 = "b34e7994471a8661fd6e46abcf5a91d48cd6f34c" +e2b3708f7f2918a99d6ac06ef80be51e37be9994 = "178d13cf0435c020ebbd40cd0822acb210d89f45" +ecb47ea818babca8b9663b3da7be845e8285ef26 = "8e1b0c2d10b75a5b26f95880039d89f5bc1bb297" +f3d646770ee4302f3521322345c2db78d92f5780 = "62beb2a2368adcaebc8b71d7a432719a71f6413c" +f4b398d5352cb00038f06800e91dfc0d7171d794 = "614eca3165c16559b347def98b79d9e23c51588c" +fbccf12b555cc9f475c5ec5aa31bbef06e304ea4 = "e646edd5362dd8beeee683d772a3bbb072942121" + +[58dd65bb-95f3-509e-9936-c39a10fdeae7] +30483121ac46e43738624e45c02cb975fb6ada22 = "e281d37946b509928b957e821d8223ee93b5f00c" +9c2131d39f5a1d840f0cbc0ab7bc97ec319a532d = "1bc64b33c65e3c4c03838c8e2889aa5c23108ae0" +c6f56ad1234adfedf2925e162b3f069eca27dd73 = "8a6acd3f08dc8ed57d654471133983372ec0deba" +f5e9cff4743d205749dacceb2e3e94c4dc786e01 = "d720f21efa24e9d5d444942388dcd60f816bdf84" + +[58ea85f6-5b3f-5734-8a79-3d956807b916] +14cb8deafd0462b3a9cbaaa844a49cbe161e4b78 = "544854bd6eb8c8272fff125b49c264e3bb5c53e6" +2852d1308dab10a6297aa2b6277206aa93fdb9ce = "946e5ef5f4695e9667ad2b6b60871da4ada2cf92" +2bc4c071f61ddf721f15d157410821a72c6dec85 = "ef40bef964d89ee6463fb3e913c6b241c56254e4" +39e0398df68cfa6aab2d2b17a3a7b0bb7f74eac1 = "afeea7053b86b7096b1df7909ec78df9e2197095" +9e9a228c0dea99852bf7f75c3858eb57331f4917 = "e71856b23c81d07c2e5ff0616a70e2f81db7d6b3" +9fa0922e4f3a08977e8d3b80928563379073b15f = "72e930b6b53135217a52a0edf66275740f6eaf1a" +ac7c633f4a374f4692bacead0f38b334c2945563 = "52ddcdf2952c34bd66281408c51d211ce6c33de3" +c3f072b20c333ca6731a2f3b9511f256ed3c7108 = "b5f3e07d64a51b0271e90f61af3a3e2e465ce309" +c464cfb5aa9f2e5286aff74be76e876a013df96a = "6a05ba18630b90fb07a6e8672968e375cd105b31" +f7454e95d44a0755e7e4a60843f8a83a5e2c3dc9 = "576a4e38cf3fc106af0e4a93ef8680cf290523d0" + +[58fbc1cd-eba3-55ed-85b2-f929de2cb270] +ee792078f6a210e5d579f2d829d7406af825f906 = "9b37161a6078ba8810d718b834bd534c235f29c7" + +[5900dafe-f573-5c72-b367-76665857777b] +290f7b97ab8e6e15ddad6b233958843fdf6f8d15 = "ef3b344d1467e176dd723029947123c7fc97dc1d" + +[590503c5-0061-5db5-9a0b-c3321e62fd13] +26811c32ad44903c677b606efda379ce3df01fcb = "0facc68eb2264cb5dfb087e86578428259a306f4" +28fcc22d27e3241249fe1a68219df338e56ae4c4 = "1f3ccb8f003b53859151f803ad13318575f3062b" +568b233457895af9243b4818d980b3c7703cf48a = "4d0ab58b02a9073bc54faebd10c639ac9efa7bad" +7741b69e14d4ed0d9663ebf8aab195cacfab1f05 = "8fdde6c5b3f4e689fe571e873270a7948cae5cab" +95baeb9a3b5b0c9ff477b9667fc24ef9111e7725 = "0213e834b34391169ff9d4fd9c266a600ffc43a8" +9eb2ee362f3f8b9b634bab38709ca86f68ee255b = "fd9a379916b2b4334209a1ab2034a6602e166ef3" +b06c481f0c69b8dd19f777224d66aa21ecba520f = "74e084e79f4119252a5e27c25bbe0be8e69a4033" +b481e4b93a34b874ce80194a8ff5091bd81b247e = "7725d9731154f5366bee28fa8b7ed092c73027e0" +b5524ad5fa5d8852f83d2d65b9a15dfc70d0f88c = "142d893498f5605f717f3027708c01dcd258748a" +e3c4e0882eb037d987dae7ffa20b1ebaec33c2b5 = "e1d2e41a1941f5fd687970a0fc050d7243d58079" + +[59263001-193c-5fca-aea1-eb837d381d31] +0a00b00f578aa7965182ed4d9d3248308831f41a = "d6893a2eeb481b50c1bf88b4b3f1126ee0a2a595" + +[59287772-0a20-5a39-b81b-1366585eb4c0] +024233bf2c536eaf2f720d5e32f9567221fc9e1b = "06c6ddfdfd8b06e03d50354cdbcc03f985bc41e1" +16446b171fcb350951de853af6c7d95a4d16d2a6 = "5a055059c63b67f6a8be2034d1be4886599511b5" +39f6db8ba993cfb4eefd7db302147ea194a5ab0c = "8c95326cee35608ccbf36fce5a317986b9d95271" +452aa89ba598f74566aaf30c5bcfe238e661ac74 = "08dbaff5ec5aeb8ce832ebc73dc0330ab5cdfc78" +6751d03af4cbb75b858586ee408737488c9b07b5 = "c11196278f29cda90698a354aa0c8c05477e865b" +a59a762a0310e536cda8a5bd24ee072bb83cfab1 = "945644ab394d2102224fcc001dd131b50199b302" +b502b769c010f166049afd815561e6325ae17013 = "9ad45bb56e044dd3f61d484e9edcef8c245b4ca0" +e47ba2ab9fabc3fed8298efbd999a2c1808124c2 = "a7b5f3be3d70ba777b0edb0abfdfb1a2222066b3" +eb903be4ed5140fdb5fccba15fb04289a9f639a2 = "2dc00ab69a9ce06e5065898f183c178bc8128371" + +[5954407c-3ba7-53b2-975c-4465da8f8c54] +906bb1602b96baaedf253c8abd73b11598e9c6e6 = "cd94ec6e4ddbd203aa8d23d449d2f89ab9adf48b" +b0d87e4ed1d148c4f642fe9bb5cecef3be864238 = "c6b4cf304ab21c1227a1c809e6048c7212c3c8d6" + +[59d4ed8c-697a-5b28-a4c7-fe95c22820f9] +52da26f0b87dade2ef4865847711bd5d7e0dac60 = "1d4e1bfa3443c6cf7dc59ac0a79737778d063508" +72c6341b5b3ac37a419635a2311b3b99c9afde01 = "f481421dfc5e3e678f48b311c9d8b33aaede3ed7" +79f0ae8e319ca5dbfb530fe2ec99ca23160540e4 = "89b051869be985828dea3390144e064582d449b8" +ed7c803e7a3858b34dfa8e5a359143eb6236be77 = "5d46b7718546c7d3618e8f6127e4c33517856477" + +[5a033b19-8c74-5913-a970-47c3779ef25c] +0d8900f6af14e2897001de7119c089be76dea419 = "5c307b1dcd718934b5c5ed0c02e880758f98719d" +cb3042d5e295470028ee7ed8d48c7ae99f7d7333 = "a60cca1352aea01de328644acc057c0f5cb5f97f" +dbaa4f4fd6b50512ea687e06e797d43850bd1c8c = "e1fbd7f6fb0442615a3247ea94b6c3b992d73912" + +[5a0ffddc-d203-54b0-88ba-2c03c0fc2e67] +140af7eaa835767af7c3010ce665d320ab62251d = "ba4c8ea676bb7afff7ff8741eec77567207cf94c" +6f5471b3dcd867a45dedde15e1cccb52ae8a5503 = "5036147e45c0a4d5741843b58210a88d28fd98c7" +71120affcf32da56fec7547371eb41b984eae5a2 = "e3760cf2179550f77684acf15c757a9f020882a6" +7933688ab56380b95f14694831f645a8c7fd9ccd = "1efd11d47caa452fe25725f6e90d56ac776d6492" + +[5a3ac768-beb4-554a-9c98-3342fe3377f5] +863673c102d93614cc3bbe379daf4035e6547c6c = "9a5f1949f3c5cea079a13438be34d539508fcd1f" + +[5a44cd38-3b09-5e84-97ab-e6762b1e8d4e] +030f7f0f979bae91795ebc1d238f94bcd0164192 = "f1f3d7c136db70582c58174f9fb4faf2301f6392" + +[5a625f1b-6dd6-54f5-bbc2-b57adf972d78] +f75589e0590247824b1a57d986c5f38e915458c5 = "09ab4dccf59c9410356fbc88ecaf1f1a1ede6f94" + +[5a653867-b65e-5b16-a095-b1e26d522bbf] +1cffcbe48882edd86a2076dbd862dc11613dfdc4 = "a34b94ddc169287026ee5c9d45e012018c222f28" +4ae33b5ba9fa1d5c190b32184055ec6cac87d6e5 = "bd8dc9c676bc10dc187e93467adc0a24e7b0134f" +ff769d789ab506c4281f55776c67eaa13125a345 = "48528042ca2f4ddac4308dbb538689a8e90ed040" + +[5ab0869b-81aa-558d-bb23-cbf5423bbe9b] +182ce2b00d831f0599674730050913f92e624c62 = "64b262976e0fd093bb9ca67c35ca58fd7be41712" +2de1e7bae939d923cbfd4fb000921aca42d1a6fb = "a2874ddeda2432c971351a868181120bc9c44694" +48cfa6aec1acb6de62b2aee547281293a298eeef = "ad1ce4047473143c628195f64e97e5c79d9750ca" +948fecdd0b5f669cb3b214f71d5a47759978071e = "c986475f74fd575bd96d9b54043f17f56f41f67c" +a688cebc81cea8c0b72a5db7eda1c3472d7a6fc5 = "e3231e6ba673b3e0c7f1d4782f3712abb37328c9" +aff3dd45ae88abab8ea6e2ca0ce9f45062409c76 = "5a07742fddb502e7a08acdbf41ac9dbe7b240ad5" +b2c9f7d6ba2d8c581f0390b07bb661841c031635 = "1b5ebf959cdc16d4e877dbaf1736820e56d68347" +cf9686204ff5d1d3f129d4d9e50c69cbb9a8bb02 = "80b64bd49f1e100901c5f2f01ae1a1f81209001b" +d7524fffdafcd114b4a49c974791b71a23f2e138 = "6717e9b35ea2721362e144b0b1795f36d90a1759" +e4989f5df1b73dc0027d792a132cb06a9a249aa0 = "8052ae8e62a491cabac212c0bf4db0567f42a528" + +[5ad8972b-8d15-57ab-8bbf-97adc1efcb23] +3da7974b87476768517a9a37ab7e55963cd60d41 = "e66a3d36adf3c42e50d48878c9e6af1c0e183a42" +99d663706343111eb9dbdbba48e8c52b4a7a82e6 = "918af58b54687784b4f0b65c26771d97ec4d9583" + +[5ae59095-9a9b-59fe-a467-6f913c188581] +023660ce7f66c33ae3f676ece3acf98419dc23b3 = "1806daac6b008beb263680875b8ceed742412633" +0c2af4c25096996981e06947f6ae242234bf7c36 = "7bcf1c97b4b1ce2b724a533107fb1d6db8ff2e55" +0f3d493f87a37354071facaea7075701c466b2f5 = "242f61c0e2ddb9d1a2f428e1131b72bffe2685ef" +1c43e5bc71d6f8fc12a161017cc6df13b4c429d2 = "8ed4862426a9e1cc932710b832086755bcdb3c4e" +2ef0f9937b0de33fe1256c499ea0d66d0c6c0370 = "f264529b11a5b3f4b959e226cbaa87ee7fc75476" +305b85d2a458fd6f00f450c69677fa96509ea74a = "f05be16f5b1bd31a901f3f7d3903bd87a9674e7b" +409bd7a4efdd7fff9664e6d72b24c11554e0c857 = "94c39709455cb3ad346c240b2a3610013114aad0" +4bf77fa42c6c3229caa96e3bf46f05d3e938017c = "abe70108f7f83d6c153a141374701a7536d3f19d" +7183ecc621ad58266170cd36178b1c1a3061615e = "2421874d22dbd940e3d904b43758512e39bed6ee" +830936435de28ec1989728cbbde36f335d760a73 = "41cf5884deca6a1f927f6cb9960e80625044df65" +85e21ff3321f8993cd5a4c5fb1f66554c632f553 = "8375350acb0d877ba7c9303e507b2e0cc3140472" +87e13ba4a1bd683608bab2907ced90c8edf8769f = "4acc1bcc402dd694be0a2ae4bc292d93a3516c3f" +899ffdc03fbae021f0f59209ece5880c51cae659 = "9f819c58ac49fafbedac8414dc8beaea54971a67" +8f1f8c3c84804245aa111fb61f4814ae73a723dd = "397090610dd23c992a22c5a21b165156db7594ad" +92957f7870f5b19fdd02bd9ac347016bc6237097 = "49bdaed9721f1a3e90b1aec61fa8290feccbca6b" +9f69a2a734855116336838a6a73b53afddf4c36f = "6f28517a387f292d851bd13733056f10df9ddb96" +a6ed074f58fb7656b55d1e208abce678c8d70b61 = "1a1b227b0a2a1726879e95b4d8e7cb83137d6f62" +b753e8229081aa4c1af9bbc4b233c93b4cd98b57 = "c8c62361bfaaa63ab0d35b179530f5aa84abce0c" +b98ac9bce4e4390e16a1d4c8d27c798d07a65549 = "961bafd814e17b08e825d7c58d7071fa220dbe44" +ca2e384665e86ac27b29579c3b557758bbe4937e = "0a2e46fc30e82420d8a6d0cadc84f258c6ef49ea" +cd03f77b65e00a9b4375f6196169a0fa7dc59eac = "5146acff0a006b7ba8d9f6fd3b69647b281bb30d" +d479df3f1e0a32bdfdc5f1965699df16aad6842d = "f8ac257179d302ad50245b68db5c1276a6682e0e" +e5fe33a2c75dc32a462511557420e6145df1bb7e = "b321c221e9ca6096d9f5f1e4e4a5b424ef8baf7f" +fc67047ee79a8eaeb948af6ffe4b2f96942b23eb = "8149553e65e8551cfdc1f1f005f41ce84f06b1ba" + +[5af79cbb-4286-5dd7-b00f-641670ac5c88] +4e87690972b6e4501342974dca924003d80f1aca = "18012f25a64b3f46d21f50853417eabfba46807d" + +[5afc80d4-9c98-5ebd-88a5-4af7d4f4d6a5] +4ad1788f28c765dd1dc5888cbf27b309c7e41a28 = "f5f7a837a73097041d3b4613c158e6a22e2b58a3" +5759866104cc48216007684a423f43b2e4783113 = "1a464c085b0dde4ba8c1eb41559b23d9fbbf4e3e" +64bf45b5d9dbad6d999a6e29a67e8b81ace8a59c = "3fb67b4e367ce74c57332f4d19dc75675c991ec2" +806d536237e68cbb6b3963f72edbe3015f061c97 = "f4b91f0c1c82b2b2a4758f14aa7b397faffc5b88" +9c82cef8818548e87d120d3d51293e9791c1fc98 = "630c4b1e21893060d071a47af7fd9e29a499ff2a" +c6f92fcfe0bd24215de996131944b3555ff888db = "38429311b549bda7f5bc511e54987cf67b6935f2" +e4e414194d435c8a726e83a4837b008fb945802f = "3e8cff801eaa8e6168c5af4b0d05cd2d7a7306b4" + +[5b70daea-9db9-5a46-aedf-2142e553ecc5] +0b1c81cf3f69e84ba77cb4ad4bbc99352ad23a2d = "28559a23fe9d12a5732399ebc9d6a86910e73da4" +6201923396f2362d6955daa04085a3c49c45c0f8 = "b013fa09c5c31cd06514f1b5ced0198552c46e58" + +[5c8ed15e-5a4c-59e4-a42b-c7e8811fb125] +5a4a9caeb139f2071b0da2315d94e96f45a2636a = "f9239541bf6da69bb35b11c66d1e80da227c21c5" +6fd167f2d38ad8233eba5308aa56648f0764e32a = "26583f66e9fe24136166844bb70449c23acd5e9f" +99ff43a8fe8f347ef533da5331b0ba76e9c489be = "00e341fa3b2c2196e84d7d643f19efd5372bda4a" +c1d9adbd6cefbad82af7040df52ae47d371d6c5d = "7e61190f17da30759f5348a6c3b7c227206f358d" + +[5cadff95-7770-533d-a838-a1bf817ee6e0] +cb0d739ccaec3b9914bc10c51204b892261210ce = "0d8f53a212e7edef8aba8f43c482c49eff4bd814" + +[5cf4117a-c29c-5f6c-be10-22558df91208] +0009fc6d58facafb5da5881b1c280bf3d9ae9d6d = "85976873dbe89e2c861dcf73906ba66b6529ec1c" +05daf8d91e041dfec3c62cc5a89cc61dc2933b40 = "8914a3650faf0d2a1c61f6e3640652174b2ae04c" +7308f14cf471fd5f1ed47e7fdd9133d9bebf83e2 = "60bcefc812f3fc7b2c48587f322450c80a77602a" +bb94e90af02e78081d55225485ffb02143553b03 = "063f2b2d54e97d1a0115327cd5e9de12a7093597" + +[5d0f9de7-4c7f-54f5-bec2-484e8c04014e] +2fc2f7577e9cbbe959b546ba82b58f2681b4f6d8 = "ca8496a613b733d6d7ee6b41382b3ef0e51d69c8" +625f0767b64d6e4a7966042e7882b80e0b215e1e = "b0037652563e3a8643839272c2546c09a605d043" +76819bbc468c0571a0ffac08d4f87edaf6fc442a = "73b6e6af72b5740461cc72259ca6375a22819d79" +82f2bdc78a0a95200531c8b7abc3af6f76d92cc6 = "9cebe1e62cd3d7960bac367071e608db83d4a80e" +a87144762d037bb28fe05be0c242f4f77965061f = "a40155c4fadae3c7bb441b6769c97b2b24dd89bb" +b3262b29b4440478c3176ec5f3a43e5bded28b28 = "620b2dbe13d1ac9f714c4b22cc019d8cde258281" +e9f5ba6dddc213ce308e6f5db496e06029dafa60 = "f455e2779b7efccaabab0078bd854de77215b599" +fc17544bf90f97b8262d2799bfdf4f3931c55900 = "4e0ff6b92c87292722bb4171cf0383a218e5aeea" + +[5d2a7710-adcc-5ca1-ac2e-fd803714376c] +00846d95895a454633f7e3d59b39c549c8124ba6 = "38770631f78fb1eee5e5f5bac283ae5d32aa7ca0" +0cc11e20b0389ba98fa8dc834c7604c469b37b75 = "c251cd6ca558f6ea3ce972ceeee120af441ad0f9" +36112edc444d2f2cf7f3e2cf21cfda757f719af5 = "1bd8f22ca09a488334de4bc0f0eb9e7c3b05ea36" +41846a16705f47c05be577770bd06676367429c3 = "b7a84cc2ee01ae2ca8ade2a97dffa9908869866e" +4d3807b02f9c091e8560664bff4188c69a55c18c = "9e197b804fe4d2d4f00978fc4ab1cdf2daec61bc" +4f5e79622b7bad1c6b3165798818cead1ac6e5e7 = "8eccea7f137f19e7fa5d14898e66074605a7a9a8" +56f2994825cec0a18b3baff673a991c1c445becd = "8d6dbfa166e88ecdadd8b548cd7baf3c927dd2e4" +6cca2fc5a2b26b47bd67aad8588cfaf7209d6ac8 = "f395ed9e0a4ee67580853c300f2b661328ad6a50" +73be96a1b816b82a9fad11ee5adf0377cb971ac2 = "de42f18f62e0cbb44782e2b15c3dac3f9a3cbe8d" +7fc0d93c15b8a71461a542ae95188a86ac852c02 = "e3d9433d2cccd0be401112c30c4f87e7eaed5887" +81476c1a5dbf384b42c8fb57dc61fae53c2ca1a9 = "975930158498b6fe6ed34d66d8a6a572c2147dd0" +85935ad58552916b95ca37c26d8c1484a7a4f711 = "77a794bcdc97392e0fccdf4a2a78a168a9977746" +a735b88818acbf34d35655810e108daff58fc154 = "8dd3f867dd2d0b710d0990f1aed9f6f43c962233" +bf29746cad4e1301d307413f54e2da0cafac02d2 = "966415578d211159af5055817b0f500b95c157b8" +ca42fc0f42cd23ec9462d4a0e0900c5b3ae6ab99 = "ec126b21fb954b38b385e40af6609455c28d8a1a" +cf771a3ddebb980e83235a9da0690364a9f66e70 = "4b6b51ceb888d25269a3ccca56c69bccc85bbee9" +ea6da5228ce93ddb72ed81023e5007ec559b709e = "29b7d82e07ccbe82d82ded79fdd418ec3245b642" + +[5d41aeb0-57df-5a94-a3c4-60ba49600646] +4321d69777db683efa454fdce65e07f52c5bfe11 = "578bfdf03e04aedee6d1613e70ee156f55967c69" + +[5d515f07-b68d-5712-997c-00dd95584880] +4bb623845de215d1913f8609a60e70d9fa60e362 = "9d05fb666a3813c25f4977907567d04f2f98f306" +d9878921c31d474c33196b0a45ab9c635c62c852 = "68d90f393fe16ce91279c36f568813ec43a500af" +da4b534b0a1f8c2e5cc02cde1dae9b78b416dfaa = "6756152665d4120b0bd9e7c1ddb43270d65e3fa3" + +[5d742f6a-9f54-50ce-8119-2520741973ca] +113e834a4669602cf5bd63587e84935ff9f77e68 = "895c9080b56462f75399f6dcde0881032fc36ca4" +59037c3cd7d3a60919e11a03b5cfe54600644725 = "0875b1a5e053ac8fa4e3cd03dc1d24a9e00e7c5f" +648d243221adf70ab2c7cc06014cb4d71a6da242 = "bdcff6e9dae8d248b6484168834620c1e138f22e" +8c3e9e04d2c91be8358c79d77cde991c721813fa = "dcff5f31065679dfff104ee74a56b134c00abb88" +90da3b6fb8d24558d23ef16920cc674e1a34f57d = "2d986cd49929b7e9b69eea626f702e54ee6139e8" +9686ca0143a042cbbd6f4a083ff403156e3b997e = "7ae1cf0b5d3da182c51d8d91da9ec739733d6bdc" +98e274eeb4939aaa7a6ebd2430a731c44a44ac80 = "f2e89bb2aec2af4b6ef8b4733be69d8a846ad5f6" + +[5d8a72c5-1e5a-5861-b6ae-c8e9564f9d17] +09a05b9986e351211ba77292a5f99b2cc8bc7316 = "a9ac47711063e1a6591be11d39e306a03c89efd7" +2314e89c82735418f679f13c339e047f96fef421 = "50143c04e3953879842526ab0b3f128a00892a16" +8b0418c760b29d8002eb7467583244aafc735d45 = "8ab4f28c017f11fcc3a133ca8fab3341762db967" +d719790950e4edcc1690a720fc338ec71d677b1b = "82a9b34fe2ef51cdcc2acbe73c6ddbeca35bdc4b" + +[5def7495-c9ee-531e-9985-6630b8c8d8ad] +05e61ef0e96d6442ea5a19363b1694b9eaf9bbd1 = "e0a4941d5a5ed37d57544cb241966d38db229c4e" +2052474573c3530630b936370d075a0354b043fe = "b4ef781a821a1e1b792c9f45860c2c8c3527e9b9" +9ed64ee140fe72b63161f06682b05f2f6382d92b = "6c7a75b31f1048883768b30ebce26135dd469442" +c37a1df60967d8fdfc792f4a7e20112c6446aa87 = "b3ac4b9f4a67e4598bb453c7ba86082969d23808" + +[5e113713-6c35-5477-b766-e1109486666f] +bdbaf8df76cbaa52c312a6b923bafab7b6e493d0 = "bb7817704466eec5bf9346ab3923dc40f1091624" + +[5e47fb64-e119-507b-a336-dd2b206d9990] +0b648ae0dfcc62bb2d5957e8c172cd9d72894dfc = "b90065b2a347f7d100e485afb0ba7d42a782a763" +1ad8d4f7694b358e83c9f80850c654033672310b = "3e371e46360d3afc59e84286a58d680f70fe960d" +2681517cbddb170c68399b7785f629f4d662151a = "33cbae9c2c884998dc1d1bb2d2fb18e4bdc7ec24" +2c6f848f69a370b5a599b89903b08cd7b059f6af = "a541f76aaa941cf2ac1cf16f68beed8c680e33dc" +491bd05599d010fd1a428bc42f0a4d077007c77d = "f120748d2fc6c5123574724e4ab95b8b5542923c" +6d2fba601eca95089ae504b4716d7d2bcf9ab1f9 = "76f4b3bac66fa182829d1ea3b72c4d45b7344331" +72e1da7850e33aaa96af930d76404f7b6eb0041c = "a9b4d4c96c283612a9fca56c980eae0f1103ee1c" +9a9318deb5e86a2b8d9e25dd7354b5302b6ecb88 = "7e9504d2288966ae6902f64984d7699671802456" +9db10e91143ce26a7acd7d1038e9c820e8f41154 = "8b615497cafaee8eff98841da74ff0f4ab1511e8" +ad8eb81cce2aae8577bedfa7a21304a0518a0822 = "d943d1c3806d3c3e2c7d5c035a480e33fe3ca217" +ce937376e7b0cf385add99e23f4a218802afe245 = "a6a7ef3802753c500cc5f45fc5faac07d234a76c" +d32f6abb461a24ea0709138be526517bb957cda1 = "63861dde501c13394fc776cca943a36b9456ab9b" +d45af2536473ccc1823268624f3e188ef54f3d92 = "4dc83fa5766d5cf64d3a5f8350ffeba1881f8130" + +[5e50510d-6214-5143-98ee-a00ecbbf8dc8] +465b7d9e712144541415d5cda40fa33d517a55ad = "3b1737cf25fb36402c142048aa001dfec208c857" +59b0a355ea2d0ae8cc36e5f61c4e72c958341a7a = "83f32a10becea24fccfc5a1819953a2343e1685b" +8969f2b4b81ccce2bb5877f4bdbea1d2a827fab1 = "4631b172f67b15c6ba779713cad13836310abf97" +9617df9ccec726b0a26e3b244eff55cd819104a6 = "e10c3b3721a45680bcdc0756de30bb77089a8122" +b7432310548a6e906ee239ce9d0e1171a482822d = "19ee1a3c4ff58dc358301dd65db895103fb9f24f" +e430389de030b6b70817f96b36dd601d48c07483 = "3e67330a31dfd9196fe7369c3d4e0c0cd0a91d35" + +[5eb8da3a-fee4-5650-9757-078c5de4c78d] +d8b45a5948dc92695761305b2a3b312e65a5a11b = "3bd745008baff9a489e7386f0a14075fe6fb9fe1" + +[5ed56870-c405-59b0-bf65-7519edecb181] +3a68ec1d06f30c72fda1fe5fca48bc705bf28f8b = "309fb5b4f4b73a08f5c9ee9c3d105efeb9c45074" +827d43ce1c16facf5476934e8e043621b19f1d16 = "436c5a9e0c93db3b68ed4f0652d811637d24f512" +8f4db7be03ae306498dacef007ad59c2d06a4d8a = "2968571ab06a4b199f054be4dd60556b18a6d3fd" +cea177074e255f7a8a4c0f898d0d7bf541a81599 = "1a9cafaa149a9fd28b28036ba2fd045513d2510d" +e162e84453f6bf7753722327b8c91747235e860d = "eb095673d91b862e1a96d56380946dcd977ca8fd" +f016515ce19cd18481201697cce0b3eba85cc381 = "3c9745fa03eca9025ece9583aa2b678816095994" +f298f531c3c8b7982df1a7de5dfc89316f817115 = "39e4c063a904c562b8ad479032178c2a9d62880f" +f57964dd60e17af209fea30a0eb113fc18a23c81 = "91c501362099096045508486d742a14db7709ca2" + +[5eea6763-087f-53c5-84f3-2f10e0978102] +022ff46b065e97aad08bca975e9d95d31aa27225 = "b187170a7bad05c5b3f5ebe7525ea1f0b393ccb3" +07cbf6457f8c0c466fb561be79b54a69b3df8164 = "1d31b3d6c1cade88703fde998459f73c89acdc5c" +100d93cddfc159ec22b79b370cf0756c5d9390bd = "2303184d8e0725d1bc8c79edc7e68c6ea2b28abe" +144b7ec52eeeab7cb25934aa5f935818d935779f = "d8942655f19951ae04bc128c7e32bcb0a16090db" +30e1683aa8ab0ca9e1727ca9490f6b5e9a9b86aa = "8043cc45631958ffbaacb632c5bc250eafd0298b" +3f338492cd8014573d1a54de30049110d22eeff9 = "3cf9d65ef99018b124267a27db81283ef4823275" +5002fabf6c3d275a59060b5e6ecc8fd5d19d39ef = "51175478cb2e08a230e1b6e202e8884abf0d3ad8" +55d3205fc27265e74d1eaf623c87be5a5cf72aba = "ad1c27526d81b241bc88c8771ddc85c7950d6fe1" +8710c8867b644650c3f96ba19085eb671b561d87 = "52f426dc37674a2aff235ab6161509df97d73bcc" +9bf790ad616656b79517e13f14342042bf3238db = "b33871d0d8b9176d7fb8df8ca71d911ccf10985b" +b1f614fd5ed9655c426df1b7615062903fdf68d6 = "22bc67fe3fb47a8115b6ae52af96622873c663fc" +d0492567d5a9bb1fe46f34016f125982c7f62685 = "55182c395a1952a5ea0ca322e0bd3a9a62845c26" +ddbdbbd93572ea39af45c01e45b0a74938df2e35 = "99f09e1920048cf47f6ab087b4b4046b93b23fe7" + +[5f491285-244d-577f-91f1-1ddb566190dd] +479ce19a4006661f820ff6d359ce8b003c47b863 = "e086e0433ae819104ffb0987f329fe9b76fb71c9" +6f7af991c09e161fb1453a6249906e8a0f19b8d1 = "fef5670347732cc9f057a852d930a58182b42ef7" +e2bf3c380fe993908c7234ecdf6232a8053a1eda = "5377197de7b5b53552065d6631c49af95f8ed3ae" +f278d8ffdab47d9192d09e4f886e7ed27a887888 = "1d286e3bb0c7e8e8b1804be27a15fe62febc1907" + +[5f923234-c850-556d-bb4f-28324fa1959a] +0b62815dd98a0331a4a1d5b263187b40605ebab1 = "df58a26d20a9f9b506eec5e0b060deb23008b059" +39208a0717930c16a65b37de4167b2c9f0aab2b0 = "157c4ce391824fb74ddf4597494e762c2dda8a0e" +5c4c00d7481e92d892b29715e701f634e88b8605 = "9efba038a6ccc755c973e8d123da9c66c035eea7" +6e894a436a935e295bb5bcd3fe54aae1e04fdbe4 = "df4b55f85cfe56632476899011a32e67c0aae567" +7be430d7d6f39f02c2effc499578754dcf84973a = "1484b8ef8837c1b472688d66c70dad22bf7cc011" +c3701d88f6d5e2f45246002de716c7fa80907ca0 = "a8bedd1bbe6e1e04ea41b4b7680f2a6323d960b6" +caf0537be36e21d90009f39dfa15e1db00215484 = "d5fb2d124dd39e4aaec9b5a7a75a2ef1487712e3" + +[5fb14364-9ced-5910-84b2-373655c76a03] +146fd2882c514d8499709b5e6a1af8ed96abf9f3 = "806fffcd05d8d38ec67f5cb2198fc2a3c3b97eb5" +15bc5a8ed0d19b3f775b16794b30fe2dcb83311a = "e0f193b2814163d24bbf5f066c37ea7f98751853" +33bec22ace2bd5825560d4348840306983e69fa2 = "7789d47a61b9d028de790378cc6b0feb23b41750" +502a07d2d41029117dee39836b72ba55b3a58195 = "72613d4591016099caca07ab3e459e4fca670f43" +68ee211356a08c3f1d058776b4693d282b5249a3 = "f55142ee88ad1a8c3b885b480aaed4f359ffb7cb" +8ae2caf3b3c93de4b2606a204c0ecc6093aa4f39 = "07b650a9974f838baed7de1800b75895fce58375" +980d37f9ea5830961faf5070e08e61aeaba816a4 = "7232672abdc58094fa3e359668ec2199bccef4a8" +a6d98ef5be60b3479a0f6b01c6b512d6365b5aac = "02947506d9f41647cd53ded5612da8121a114526" +ad487539eae56ace0aa1e9ed5030afd48c4915fe = "d7f671b7a4bfb8e8e6ff1fdcadeb809459b1a49c" +b83c83cbb832f52852d11ced4cf1f53bf3169b4c = "c09c94956401cf4c83d00307670ecdfaf15b9ca4" +df3ad496a8f765ae3119eef22435a568b9a3db1c = "4c272ee43b983532f600b94e61a614603bd72f2d" +f6f69601a96a5e46d00162b6869e24d8fdeade02 = "6f67d14ce981c7f54a347b65da7b54bad585ed66" + +[5fdbc85c-1502-53ba-8f11-285ddf4aa9e2] +147786c7fb1e68bec77f988b543b35f2383631f4 = "c3143e9c05c55b5060e73de5a456e9d3ccc4f456" +235a64b07810412ec318170557622c071e95c3bf = "a0e3703d70772d2f9f50afcd9801c9ea0eb84ef0" +2445d2f4ce11965749cac824c46e35d699aca665 = "cb0d45ce8088db4b96a7da70d7dd318602c7682d" +259b8847f6362ac73307aad4082b8e4036fa5851 = "0dd501ff2c3667619f82141853ac63168bd290dc" +6969ab2c4c902fbe1af32b868d9aca063751db07 = "aefda920f5a696326b7b390590288153400894e1" +6eb8c34c91f7dd417e38069848ba44b7dc2ac7a8 = "92631e5861ba995af4e4538a21e8843094e14893" +c18bd0f3610292dda0c8a99f50377c17cd880828 = "55775b34a271d503dca43015f057130787b53e59" +f70fc751e9d3a573d528c8ef2df5e5225ad8db5d = "8c74ab47cba32eb96e9c84484e147aafd2720ef2" + +[60101457-b834-54f3-bc3b-04499cd57c3b] +ac662adf498b87e4b36543962cfe9dac2c6265cb = "2bb018068f6d40267fdfb0f4a9ca2141aa66c35e" + +[6038ab10-8711-5258-84ad-4b1120ba62dc] +0a316af3669c085467f3951cb354f8284cc9145e = "11ff2cac505119dc9b77844d093e992b89236267" +121e73d7fce6c6f997eaabaaa0086e15fc9e8620 = "21f034ecbf779f3fde7f7a7e4745d355628b1615" +31ae3ca5636fa2aa7f8a2e760d2a82b4f35a1b13 = "df14e3548831ca19dc7edd6f0496cd3c035fa04d" +3ef1cce96f25dc604fc4dcb5c84b51b4c84cd488 = "03f4270183449564db6bb2e026da210e8ea38531" +5135a03ec7ef5ecebe063b19280963947645ff25 = "212e93bc921260015797349d32b22bbe69e6f779" +5ec796831ebbd276f3d9de11f4adfd406c2a7642 = "7839aee203eb46a70fc63b2ed8918179e14d241e" +5ee49051762d4b3aaa717660a6d6a06bd7dbfab3 = "513dc21eaafdefc83ea696560730e7c651371bf9" +760f1fa3100adbfea9916630ead7cfa3abfeb503 = "eadf39f4442f5e842af88f8b17d7f4b6feabac88" +9a5cb5b8b4d2de418f47cc3ee4e1f7ca6c52d004 = "28ba9de5969b2e2d6b8a78a65e1a3e25201186cf" +a16511b4be90f2c75c17b3ffa956137566e7f04b = "0929cab95671dbe09d98093fd4fa7c368032c69e" +aeb9c30e4a24f14b12be59c5a751c5ee6d3f8428 = "7478ae37b6eb70e58623900efa2e969750ac7419" +c2cce971a58f5828c7d89db4157bb753659915a4 = "831fdabe855e6c84d7b1f2a4e5b3a8e7f9acde2e" +fa90fd4028d56934ecb16cddcaaa314c6480cca9 = "bc115398dd7f36fb2cb9c50648086e84ce7cf0de" + +[6042db11-3c3d-5e84-8dba-9cbf74c9ba48] +363700f760be7491975449f0fe54b9382d4c001c = "df655a549a5e3810f3c52fdee14fcacd7c41d9cc" +491d726a3019b73899376c9771ccbe8a31fa9099 = "94e8df21980aed78afab08e958c5b8e8c5bd99a2" +88c2a24cb00e26f970a717f07e19316a4266861f = "e7ce8f9c6381c096205cba839017c653d0be7a15" +bee945293b2798ae605594ba5ab87fc1743e319e = "334945fafcadda8b01237d64620ed3c79b0485b0" +e7ac024bdab9159b4836e70ee51db8ed3e22ec10 = "b74e4782b8b17f865d8f0ba2ef47ce037c6d8c0a" +f41a3b3729c1d7bdc5d8cccbd95aaf3a6d03e50b = "58a5f551b5b74d7aa1d0138ec1808fa0f022b5d0" + +[6043864f-155a-5464-b5be-64e090a46784] +f249d5a5ec4d317a8ecc5fab8b5d9e9fd90fbc40 = "c3e9078ee65e9b6c854b3f6dff75d1840f4211f0" + +[608a59af-f2a3-5ad4-90b4-758bdf3122a7] +175f05a40eb0280597f62e25b3ae9828b9d0f48d = "6b20d0e2506219198854386be7f617eadc08ceb5" +461ae518784517fa6385f390da5562d8a3b1fe82 = "90ecf99386958d6946474a61c36d6e5d232af2b5" +5cf6b944bb5f2ba2e4e3632b8ffc808e3a996ae6 = "d94947354f7edee5df23f3e4e7c13681660c7e53" +5f726acc817b23160fec51f92b813bf4679ecbd2 = "d1089179e3923c0dd314b2bb64a324669101e0c2" +89a00c30c6ac386fe8c1ac7ef58423de1bea178b = "d4922800e3b3f31635c86104de578f7eb79ee04b" +8d3d0adce198ab19c0b76c50a3d7392f5ac9b617 = "71cf6fa23439b0bdd4aa0af0d40869ca1e22b8b5" +e28798177aaefd4a97d033ca26c620117483ee3b = "d099978ab2404c1994931dd327fcc2645f12a137" + +[60bf3e95-4087-53dc-ae20-288a0d20c6a6] +038460bf168ea2c0eaa6284fcea421dc403a1f41 = "12fb8d6f8a98892ecba58cffbec170a9d746ee79" +1674755b4f54c9aab64a80f07b2ef5246581e011 = "678088e715fd8eb04013a2592b27b43e7b686ecc" +1de8b577e482d659b9b858e7101d6fb683593941 = "1214289589b511fc607eab0004a3121c08194a6d" +67d60a8d831cd0bfa4283f5f8c2e5917ca9dc4e4 = "0772f5afaaa501465b7039887375350f8d47a1b8" +68603c3d7eb03735fc283582e0edca3245d8eff9 = "e9f1da83697ca69bb2052e06ff89987934a316c8" +754c201c4fdbaf9866fa7d8a1b4f26f6403aba95 = "3c06a2d32030a979535433f643048f5a8b14c9d0" +835726b1abf25a50e55d132152449306e58128d8 = "2c169dfb8da3ff1b4674cf5f62b170788b30a60c" +b22a471fd81914c097622af9b931aeb7668dcfe7 = "365709e01d9b34e0b6ba9aafe5cc8aa54811ee84" +b92d3f2a0a22d1100b5dcf2d0883e61782bc487c = "5ee8f1b9ce5fcfe410cc8c8f1e061b4f0459edb8" +ccc0811db3f4c29d135cc01f59cef05b7c7513ee = "73276f1f74836df14752448b42773a9826381ff5" +d3d3bf632346824c22cf1f7fca6983fdf6c18cc8 = "4a9253b9a85e5ffe1094bf3228868cacf6c276e9" +da2b074a65c5652df8f2ac09a16a7c6c33c435c7 = "7b36857f8d63db1c8b9b815334bd3aed0c4a725e" +df3d07cf225abad13dae5d089e9f8a117d1073c3 = "91666b9bc19f32a79c5f0d1a12d83bc1e4990ef2" +f6fa76960508dd72502ecb3d4f671b32fcdcfb63 = "7c09c38a8be81658f17e5a20b2b06af8d3bae8d9" + +[60da9cfa-42fa-5d4e-b2f8-76785adb806a] +24f6a9b133e9a10892fae182ebd0e92d06d43181 = "02c1588db35e8665dfe2d04642fac31666982039" +29e76996a621632b998278b87d337ef987e5ed7f = "61f7ba3f5eced4a7b6af4dfcf4033e9b9affb9be" +44617a08e4287b26c095202828bbe3f3cd6aacae = "19a27998e870bc3ca1bbe4a8e1d8c59e5d4847b2" +57c46f97042f2b3431b00713b27cdaae14b1abfe = "06d4677da5666a6cd6daeec533ff87bb527fcde6" +6e49c097021cf7b3c6dfbb7b592ace1e048e1970 = "804480a98d89490186e5f663b5f4588b374f1e89" +b6dd051c7a4ac41ae858758bd4cf94769175367e = "9e37f88093f4fb1034787d47db70b81bffc74482" +c23bdfc89bac830238ae185496a61c8c8d8a53bd = "a39c4e1134aee8f5806f47d72ebaf551a1e69020" +d4bbaa02d524a8ac36eb772d8b51bdce7e941701 = "29f3f06bf8cec4fb06c0ff05c504bd0498aca763" +d8dcfc558d9bd79d8e739a08023d5f39c1da870b = "1c98cd499597315968429d378891ab47b7a9f432" +db3eeb25f1685e92fcefa8549c68f3d71aec0282 = "16748eda67f47f2c9f976f4f1a3f44c788a5fe0d" +e72feed4e5d12d8a32c6244dee270c46f9c89652 = "1756bf49d80f6887609960ecddaabc3920d1f5bd" + +[60ddc479-9b66-56df-82fc-76a74619b69c] +0367e086f5e7989ea11a0279ff66c8e1a0f5739f = "f1d424d735520391f96d275cad23f1d278623477" +16ce5a0ab783bcf0b4d125001ffe524b3f32c192 = "aa2a0e947d6d9c22c990ba7db7bce810ca17d642" +447e818a3e263ea888c5d29a068955447df338f1 = "389a10a486a9a833f9be84f10f7a60d409c99f3d" +50e45898c08bb1242da7a407fc71f1ccc30fc6fd = "a5e255f9bb222f0268269fe50c1901bc7557e74b" +596aa19d8be848dcbec78d08906baccacc103015 = "e877b44e2e40e7e119c8632d85af6b80e2bf0e5c" +5ae83617c34634678feeb0064ebb13f16c795d9c = "71cf3ee9bb8fb26413bd045dc7639eb250bcd04f" +5be00a21c589d6d7d70913287c18c229d33180ae = "7fdddbe732b2765d167da4d313198e16e23694d3" +6362a468af46f42ba114075486f5a68246535b89 = "7c1ad37c7d9bfdabf2dd1565b4372f8b56bcc2ff" +8fba494b1c2e93d52351e8b7185cef69e0f57b13 = "35f59c67a09a29e477d1d2b041efa9b300ebb466" +918d24309220c4403de01362ebc08a0032760e90 = "728476882745ad197c0f41f8d9ea48beb04f2b6f" +d15b456ba24833cf80c0ac385dad42bca33cc5ae = "bcca98cffe4d4cc1cac752f140781a9f3b9d4919" +e12b1d2cb3fbbba8bc36780df8f68bbaac3162cf = "140a66e3eda79f9b9d3e8d123364c51c9c6626b9" +e2ed248111052998548203da11e665457a087bbc = "2257877b6767eaafcea289de151a86d0cd1b9a16" +fc4608e79aa7f99d1cfaffc9004b9c48c6470b38 = "7acb25d328dbeb29ef98083388bf3343337ce808" + +[60f91f6f-d783-54cb-84f9-544141854719] +2eb362b134b6d474d811dec36dc40ea23191304e = "d1acd240e75d9ad064cc710763f6ee23e7b4b3e9" +5500d2770a4f6fc26ec5d052ff6ab507e3d0c807 = "ce6e3b22230c81cefb51948a461ff2dadebcf179" +59b3b48c62ff08ea20da877f534104d01d9c5966 = "eb089403b778869a8967a46d2a9945b0c57228e8" +5d90492c295a2e95a0c49e81323f305ea2f60d72 = "feb76fbb7d99781d14b4818630f0865af3b40c66" +6296b9f7806f61783cd2bf90fad756fa58722e35 = "853391741757cc36e308b4580754457e20edadc6" +636f080de00a73f516ab447003e7e17a8ea16f70 = "410ad5bc5638679c195d89d3be19b6972641b1dc" +71f680e2005113db8950c7c998d8fbf64d0e30d4 = "4c262093e25df7d6a7326404dbdd0eedfe749414" +820ae86f468157dafae065f714008794784489e9 = "1299ef09bd3e2c9227a878f61c50245433d1fc05" +83d76ecc71f9e9b3b8d71435f70ebfc1155ebb7c = "fb953e25958978124cba46b9fb132f414443512c" +9390e909d0578c73cb2c02ba92748ef55d5a64c4 = "26ff36dd012f574350ffdc81eb24f7f517e9fd34" +962be1a163d7627fe6b7e9d265977aae310d019f = "2cc8bc7c844dd6d2e89c3b98f38f4959b2275a20" +d13d20a255615a8b43e3850fb37b6b8af9a75e90 = "baafb551e004721fff8cfcd2fb71adfa361d8aa3" + +[60fe8c24-c5de-5536-9fc4-eaf503943938] +6562609950ab283ab3a665a4725c253ab717703d = "d256f7775f49abce3947cce7929e98655e953652" +85403cd277a87105956d968534fd3c0993a3dd21 = "fb764c6908fb8215ddcdf77e4b3f1b40f27230fc" +a251c0228f5ed197a98c17b7dce8801b271e18c6 = "38011df73b3d2ff5824730f89d408bbd7b6f6f2f" + +[6112ee07-acf9-5e0f-b108-d242c714bf9f] +3bf8ff2942a4a84f4ed19c081339dbbce7a09661 = "f9e7adf3a7d1b19424001ea839e890417a37bf73" + +[6133562b-a8e8-5ea3-954b-37642b766dad] +0c6156b25533a54dfce320ffee41bfe0ee22aaa6 = "e10c4fd17c7ee381183718936fb2356090e2cb28" +1fb5c1ac3a209cbc44a742927a44ec985fda7d83 = "6d3e75c18cca9fc94770d6290ebe9926acb0b642" +50d2c6ab6b3fba784fd2a8f6f18c7584dceb6e84 = "329510b543d6cdca3852ae1f69c92583bb4d022b" +e0951ae8ca2504d50e6b515c2fa7df251f6f8c72 = "01b4204e2591c95fa78ec7f54d30033ed4467d58" + +[61744808-ddfa-5f27-97ff-6e42cc95d634] +2233e3a22cc1c88ebc20bca6e5fb66d72b4f3f9d = "e9e58e82f64820e1f84c033a5ccef4676e803c4a" +2a8556ac9c0823ae354e8018f00744f661d8d028 = "d11967bcf8d55f39d469a6ee3d8aeb2349b6bb23" +66939198def2c599529760fef0ba86f27ec22043 = "960d14eed2a21f86253ef155448481a3407f08d6" +839f85ab012297aa241bf7f4d58becfb110a6fd8 = "9802047c774bf88570aacbd00109291c0681ce7c" +86f2f33c5dd6883dc715ddace035e052549ce181 = "48a3f57052f99501d210f0528b9aa48a8f4b938d" +909df5b22e36e9ea75dedc2a29b556482f4ae040 = "715c9e3247e057877dbf79217c0a52bf970591b3" +91a2d75cae42131348c08c0f5413a12ad588e95e = "7bf76c9b91daf164f5586140088f837804100ea3" +920dc0a7c98ccde364c671af3c3b2ce50ea07f98 = "0726b2b4c934fc95506793c5beeafe6988de8d26" +ad2b0c0e81e05f7cf3c1bbd69ed79b6cde4ae51e = "758cade9d231ab263d1b31158204c24572d2536a" +b0f9b09e294609e45864544729e4f7373a15d2eb = "02e67478bf32626b08f8c3c3b02c0e44ff978f0e" +d2ded777a580aac999fc8d42882127ee584fbfe0 = "a18e90f2a84d556cc0f714776ef12734a9bb1307" +e1ff4a6052343c43b6b11469bef645574ea17fe3 = "c1a8791acd7328303e7b0a2060aeca2c596daef2" + +[61d0e4fa-4e73-5030-88a9-ae4c27b203dd] +5078b5135f51015a31a846964e3eed19d1e82b3f = "3610a5c50f1e6764497a5c6e1a0449af638c5ab4" +61c0008b2089be20e3cf80da00d42568a3eaace7 = "ba1ec3058795a1475656c5fcf34e0227de950049" +717c023f72f50d979a7e1a8b7af05188596e9b45 = "707a38a29ced5db3b078a24276fb30fa33659b3a" +8243617091516ba186563f97a5d1983c08acd471 = "0dc992501c676be05b61be59814f135f7c1db9ce" +85db148fb562078b695ea0c2b382d82911df007d = "de94f78c7872e8c559cf81f733046f3165864664" +9c17be5a5ef1e4f9cdcc69b69e9c972c7e9965aa = "9e14d31b624e309c5afbb4bcabaac3910228f925" +a58c2047be9942b15b96037494b1407cd401c9f8 = "a4ec15b0022e3bcb2f05bbe600605d5e6dac6804" +b314631195a5ab269f2cf2fe4a9e9c70a39b45ff = "06cfa1fe2ce5628a88bffc7e92f615e82ce3794d" +d5330b6aaea9a5bb9d00d64d8991464c1fbc7f6d = "9d38e4352f05be7bcf66f7c35c03a5fd2b7f1e3c" +da741d69803f2aa43b4556cf805adc750b979165 = "7480dc6c133532f98a87896c38e2e6a7254c4ad4" +f29e3513996bab4e4e1bf6a5c708a36aee9cec2c = "9941f0e532c68220ef616ffc8fe9877c34c7469c" + +[61d5e40c-f051-5c04-90a0-b0f47eb95ad5] +48cc2760d9b624d99266cf48953a61433245934f = "4dfe9734fd557606e61cf6b2f6d8e409f4c62051" +4c8c281cc3528a262e74c39b0529607e23cdbaa1 = "01dac348b3803be3f95afb12953aeef9cb6de4a2" + +[61d90e0f-e114-555e-ac52-39dfb47a3ef9] +344844e806b161d0ae9be532b15c6be4be1a2b96 = "49f3c640ab1844005f3e3a3b1b18ddde801409b6" +346562416212224b060040a015cdacc653688216 = "6bfb2dd9e7b170f5bf51cb937b6451b8f92c9b8b" +4b351268718b8d3414412563129125ddbf9cd1c5 = "d0e91ea175d553bfe19fa0c7316dcadc8d514cc6" +63f85f5db1fb7ea78b6f664d00ed8b04d3064e67 = "30c734e7dd07d557b78ee89b1cf28902dd229252" +7220a3f210eab2d9a9466d4c18a2572c67e3d5f2 = "414980497ca8c3bcc2a9a5cdbf4c8f0695d4f7c8" +cf69b8d3449e9cbe1f356f01356ae42ebf7dd375 = "db79ff0bb315ce267e2b8b38aad6632319c59934" +fc698b9f4e82706ad0a73982c68768a15657f138 = "6272c1d57d1bc242a6b9949a0272dbbb006d16b4" + +[6218d12a-5da1-5696-b52f-db25d2ecc6d1] +01d215bb44aeb3f6d560a06c68d93ee66de89dfa = "379a21c5d34a8ce39ca5bd8a55ed43b759f0097b" +13d4687b170a6aa654755b20131c3679ce3abe8a = "83a0a7f996ca4f6b7debfe05dda88c6ec40f86fe" +360c947635655d4f375f2b5e74eecb90421e0662 = "d1276bf872a654576888463b82e9f6f94f86ce30" +5ba08ce9f6dcd6571ea7a084ce17072bf5e4dfef = "70e91a1980e60633cf6255c67b0c448a319456e1" +5d5b56d6bc38eca209cbd5a3593050e998e10876 = "5255ad0288f7cef7089e543aaf902a63fc9fce8c" +78e573c541a63fac98e01909ca82ef0f3d093cc7 = "4cb2899e16b99bab250238a031f1f0b27c8509cb" +7e698b4b3a29d4153540fe386b8138a690de69b3 = "2681c9b6e511048dbd40fdba1f6b5043d915b237" +963ac69959870034ef0caf4fe96f5cef9ce5db87 = "faffd92506df154487f1dfd67c1f65f191824837" +97077063c3680a9249b4e628f8dbe250aca57006 = "a2110b154deb1c9a41d11cc2d316c2867dfbf3d8" +b0bc710b36608ec5c759f6babe9252794a5e3348 = "5adcf326a1122c1cbe594131137a3c90282e9163" +b2bf29bf5f614402cfef8c0aaacbd7bcb2945a88 = "f00c9b4054b1f407d4083cc28e86a2190e28585c" +b756808136870491e47a94c852b4f21b4cb20546 = "5f0bbd120374f7050e0d6bd651485ebb29539f41" +bbdaf04d8681847d8a1287bbebab8db70abb5cb2 = "2af432be75e10587c2d3d7873dba1908331fd22e" +c776da46d0e7de4e43cbaeda2cbb7ab9de4f0e0d = "b738345bc948100801155a9c9ad1aab8fa941d2d" +cff35f2cd664877556b323b2f757455632ce753f = "5d1d6d8f68ac107c5f80dd92c5e1ab37b479de07" +e81999335e23773d9569754e9237c4e9939d19cf = "cff929e379f1fc72f5a555c0da0f7ab18bc86085" +eec7b80d92cdf35a34f1418007a6a6f4901bec8e = "a1a581484066d93c9d0480ac80ba12aea1976df1" +f2c74fa77c8b29a3e8132b0ddc23a6fbbc75cf2b = "ec37d76591395bd7f7d61cdb3c8453b171347b6a" + +[621f4979-c628-5d54-868e-fcf4e3e8185c] +486ce509fa54777ec478ffbb701615502a931022 = "38b2795270122878b5058466f00dec591fb57183" +bf0be1e7aad5517c1424c5d0ec11ef65a636ace2 = "e58fd9607550da1a5541cceae64400797b51aa93" +c1eb41df4fd32982b9e1179139e64d762e576a69 = "e392e5257d029edf0b12172234be6768b77456da" +f9772b0a32e68ada99ab6e67fedd2e89747f380f = "f8a8236a7e8180b6d065559f497e7a62cb01ff3c" + +[623a49c0-6a5e-58c5-849f-3852f4baafd8] +4a30c4905aedbbcc05876c8d068c16970a5d3adf = "f4e9cedc67f4008f89a6b7778a14449fd6c617cd" +53350e96fe0c8978e9dd578e85c180d0aa6fc169 = "4ca6080109b6fc1f2caa985afc54fa60121f36f6" +5bbfc945d2ef3c376ea2447e31c1818b78445f3d = "8e0086e40c05ef3f0216903cf1610e8a8a10b115" +5be3b115dce821e2f5c4ccdb8b146631ef6a42d4 = "0634b25cc05888b44880f1ef3705e10571372f7c" +62b198996a9a81c771cc484f352255c0e52438ac = "702a49b3ea453b92438f8997ab092be7605f2b1b" +71b061cf9df0cb6c679ab1a9545167731d4cc4d8 = "2a9851d48e682e5731833e9669c57e7cd5ab223b" +c2c8203a2f4981d0d9e523498bc8adb6cf9a8b33 = "a871370c7effa7d0a8d5e857f722d55b7860dbc6" +c95ac1558b34ba29fa7931941a6db94c0347c089 = "9b1a625118a77489017794ac5d71de704b4fc352" + +[62445c0a-8b1f-5a78-8e50-569da60f0d5b] +63992016db81717a6b225b55db37e039e0615b14 = "3c1cd5af2ee2f387ac048692c68ff77ed7799adb" + +[6248df61-47b1-58fa-9b7c-c0f1183480ca] +5bcfa0912b98f130004905b96b1dc186d1641899 = "6eba034bbf842dbd7ecc4e16772c73cd41d33467" +99ff21e2fd4281db58e2142f9d313a5f5a8aa92c = "af78e76a89e863fa64e14e6eabc6086fb52f41cf" +d42bb70039681ea20f94acbaaa81080b4f333b85 = "3909155749df8c3fa65b272ed4e52d7b56c3be94" +ef9342c7610f47191a5cc81b86a609fe908ac0d2 = "418c2cdfe4b4080e4e92a8ad5d4f351c6ce4a091" +f9b42d88a215b4f6333c7e6dc929b0e85cc7a235 = "80989cb668aafef51e264fa486b6ee15f080a54d" + +[626554b9-1ddb-594c-aa3c-2596fe9399a5] +130f60c0fab66fa183da1cf65bfbae93f6b66cc4 = "6601aedea3756a578754e24dd10e32b67adaa6cf" +558c7bb474caae1c1843e4e9c5faceefc439fb5b = "91a85b864e3874f508360e9837e9082d2ad3627b" +585ecf34b917a6676864740a0cc5b279f0febf61 = "2ad0e0c1fa519d867056229809ac4c55ffa8bf53" +7aa9143a9fea334cf38800e7e151d879cd17bfb1 = "8063b598f430154211b44024b79e5965459b89a0" +cc75c3f295c4f6cbc76f05a5728ec160d78d0495 = "bdee787d9c212b4d2b75dffac4a5c0e2a21a570f" + +[6267b19e-4913-54ff-aa69-3854904c080e] +4fdaec1667c0b5ac05ee251519f6887a117168f3 = "a044c90e61a6f0436fd6a843d897e3a01d19e20b" +c53892b3f2f1a8e107674e35083c44a8898375e9 = "c23b838b1fecc5346cc5fe5a708b539c0827e950" +c5c7379ea6dd4b7fe5787dce9522f699320544a3 = "fb210d88729f9effb3e1b7418400d5d2dd257a84" + +[626c502c-15b0-58ad-a749-f091afb673ae] +a1b614f6502cff635028cba19df624c0d30e2cf4 = "6139acc54f363ab6956d7b400fc853822a316205" + +[62b36e50-1e62-5d4b-8674-689cbdba93a3] +39c350110965350e077248b770996692ce5393e3 = "9c7c6580d7f53f7feae6fb222bb472a24c046177" +898361c92bed996c06e6368b6cbd002d49254fa4 = "264a285cb221f9f5a3ec3b9a3a66db5925792264" + +[62dc39e5-5d88-5cae-bbc3-a4b2e7a5ebb3] +53a75b24f9e5e3ed48c4a879f45bfc6b7d7a1d58 = "56958a18d4ee566fca9fcae18d779de44ebc527d" + +[62eebf14-49bc-5f46-9df9-f7b7ef379406] +387d53615351c67123ffa10c5d9402baf88c4cf7 = "2f1d3a5521b4b3f77c3411a10c3c4494337bd979" +4592125dc41cf1a19ba92f3127b0c9c790068fea = "990f3c03fc53c8239d7e12948be673417ddb8326" +79dbc6682cd664ac5c35373ca8849a5096fff7b1 = "06b4471e171d8053075a9dd1fa8eaa390c1746f5" +e2a652efab8cff75b489479a9f56cc5279f81663 = "4aebc0346288201ef120a01adbea254ec15033a5" +e7dd063398bc712253961c9b8f0bcb19b72a3f56 = "0db8862d2356651b3faaa36a01285537976eabf1" + +[6303bc30-01ab-52eb-8b10-60e47555a8d1] +9257e5351f5779eb885922bbb1c5abd36348a5ae = "3027ffab6837a97f6c74113cff0a6d52079fb66c" +b2804f4e5aa453973d8a96d0d488c84e29d58b65 = "b35676792cb0e0afd066de1532244fc6ad1d9c91" + +[6310b701-1812-5374-a82f-9f6f2d54a40a] +003ef2292775c965ef24e85d0fb9170e5ad28331 = "936cca8ae80e9a478e78fee7d2a832ce84ecedd7" +1d52680d93782c8fdb80fe07732b06149a44fa26 = "e82a774c4c630c6821b3d6ba0eace6d96c943397" +44c7da775d51e1b021ec76ccae0d4621648b8390 = "0b35fe60880b542f964b6c5e399090322d1a37de" +74902502cecd0f2b98413f63816e78e8c1ac3132 = "94da036e4e40b046611cb8a4d0c4fe44e56aeadb" +9273207980d05b8bdbd736064db837b3b750de46 = "e9e5f3c9cb29bfb2cc20d64720b49e4ca4b46634" +9273ad1bb15c35c1b8620c79f93411a79db72008 = "37806efd65a26b70f00eeb94b09f13c6870fd3ca" +c1d6b12ed5a1c030b9dc9c80ed55e74b59a96bc7 = "d01a86892ad2ed96b457d08215328b0c095eec58" +c30002d493bb58592e9957f28c77b6f8b47f6b4f = "6e66309272da13497cb15ef875d0bb2cb728891a" +ca2b16e44ed6c700e9c76acffeb3dc381324ecc5 = "932caa3c201376454606065a1304bf23be78fd02" +d97c98aad086de0c70960e288bc48b84a5a07b0f = "f6a634fa4bfdeef8e210b175b593033e6f532ba4" +e608e4ea818d00cd029ea0bc5c5b78ce32a6068a = "9ba8a14e88703f7ef4feeb3c9f232028130fbb48" +ef008ae4d1cec972c38bb433532c2a6c3edd5212 = "530db403ca955d7f8cd1536b8947727095321626" + +[639c3291-70d9-5ea2-8c5b-839eba1ee399] +77365344fc73b9b0c7a28da6ee9501edcf5a4491 = "3a5edd31a81f40d11d2146534e814bf9ea4d8f71" +9e1c8526daf4739fc513f77881398412cc22a2c2 = "dcb461b62d8ce23a106c42806d0ac3977e6fc135" +c81a37385d274ab6facdfa46c892fa4b34171ff6 = "f93197d5d1654aa2790d1b109d55efe7563e2e42" +e27621f1d4fbdb9b255967fe0c68839d222ea470 = "67e875dc48829ad6bf49a961b2f447bbb4377dd3" + +[63ab32e2-8cbb-53a7-90e2-97c3cf4a3a0b] +508efb581ec9d82b70129ffd402b8603f6b223d8 = "a5b0718fcca18639a76072fb8249e1b3085f5f95" +83eea27a28607e9871b3858ba4ed1deb0300cfd7 = "816e150b213e79e154a90ef84f781574c181270a" +e7094c113130083016f96f9a6c444b72c2938fb4 = "5a26b50d6303acb3d22b1e58289d3aaff9421169" + +[63bcc5cb-6a41-5765-9feb-b5d792dd5d92] +10a3f9e63191ecc073eb4ecd5e1f3771c5fd3545 = "2c13bd49a4c503a0e7d6d09d5c5ce7149cc44476" +318ae8d2815b27bf0c688b8b4d7566206ce81a63 = "e000304b7b26fe070fc0ceb2a7305411af3f2d39" +332055212d0301dbc13b056298c3541888065cf4 = "a322dd07add1937063adc833d8d4a5f45f567604" +487db9abc324453497353b954ee710fb3668404e = "2b2e834a58faa261da88456eaa3aa6ef25d02802" +62dfa64b98cc672ef28a2fd06f7ad9891b5d6605 = "11dc505640d6bfab41beaf3f62f658e1de7ab61c" +8cd99a7ad128cf27cbe7c08e550a5e35b9bb1195 = "7456b73ea843f2db8621eb14b3d903956c756d41" +aab656909c22df2375b0eb5b3ce9c88601390ee3 = "8faa1cf677ff1d842a1725560c3148bbbac52fc4" +e12d9587bce95f1b59ef3ff86f621c6b65d99fa5 = "657412e64ef96ab96d4d7c2e0713ae6b631e0621" +e45dba650dd6936bd8ddb89c0ea20acb2c713576 = "9bf25f584dbbb10ec2d6164aed9534f35dadf146" +e824c76092f920634556d7d0c06006d2aada8be8 = "cd32b9d3b56f87eec787d30a4be9338c4279137e" +efbb6d052e902723e95fe7cc25a78fed991477dc = "e57be242f017c76af61030ed054b4ff87ad564c9" +f4e46ab283307a8a2bc95f75e4956dcf1d543027 = "26aaab8584c5a98dfb4c88cfaffeb0565f5059fb" + +[6405355b-0ac2-5fba-af84-adbd65488c0e] +0456c9a3eda0212d0ccdbc2e9a6f123af528ef1a = "32e3a875eb3e835e7b6b90175dd0d7f8eb430fc9" +08ec3308d3711a5cca6c0c3f25ebe8bb95138424 = "a76493dec37a69b1f0dce6af87dfa01b597f387e" +0d01505ef99b6048353f2b7d5a60070eb7bfaeaf = "11e99b0f62b2eb40fd813d4a5cee17dd3c972dd9" +1545bf365d24475d374665680e5f5afe5a122d39 = "2f05668a17ec94ab45c5199821f3568e67b5e56e" +1e623f31441fb6fc1519a3f1abbd528b1716457c = "d31fccedfc6776ceb69df35165c428487a6a018d" +51ff40d03b6ecba0bbd24b1c06b257c3813c30ce = "880e8d3957e8ded8e1001d87cb086af60670a3be" +5aa0e0b5c472bcc45c3c8f651147d597325adbaf = "d2ad7d36f06d496239c33b6c10b8abdf757472df" +5dc7e6c057282176e691e0e0fc2370aab1fc6d3c = "5d49c8dcd84848c7d172418132744b501b7bf07d" +5edcd632e4151fcae634ed549ea8d5e1bba77fda = "f121dd2baeadab19951a4da9602500765a6b7199" +707b184522622920ec104ce1eec1c59a3344cff9 = "4cec113be643fc6815b0bb2fd8847cb808664159" +73eb2a17eb7fdef9490a6ec915cd0257d312c4c5 = "3d7a8efb727d10e5c79d6d8a40fadb08ca602de7" +81d9f9270bcc7381ca4a5a4b228f67dc6dfd40c1 = "56b5d5b43a048c79ca5b1626b8551fa3633c9df3" +878f149e26ba24fc8d4d192d4496a576defa3a2a = "b4e98a4d6dc1f479ea07ad944e6693837fdb0a7f" +b605a2c05406f53c88957deb87b14b3e72bba92a = "5e9eea43d07213e55d7615bbe6363154ef19e966" +bc1240b0df6efeb11f3d6afd6ae65b1f0282008f = "ee1a0979e8a7c05ad3baed88b70860df58d55eb5" +bd10d626db31bb01db8d2bdd1fc00d041c28f0bc = "977b68ccfb1be4ec7e4214627aca9e7e1d2e70e6" +d396fe450334655aaaf9abf27e126e5198afad40 = "adb3c8b89153e545d7ea4afb79f92747338d6981" +e1dfe0295fcf6a8d72b4a27591a43f27e9ec313a = "fd4e1d1b203afb33d857282ff68cd6fefabfb4ec" +eb2e7ee4edebdf42770e2a5b0c365ae282f98fed = "9fc23f3fc0772be28be22bd44839b5671d181727" +f47e8c83d00c538c53ecadb3853cab0dac056f45 = "a3e444e67d1e8a3e0678808ee59b5575fa3cb3a0" +fdbd277db938fa4c2cbda4ad1e9e1d9b57ed00ed = "d6f2e8f01a301687827691d85da4c295b72699e4" +fdcdca468436d0d1cf5ed8e194d8e542c09b2fe0 = "eae1fd7d25d73f4d77c52ba3aca2aa758c3cb464" + +[641c9d1b-7ac4-573a-b895-dc361a5cd6fd] +04114f3e8b2e3357f0303b613ebbd9d5ef13ae7a = "9714c8a3ac41b106d58ce6e9b51ccc1becc18df1" + +[641fcd17-68ae-5251-b519-46a2241e90d2] +2e14b7140d984e1a5c6942592effe0fadf850e6a = "8c63279933f5cf9ea2b40ee16f15d11f152becb0" +5bdc1d67d7c08e1032b2cc88e2524f8421267e34 = "ecb55948797a774b7339e3f8955ce6a82c3cac5a" +cf9ca5a8e1b0250c2c0642f5351e9902c5557a2e = "71b9565d9d3717a7521b8f06dbc018f016f9293b" + +[64499a7a-5c06-52f2-abe2-ccb03c286192] +091e31ab28b2bfc6ab9747d78d6325560d877345 = "3843d7600c794cc8ee35056909a6eb6ed7d07d18" +0b30123e0abe5744b6e95055e0bff3ba389b2ccd = "c2fbcac2a0c776247cc6416c49684029f2fe10e5" +15aea7dc1ffbd0a7d7b29b7aaea5aa06a3620349 = "305df6750f48f2f815cbc17592dd912e5a26321b" +274049a1ff289e0af180f7e49de6ffe3223b31c7 = "0c95a740b28c1d27950f5f9c05be02d10101d4c5" +29db8c4454c7e1a0308b664e15195e66177a8642 = "4ef2bc772368751b6d801b4540f90fd2354d93c6" +335725db8e7ab838596aa414de224dc5ee32e1d6 = "fb03ab94c7b5531608a3dc059a9566819fd62b82" +374e459b7d949a5d5c0f949fb8421b85e4a453b1 = "f60073ec11f5554d4369ff3e2f3c7ee222ff3890" +509bca47f39fdd45268cad1a74fe77faf1ca16ec = "506af3174b620929103fdcd940aefc3852f82020" +569269cc1a9cc8505b01f8d3a07e448cf9cbcd16 = "7ab60f6030b04b70d91888476ef19495bf61be51" +72e7b86c1aa2d572437a7ba271ea19c9ec2a40b5 = "e1ec115baa6e6f993883eebdf307a9986eba98e2" +7f18be1988edcb29738e8e1a10ae368d4f7be168 = "c016c2d0f1b6a7c8123d5c9b4c5204b4ea357267" +834ea4946bc96942a796181d16b17af27b2d4f49 = "61239856abd0e37741cd892ecd6da6511c531df4" +88bb0b3fc624755e784acfa09ad95e71b94e36ef = "8656fa8f2fdde48e539d70bbeb7303d01453f5a1" +978fe83eb74264c929c19de5a593f4139aae2077 = "b925f6abc7399743518472a778c272712ba35e4b" +9e65e79bfd23c2eaaa1e310a0e7cccd0251456ed = "2d69807af74689734a725ea50f18c9ba73306ec9" +a822184abd5a032e13139fd328d3a05621275bfd = "31479c9823eb51d4bae2de948a3b030632f720aa" +aac07d411f8fce3f02eafb46f20294d015f78c54 = "1770c7736c09a621f7f1b5e35fd2d4ac3b96c2b7" +b22db692e70b4846082af3fd217e869e2530302b = "880b64bc7c73fba2788de452f4a40a7aca411804" +c50f0f04de3b7f17fd4ff1bfc55edde8ca4d7c17 = "314425949e326b9e7ce0d298b357fc391f3fd6ea" +d0416ebe01c7c74aa936bdcff344478d617573f3 = "507ea84602c51658aa13368c5416f35f07276b49" +e361c83d199c05d746b8dcce01c7095e709968b3 = "d181803ec743ab7599e774cde92c5afe2d6e3bb5" +ec4fa370abaa068ba2ca2ba28548d8f06d6bdb4d = "30d53834f2f75feea41a7dd97624660abdd5ee6c" +f0e032139a9924dde1e8ff0fa3f6c0962015d000 = "65155dac5b5dadf2403fd3d2849c04db966c6f32" + +[6465ae08-de3a-5dbe-bda8-3920f6a01ab7] +03a13ffa5de53931b88f7f67c54ceaa5b6be1c1a = "279500bb21ecd047750f2f411aabd798b809f26c" +338ed058a7665a14248e184f3d0c547ca2790cd2 = "fc34a68d6bcca2864c679ac31447b48c846dd15d" +bf446f24c27de33ad58170b539621e2983472004 = "89ce8cfc052074e9615444c89312f95255e74e70" +da38079d0a773ac5102bcff689bab26655bd3522 = "3b89ddc2ddeb6fc850297c77281615301dde5b74" + +[64db5801-a3ae-51a7-b7d2-a0a5f0813e47] +3e58206a61e9d37334768f6911615338309d2804 = "15f751017002d02a554960991a7645e9bb46155c" +4147cc5886d478922075b94cbd18b8e879a9ffd7 = "875d5769ccfe612192f72738b33ae7c19e8d71e7" +5eac72db750724b36a03aef394c5f86d2282b2be = "c9ed3e5d8f9e48c43b38b7f4ed3682812d66387e" +f647423eb36e29f077d12727290b64f97a4ead9a = "555b6579623738d892a9fae5d31074b0c2c876f7" + +[64f4ea9f-85ff-53fb-a2d4-f98b64876896] +1a953cb588a38f5eda90d1fe3e235d85538518c8 = "531f5b11a481845bfd06f881ca7e929518e7772d" +a3f2145efe34eaad277aee400c4abb6141f9bfe0 = "0912a08e5844a409551e6be615a1ba48e46455a7" +b740a5ecea9f15cb7cba5bb17319b8d2914b1ded = "6dfb97a6896be348c64bd9d8d4ce6fa0f3ffee96" +d60779a85e2c62d110e6feea7b409cc156ff6669 = "dff2d1878caa40c4581bc36482559106060478db" +da38c5393dd7b39a2a3d7655ccc034138ca42782 = "bd01ed199a7ad2b4fc3a1d330c1b6a5d4fed88f5" + +[65043f5e-d494-54fb-85cf-e13b6ec0f31a] +10f39be469d151e6c32a774dd5c99690f17bad31 = "4f44eb087f395eb97cdc3b1247e16ecfb00a98df" +61b6fc4cabc1cc24208729251e51184658de4c9f = "35fc12c3427a2f96677b9193e6c22a15d5e2c958" +a25ef44c93cbb67ffa2e9276ccf76792bd11e6c1 = "8a4d7948bb03494227149b49b6d8917e3c32b88a" + +[652a1917-b8e5-5d9b-be38-bbf27e56fe44] +a87c9a0ea7fd6bf473b658f8a740177df1ea614c = "bb98e9681609c0a64b89a0ee8628eb3cf6351165" + +[65419b8a-9a19-58ae-bde3-3f7e1d1bf8ef] +05c1427a5d15dba3c7ea08853dc18c761b3e1f7b = "36b67c1ebaffeb84229e9a117b66507542b5188f" +13f34eb8967ed9fc798a2164e0125ca6d245cbe1 = "414e0859207a9368508a9b7eaa21ddefcb3343aa" +2869db79fad0e3848f0dd750dfd4973b44d60322 = "1ddcea789293e2497729e60e9c17a8efba3d1959" +56c9808fe7a239a4bc2986f22a361d579852ee75 = "a97b80fe723bac0b912f6c0fe9329a89cbc7c0a0" +9c32700cd14ddc0e6e5bbf21213cf28ad65751f7 = "3d3c25117e7bf37ae6145f35c52c44c704fb6395" +a37407ff3f9190871884265501b333855ba2ae13 = "7db5ae86788048b0e7ae308d9f2ae923d9d23949" +a4a7f65dee883e3b122461ffcb7224fe6aaafebb = "c74fe6c860780ca0922d785f14d173a370a08371" +bc52097cb9270bb48ce905a84eb1b90536b7529d = "cd6316a1fbfc6aad744957ce91afc7193694fda0" +bf8ebabc602850406c63775a8657152e80985811 = "417ec28a0327f64c5c227bd24875f4134c37f915" +e0e8d048ffe6b1541ceab4ac15d8216302110944 = "a263b460860b90748763387bb56c54d8410f05ca" + +[65888b18-ceab-5e60-b2b9-181511a3b968] +0f8374cc3b132f95057f3fdb25f2c620019d4268 = "9b14c472b0afc7f847e3d61ed480c26850a279f6" +19eabb49f1f510e9e6ecd44837ffa88c5587b359 = "990982ce040b8ffb41535756cffa23a41f1d3bc4" +1daf245de537cb9670f52a0034df103e007c30c2 = "60d253b522e952c74bd530a1ea686a50765355d6" +32f77c307749548ba8481d1c61b3454786cd7c62 = "c96beb0d4966df298fdfab5a81c4c17739637320" +35750f1ffc89a295c986ea17b4aa4e8e9c3dad96 = "cbb72381309746c8cb93b88b4fc161bad8e90bd4" +37d659d5bf0d95719604749b5469040b7c4de7bb = "021bc195e6c772beeec1976143e4f95ea4f79ca3" +3b9900ec99d13636fccc08776f1f818f52c1e6a6 = "2b96955206c09eea5591630fd7582d7273d1ca33" +3c5c91a02a3fe3739630e7991758c98dc8487454 = "78b673e6c52a82b67f28aab65155202512e07ed2" +525fb3e8eb6ab246afc52d6cde248cdd0db4d6ad = "037c6b65a02707bf36cf944f6d0821207157cc1b" +55b59f34b80c17ffccd69a24eca4ffb5e43c1aa0 = "5aebc5edff283da57114e1c9b77244c39771f864" +576950d89396474e94c0bf357ddc7a155b957f17 = "5028e222e76ff88e4ecedfe66891001755c193e3" +57f45fb5e1aaf296860aedf01b791a0c541ba341 = "ba6a48b90d3c6c39fe861a4b284f3d7ed1372286" +6ab2fa609ab6fd10a9495770e64ecc6380061851 = "f418bc3e2d39be0847ff05e3705a219b51d9c1ae" +70d4ee1cc81cc62d723f0752d66201ebdc3ac3da = "4fa82b7fb6e430ca33877c0533052074ebd7ed22" +78dea74b0698842d890202d8982632cc9d486520 = "6f8f40bf1822c5c6cca1959ef1ae43733eb574d9" +796d9082ef7a0cc578990bc610a60f876a4c046b = "4cdd652da69cba5e04c7d831b42edaebb3af58b1" +7eb3c1b1bcdd2b638fc522c8cbfc412731385d03 = "e9b7608997c3dd852720c9a5f5320171593d0b01" +9050773406e7e368b02c52099209cbf99f38e94b = "9e977de537c9a8a57ae9cf1b479d04af4ff4a493" +91687d6c00f60ced3fc126879ad434fc1a13c535 = "134c3d4f6ada0429e224a41347fddf8b45a58f52" +a5fa1c0224b32d8dc7dc5cb5455b5c1cef6d0069 = "3d45e9aafa08e26c5d51876cba26a8a829d20216" +b0bee6c0ae22b33f647a682d62cf00b9eb66de78 = "90b88de569a2cdfac67c404eb4b3b6d3c40da4d8" +b700fa3eeff29006878778043ad02e71fe15247e = "c5c9d62f032c650a19ef1e706016380d90b2e330" +c2566c7ad9ee482763692a8135340f1dba9f5058 = "018e0f6f5f696cefa1ae29613fb4064ac2d0956a" +cdbf4625593f36fe073dcc017ce64400d5812782 = "590d1fa2a36a1942fc30f3318ed163e517ef6d5e" +d4574c0b0f3c36bf81f244ddd04639a0a54cb064 = "9d518c95cbd462937a52d0b70dbb26736332035e" +e77b02c4a0ab5f280ee17d8a7fac3461fec69fc8 = "62d5d3c5cd048b09d1918632f2dea0d64f8f2f8b" +e84b50328b6e3139f5300f023472ecf43e2b8242 = "fd8ea4e4a41bd8c4fbc6128414b17f6e612fd65c" +fcb7e72ed923283496095dc78696e620b0754893 = "5c056f7dade3e194fd10b83dbb202896c7ffe4a9" +fde3076884f6894eafcd7b2b8f0aab94dbc893a5 = "826261cac303cd1b3b32cfc7fec1b12d8d804fe9" + +[65d46eb8-70e9-5a30-bf48-2afa3a021b8f] +3610cd8c482d92c5a2c12833359f09ae75ec20a8 = "32dabcf49d3f97f09dd22c7aebdc4b87f482f975" +85a71d80b9f14eda79f9215054543216a469d1a0 = "f0d35f894ae7f74b6c895e00ff906845f81b681f" + +[65e68595-3a03-5ff5-a6a2-f05fa774f32e] +7193495c33ebdc1066a43b3dacc62edae174eacc = "db1ecd18261b8026d151c39762c584529a09ac79" + +[663a7486-cb36-511b-a19d-713bb74d65c9] +d515b91ee3ed79e368ba41a302767c94e314386e = "54ae57d43e849ca4ad1942620667763d043e5af5" + +[667455a9-e2ce-5579-9412-b964f529a492] +0e6c1444dcda40a75343432875eb85d4e1e75dda = "051d94e28b0bcccd1891119f47c4e861660ba7c7" +2f5561cdc9a39f01c1db9241a263f22ac5544523 = "4eb20718ea08d2bfea9936c6f8759b5c03f2eb77" +38cb376498dacbd2f0dd0279326dcd3053a95355 = "12e6771883254a02ed647b053b0c5b746bb0c4bb" +3a57cb6fb52c58a5ad0e3277408f7eabf99943f6 = "576f1d7d6540779ae4c0d228dac4cebc47185b0e" +49031b030467db59866a93ffdd5edc0435e5a05e = "603cc749cad21d5557a92fdef42072aa34deb8f3" +5a9244850920d20ce180d71f9715ec84a2bdcdf7 = "384cd55abe751908aa1a1d9506a1ee32e741ba94" +749fb9e60926e82eced46731772fdc28c882cba6 = "592e352c0feb87f9ec2761cf3adf760b2bf77dcf" +8dfbdaa990927020c203e5689dc59a1b2a1de44c = "d14932c549b888e081a9e462e3af56038d7f25b0" +90ccf9977eca52440a7acc41a2d47a572782bda4 = "87d719a532cb04ede61797f58268a0fdbccd1e9e" +93c4dc0ca1e499b6ac4071ecfe999527379bc8da = "98e868b3b035ba814b6b5eb7c9795ef9d485acb4" +a35f31eae117f7e29f4179fb9485052aeb4e6c61 = "9811b2b48055bb62e76860d19a15cd03f03ee0b2" +aac74165d6348e51ca60fc0694c519e803d83135 = "3152cc974ccf955e5224c2f71b94909ef6966d29" +ad8c06b75e6ed5d12a38880b4b6529b3f922cdd9 = "da384b35c249ed355ab440a89161f0514149cb5a" +af215d9d144fb9296b86f85925ee3cd1068e0c34 = "791dd383955591755c214f359aa806ae1a53a9a2" +c2343c7c66c4566a530377ed8258961fb6b2da5c = "0161276e74ec802bae29e79e98069910b444186e" +e100a64c53c9505526e1f7aade2ba10b44e4e17d = "4c564a831a00c33a11d8f07ece7961a923593f30" +e30d4ebb823a255bdb31ad2af35171cb6ca0a4aa = "68ea6c3b46ed0651e34cb838930e2ff2b6d1b978" +eb0b5655eb1d463260e7e8ac2c0d9c2bff082821 = "6b9f060ea520573e05f782a4d0cf8b287a90b05e" + +[66763231-799b-5fff-8662-389acfc33a85] +024b8cd2cfffa18d82d406c80805951cf27b23db = "0f4316912fdaeaa1318949dc31a27db8a106e63d" +04dd228b02b1bd8d52b48f0d31d432fff148bab2 = "563056f3f4532cb977dbf6597ac9107a7cf3029f" +07a1d2ab40a140a9e5195e0fe6b75e6d0614b3e3 = "f5304afcbb52e54022c952ad30e632229b859971" +357904105452ea8a92dc4dca3417a704ad8d494b = "a22da27b8dd273725c6912416fb66327a0f72321" +88966d5609593df77c2ec055e9679d0209e98aad = "5d239ac0faf90ae871f8ef9c0edf44b12f14db54" +ab441e6749bf7bcb61704ee49028c1cf4af658f3 = "45d98e6219ef0f7497bdeeab6e7503110400ac25" +d177a6a764966b5117459a4867ce7c72f96e5c2a = "2569f121809dfe50a7a77ef0488a0338037e0c18" +de9785a21d50a6814259bf2f394166d0debf99ad = "c429eeca0f5bd461d654ed3396514401f385659b" +f3a3e6eb5048f3ffd79dba64e83ec00d09ffa176 = "7ace5e2dc56dab649c6a7db87d0c5660d7c8b27e" + +[66a33bbf-0c2b-5fc8-a008-9da813334f0a] +0378f0cab10728176edce6c78d280cd8819dd497 = "55e78a36608faa909a3b86ecf2f71abe030b0550" +272c7ec61bd6a2ebb40e263f32786e91f82d3a00 = "1edc6d5f3ef17ad84472abcec3a12dbc79acfde5" +294b34042db210ec0db160571a1da368c55abd89 = "8c049a109e1b3ce1cfa746ea832ecb5bbb6ed225" +32f57fa45f30fadc9da7db38e011271b138bb765 = "a50b26f2700836b2bd42fd866080468a3cebd8c9" +54cafaccd1b3aa0c6f028864c733ee673bc3d238 = "13876a71e280befc7e78b32e61b3994a69a0ffb5" +7b2cddd38b0f16b186b47641f2e4279179c269ff = "59b24ea0b337711cbe35181a3768fc1a799c8362" +82da39178f506f4267416f04c5b36c91d97f4d41 = "2b384c8a093cbf7f1016e3d593474f75bf7d635d" +899413ad7e34d038c3d53ecd957c797cd6748b71 = "1fffd5cf4f40d7913e5cd14e54dfdd134d06ccb0" +8f7a7f206fc9bb931dca55c3c8861fd16204e3e2 = "d7561a5a5ffacf009039991aa5a35d4582732f0e" +90ce402b0126fe7c0ceeed186ee0ad1f103fcdb7 = "6ad6d6d11cf65d62d992e6fe86f8be8b0578ccf3" +a486084590937764f1db4ec5217c5ccaf283d33a = "7460551f213c2a3c58dcf174ec4570110e6235c0" + +[66b72792-1abf-55ab-8064-6e9051317175] +06e60609e06007fb040d0d5f1a3e78ef4442b476 = "9532cc8ce95b9573468d5fb5972b5467b72b345d" +5b3735adc7cc7192e8a60d8138f6da87ed931691 = "e4753694d9ca7bf23917c9a871365e8828470bb0" +5fd30b5489fe709a9b527cc13bc397ee4062954e = "bfd63f550284d6cd761d11fe995ac772eb508a10" +86e275ad07daf37bfe22870b4fe2a5bf1498308d = "3472e04e7e05ea6e32fad8aee674c6d03a0900e2" +c574920570aaf7966287d9dc98f016c1db67e08c = "16a8b644cdcce5a9747795fa24cb448fe65dc170" +f8e56c99a91d62e0a9a786b9e7352337dd46ae5b = "cf99b1f9a19c661057c6326952206b5f4672d910" + +[66c2ecab-30cc-5a23-8f30-3e4a67030fa0] +33683d376c165e1bdd3f3f93be3379f5a8d26eb8 = "445aeafdeef550c4f3785c498c10cf9514d35729" + +[66fc600b-dfda-50eb-8b99-91cfa97b1301] +096433a3b90ca044ac0141b387472c4339e0d7da = "31c01ecfef17123f13de89d3876b5c12ea958589" +0f30e235138e2e70171c3bfec889e2f0461f4f74 = "c22bcabc50e0fd0d7c3171f8396f42caec5b3cad" +2d98ea61b894531d73c549de52bfaad07a6b5711 = "ee9f96f682be0b2e63d8407faf1899f3f64fae62" +60f53efa72e0349a9f3f2d666415239693fcd34c = "5dbfd0a8dd9e43915bbb23c0d5a37fa694ba2b09" +6a19bd6d3e915a3ae8bf743a65ea8b396bb283ea = "ddb6acce888f902170c7a9eb05bc6d01ab3604ed" +8e3d72e57b5d9ccf060230360d8e4e04fecb3439 = "bf098e8430a613c22476202c35886022cab31922" +9379b9c18db5cb57164c37f4bed9b1647bb23396 = "27aa475fb3d1d58c78359d04689815d36c1b0e4b" +bc26b6d82b70546c76c9aae62f353533150e4ffd = "f79d096288075506cd7df930b5ee5aab5f8da830" +be2e865da7c35970927c58444c99b5d360236136 = "caa7d935e0542aaf51a38a9cd008d5710ab4cf77" +cdd0fd498b2292985a6b57ddd37b152cd9d58945 = "8a0bdd7d26d758384424c89f9e1853b2f6e47dd8" +d56e4ad51f4459c97deeea7666361600a1e6065e = "3f837f504b11ae8e80404ebb5046ecc405185e73" +ea0f7b8250c50ccbda2e0daabedd621a2672eebb = "ca8321000849a678751da7989a567c5c9a77491d" + +[670cb119-9e6b-5dfa-81ab-9d3c314fe86c] +5d05071c1ab3875af5b4805f535e924f697ba70d = "f13d0f45c43d9bc147fd62dc34274255a2e0123e" +89e96b75da371f55cfc66376364ee9456dc7697f = "f4483e6410f03a2bff99c5ab448f5e78f5fa13f7" +9371df4613efa9da5faf07103d3480158fed6285 = "451e454e1294a3a0d6999e0b8686a7c3122a2c13" +991f3b4848b754936485abf18c59ecae4b37efa2 = "76362bb6668a771b28fbc9c42875508a7c332d7f" +a6b6076a165218448415ba4456260447880de514 = "a63d49ba979c7d88257885d5cf97ee313f76cc16" +c22a431879f082e693d669c9b35180e717967ede = "b13f0316ebbacd04d932701640069ba928c4fbd2" +e4f6385e1d5fe8c2af4a3356d75bbcaf7a6e159a = "71ec59affdb1a27baf8d43a1e40d79df02ad0445" +f29f5c533a0d3f2642217720ac1f033274920f93 = "35d54caac0f732c99e9afe77014953a8dd2cb9d1" +f8987beac02d6429b8fd3042dc63cd0d39892233 = "38e2e12e4e7fb8b170498d4bc6afa17f0b8d1189" + +[670d9266-7b14-5e98-a133-3b8c27ea9ed4] +6caa6d52e913cf5481468525b023946653a095f8 = "6d2e45507b6480790740c54203336bc668bb1f60" +a3d6d888d293038c79102335ac73b10b8ada9f83 = "24deee39bc98d34d27c072d11a99f565f16c0e16" +d2529e82218df68275ee8ed09010a2aa3c36009b = "5d97ca112dcde3a00bb568a576b645dd8162d29a" +e58da0dfe9a2e8269decde8b7e2e918e5478a3b0 = "4ec1c96b91fb62f8a065c9410917e96f2d3f7b4f" +ffec076ae8ed389c6281f9c0210cdd651fea8534 = "80e8c53d7dc7e5e4522b895be7f54f7af0311c6c" + +[6710c13c-97f1-543f-91c5-74e8f7d95b35] +0c27dd85875a8c0cdbc9a4dd11ffbf72493ecbc2 = "1fda2bb6d15f764d2e2be97ffe4b9b80c4c235e3" +20cc0cca21f64626c1ae949e830a371f769d69e2 = "0cc6055fdf303c37667ad55fb8cde7350fee2c69" +42616b245e28f52a5f5207ec65cc2fdce6a595a7 = "5fe890f21f10f6b7db13e6e385ffaa15c8b0f1eb" +558a217d5af39ab5b6df2b006fb52d4c00e5041c = "5ec5c1aa74f7499fd2c2bf654cc9cb8fda70ddba" +71a99dab9aab8811eeb0d6f84de6be1397233ac8 = "67e513d38270acddd0b1246db3bab96b5c470aeb" +823ea162c829402b0aaf7a7d9e4145f170fdd79b = "30507ac0a510206c835cf4eb8d68253252594fef" +bbc541956f4be98e9ce9a37418ae7597cf8949a4 = "4cb884531bd1434acecdfb1a10c9e4ed9b761bcd" +c049c0d75654c32e0d9f704451698f471efea68d = "a904abda4751fbea3e09a096a7fb736fcd6c0fe2" +e0530fe89378cf3f137f00d6bc576d5ef3122f75 = "b1f6c0733860dc6d8d2fc30db8a8b9571e20ce88" +f7aaac8a664adcb00c9cd9a0673273f297937255 = "603d0e1c865a42fca33ebca4584fb5c8c73804b4" + +[6735fb99-e7a2-5b86-aa6b-3fb73ebb43ff] +211db353a828fdf6a0747289c23261723c181223 = "573fb4f5cc0c8e0c4ebdd6e18bef412800363f08" +6dfee04a4b98f976e6313fa6b4c0415f1239dd3e = "0223b705ea9c848cceac7424be185075ad7f92d1" +9d0600da2577cbf83c8c5635ada58e6220029842 = "4b22275409bace87d0de90f3216ccc2059bba0b2" + +[67417a49-6d77-5db2-98c7-c13144130cd2] +36ca323ae972ff17c5625d25a3cbce50b05897ba = "0288f278a5f58c28c67ad1cf55dce950069709b7" +5a890a9a6350dc10ec648d944b58c353e0677441 = "10635f8e913bb8cae73158624150f2a152ce6562" +7495c38e610d6a8f64b5500cbddee7f55186b46f = "30398e8a299ac6b946173207838fe1f412869fa7" + +[67491407-f73d-577b-9b50-8179a7c68029] +013216a54fca5d994a73fd65050aa1cc8f01c6c5 = "fe6b1937b20c73dea724db08143f54349b543b55" +11e90f1e69f9440aed71da8bc075d72893244d86 = "5fd77ae2541252a17567d6711a30dc4436bcd140" +183a8e988f851cd4a08bfc0c6d849fc990aa9e50 = "cc82c57201a11e09b4dbc290e3b2a662117fafba" +216823c2fb9cb832486065ab072eb95196cdb680 = "336ad4dd5363a018d53ec3c2238a6828324860d2" +271e11e241903d3e74d5d48ce6b8ee40f1322827 = "24ca2252464de9c7207d1857c977157211aa1cce" +27dffa52398609c86eab262b77c8d3aa8a74a794 = "c56476a807563bda2db42cbb9b8b05479e1dcd7c" +5927362fd421c8d4fc9b95d04e3435d8e526b3c9 = "d48b8b5c4a4b5dc9dc5cae6e2c8b911c56f0c1fc" +85e4d27705c262bcf40acbbd8d3ecdb0c1f72ee8 = "fc6a95ae67961d1ead3ac7b0b92cc1d6d9fcc4be" +8608ea0307c40061e6dce6adb37ebf5afe479781 = "99fa2f4bc00407ab0f0adc462ad1925dec3d79f9" +91a0545c3ccb4ea33ac22817354ff0d9d51bdbdd = "eec56d77065664330062692e74674bad0e948e34" +f4139981de46d6171c1f539ba246f70162124a70 = "928e1cdf947d4823539af597176174cd5c2c4e63" + +[67920dd8-b58e-52a8-8622-53c4cffbe346] +09b996a7e8ac8c05e07465568273cc963afafefd = "c4084f9dfc08cf99ccb28b64a5a357ad14bdf0f0" +0bc38d0327c5806185b955f37e14e53f3ada22e8 = "14018e0b2d0a53540527a7d47bd28866a584987e" +0c8a83466ff1758be993e4f48000bc58360ab17a = "d0c25838f87797dea5f1b859df0f25b43d6ed68f" +3a252462d6f3e409166893d02e184b8c45b53ece = "dc2ac3fe82cecd148814cdf61af069747ce3c97d" +516b42bb8c659b7a32cf64d77cd64bf096e9f08f = "a1c71ba1a1931ebac60284d1d70513b14397a2d6" +6465707e35897ad91ffa06b8a7a01b6eb3a580b3 = "5123f62e79ce46739b9fdf8f4b74b24cc9bc7e23" +68b726d2f2869e8bdf32ca872db987f59adaaeef = "94e965d63fc2260c4d89c26a5cd11d1920fd4622" +856f88f8fd157225e2a230676edda9a10d93b575 = "0d2a3cfed787db1aa39b6de3f22908066abab595" +8db86ed8f2ba174f072e6bcb8809dd45fafd9152 = "eac79d41ccd57ca51fe93ea058531d4deeb48974" +988ab63b61a3a186b762f312af27d66f9f40e701 = "0d69cfb537883575adbe6383e8820bdf92032731" +aad1670b508152b58b56e82c649a3c04fa0b56d5 = "8e34829e6ba155ebb65100fc35b63725e011daa7" +afe73f0bd3c60910dc0cf4f58a851a4689aee793 = "b31431d8d8e1b2baad5e9cf7a8710abd79ef293d" +cccfcace2951c6feb050425345de64e07a779642 = "4cf5af65c25c00e22f6741309312d5ad6a682f5e" +df364a8ac38a8132cc2c9d47a1dcd1ba9f25cea6 = "71971a118841ef07d5421208014fdd78308bf317" +e181c519c32742421d4061078240a38e6fe1777c = "4054b0403294f3f6f3ca1ab6a20f03cdbe72849e" + +[67a87ac7-5706-59f5-9189-3507e0192122] +18f0cee2e550bddfad48df7e04c1ff4f6015b1a4 = "a54fa11eca6f9bf934a06abf8f9f632d78dc90b9" +99ac59c936dd873481f28ee440e45b3477bd4aea = "5e7e1369c1385be7e2a77a87f7e69ee0ca05459a" +c1212692a03fb091452c785995d2df481c04134a = "2abdae94cbfbf3a2a33955abc7df0ac150b8df48" +c2fdb53925599e05411dbee9648ddb03785c0091 = "a6d85b754c0063c7b8bd986641450aad80878ce0" +c5587a9b47a824028439baf9e9b2638492aaba39 = "fdd12ad013d138f887f7a51e60c502b3b2723499" +f75de3299f9865f08c78892fd8172e47fa5aa230 = "da2461998fa92b2ffc6afa99a0004d38b755fc19" + +[67c07d97-cdcb-5c2c-af73-a7f9c32a568b] +125dd728ffff04d79753d6696299cd8194b72e3d = "6f26f22b291ba1310c6ebeecd01fc5deddcabdfe" +1f90c01750e1b1c89ca8e99af71f1ba0cb094772 = "2f347aeae39d445b8d9cae6b6e559601b2cce659" +61344294f3f3c49d3c8e2d17e2691bbbd2a7558a = "5fb03cf6ccc9d69b5a6b6e2d61b318a035fda35e" +7a42d8e4ebb490f6f6ec645d6677289331610595 = "1f32b5bd3f33031655a53439920b541b10cb10c1" +7c834712218b1a33e270011967672e8b553c9aca = "ddfb583cff6a5554600dd32aac309957a16f0eeb" +85b99163533edb1a7c7ac354d085aa6f2dbbe0de = "736a630d2719f78c85d688963d1d26675a77e457" +8ee444caa71d14b8555f34e912d79800eacd2477 = "a21eecab9c594bb0937a9383852fbe45cb8363b4" +a57c2fe19ff62bfe4954ce7bd9b0bd1b2765be22 = "94ee4ce6d3158ea5c93839efcd80ea1541865df3" +c4bff57835858494bdaaa774484d7252c34df8eb = "7562a5dc3c6dab821549931bb8090d5b67ac4878" +c8efcb0604bf35171f085ff9799b790a8074727c = "1cfcbcb216a26a7debcf42d1d9f4400691276ff1" +deb2741f62a5a07ebad08cd17353369ee4cb1ee0 = "2260c47a1ae4d83d2600570c9d4465a106039e2b" +e94b45eebabab8d0ab209370bcc985477689b789 = "e5d670083c3c51e7e2c688c962026844ae754459" + +[67f030dc-aa52-5f83-ac42-e4024659685c] +337a8d05fb3ac4005452afc68cc9c62a85574462 = "67aabdcd1c1a0e4bbede892bbe8a8205b26684e3" + +[67fdca37-c731-5d95-9a19-4e7673210fab] +a71e61b690d00c7149d83d900679b0de849a667c = "a05d0ca9aab6328877f7cae16d1a70286fb1c142" + +[682c06a0-de6a-54ab-a142-c8b1cf79cde6] +0b191d9403efeb5939af6a4b094b1e96ca97fd8e = "cdee331eb6175b1581fbace52cffcffff9e1a94d" +0b6e9ec6adf0513b72ff70a818cdda251281c868 = "9d67a4bc01eef6adda1cf19d7589c26ca3a7787b" +0e3647317c75f1e35b54a407bc6f9501ca765006 = "575249e2603c85d4b9a01a125b3d473ebf90a418" +0f038d90934897bd8c49d661dd4a74b1b9b171d2 = "233696060d4745f713c64000f4289f0ba1a91169" +1082e64fef296c7ea5dd474e4d0be7a6145705c2 = "17f5365eaf10538fffe3a750c4d149757c9a6a5d" +138956c9d12652d64b683488afbcbfe461c42811 = "aed557a8c7ed0a78599236cde9a87266d0821351" +14eecd91bccabed3074d92759e17ed38c8cf0ac0 = "79c7131058ecbcf8705b4978a1b685c8006aeece" +1ec27df85fca2e024900f032475cadd982f8f3a6 = "ba18ec05955d391df42286c444bc29c5833a1f15" +20e99bc7dc329915b79d138e10800afa81afe7e4 = "bc9c85aa6f01343bf94ac717e3ffbb531ba1db4c" +21dcd64409f249efe2254b385616237f00a35b31 = "a36e86ecb21c889fd4274501244b0fa77ca15f82" +23b7f1537b0f600bc4a3a9b871e464609486c8e9 = "c8626443ebf8ff434016d653c62672e63e6cdf99" +28f07802e0eeea3bdaa58c64e253756d64698b41 = "7fccf4ba7b67ad9da2ccc23bdd7efb34f981d577" +313ee68d0a2bd013b16f5a6fa1d4cf1220ae92fc = "24485f02391c91a6cdb2c8e5c168b151f966992f" +3150cff25b0891b1f164781c0a3a23700a43901c = "c90254c52e33b7e70fd02113f283bf833debaeae" +34dcf31adc4c7850476421cb237b41c5b0e4e99e = "edba11286fc5e184ea188e9806a1698d329a7b98" +36f011da3aa5c2651be8fbab25685dbd52fe9231 = "14d997ada5e0796d853f4a124b7d86dfd9df0c49" +38f4d37479fe227fd00a56a085ecd3a63456a36c = "a5bfa4d9ed4bac90f0416d332d47240da4cb424e" +565fa448a345c62591c007916255ffd4c235fc09 = "34b4039f9dcaf57f637b3fca25970c11cd9a3fca" +5d0ca41c99118c5b5b46bf113a27f14e038f7bad = "dc471b486e24be943435a5cca8a8d767ddb91056" +600a40bb11f9c82d5a4590cb61de99460dd0f17b = "baf0857c78beed63618fae6db518ed15e6d1704b" +6578984ae909c293031aa617244a113406d88694 = "dd96d5aaf89c53012e0d62ffcfcf72eab8998bfa" +6df70b0542a2610ad738156cae344fede25d4ccb = "11a244542760086a7b536c9c1337d7dc0539bdb7" +6ea48684d47faebf97077c78bd923744b4987225 = "c29b1bfc2c5e92a604c483789a2684a78933f5b9" +6ef716aed7d5c5a7c1a8d5fd43f659961d019d14 = "4051816c19329314014b6115d7b3f67e8716a8e6" +71763c297d524746136030891d9a6333d3c262a1 = "37e607406de22d8532cae80b2158340c5405b241" +72ada7aa839b4d1a341db83ce1315903e02d9193 = "1f60857ebab24972b766d68b96b67ffc372c4413" +7853e4a6c4a9ddc3f651876c0c101aeecd6a77c5 = "3b0655e6364f36d3e3137151a72c84cc68417654" +7e5027766e604721a3e6f94a9b747f4ccd0360e7 = "054139e7f048659f3dd7508675bf1e2ee211f9f5" +8d5ad9b10e6c520149b24b37d187bdcd59ad81e0 = "e2ce00cb74fcb9f42ad6a54f34d1c5246b3528d7" +9ec3c1a873cb962d684ec375e32630c71ebdef66 = "a9ae2b777421eb424c0250ad2b1aea747e437e7e" +a145d09fd507c4f590d003606ae68a98649b111f = "b2e64b77f0a842887cd3a38792ab82e1f99cb7cb" +a36ec39a21dd5198f788fe8b1fbcb7ed058769b0 = "ad8bf3fa0798fe51c869b9715876d4d29af2ffca" +aad2e2576ade268561cf164887ac26cbd06b0ea0 = "9003b4622ec7e5533b9a2a1b36fff8ee0edbd3a9" +b5599252cff9d7c8e5bd8122b22a1a625ac0420b = "d1968e54b94ce4041ce875f858e30a728fe573b5" +b701ad129d56527ae532e62213413c805dfc46ff = "fd005e38078d445480e4d5d3bfbfeb1eb26540b5" +bec34de0e2da0de58a2fcd681ee32244edb551e0 = "70012f53b022185d9060ab57beabe42fde1e637c" +bed382e706147bdd180e48525f1ff00b5b81d5a8 = "6bb4cae55b1b54d872049fdf44491636f018c881" +c325b6bce06023c92ce4c5d4f4db8316928eeb79 = "71315404d905313be430891eee2cb84073556599" +c3e5515019e76e0ff000b26050ed5b116aa7f3cd = "77699b5cc09b169c47ff870b8d73c874d1b7bb43" +cbd9169ab3aef3e91b3ec60cfbb78c0156351841 = "b7ba3ea25b45709805fe8a3f778406a1f6d63be0" +cfaaac36e827a64568fc417d1cd264151aa10418 = "66962fcf4b6345519f3abfc88c1879cb01b4fac6" +d00b5ca7d4820fb5ada94107e47e17b3762865e6 = "1551e3c81a25cc282d28f7e8c7c5621f4b15256a" +d3f95de4c67fc7f18898b8de8eb3a83fc459f4f4 = "e4b57d438f523a2ad5f9f3510598f00961d4bc08" +d4b1a2cc4fa42cec06aec87ee9e34ada76b97ddb = "8a3d1512eade6fe7ecb94137cda710362b178008" +e6aef7e5f73d358cf0ca4796d73d1a2a07bb6667 = "02982f2f65751052d642ca81f5bbccbfe59cffb1" +eb65870a0842754a3030f709385ff0aee26d9693 = "0ad636ba8a4bdfc123d741f07407cbbee7a494d3" +efaafb7fb9d97376540691f6db96913e7a64f80d = "9ff93cf8f52d0917cf772f692a0fab252a8d6703" +f0b8423c2a29724fca7346315a3653eb469da286 = "a2d5fb4580c350fc1e5cad4bb992eaa1d74024ab" +f28c6e78a9b2af6c87a22cb03e7c3fbc6e98c7bc = "7891307cbb0362e0cbc31e07458411eaa7607619" +fb33673c338a59ba3f00b0653b262468d60a58d0 = "4ed73879ce18c2fc5278ece87dc3d41a99fd96db" + +[682df890-35be-576f-97d0-3d8c8b33a550] +076736fd395103011c9a73e4588aac78e97beb41 = "f88e75becb6b2b8b7d885e6f1e2f2d87db497c8d" +08756431f041274dbb66059c52ae6158feea4f44 = "034a34ff4cbf7d7dc165ced44c063f37d9bbc9ba" +129f3054354d8c0df3699fa18567b3ae0aa59fe8 = "8600ecd8ce4ba4b1be51637b6ff7b4c440ecee03" +12a014cf4efe898048a2250a1b3c57f906dba430 = "a91bf3216d6e9a64f5827f3898b8885af0fb892a" +24bae56138d4e04910316844a35d6a98b8251383 = "01a97bb71b4f9626876c8ddd2fc07970a102747a" +2e5431136ab6acd8208f272e372967f60b5b7a5e = "3ca28143cae3d1179ff70e1b3de78de77b738691" +55fb329b5c87e2f74217dd9c6a3b550c857646f1 = "560cf88e65b46f03f58d196c121adf27368694c2" +577a3aafad0ab643b138782153ef4e9a101fc31a = "9f4e2da926d259c0ad387c60d8fd0783857cb63b" +64223061c67187c16235f4b8bd96129e6832a239 = "c049a88c8971285ed20bd9f1a54b41be3d7d9a21" +741b11ea136e5053f17b49889a57abb7b5bfbecd = "8ecd32d2e4f28f2a172aca97b11aa0523996b159" +87a111cf24263280298b22989d28d604724b456f = "72e1e467b02383e1cf62f38f29505c7be36ca1cc" +a8ebb7ed0868ba8e159d975af1a1c56f8bada77b = "7f0f7dd1a583d0bd9874c131548f89cb1a4a4e32" +b6a18cae9b043455994501e64aa5898c263deb94 = "0189cc8ecbc10325bacfd4e68f0d25c06eaf66f6" +b91efd406949fb9a0a944ff7b59f799b3f441b2a = "5562cf9e28f70f51bbbba7859dce5e95d13ceaaf" +c7ba6a63909faee647a75e1ca8d79a42fd498d21 = "f6502686d783ca58efa439a839d72da4f29f6151" +cf3ee0fa92dc93fdee09f7ee320fa6222a429da5 = "e2a780cb04ec52f940ab7ba757f022c34d1bb71c" +d281bf6e44ede838c7a79589a23bdba9e0b2dfbb = "c0a09adb91e810244084635090550cc93b578a92" +d58a4b2ed802cb367b7275ec177a4844978d5ee4 = "997f6c565d433dd0daaddd05c6abf771ab3a91f1" +dbc3b0a78229887bf851547f20e6e28a9fc072ab = "b670db3bca01b69193ecd2cd2a52447a6b499e4d" +dfa7217432cff8e4541381cca3a83b37ac4341d6 = "07f85e2ec087bd5c5e22d1c86d50e351d000d397" +f5e8157b26aaf37bd25dacbec1a694d93c2d5395 = "f89902fcfc7e19b82d1637f8a926a757f2d19d1f" +f8633bee1baf85a591d29078c2d802e28be37b1c = "b61f705fd7a121bd94edc4c23e01ba46bf0eec1c" +f8c72aafff6ed413ca3ec3afb932090f0efa9a1c = "2bcdfff89d57f2a87ffe3b97810299639a721784" +fbcf3ebf97c97b159ac2877118d29edb8c6a19b3 = "7f286121f5738c86d20c77281ecfe87987109628" +fcda5485b13c328e7dfeded604dd1d1e6249874a = "5f7591fa3101439cf6664cab033f4b2b02e18450" + +[6837a093-145e-5c9b-b5ad-3b557e31aa31] +437c4ba79b6e34886e7731e0b1971fcfbf88afd9 = "378f8c8230358867f024672ad9d71632b92cf709" + +[6899632a-1081-549c-8d71-752c8a25a7ba] +18561070558721b4d48e268b8f8cbb77e6789e3c = "d0e2bb123a68792e2144bbf48db96730b8434807" +9d5a683393f12283e0c10a6a2b18cb47a4ad01d2 = "6bf814648421697214881893bbed97329c1e1e3a" +e736aa3c2a1581d2f706d533f94e3bd64461c937 = "cc76cda69a70212534af161d1141eaeaab13cf62" +ec94960e39b0a18f6b9d21a2e59dd4a14bfac0f6 = "5f260e832e9c85f8407cbaf08803e6c85530db81" +f35034569e82ef9503a3e6e616b31c5fe618dd2b = "519993e4b125622d99cc3533e1bb498164e7debb" + +[68ae48f1-ae9d-5916-b516-bab924cb4d98] +13ad6b6bf3ae305ab11382fe1b79869c4983a62c = "5067a21fa204e1f5e59e3961eedef59f5afb17a7" +a109d1bcc828b3d50a47b0e8457d44547497e315 = "c31f7317093dd0bac7ea87b99d75930bf3b1516d" +e059c70791a661a433954c2afe741f8444246e5e = "5c9af3dbf1c8d5befd2950044f573603e12d4e68" + +[68bca01c-a25f-59c7-acad-f27471d8d71b] +8b437def16fac616790f56385ba54ab1b7ebe640 = "9a7388f9f013d47695586557cd03fb2987a7a29e" + +[68d949f0-74a3-5070-a3ac-aa8145b4bcaa] +4951eb45082f58565566e68bdff94e1800f8f7e5 = "899928305c026b22df59ce8e32a0e2bba3d1316d" + +[69024149-9ee7-55f6-a4c4-859efe599b68] +2631c9ad2f3313a4085885e385cd869f0cb38431 = "6eb438544b325e53489029081ff81664eb551ff5" +3fc5d8c349a7e507c31af5f1fc1f8aed4608bd24 = "cba532a2c2327117e0bec1d07eef58ff147ccd4c" +b289eea73ce4d6611e2f70fb20800646e256d756 = "2de45e776eed962b03c779b9e6c5115ac7ba5f08" +c42ee6f09fecde0088992bf0305e8d9190d06b2b = "4e175e8401714b0e1e518cba31d04404154c98ab" +e6fd1bfa601a66207afc3061c479678548dd227f = "5bb5e8df9aebbd789d8d91a605511d557dc8797a" +f0ecb57fc31bcfa9113b0622205b48b25e809206 = "f52d906bda1a9366aa8cf21bfbd57766a48f997f" + +[6912e4f1-e036-58b0-9138-08d1e6358ea9] +401b7a9dc3c9cf5943ffd72726f4379e3276c83f = "01bb185f95ce3e3372df3d576c7c2e429ef69a99" +8c2696c0233ebf7f3716eb942be2188420aedfde = "9525fefa0ee894310df7f6fae0580d8d04a80e78" +ae4d161adff8e1b1b611c8c9e8d3a9b50564ca80 = "0129a1c8b588d682064f12a31193bc4098577fef" +ddb6d41ef01d8c025b155903d8da1bda04b84e0b = "8a2ef199f715ce2b5a694cece4f026db80242654" +fa72b59dec93a08fdb19d9ff68a5fbbf91487d98 = "d2a8cfe92cf35f8aadbb50543e7ca3d7c7494461" + +[69470c01-11c1-51f0-b04c-03fbc3a7dfa2] +648b5296a030d7b4dcce3e091c71c2cb7deb24c2 = "086b3d24eefaf7bf992f999afda0cf9b31f7e2fd" +8a9e91fbf40c00e3dc16cea42f23ddc3c4438ed5 = "f22ccc0a6b1d542fc054b93ce1e68a19a7bda149" +a47b875339c28a21509e19201384b0aa96aab04c = "21417305430e2592c4145d350715656c67786b09" +d0355042294c7513a8d2c47a6708b84223af2d08 = "ef983ed5e952b11d430686fe470e6369b172a079" + +[6966f90c-3441-5cda-97d6-80813c921d68] +5aff52d830acd6c1ea179ddac88f0a30119a73b9 = "de02451b34540b5bc703d945c056bbc5c72461aa" +dc38058ffd8093ff92b0cc2d76ad5e497c77fc26 = "219a16111d571235bf8868f1a8b7621ccde38c4c" +e1b6132c7dbb3bee0185ac27fb5cffae9627a41b = "06d1589bfdce4a1c2b8d96cf8d6f78926c005d82" + +[69680d3f-cf1d-5315-a21f-791b8226f004] +8b9541d699a06c8592e7000565926e3be74bc8df = "e49a680db9f2d1d91ed9243ac81f387ab32cdb1b" + +[6983957e-075b-59ef-813b-23d35ee22189] +3deca2c8c90c4239eb9d3a9630a65466c1f983ef = "91436001c70361e085b28643eff7ef44aa0f6fd2" +5682f7ca50e76ab94b3e06a364f44287f9c9e3c8 = "fed3ff593d4ceba8624912669732026c9f414827" +65d2644bdb40e3c35b83c3f307b614e961777a09 = "cf747ad22a080422b61f2f12c6700cd9070fe2b2" +86a463db2b2ba1d18fd2436cfd6a41497199a6cf = "16d0f7155ba578b2c7b8f484c1582eb6ed478f9e" +c3e7347f5e350f0ba6942eb4c2018a158610ca3b = "8daa198e1395654eb48a1c182008ab996068f905" + +[699a6c99-e7fa-54fc-8d76-47d257e15c1d] +0ca18aae24815955ec1660cb08797b8d27560149 = "97ed81960f56afb05f09df67a85efaf9bc898969" +149262d35fb0222ae39bcc36fce3b3748941d979 = "5c89e87b3873c92c4e3182ba5160cc8201c34d91" +176c8ae9ea16fe8655d47d3d55b1c01fb3bdcd3c = "defe5960c201907d03017f6006bbbb76867ece1d" +21a075bded7cf5cf49e5102d02c1dd13cc1ed995 = "cecbf9c5a3b78e245ce5acedbe527e63b4781115" +41df840aa37039d358b14b618812b9456bfc567f = "945d78cf584d3d40b5a5f7d8efe1eaa4c60eb124" +6457c9af7b791dcaaac1e1539f7dc27347e98cb7 = "873210c0f9ee25c6d1ffe73ec240cc5273ce5aa7" +e2c5572557a5f4b995ce6c29547e4589a2d4d536 = "7c2698df7766d50f5bf6169f5948a1fe58266db5" +f00aac7d2202ad888828b45fc23eab236885a8f9 = "49a51898dc9cacc87094512fd688d9906d98c34d" + +[69b57d04-7ff9-594c-9ff5-2d4f09e78bb5] +6eb2417596ed258b43ac97cf38194bd1c9b75c43 = "86a789d8b1b9cb9f249c229f8b3b6661a7d51be2" + +[6a31a4e8-6e70-5a2d-b005-bc2d500d80a5] +564068ff7d941c6ebfa768e96961dbba9f4327f2 = "f3d7d61b966ac9c705a57eb1cec33ad11edeb37f" +74d8cfeab29b5ed63d471a40fbaed0e993f4776c = "aee4f54ed56ff12d9eb550c4fe0781b434225af8" +8163115dd4b33c378cc3c3a7a442589dac1c8570 = "a6d3e13dd8a003ed5251688541aa4d50672b7c12" +89e734809884d4ae91751105c41ee412c7554ff8 = "04a4ab3f12ec41b5e57c4fda02ead0eebefd3031" +acbfe50e548cd8bee4bc6afca6e11a15a09a1d8b = "b79ea1b034751938bd02d19483a9ab88714c94db" +d0505ce2332d6573f1a8bc735d22e0e8e7a60729 = "059334624508001ae6a356bf219f23323ef81950" +e7b839146ae18a1cfe8327e9304ebfc622a83408 = "fc861db37d9e65c02a8aa437681931b655023a83" +f6ae7272689189c420c89cd2b89a7737e22658a6 = "b1cba3ffc2141d33377a39f12add8af280bba8f5" + +[6a3955dd-da59-5b1f-98d4-e7296123deb5] +06624f0aaa1a6f6199b8cc5924cb8e062f003b93 = "6885d510b400ad5b0be63e0b5cd5e0ef2317eb5e" +2e3156ddf983cffec121a6fb491942a4fc89e4b3 = "b697ea5ca6f967b7ec25d540d0d86cfb315827bd" +533edd83a0b50baaa89afcc34e1e50bc9e760340 = "b2a17f9d0b556ba7ddc9f0a9ad6daaff9abf6787" +58a392c8450486eaba0b81f45baca020824cea5a = "c6fcba06384fbacf33243301233d9194700f7b6e" +7105d384f1329a7d7fc80c573c605eb90da3073d = "65cc33c06d0c6c2dab6c8797e5e96fd978965d2d" +80f366c5a4c9038de19a814b12aa74258fa82e26 = "dfef004567ccf58ccd81d3038ed324805036c812" +8e1541ee19c611ef98a168ec35739c9bb6de722f = "9bd17d1fffc056129d318c3e4d9725e1b36e17e2" +adc2ffc10900e9cdad21a032cd443981661fb4db = "15ef8a9d27a04b03895b78d2756affed42290066" +eb9752d8453fcc7cbc033f5714ee88e90d1fdda8 = "13bd6a10185aaddced2c94314b03b4198c96a16f" +f9195cc14f24dc5bcb3d45adb1608a7d7d103018 = "79534a8619afc5539e5b5de6091c459c79e2386b" +fbc621cabc48ef608ef26f77dc7cd8b2ea16e092 = "69207337e26bc1de4b076aed77dec3dfd0c31d43" + +[6a8e3230-34bb-5a86-b9da-9f7447a06da5] +2c7e1a266c001db7121cb526632e52a3dae7872d = "bec2474b1b35603cb40d4cfefce2282d305af20e" + +[6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2] +02a016bb235ec614ce4cb3aa4005085980eb27c9 = "d397d64c432a095d6d8a3ded512c1b9581208a1b" +1b47082b60a3bc048235ca6c9ad2a3b4d9a93da7 = "d9f5253cd7547e889253546c2390b5620676a9e0" +21b5152065e9bb74e8b1cd811fed840bbc28e593 = "03a48e93d201753ec834c89604e75c0a3ddff27a" +3ca992225fa26798d3bc49c26fba5408acf8d44d = "712db92f4a085408160b9ce467e1eda37393b685" +3dfd6c6bc3a7c5f01df67627bb5f3ed9af132253 = "9371331c686f34260121b2c4bfd9f37f0ef67d65" +9025f11c589bcd54666f33091463d655fb45f5cd = "5a55d5167db091bf3cf0db2747b23772d8b588d3" +a8de01c06fce5f7a4bdc079f73e1184714a90004 = "9681c4b042b3f603d7254cb1f5c8936e89cd414f" +be0fc1afa64fa4715ae48193ed636a04650e5975 = "2ed74c9eacfba9099d722d368457785a088750eb" +c3bd132b34f013594032f9823b2dcf9d4c3549d9 = "8a0c34b5d424b96c4b661d90ff143b05546b1aaf" +d8dbdd959d2e70cca8942aad30a9ab803f871253 = "de4561dac8667c4793d090bddaa44a12f0ce23b7" +f6c73fd43c220ffc4c2571a377fb05cf375124cb = "1fbb83f59c9dd12e2f70066cde76f5ab1c92cd8e" + +[6aa54777-d00a-57a2-a775-234c624c12d3] +5aa4817ecd992bbe498e3a35e2e86041b2b1957a = "ef082e522496ee56927ed73cb9a8f078a6248d91" +b992c6cb1afde0072a123adb564a5a82d2cacece = "93da271d6bf54c7fe1611b0fac2c1c11341e1391" + +[6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea] +0b48b5f34bb5d68dcb0134afb539eaa74eef0bb8 = "aaf39bfe079dd70cdab3b203d6869095cba0f90b" +10ab42c8cf1b999d0f0c8259fe2c0aa8fd39f6ef = "76f46cb46305762bb76727bf3c7cfac05f8cfc3d" +1c1b36244f84228101720080c390724d7c3568ba = "22f5ddfd4619cc9289ce65614134c8618b1ed98e" +1db3c5a1a66d2c40958122eb18e63af12d907aa8 = "d85f9c91c8401b2a4c3ed33dc076642e35569abc" +28a50e41dd132856691c5b8360b29cb498299003 = "8ad405a211be0619e9e26814bd74a4588871045a" +330a40c832680c1f41076deaccef1f6f9f26aece = "82e9114538b481ce71a6031953cef6086ef22ac3" +3a7d69453be74f9cd50e631ebb0cc93777a1b917 = "245b0c27fc234fe7234004bac1152352de730b7f" +5d9794fedf32b9d67a9f44ce1f4a367e6f453df0 = "12122f98acbf06614849ec1cc126150bfaf73911" +79fa3caf8e77f7d5bdb680f328fe6dd8e5b1d809 = "e1bea896aa5f212983580920a79973ce4d063980" +909689b3db0521bcac203d19a1669d1cd05d44cb = "b0abee100ac6d1ad5719988085f20c6a50cddf29" +ace985d7bfbf5fcb0d7f8cda4de24921b54f2ad7 = "f1d186dc6edde00ac5f25d5cd056cd28e0acff26" +d2eedd7565a8ca97e42bb4dd2915dab8d7d5e60c = "855d2099791dcf956c25626974140befa6ac74b7" +d4f0c20a4db83f84782daf617ef0944ce3673301 = "aa1e24b07ecabfa7b1265f8f66c970fa637dcc35" +de86b7d311a0d46f4531d92bbbc57fa8ee73a08f = "aa6f0a54423b1ab5d3712db8c9f589387be29f5c" +e00fcc12ab4414e82d3fd29221475b6ec721f52f = "a181ca26e7ab82e7ce9d890ff77b11b3e6c34d9b" +fa77209cd0151ff2964dc4318ccbeb3ceef3f255 = "32667e06be1cd4b4c4040c4dbe128ced8cbaeba9" + +[6ab79980-e975-5b4d-94a5-286c17c01634] +7d7cdf9728efaca6c185494d6308d176f8dbd6e8 = "8dc77badb4a73114127a36b1e7437fc492c71263" +d04f7e5838d83a787e8e76d602e315f206c7a644 = "924f0a65eba2ae36be40ccda23f4219e571ffa5d" +fe97a56189aeeadc8603d4fc3e2b9a23922c53c9 = "b42465ff820bd299094cf3f455d1eb10f943fb2c" + +[6ac74813-4b46-53a4-afec-0b5dc9d7885c] +903b751806ebc109f91812338f58641580a9240b = "6654abd9a0f712f63821cb49aeb314205b3b5584" + +[6ad78b0d-7908-5af5-80e0-e129aafa571f] +174971e1b478e50e2219bd08cadb7803088f7daf = "81b8fd56e138df3c41ba49dcc789721e2d9c9b5b" +c184725cb6fd24a8664bcbf1cac3c5f54e475e25 = "7182ee282e93157d76ae6fb26aaf1c2e5be379c1" + +[6b1494d1-c0e4-5e11-970b-cb64accc6d0e] +2f68180ba9095f054fa63199ae8ea31ca93f9e22 = "075e602e77f78a93126aa2e4e08ad7b3fa1e6706" +55dbe1673794cec3c18ac8715b2351cef9a347f0 = "37436bddd53c58d8acbfef9cbcbe74e35120a74d" +7196977f8f45e9936c57bfa8962c20fe312a7634 = "a229202d95101807fd14c0e8dd052169f877fa82" + +[6b32d12a-ade9-56b9-afe9-2f8a1d6b3202] +76c12abfefdb14d6e5fbd2619978e2348ca1af1e = "aa707cd5a3b9b8b312e7508f9236ee0eb5c0e7b3" + +[6b39b394-51ab-5f42-8807-6242bab2b4c2] +52bc25f44233dd30233ac5db9b006af54c7764a7 = "3e764557c8f6ddb3928753e9c12888725cb88bed" +75f9083519bedff000ad6214b095e0ccbbb72e9c = "5de8e88e8d626f1a2df0c2d9754dcd3aa397f44c" +dfe9bd437fefdea78bf39c931b40c73d5c54a931 = "9c2fe8b8a938d27aa284e9e377e16ee53d1f82eb" +e45386a73ddda71beef25b99168adebd9abc1bac = "f9c5ec0fe3117b68993ac5de4cba356a70e43bb8" + +[6b406822-ad4d-5bb4-8744-4e708c04a79a] +f56a03fd1278ae39518558deadab514843b4e04b = "7726d0c8594932a598df1b32bdd7d32493f3b8d5" + +[6b41bb28-078c-51e7-8ac9-1ee9ff7bb43d] +0f6b0a751895d7f1983d04a47df33cae7b378e4b = "c8e8479d837c83d3df9fd0064e4f46793504579e" +212e374a8a32d807db3eb2d36132726e2d113b2b = "fe7c1352307cdece33a5fa9e2b755fc67335175b" + +[6b44d3db-2bc5-5ac3-b70f-26aa69b1b11b] +4730d0d13a7f6db8cddf1db4d6154ed8e01bd1f5 = "2908754fb88a7b2efc007f432cf97c14ef5b5751" + +[6b575520-c5cf-58b6-834d-e7984b04da6f] +0e2cb059de4146cc7c65128d35a1d40af74bb514 = "fa34c02153b0ed9d4dc67bc16544c672accf7d26" +116af8cddb57ad86ece96b52436b7e40aa8e5b12 = "28f5673a1fd3e4aad33a0765b6650ed49af763ce" +32255c07f10b91c6d0af5087d99b939c077c58ee = "580017c60ab54c6512b3ec982fe6d1ffd201abab" +62bcc4a89c3bd52ebbbd6ecf959140f243d5b389 = "5184ccc315ed171a8b0ddd58f136561b0d2d84bc" +93f60594ccf198d83a52eccc1cac129ac39e6308 = "38e2e18c3f981dc89306576b82f6d29a78ee41ce" +eaf2ae8a5ff2529a7d2e381632ae11eec50811fc = "3be9efad25f1269d8cca6fbba46a0620938fcc0d" + +[6b7e669e-aaf0-5406-86a4-2fba62af78eb] +a3292a748c58300d8ed92ce6cae4a5b0bb53b31e = "b3b8780c2c2874db0135a2101b0eba5c2375482d" +ef1c292da107847d9bc518c72250d04e7ed83a29 = "9def7b86aa9024c91a586ea5f1dba61370d14c09" + +[6b90eaca-7ca7-5d1d-b675-a9023a889a1d] +532623004dd5b27b7290f11b18d678b818ac4e2f = "5f78ec424857bdc896f7617277e83803000d293b" +dcb88540b5b9a952aa61c04cc075a8b863bebe72 = "ac87854b5efa375a23221eabd3b1de2f895e17b8" + +[6bac03b7-bcd8-55bf-9a08-86b9b673b6cc] +00283dab4e442a3b0174c0bb20baa9b33965f847 = "c544580bf0b5022036e5b47ca0b01bd2a8907adb" +64b8f614bbdc7fe5ef377434d17e6425521849cf = "94b94ca97a41df89ae3f21668785349d04dc2192" + +[6bad288e-da03-53aa-9310-20a249ff84f6] +0ef6ca7dea1713cc79427d9f507e8aa93afc46bc = "c2cce37f2c4ddcc7e017467bf804466b65522383" +f034d66c090a890731f6ec68dfad9d884ebc7512 = "928eddc3ebaa97101992e84eb8daca5b335791a0" + +[6c391c72-fb7b-5838-ba82-7cfb1bcfecbf] +1c774ed5ad0f5f4b6ea9dd863610c2b5ab6260fa = "e5e489cf9be01eb968a6e3efeb3ceb516c61f295" + +[6c575b1c-77cb-5640-a5dc-a54116c90507] +34fab5e837ff97cd8a55dbc1087a888688df3edc = "7a75b923c9a16ae07e08d6baaf8ea06670227533" +55c0590384d06760fd51efa2c201a6a4ee34b507 = "d155e5f0d1cb08dd2d2037433857df6d925b1ca7" +8f4738ed5e4311d48d02ab3844ffb45c8fe05632 = "9b72a1967ee7a7f4cef5285e6abe477d996e753e" +b54c981f729f8b697e63708aa399b231bdb83bca = "44fe517c1ba57f98fbf8b39a84056bbead704fee" +be856dd5ecc824055062660878e22375985c3f66 = "2e35a01364bd598ecd347d88d8a9c45f5da7dd33" +e2a051ccac7786972060209b71d88d416aa5ab4c = "e2d3a48ab31ac642d40b10b7a7c6095d64e17694" + +[6c721016-9dae-5d90-abf6-67daaccb2332] +0053a3029451815e8f6632ae8848c30e5ef42364 = "7794e3bcb18674c91296d938cf0ad9e352f2a308" +63e03e98f542c088e66736900eec9a7486bdc4a5 = "4db07b5d78917e2573edfe46a51f4fb0e767c23c" +708fffc34b463236700a475f133bbe4b4fafd4c8 = "41051258e3e697ad3b679c9de5bd6910cd87911a" +9dce9819022523f4ea5d59252965e620e4f586cf = "c1cd22d599ca1f25b0cae14bc54617984ed986f1" +bbabcf08e43e55ec438b6db10e7e3dac21026a6a = "8cfc66ba98e0dd70152460cc8ba7da6b17e1cee8" +c012095ce530be65a5c5b6535e399d08139e63f4 = "a84b63f1a59e1002d2ddfff49396d5ce9ba46b05" +cf26f07d4ecfcdfaccab9b2f0715e98957867d97 = "df7c5eb2e5b47f80effb437db342ce03843cd7e8" + +[6cc4b21d-cec8-58d5-a373-5cd579ce5971] +39849d753c04a0546bb9f9469930f544dd8c65c1 = "05844570107d7ada6d0e3fe7b2ffdb1d0aa6df58" + +[6cc8125e-a04b-5e90-9cbf-894ba9b8047f] +2f436ccb2786a6359022b476cf1d122d89bcf252 = "03a072add3172688755f4737663efc20b11e85fd" +3df35777964a5eff7c15d9c4ccc48927c6621963 = "65e9c7f648386e743ef70dee713886598a9cdfb2" +8f2406ca33598a36b93edf4acb7108bb312daf04 = "ce2d808c77487baed4ad7c543d480118233d5da6" +cc2ebbf9ccc5c02e1d040baadc8dd78aef5db534 = "ec1884d11d890f01657b13e364c329b828ed89dd" +d6e5b94a63ec70cedba0b6b1f358bf21f8602ef9 = "0850bacc6f610cf2d65224fb7922353b27aab93b" +eef4684fd710c7fc3b5ea571731044b99e74a255 = "ba2fe98ef9277cfa52dae2c61bfc973ecf97bd3a" + +[6cf23378-2c47-544c-b0c3-6efefe57ca11] +0b2ce8552ed065c79fbd7ec67c5e12ae98c5cd87 = "576fc96275a882dd303f29d2417290317d3da89f" +22c1e8ad6e8dd7819c4dd04f921d15d90ef86c27 = "7c2399f2cc6891172d7e8ae324753f1e0733e40f" +2abbdb438f945dcca7fa33320b485b1a2b949a01 = "8f0e93174d257694dbe18951a7cbb308a48750d5" +62353c8861ad97c76b7561398614579f91c17501 = "05018eefdaa2247ab00297e419e624b0e15f7bb3" +6f9077ab8e9912bbade15b40c9c78c298c26e8f0 = "c7c35e05945bd1b151f9f5907f22dbfad0a74125" +b4ab96a39a4b24abc324e36fda79510d2cd1d4de = "405ab62b76bf35cee65ad8ef8330bdd1551bce1d" +bf03a93a05f3b185988d5f0e48e2eec7eb7341f7 = "ba77a3c55ae16b81c88c4aafd59976893d17fa58" +e3347771c5bf9bc52ffee9ae886aff1edcdaa40d = "aafeb688f590bd78aa3a53b99595a237dbd8af35" +f6a07ecd11988f391c7eacccdcf44876b28cc88a = "5eae0bb843cb80269439c54389e8267d5fe7c2af" +fff901bfee9c98d7f28289fd794085ff036b5ef5 = "7d5bf78f1a7a663b0dccb09432bb13b5c6c35ecd" + +[6d106ca5-e8e8-5252-aaf4-9897e4edbf5a] +0917261c3ea96330c123e2014880f2f980954017 = "3864ee41627459eedfe829d8b1ea022d3bf62cc2" +0d9bbf77c28e9ca89ce95bf42a70039122527a99 = "6dfd76ab162587d6927dc32e74a750e5ecb9e913" +40fc4cb4898c05c463091738f3d71520a64d591d = "9a417c12dbb427312c4da7da6ffa11f709c30f5d" +5cd21c4d430d9093acb1dc1bb391c19e0a7625a9 = "0a7ff9298e4a183d91650d88392b9c7199e25f80" +65c9ee022a6988aa1abc054d9ad71a3e6d17c922 = "43827e29d6aca74cf04d7e90f2a6c78540cf28b0" +87be0c9f791bd04c77a7d91cfbaddb66371de5da = "83a171180237f249b25d02975c8492552f5dd468" +a5fc40efe6a1f9f8983a2067b6395b6f0b01cc8d = "aba1a436059fa1a44efbe02178cacbc8b27daca6" +af85debb0e9a630442e59721b1acb024f9d78074 = "0eaf0bd1f33b12037d0c17e4c20640441db1ae96" +b89b4fe9d63356aeef26b3666f3f0b8dc5bd9837 = "81249e09d911fd167897060d16ddac0266253a54" +bcaf3248c0a0cbf6fadca7331b83546e0c7107d6 = "000064a1f39c087b135e7f79c226e94754f40f75" +c1a5a312012b99a00f1d11f490b5c0467cc1bec4 = "4538678ac92c665173fad1bdc3163f0edb84c8e9" +c729adeff5566d0a451d63b8217979dea8e7c717 = "f054bdfc6ee8c2a4f2907bfeacaa958eb454e56a" +e1e58a3abc3904d74fa4cbb100fb0bcb2904fa72 = "77713079ecb25b3b7efc4ac586bac0c7932aa238" +f795afc22bca4098a8d50e90c5c9a0e89b3e4bc1 = "b0c104a5a39081ff06718c9e8ddf9b9391f02155" +fdefd0523034f008af9fc1bea4e8f6465b78f298 = "be366a39dc1567f3cf2b104f6e7329e4e8febdce" +ffe31259e7caa9362a7e4402d1816cef7ba71e4c = "4d11433b7fd2fd376aabc504e51ad9257d7f82e1" + +[6d41d727-4175-576e-a481-7d3ebe35fbe8] +04c93fbcaa3cd343d646a3b70f873527f7d81bb6 = "2ec4a1116c83d9cf2f3caf434b8381370d810eb1" +9807a64442eb820e972e681f96cfd3a7862556ee = "bf2305d6c71998c56d86adced4df98e1af374b5d" + +[6d4c0e30-93e8-5ed7-9696-a156cecb047b] +358238081ec52731eee53b45d35cd25b313c1502 = "a5439c7ba0ee35413f703be4592173feb4ca2361" +b80bd59ae894e2a867caeb776afd8b82527cbd1c = "ea15cf47176582f4cb9c6868a5380f1a7d88316c" +cb3577ac5fb6e689bbec14047a0ee4677df964e1 = "f97cbaf007780edab56e63e24a0c21785aa6ceda" + +[6dcfc07b-8fa8-55f0-94e3-d46e2fec2cdb] +21b067aae5c9d94a5a5dbf1c11e6ad2da3d7b7f8 = "e3652f0490dfbc0ea13717d84dd2ef143892c5f3" +516b572ca116fc9a5ad521e64f01dae251b82e0e = "24a003792b2e319b5c41ccfa8f424ef53ba6e235" +67ff7b92a5d9f943b3a31fc889ae0d32f19e0a51 = "9c8338890931666c864eaf8d069618f6121d6e44" +6a55a37a37fb8f04ade5e96f533e0e69b0fc05a5 = "d80100026695340ae391494237eeee0213c957e9" +70e3eb3894d7a6f48dbbbd88ba59e643b957669d = "b563555db67f89853ca950690f62866c4bdbdde6" +b1a58c338fad7c7d0a0b9410fd6042d064cd7eda = "aa928a6a770d4c1aa2eb7d33540a5f94b4c68ea8" + +[6dd6cc0c-bec2-510b-8f1d-dc94ae965d24] +341a84878e9c0e26ea9027cd5caf9d525c1874f2 = "415f1472a01fa023ccfc27990ece1256eec69fcf" +71f0400c7d5e3b347cd3b9f5a792b0f099b8af10 = "086cb83256687f3ef5a3eb7afccb35968c299f7f" +fea33fe2e0232111556dfb2d562564b9c2b56933 = "8b4e72f1f1525b664863b9095b6984d4404d2283" + +[6deec6e2-d858-57c5-ab9b-e6ca5bd20e43] +012692d1acfd3a90b0b46631e28241a30c223e92 = "183985854cd617991eebd2d66e645d1bb9123b07" +01856086e34aa0e4a1b6c41b00016d1cbc022284 = "8ed6f127979af4b936388faa1b5a77faa17f9f3f" +01dde0be3857f1dd358af2f18744e601ff225a67 = "88f9fe1f3bcb94ed50991fce981f378876dde80b" +03c94730492a4a6ebe0ad689ac3034d65ab27f94 = "ea37c3bc2357c181036a1421e9f79aaa1a77db19" +266d5f0a74fab23a4b6b114d257d26757b880cdd = "ba6ed1e0d190dba20acc41952a936baf3b5f359d" +3a4d80d1aa11579f16ab2baddd2caafcab218c14 = "d46ec10503c8ef3e628d559044c36a4a14469b0c" +44874bbc0dba5eddc5c2c3d0331d8e585e55297c = "ca78bd546843d6e3389c09b7a05c6702d12bbde0" +5698190578cf108ae342f70f7e25a30de8c9b989 = "c027f18f307c60f63a0f8ddca9d808f1c5381faf" +61efa422c3ab2e4f78c14775cbcf45509e6038f0 = "f2492425ea1e05eb0f5326e736ded4c946b1d868" +669a9f98fe7a0cb2d8892874d73bef3d97926557 = "7702985ba9d8beda9d8250d684da1e9ba63b1115" +70f5b46a9f3961daeefc60d66ba7d7cb015f9aa0 = "acef59d57c9994c716f656bcdbe712a220f97f8b" +8c8e320ab6a06ff894d333bc1346bc9fac532173 = "3e361f8c7ea9eb7f7310917a9533fc72dd4d06b9" +92ab218608ab5b8a4e0e86a0f7a95e4c6914731b = "12d131d8998aea2d691d290945a0b9f234efdb46" +937ce415e617922a0cfe02c8b8abb27813ae0ccd = "0e10efc0d888916b039686b9197e73b3ccf0e9da" +9806defa8f47be4889361ba22cdfa8836060a1e6 = "32021cc254ddbf64e933a89756b96429ddebb6e7" +b6cee92c83c3ca7180f4c0600b0ea6ff6eb2d4cb = "35b87486e3df2d6474c6075403cbd00ce68ae014" +bee169fd5da30db4087b7a10363b20834e64e6a9 = "fc4f9f5e78eff3a9c69ea6e763c215d85d034e4c" +c507a5625676d09bf56e737615616b389380c630 = "3a85389c203dbd27d53ff0932039a44979b4f2ef" +cb4494c37ff50be3b12af1ce9d66a5d3e18201ea = "7dffe5069e5dc6c0a993d5d97dc92767f45686a8" +cc2d95afcf9e869b639fb2f0313eb4690381f957 = "3c612c33e0ffbbb9d0c1a7cff52916c9b523993d" +ccd3d529dea15f1726065ae838333b71215b6bb7 = "cf30ce0f75be6aa5819dbc674b7671412f00b5d5" +cdcdd396b1aa0cf8451f9ec41531a52d40dc25c1 = "c6d22533062281dc178f9f539d29463e53eb129b" +d12ffd7e808a513f471d896d7faf4b99b76a214a = "39fb95c618f9f105062be9176f1c1e43a803d5ae" + +[6e0679c1-51ea-5a7c-ac74-d61b76210b0c] +5113dc8c528c8e965269cd6f74e839511caa82eb = "ac750b2372a34f7dc15e980e3fda304e194634bc" +74420ffb215e195ecea0f4d5028d8830a7bfcbb8 = "0bba6e447d4f37d11eb8362c3808fcc4babde45e" +7f7b17075173d04c7ecc274ede37cdf191e44fde = "9383f3707dd7adf588c4712ff6877c996e297c89" +92eb206daa8f86ac231218aa4723cc867d4d76d8 = "3b6ad930f4349264081eeb371e84b058943ae08c" +ae69320f5c51a10588c1d69f0d256cc7e391e81c = "aaf40859bd8614c8d20735ac1f7fd68c39ca8318" +e80c03227ff9acbef5a08d68f237ab88fd666612 = "785aafdcd863b942826d840c72ca4370f781c563" + +[6e198168-b5ad-50fe-a592-34ea75dfe988] +25fe2ca27a1059c3526b8f7fffc9ff1f157a62b9 = "59795a52dec1d4599554fc2ed420767992e0ecd6" +2bd0a6a2cee693b415cbbb54281cbd06ef3800a3 = "37be71930ea05c41a90cbf55242ca6a118c84c1f" +38cc9ef4f1b64eb38eecdc76c8ef1f9d43bdb0b8 = "4ba621ec2800629a3f4eb451a71e6b7ff7751060" +409a2f8f978a81e8d43104e61497e510bbdaad1e = "c4e18d045015fbe56489e13ef7c2550ded844ebe" +43dcd2c873726673b06cb216f2eb4e0133cb6963 = "fc486f93f9e2d7337df00664d854d021383fe257" +499b45a85a9e4f0ca6f60fada018c4212cf560aa = "01ee2af07003aedff5dc9a52a9d72d87eac1cac6" +6182017778f6f2d9613a25b88988dccdfef7a9bd = "71bf459abf11923e25be6fac9edbcf63fb0b5b31" +8de7f5e593878ddbbbf99ee54c8acb9eedf7d85d = "e10dd95b6ac30f10578a3600356e37887d98a9fd" +8fdb4c74998165e33bacaaf45e4bb5110fe5fe55 = "b61fc53c1d065119a0f4504ed194493a6092869f" +e37eea13f20851fdfeb730f184b9a7b2dcfd94e1 = "757af6efb8a2ee19e3186c4548f2402972360c8c" + +[6e36e845-645a-534a-86f2-f5d4aa5a06b4] +020890d73ecc896b46cd197e7eb0887a58703313 = "6f52a8fca912e9616841148df3cf771b320dba9f" +06df5220faa72fb1259e3a6947786926b136c99a = "e90d940a048e8b5554df5b19bfd865dcceaa3746" +53efb85e448ef371cce72bf9f5bdf6505d026374 = "1f94625e9839ca956c30044811145411d66c3f90" +6a2698981f621b28ba4be0fe4aa4fa08e669ceb5 = "3eacaa5d2b02e3cdecffd07ff64254c908b09b2a" +6b9a7db4e422554d859997a7fa7f52aeadafa448 = "7f135295c01c58bd720f8ec0dccb383877f0c440" +71b39100954b23356506a5bea62306740330a764 = "42a20e2699f2878b7e8e7acff2465fa1af7a28b4" +75891e0696a3b3de3caeff328ee6e567add062e6 = "6e74dba63ad64ec7345dd4c0c5381d4104223527" +ba571c23b18f3513a08598e791e1769c2f80fab6 = "c2376f67c96d06f7cc5f6dc5882137b85d768d13" +ca4a2405590072e3fe38099586666fe5f6d3e0ec = "7968be5c4fb29b99bc3973cbad7b88930bd0ad7c" + +[6e471128-d39d-5672-b02b-a742bd1b77ed] +13fdf1f9c523f0300cbd7190c9f36c83fa0aca75 = "4aa00726e847ed8613697ddc396680b2b91f1c91" +1b672c5a797b0f9e61eb1d259240ade5ec8d2d9e = "c5a5a24d72e05c2e433480ff86dcb18ead95110b" +5a79fe34fc8406b104a1fb20ea5bdb1d79006ff4 = "3860573602c4bd3c4871ae60ee58693060d3dbef" +7b4726b2148ece1b48a968a33fa5b0adfbad9df2 = "6325de7cc302227eb720af8cecd6dbfc5486a615" +b236f37aa3c838a65f2dae8b4974ae7714cf9326 = "59f36177742f53ba68b3e31436b94947e8ff0107" +def98b42c8fd7f06d33c1f55224414ed6e2321bc = "586ee7f681c0a711fdca8a57bce3d26597616617" + +[6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf] +00046c7f165d3f146c1700f2a8b876330161656d = "a0dbc8ac46d5f546df2d100c7d33793472426220" +1216bdd099e751dad12808067be864849a60e78d = "52d091ab9c4373052888494eaa4947d887f80387" +4db27210d43abf2c55226366f3a749afe1d64951 = "6d9fe5feb785a223eb1c5179b347d5cdd31852c8" +5974b8bac273d7f8cf977c8cb2dada844f3f0ab8 = "0a3f9a3a33fa16e13cedf1906406f5dcc95123f9" +6077536728e373adc6be74113c73b8353c6d2fa7 = "5c0914ee5f03f244a4f6ff6124e4f2dce5fc1194" +6c77bdcbba203169fb1dd8e6f862c2c15657d7db = "79892f5733dd04ec162a76fb55d00d7acc2ff9a1" +7fa34a12d485a64f98c8d7f81d308578f7d17f2e = "9bfa5aa6aace4ffab838339a2a7be4339a5f3b5f" +93ffa921db185d4ff8b715f954a4d9b42cfadc27 = "10d449e4bbfb74e315d67bb7c6a43224193a24f6" +9e91a1787860eb06c9b727aecdfb9e76d0d87387 = "26c3bbd3e40ade84348b60486b25f36f72ed9dac" +aafc7e19d240961c1817478bc01558c0196c727c = "b7b4e8153c42b6b037e462b5c6ab43bfb2ad0bf9" +d0ef587d4168d5948a19bbe24a6b60be866b1cab = "5341d357c4f49199cecbb35f22461e1739304a45" +d0f48045f70b3233db4c291d6adfc39117566d35 = "5282d8ba9209a7e0d9a138d9b1aa1be7c476c931" +ef5bc08b33c08dfc9a3dd970326b60ba44971c87 = "00beec589e30f0551d364a1242bef363ae92b0ab" + +[6e75b9c4-186b-50bd-896f-2d2496a4843e] +024fff6a6ab9b49a006e4551366a950c4bab70f7 = "2a1916ac201ae02cd98e778333ae6cd22e70eff0" +28b7919d3a296304ffcd7117ff96d18acfb73e05 = "7b346e602b299e3ca3a5c6fc3001475daa4fbf69" +31908cc6346fffdb95265d74303fedf08838456a = "05d9ee51bda327481c7b1b72cc3c0b2fbb4cf65b" +513706276351bddd4b7c217917d9fe5432f81555 = "fd84b2751475bd6451a1fe56041b94f85a985a64" +5a013c628d8c9daf4ab7070c6517b3bec7b8060e = "ec53b3cd8bd360e45843146b4a73753591ddb670" +643c6071591a79d1c363f0ef47bf5846b0acfaaa = "9c767dd092260a259f4bb6bf0db6c8f1f0ae1050" +829876c272656620984d53f40b4ab7de8c83b6ed = "d391f25949e62135a4bd0532ef7c8d794f815ca2" +910593e5b0ef9fcd1357ebb4f76a85febd012e55 = "977994a136bf387bcf4bca75a07d518e5621599c" +d29cd6f4d6fa1653f78178cab6308d06664c7c8d = "5725a9dce5a001c4e93f8bfb98143b4ce828ac70" +d71f0385bf1c126d35eb63696193d06c5147bd53 = "10114e555e6baaba2072f7ac363bfed839652e24" +f87d979d18ca54be58bff95a565a5e08992add32 = "15349cdceb1006faf73a10a2839b2d4bcb2971a9" + +[6e80b5ca-5733-51f9-999e-c18680912812] +0cdee28d25cac304d83ef85e2d517cf3b91fd125 = "6fac898ab2a80f4a8ab78215928255b58874bb41" +21e5548ebf6fe17bfda661070acee16e09706072 = "a89af86d8e931225843b660af4a46323f0533d01" +4a1497fd9971a89a7ce56b13116243cf9ac83bde = "276ab0752713f671a8eef0855a5a48177296a6e9" +76c003f302930b8f828b56c60431d515b136faa7 = "1e9e693daf39b8b1319c7db9e1f456474a9c676e" +8a92cc2c684712a42fc64c7d1139a88dc3e89e7b = "4cc0c7a8475e1924f0d9c2e17b7c57b899ae875e" +9983590db46e71be8437e1d714e770024852ce4d = "3da5f08e57d8846eecae30291be6b460e8343b40" +9c623c02f7827b9e441a62faef2ca7292387e878 = "2b67ba47c822151538f97a1bdd4e08972be9acde" +c8c8f75704003cb68bc4504cc923671f5b47eb5f = "47b2668816b36f13f0fa1eeadf1c104772a0354b" +c8e559eb2dfdf4921a06c454029a062eb8dc81fa = "54c4e4c6132d6cc3e496e67ff8a5b01e12a89ac5" +ca456d551c3f3373d269619806be70f10464660f = "4e0f1053eefc97a601dbeb6e77b0fdf42e7a90f0" +cad2f86dafeb28f4aac103bc9d71361f9d1b3ee5 = "6e5544461f1f2312597268ba358bdf8ea3549efa" + +[6e83dbb3-75ca-525b-8ae2-3751f0dd50b4] +1ffbff16411257f2dcaeabb4087ce2ae0d960097 = "9192d6c5f169552ce577c54edb2b38ec0671875b" +2c3f5c8420d3460f4ae52d276a85897455c44565 = "bab08cec07d98a65d721d562004c349dfc1023af" +476bd074d12233baad9d87a4f63afeb7019b5766 = "bcbaf0d37fcca3a0d041f575af302c298cfcb23c" +575339f0399f135c4710cb64e6106420e4f72048 = "c8e9e775f18d251a6eb4aa596525d1dad94d309c" +728a1281c1c2ab4997983dc7eb49ede6dab8725a = "a11128ae8edaa3f9145e007a8cb58c4fdd149c26" +86642958566785956e216d469ee2ba8e77005113 = "1c24d5c019558f5d91dab26bfc220e22340b3d6c" +ccf7f5b453d0d1aa42b7a9754d394e0aab138d49 = "a577c7cc43554549708b7a92f016466f91a6b1cf" +d84cc06fc6ef968b43c3f12e50a2920c12381978 = "df45218c6aba42c378962c39aeb90667cf6be574" +e5c8e79701cde5beb86dca1d60c3ec00a06d7130 = "6e53cc2691394a03ab435acb8f140dc936490df0" +e9fb57d0d155a1b9ce505b0ed5760077b3f2e229 = "3821a65110dc5c44892b4073b53d143e55513e2b" +f906770b1403228a75ff0af3a62f06cdc5af87c8 = "d88b9b50acba92c81dce7863824625fd90e5389f" +f983998c7ae579030a5815f902505af8595628c7 = "a0fb20abc67875dd4a4f96907c5c94999c60de78" + +[6e857e4b-079a-58c4-aeab-bc2670384359] +2a97575b131b4e24060e0eed71d740a60a5e8ff7 = "48aa7120af9265e24d1b1470a60dbd033a8bde24" + +[6e85b7ee-7d24-5488-b1b7-e4f4198c51ac] +41b852a543309c40c4d9612177a5a1cd3c6dfa27 = "d0b07a7ad6eca2eb6925ba64c458555337b10ec0" +4c04eae71d14e47078a0f70b9dec852c081ca1ec = "9a82bbfb8f67975f73f12bd9a28f6e9f5dc0a6ae" +823863d757b452624c64512fc967e7171ecbdfec = "c047f506736f34068bcb6f0c31b5aaf984b044d0" +8b073e47f50e86cdd3bc7feb7c7c5308d55e977b = "4046e19efd9594b3973749e4585cf6cfaf311b93" +e4dbffe38bfdf0e4ba50aad2f5057eba5bbb057e = "9d6b2724e5ee39f29364c6fdd16d481f12080a20" + +[6ef6ca0d-6ad7-5ff6-b225-e928bfa0a386] +0de104910aef49ce98871f415c4ddac460e1a2c1 = "076c94b86e7d1312b611d486b65b6034819109f4" +1174163502bcedaa90453bede5d1573114ff1593 = "d312178f021864b1426192b72bb09470a03718cf" +2717ef64805e79b5764b27535bc700d43e124d17 = "a01fa02e7c165b226be256d9c06c6da3f7e308b3" +5e9525362870ef533083b421765493cc79fad0ea = "6838e0d8ce0e28978c6f7830a85f3d2ea2959669" +6ec2cc9744d03ee77273fc47d0aeda1d33e7634f = "821dd8db97152b506f2fbeeaa5077000225c6add" +73166660f90e4c072d62b99b5e3a1106ee8905ef = "67dd172afa80313262335ab646f0c726c1fe4a6f" +90cc65e5c87ee63f1ec0de37d89e36ed96068c0e = "11f645a00c20a9ac559e37be5f2e2f2089fbed72" +a89658e3492b5e80428da2abec360112ff03b6a8 = "b342c90a6700e84c3d3197e9bbfe6a02141243f4" +b41d45ee23dd20aad6248583327cec15402ea1cc = "01015d028c7622b5fd7f9eee58b2cdcd21ab92a1" +bd01b7f0d480153d1734e9dc9d3f7961013f6e93 = "98292107787d1289a4fab4c5e59103fcaea8e7db" +be17e1a4fe1697cdcb82fede926fbdf2a186aa76 = "d734d85424da3ed911e67c85fc49f8945a506ad7" +ce51831af71221cdc77b87ef4dd2fbba3a7ad17b = "da6c078504022dc89372fc485c6960d4a5e00633" +ecfec97e0ef6cd2cbe44d5dd7407836cb4d922c6 = "f8f45e60ffe8b3a0784b8bc19997895a1b28c8fa" + +[6f157e1f-1037-5cc2-9283-434698596519] +1d9c21723af6ac3729578af672aa01b4babd6e46 = "fbaaf3a227ff23ed0114bc67887b3278a55dbeab" +3349187b2d693827ae5dc46bf64db6fa2095f3da = "ce886c45e8f1a0da76d0f216247cc3c345b4971f" + +[6f188dcb-512c-564b-bc01-e0f76e72f166] +a1880ce684f9b6d423f9bd2b6666a64ba2dab123 = "ba8605f547f341c0c1611057b255314b0473834b" + +[6f25fe36-ecbb-5dff-aeb8-f7b50c87fb5f] +897906b3ecad3d60bf4ca633fb956eed03772560 = "2c90e8d856dfd838a179ae6178198fb029611999" + +[6f286f6a-111f-5878-ab1e-185364afe411] +0735830fd6c26dd18fdc632bfe65c479994e5dc1 = "4c8aa88c7dc0c2f89bcf4d592ed16ecd66806c3d" +1cbd57b3255f26272fd1a3f568087abc44e0e030 = "1858aabfbc789c258fb1c74285ec5d7a43ffee44" +3e044f53b9dbd341d3661448876726ae3dcb77c5 = "875cc82f68df322a560b343ec0b1e52ad64524d7" +7afdb2449af895e40437f7b64a773e7638e572de = "f8865081e65ab2eb394d7bbf987986fe5e850d30" +a6203707b3ba1327b4ee303d10836eb6c3ca52d3 = "bdc9d8b708e7e2190b99e95e9892a4acaaa48cec" +a7a33a97a9ea680dd2d5b57f643aed5343cc0bb6 = "2cf71575f9a6abc7c687c2f2e4f0957e407ae05b" +d62b2b051a884eb98584f53df61e427084443252 = "446681e037113f1ed5fc85bee3587a347da7da59" +e3634c1b0214a176a04ebda4c2085c43873e1878 = "1c0240c190ff03ce0a6d7424900d1616e50b565a" +e83394770944580e22ee79f98f434636303e9161 = "1776d969aa50d1554f1cc462f08a2b76a43752f4" +e865cfabdad8907faea2cb76f084c7dae8bed8c0 = "d93ab439655b3161441583fbe7c155c88b0ca935" +ec3f1b07a0135ca0ba3a9fe7b1f33e4887d09311 = "311fed2c2c4a40e19194cecd25a2c21d503dc759" +f5bfd7a5776f30833ea54404ba179eb8f5363065 = "4a7f2a72e9e03c429ca0b0a588007bd84d4f34d0" +f774160885f6b7fbadbc108572eed16787a22809 = "cf7dc55b96a6b52a253ab2d1b5016d62e32e9dd3" +fea02836be301f9e3fc5e6af5eac301616f8ba7d = "2f04beba642eca146f540a60006d65eed9f6d4c1" + +[6f49c342-dc21-5d91-9882-a32aef131414] +0b45b5d5e8c2955775b10df3c323e1f10fa3b189 = "0c861eb0dcf0b3a9633e5ffc4bffedd7e5b79ea5" +12cd5919bcd850235cad83bc8697fdf46807312f = "7e3ddc34307bee81e398d31d390b0c7f25b410b5" +13d1cb6290208fd0220defeded1de112e8a287fe = "30329529892122a54cd12e79ffceea8080cc31e4" +300d554ef4add3be8276c5dac73b00e941b22360 = "79d15284bf47762878bff2e0c5527517b4d41bdd" +3d279bd52053a40f777724e2a3acd7275f504c02 = "88821b9e8be0eb318664f71b2e25dd19ad6bd107" +41ef16a06c625e4793619ee5d5c2b928c897d036 = "8cc63d02e885a6e25ec84498cc54b6dc073e1212" +53fb8557655bd5613db1b4bbddf5324b934a81b6 = "0cd5087e7128de19764417dfa18058b3c282ff5b" +6fe0dcda1e061d8fa7604f7ee122d7bd5700732e = "71a2d89a47ee35075bba18d04c9750855177827f" +7255e665f418d73b7f02fd00309f2a3fdbf65490 = "5f54131708ae0cf3abd3d82d7c517ad037648b27" +737b5eae453b589e2ce9f9583816a22936522617 = "d0d75146c187c88fc901d5ea756d3e91d86d5e01" +74e5af3670ab0d51217bdba3e281d906602802af = "b4ca2f9d37bf5be3f149036aed8f403e9153b662" +7f47ee7961c29e59c53d595bba67c9e6e6dfac0b = "7ca0e643d9ccf7364d1f0334d49f5a2a25325f66" +8152909226519f204e33b1cd9bff0c135c139212 = "cd6d891346e1f310160327fc84dec156d0b0b0ab" +8191a6c37c7f378fead9223b4b07032838f976da = "078b99971ff9473114eb515044994c67ca9b4ca3" +8575ab3043fd878ea6e81782589f36f9d120c292 = "32719eb853ff0ecdc4d4173d97cf49fa84dfd046" +91d976798a074fc960f3e5301c2f7020fd525774 = "8d376730b1f669a63a30701b8afa37df8640cbc4" +9c795a58219aa653709643f46e5cfe311fd6419f = "91ec6b376e0cc48fa08adab716543e747834ddab" +a149e49a0d73ab70e232110b798c9f35eb2fbb5f = "6c24bd373fa00ff704ddba9dac225b8d74992387" +a2c5aa14aecc56c3bbf68fe2657f90ff65bdeac0 = "8967a363daa2c9989eb79f43e6348ab2ed690d85" +a45eea0816fa406d0640c1a82a0f7ee2eea40e39 = "f3248f7d08da0a3afbe478ff93c19257eb784ebe" +a782a65fd8c4c3ec1d7b047bcadf58c77ce80805 = "23e0c8eab4eabed4b7be3236c08e4fa4014c152d" +ab05d71714c7d90c9103fbe1ae70c057118d8a43 = "8aee4f1c9db853ddcdd01beefd09a2979b1b7dd7" +b357b6d842514252248d1b17ec62a90ae44442f8 = "e70ed5cf461c0c3348aa31cffad478e85487155c" +c31cac0c967f34911c47bc5d48db524ee71c3f46 = "0e30e26927c4fb54002ac045a8b69f0aaa5d3da6" +ca554158c64e8357b9cbfac891fc2fee398e4216 = "12ef97c933ab235e4a360344d1f795ac84cd99ef" +d614442301579fa3caacb5396d6f57fb5d4269f9 = "1967a78d78d70d79959d01b8047544818c58d5fc" +d92e90798a411dfd45ac1fd8c1dce9ae96716df5 = "f7aaf0655469b2dd137714329e457fd78df5d2b1" +d9c7f6dccf1c0e798dcc7cf2c082fa6e32aabecd = "a2226d5884665ef852ac24bdabaae24585e0e0bd" +e3129371049e24520d50c568ae2193cc98059d2b = "2007195eb4b942eff13cd6ee4ffa99661030567e" +e47af2b32fbb8a2d5abf355fd448c6b6bcad1bf2 = "d1397ff7fdb18e2cd1a97c89e46e5bf499a9bc47" +e4ba35cf45ca2eb041f660642449b8259c2f30e3 = "4c812670e4f104a2da50f8272ad2da4f7a404153" +f3d0613b271f92650ad60e7ec00ad9e3da309e09 = "3b08b1da16048a995742720bf802080e639f8b03" + +[6f8e5838-0efe-5de0-80a3-5fb4f8dbb1de] +25929b6dbf5cab93c1d4d7a17410d686ea09ece4 = "ff621973d941bfaa41277ca1e905e2e12c0c683c" +311b4de8087e1af2cb59171d6bc82b40acfd4ff6 = "9d2e3e8f412c36cd0f1622854856f8c71f97fadd" +3c259368ce6348f59389e1d29b13ca837dec8cb2 = "9f7cb42c28027fd95ef821d9739c540962078155" +42b6565c7bf1184ff6ff0848948c3827e1fb891c = "55822a17d614b3f50d993b70f79d4a81552c641c" +6137bf024e1b8edd3750568ac225e98b12052156 = "4b4a993571379989cdd599fab9b8e295a70994d1" +77a3d10a4338e354253c2b22b4826e37a1c61eac = "d1a6d304a1b89abe237a07e3569f8917594cf4a9" +88b46471cf543ee01439395f8621af9cda32dc4d = "d730ab47621969255c3f21027327ffef66172812" +b587c0b5b77ad076a6308362d865b0562017dea0 = "73e61ddfd0613293b04475f77149e53e6b3562c8" +d007815638775004251829447fe2410f98103b70 = "3eff7c7d3eb2b9a95b76721a4d2949a09ed4248a" +f0284dd1dab25976f3bd7fa626dd6372a41f0335 = "d74d276078b3a8cc22a28578533aa15fa846bc10" + +[6fb2a4bd-7999-5318-a3b2-8ad61056cd98] +a0eb1234b1668691f2442009724b012948917836 = "dc1fd5d3d4031f06985f384b03e20707145a788b" + +[6fc5cb8a-a410-53bb-86da-72917ac2b213] +1cbffdfc5824b3c7140fdac67f06b830b6124646 = "285f932b0d27b5b6a3fddbbb346cb741bd11764c" +4d619bfb2998ad71a5e9e5de5e4c4613674121d9 = "725dcfd7accc112a4d5c7dbdd34084898c268022" +7f18b54450bf4018c32c60a5fdc6e96ba9177e9a = "d06021dd5b91415b8c44ddfcea41248bd76ae564" +f48192d530973eeb34f5f9f0cb7d5bbf4939c3d1 = "b93a7a6358c6e491f4f5a6c3bcdcfd78f0ae4e81" + +[6fd927bf-c9ae-5b12-a3ec-12ed9ea74c1f] +dc29c0e843913c0c287a4147e611a9fd76961a7b = "7fae9125ba949ce94e0e1f40aa120509171ad9c3" + +[6fe1bfb0-de20-5000-8ca7-80f57d26f881] +0d65ee304c5a5dddeeb3816da4dd93206a56029e = "b07b870962f1602ac91d5413236859f109625488" +172e698fa3daf2fc47e5264802044e1da286372e = "15ccbad912464294bbe03070762761a21ab0ba60" +174fc7a38b826fdd968270d165113ead30572215 = "da985e52d34d018d56c256488c17a934451a7f99" +31f35103f959f36b647c1624fc6b3a31c80f69c5 = "e171f78f1f52c6235e9e50a3a61999593ae6c065" +3a1964231566cd6163d1e926ca2cec4f31edea12 = "833f4703fda5c53b2c8cc11afa6e1638c2318169" +6418ba4577a0e89711f9c34d104db822ec3857a0 = "d048ee0c7903cc356c7e0f1cc32eaf44532b6047" +68601539d2a245b018723cfe7d45af8848ff5ac1 = "8f50459cd05a7901b2e9aa0bcb9fc3ec4c44d7e8" +78055a6cebd93caf79a6240501261b40e21c9f7a = "fd03928b918eadfc0ca572c194ddc1e100f72f4c" +79af57c647369c7fb0aec9753868799d908b67d6 = "1e14c2a602944b30273bcd9ce1b14e269b4d3510" +838f8461b5bf679e4a07cfab8e45f297efa386fe = "2fce2bc26285ddd16648e22daae76303aacef5ba" +b0fad283e4c241b3f3634059ff28c9b1a2f81efb = "b9d7f0590b2a7ef283e84b35f5d219db80571151" +b43c0fbac480b1f2424bfafd00fbf72ea3d83bc9 = "8e70d70e65119ba387bfef671c805953be025e5a" +b795ca7bbe7746117de86615e41b5f486b7392b1 = "9f6ed6cbbea75a16576932e97bb02f69be7f962e" +ba858455c1b3edf128daabeb2bb0bcbe1adab047 = "98e8994f2d8b29165e53e1bd6fb6e803be1c6e92" +c9aa4e36b739e3cf33ab509773e02be603f26808 = "b83c4bf8b9b5df1042c2da096cc98803f6b8846c" +cb274cfc4116b8402c24fc3cc6c17632fdbcd3f4 = "2c1fdeda3f318d0e0f8a26b099711762a27752ef" +ce6ecce58c87e3186239fe4e5c7f42ff08318752 = "edec959fb925c6250b30ebf642f641b7a38dc47a" +e3e5d4154fa6111707d767abc6adca3f01023b7c = "b16a9adf47ee3324900b24aca5b8c8e6b9904f18" +e6a013844ad3972fa8efde5114bfba15e2595aeb = "1ea02bceb49217b4184c40987c073e96b755b464" +f6715506b026b0826174b35f0e889e1ea673121e = "5b2ec373f12438ab4e917b24c46610e2ea24ba44" +fbed71ff228afd429871f3d6c028b575dfdccfb4 = "6f044ce67d754b98891a09aae89c74e70705a6e0" + +[700e45bd-7bf5-5563-bdb4-6e688fe06d37] +d3ca8cc1aacdff2916d48e3395d5940684fba86a = "ba9d13b0712866cc3cea9ca098595bc6e7aae123" + +[702785d1-5201-5208-b5ff-8fd798c35775] +299f28029ced38b4ac6c1eecba5db82d6a138e37 = "0b53c9eb9f88264cb050209b5c3ba7ef8bd5c488" +4d84b9081271d5739fa9ff052ce5079fe01c9759 = "547f0a740df62d02f08668c7f637428f6d63ad5e" +554bb196cafcf7ec6c9dbcd267e33ec0e2526ed7 = "782cb27450e251f2eaa0b305ddf27145dae8be71" +6162190f95fd1095a3d0d620e041d854e3d03d63 = "a3c0c384c6c859e0412d3a4bc71d0c28b1a8ace5" +a09b93dc23a8b9cfa59fb51d7c6dd617736f28b0 = "a9aa23d301f3d7b1d632735cc4f9fa335cd07041" +b21d4c6f61904d63ddd21c40c122d02ca274c10f = "dfd33dc8f315bd3a8cee0feafcbd22fb3b217414" +df58194a947de52123a077a937b162226c4853e7 = "c1380065275ac639cefdd960b3c8063f4a9fdb99" +e80a0184a1529d85cca0041e5c2f339749313d63 = "b525021c97fa8d4899f836820675c4b79a3ce57e" +ec6fcbbe08ecb626ea909d9cee101fd8a5354d9c = "ea9189964106b368e25144c56ad0c105284e0fb4" +ecfb586d4bf4f371288b7da9c45b361b6e14cb1c = "674d6f7a5b9bb1e6627fdcf913762b04a2c18799" +f36bdce79ef527d0df768eb52726779d80806989 = "868571d2c6cabb3529c22dfad8e3438a56ca3415" +fbddae9980dd37f469e9961e24aa72eae489c832 = "b6f287b15f265a2a0d920c260ab681455b20639a" + +[705b6ad5-3465-51e6-a1de-33aaab44e605] +27fe9b7751b684f13a080a73dfb1881caa8b7f9d = "a2e45f6357b542f5fc0ad67e0cf9d479fd52ebed" +3b21d4477f09aa158d03a00dbb319aa29de82747 = "09ee2b11570eecfb815652e43a6163de555138f6" + +[7073ff75-c697-5162-941a-fcdaad2a7d2a] +019775ebb43e685de36b6930a741766cf6e60fff = "145ee0a7a641fd51c0e4fc303fbdef5a76b72192" +04ff0a5101c961b04615ffbe04a8355c8de0e84f = "f591f1d9495e93cf74595bf2cc3b2f7ba9dfb663" +1110ff2a9f94125451df21c4d0df1c71ac505002 = "884ceaf1bb7c1401b47c0b340d0ae1a9abf9f743" +11cc20cb6b47467d3a1e78ec1175953de93add85 = "9233ad6128329a0bebb88da46b0ff151ebf97b53" +19af97a893d496122a148af4431b946696898819 = "51f57058a7c1dc72cbde2f9f16e0c1afffbbd2d2" +1b17812b9ee2a544821fe4d00cfd9ac93a2491e5 = "0e6200f0f1dfb3b92612c63010403ade34853a27" +1b1cf6fcd2ecb35fc0ba95278a02f1ceae46ede3 = "2ed91ef33d1f0d65adfd3da052ed61bff2c5d938" +33ec31a1e46cfd33ae521565789269a4db583c05 = "0eefc8ab11b545d8d8f959516c93ac1b295090c4" +37323f7e5d1af152568f5fc93b3111061dd5279c = "13080173736bdc41886641d789d628d0ff242752" +3daee5a97bd3fd54c59ad4476e91de7147ce711c = "866caeb613af7d1aba1f3aeb4d521891e3ee7c99" +3dcadc2d2ef0e4d6dc45a20e581332fe54ebbc63 = "357c32d5ed2d15793086708c20b223adef0caccf" +3de62484939f820a20fe4dd9dab920e9de9236b4 = "5eb334a801c08c9136dc7e2fdc91f178323197e8" +4359c9310535e626c720e30f9d2d6f8c3df7b84e = "e05ec11e9c59827c6cdc66c59e18ccc7403948b7" +43d7063ec3efc957eab4e680be9df4579c8bbf2f = "3cc929b6875e9c1b8b12a14ac8e3c8381d8715a6" +4ab3df964bf43cd483599ba304d258f2a34fc6bf = "6068be3e3c9a7434f2f27fe2c0c0125ac81ff626" +4cd1a63e015049705ee4369862ea57d5506b16ca = "761690d7786e65e794f8f127a1fcfdd818d74173" +4efeb51d610319f0b2a99c93ac4aeb329c793967 = "049de317bec1c6a27047791756d15975ae7c4f44" +503c9c1449ebc895ffc12eceda9355ec65dcad23 = "a55ff241d5f4886dc890f8bb32168a85ce545d48" +55b60c47a96676660355107ac9ade0b4d2f76f94 = "65a698e1ffed4daaea8bebe75c2825fd19a1feee" +58fe7604ef12b187090864dfa991b97fd26d3326 = "c0b531eacc36795559c8f987642101822291ef75" +5acb22421c4a99057ff7d6a0d6d9df2fd689e77c = "c1ec605213a22b00c34fb5ba53b43bbc23440348" +5cc548394947528d832e36fc44bac3c12086b1ef = "8fa720e7639256a9f42ec3577a184aed56690896" +6981f1b7253657d05cca7c64f1fc5bd4b95b3a28 = "f39d644014d4a1dedb50a0ef13c7d0dea03c4d19" +6ca218eeae7d34989fbe9ee27eeb468bad856336 = "1e1469769fe696e4694be3a7f0217a054bff4efd" +70d1b9022bbb6c403f36c1143d2f716ce7c51a00 = "74a352921117887a968cc41971d4ada17a77679c" +78106bcd813041fa8ed87a2ff343145c4d33d025 = "6d2e617d83c19949643be69e0f70646d0be48d1d" +7cb49fd3b92d928cadf8d235f440805367e03477 = "2a1a9ed9f80f6413830b57e2db280acf3def2020" +806cbf09421d4e945b728d657769f7e25e584d62 = "7f7fc5ca176523c7495c550a21c8b45e4e9f4eab" +8146aea6b158a79c228cb18075b761ce43b67b79 = "00af5b9fc56f2daa5f25a9b1a5396a3b1d4075a2" +855235f2ec50de2e7c792474ac56780666135747 = "a1238a6d6b080f486201b6956771d0b83932ed84" +86a1411f8a73154b1f61e602aa71d47ccc4d1e82 = "9fb8fd1d40243742393711dc060d19f2ed91ae06" +9930d1c545ac2356cd4202c003e3b5520a3209e4 = "9f336615d4026fde0111d25e38a152c8c96c9f1b" +994b62e5063c2ffcfc8ba81d2094713731df58d0 = "f8c7ee7ea8206762a0a7d9fc34b639d9f2177ef3" +9988a8d60204a3aaf38572aad456e949e8e1bf43 = "d98b3f681ccf468760f9673298ef0d6b2c654ee3" +9aa8604aae24ff87026260593f460e02a605ee42 = "dbf2bd0bec5286e321c71329315c47f5dd4271a3" +9b677b1e12e2d9ad17ab9e02589eccc2c3cd5c9d = "6ef85f5e7d32d1d3c456619128218b7adeb7c0c6" +a675ac5c5b08bf75a2f4d2f3b80035252a4af3c1 = "ce49003f3caf5701abe0359af017e78b6ec60bb3" +a7a0b707c25bfaa224cb047221749a61d3899ffe = "91ab13ed09701f93423c01aa6732de237b53f370" +a91a484ddc369022c462ae88d290bc2158df834e = "cbe0d4275fc3f1181de4ba4bf2480bf93c8a7764" +aeb00629e1d941a9ae439d7858d177c3513de8d7 = "246663b20eab6391b7841779417b644387210e9c" +b161ef727bbd39546f54a70219171dc1cb03e04a = "fda7ba14fbc131c4710a9da3c228a9e48799bdf5" +b4fd27f49ce2ec5e790fa75b1d34e5ca60a044a5 = "e8241e3ce6ecf03dc0274453171e790a3642c982" +ba921418c5bec2418fddc98f1be98ba36a68a78c = "021bcb443d1955098d8d2dde459afb6759e9156a" +bbfd419dbe896b3b5c3b29557c951c47df489338 = "dc5331505247d08cc27179536f64b69a850fbd20" +bcaa47203cd12cfe25d3fa7e0d5630499a5fa8d9 = "fe5db1b5dd38a17dfafe919f17596b69232a0044" +ca35a6397d5e430f94c087f727a499b8e6ecf906 = "67e426bbcc1dfb9f0d09c57dbc73fdecc96a6e27" +ca8d926444c2a099e35131d964bd266dbf1c6b7c = "31d6d9d8913ced6c8c73841aacab3c258dc2c284" +cce2225ff59b2425eab8b3b4dadac65d5d0aa24f = "3b3261a175b0a84320660b093883f6ab10e50a94" +d8966c9c02d17e428a274325e8a9f8101002308e = "7c0ab0c6a255b612eaf7410f9671f8a004bcf32c" +ddd8713cfb0108151521bc51aa63ef2c0aa66cba = "c4cb42264f44209601a19de92f5ecea19aa51099" +eb1e0f04020ef6b67ea0d6e7d0d192d652a8a768 = "57ddd2be2d3164076ee5a8e770676bf0ce6ecf0b" +fcbcef24d2b022464092c1d0f99555edc27973a0 = "9bebbbbcaa6443a78b3621568ab6cc587c07cb82" + +[707a9f91-dad3-556f-9594-9b9a3b777385] +298588a612a81eeb9c79a4dd635944b53f8afcbb = "e0c8c98cdbcc3c16ce0eb02092a02be9e0d649b2" +3885989d95a4bb827b355d8ff0e0792dde5c76eb = "ccb904229bde301b2eeae34db667ba744eac6852" +5c9977b6b717d261bab7ab1a3d01a9076c73716f = "3d932e4d6274c73844371c790d655fe6949e4fdb" +7865011f94578e1836a8d3d3825fd1219c5d3763 = "e520eb9a26c65de3441620b743f3c5bae154ddfb" +aa60bb42c8ff2a16914cfb133ace0cd4acc6080e = "fef4c6036d728107d8109b5149ff52045dc88841" +abcf0a6efa08ac97311737fe0d43bfd21f44754d = "1cab047200258c66c19f9d449cc5e679bdd1ce02" +c3524f8024d1c4ef83d6950d20dac3e5693b36be = "2c4a0c721343d94463e0c8cbdf4d81e3b125425f" +e161a36abfd541926db9d7591eb6e3ae6ec9bdc4 = "785e1807c4f3e3269488c52ad32b45d6ec4df6fe" +f0580c051642b5e2754b944738ff5e7be26d991c = "033a9454ff8cf4ae15715f3d93391f0e9a477657" + +[708ec375-b3d6-5a57-a7ce-8257bf98657a] +2250542e69c0ebb3aee05628aa45d98d8fbb69ad = "bc00554fb3d6a05cb052258727daed2e8aa90dbf" +6ed30e76cdaa8dcc85f263c12e0e51ce4b5dc2e5 = "27091ef7c4aa12ef1b793987f89b696e2f2ff228" +704c9c5e28996e70f920595fba4d901afe99c076 = "bfc1357aa82151a828ccca4e03a8c90242e0f679" +c102799d28bcdbd9996eb1c263ba8bd8838b4943 = "6b5156f2fba2455e624a7b14683c8e12d7c95620" +c4c0636493b14167c99a82dcc67ecd58a1f87e1f = "b44296330ec37025bb8651c6107ed226ed9b09e4" +cb9c2e519d4de0352f9509ae99a1b7225437c8fb = "d0d8d280e52854868f7a3f12c93293ec6a82d208" +d9e2bc3310dc128db1d61a78af2fd5d10538b2b6 = "253bcf7b716f89ef8def8fbb39f44c342a357230" +e28b25eb7fbe24df358540ae96d72545c7b24809 = "198f3910fac5cc3e503c1c66c07c4850ac849a4e" + +[709a03c5-4783-5601-8e3d-f371b60e9387] +9a5e639328aeea012620cdec1ea874119a6691b6 = "390a983ccf9b05c9386c987286ac820ebc2c960c" + +[70c4c096-89a6-5ec6-8236-da8aa3bd86fd] +1bf5f2a28f079148733d8d58f96659b670e188a6 = "72569acd5757d75542061756ca990086502972b0" +274eaa8b41123959060c8a124c6bf50009f33bc7 = "c1b05296fe7cc55812ba2399f7136b97dcf8f1d6" +2f1827d5b5d30bd8ae1359b9a7950361b4ce05d6 = "96752e45548c93cb42813407c44af586382f746d" +500b4add9138767ae3b20838aecc3a4044c1aeaa = "b7aac7f34242d587269289200139030d01649a79" +76c6da66a700d82805d150fa74c72c93c5cf3195 = "dafa17cd49225bfd9aa3790aef7309796deddddf" +7f80137436dce47e2a92a2abca5bfcf777a9d537 = "de2d05bdb22da6ecdc6b07c9bf01ff91773f23a2" +877690fae077165ed9a2b850ee9d34ad1c095160 = "e73a608ae18128ab15d06f3895cb3cd2d47090d8" +89621bf6d4d3f9e3900636c2358496b747606144 = "4a454596cce54892a942f2adc239a6804e607e71" +95d4d2202ab6aa7e9efc34cd1dd8388b4892a0bc = "768b3d95efd7ebdaf89070e4a14ba219f411879a" +c607f36222286368bc28401773ff5280716fb510 = "b4095d2aa3baf5442989ad520be68354d25f4605" +c6d2702280bc8ba8403b1ac888a8b4ab48318d45 = "192f95447afe99bf3179f617e81321f7de520adb" +c9a5af45a481b18e0fb915b9e7cf4e17bf80e8c2 = "0564b3cc8f1a96fcaff2315ea89f59d2031c3f71" +d8dbf06bbdf7e6d0d39ed318ad0ef87160ad8db1 = "0af7327f9085a0fe1a3c951ce225489be15f1e40" +dc79975473d7f7403eb01b4763c533dad39823c0 = "93c046862b249010f8320eae17a34a638116f5da" +f7084ef1dca5ca9dbbb772b01b52d8618261d7dd = "876d980c53a2ebf50bb97f9638cba070967c227d" + +[70dcca16-fae7-5c11-a923-39bcb60edd10] +3bbe14f1f287b147b8713768dcf0269608e7e61f = "4c94fbc0dbf2e43981b831976f2e22037e167fd0" + +[70f5e60a-1556-5f34-a19e-a48b3e4aaee9] +fc148b84d52a98f0bccbefe18b0484749546899c = "1c7927bf6b69fb4ee888208b38090669290ea85d" + +[710c6136-668d-5095-a8fe-6011fc836f11] +de0bbe603ab897f8f48e14e92f8800250522e155 = "3521163761cacd7fc284922725b93547352fec6c" + +[71555da5-176e-5e73-a222-aebc6c6e4f2f] +06b9cc96c9ecbb3e09aee92995105cdf614bf497 = "55e340c79496ad7c2619d23bfe4d04a242e6c90d" +4f12c3f25fe61d2bc33300dee61eb54956ff962b = "74a0f2e041634672e41a223f9ef3804d75885969" +830246d478980862301675a2149ad1cfb12359cb = "af6df38080b3e1d9aab39a7714847daa2e25076f" +a0b19122b439d82fc536673edbd83cedf17a90be = "54d681bdd07c7ba025342f16eaa2b4221be0eff9" +aa96ff612e06e7aa1c1e9b06c23efb602d590c0b = "a1cda5de162fddc41be6c97bc467efb45579051e" +c2d818e270db1c197fda086fb5bf46aca5abf918 = "46d260f7b85f76f0195fc498584fbe5d8980f207" + +[715cd884-8f22-55db-b077-449d1f7eef73] +0c02e364fd61c67a64d4e4ed5edbecedd7917395 = "bd74d1a7f3216a40e15ce4426a4c79550a7b24dc" +53e18888d93c875ce1d6d931c56fe673d9dca5f1 = "f27104a8a7ecb6f807a884ab75834648fbd654cc" + +[71625603-7594-5154-9703-a50705a89aca] +d5fdd82c2285bd0abfa518d1d61d1ce3443c02d2 = "0f7618149b48484f0e8868e956ef96b449860cb1" + +[717857b8-e6f2-59f4-9121-6e50c889abd2] +2e994f032310d4c74396d4eb38d4f2d93604d1c8 = "988e1215a1e4745a433a01aa66eb1e1c71b3decb" +5c5ab91d00f9d11440b5fa583dc493c2a26b5f02 = "c6834b56a18c0557d03c05acfddf6e55b9e35aa9" +682196870d8dae02bb1cd2321ffd0ad6e85f2bbe = "fc8ee2e38de286aaaee1dbd38ba961f3147e38e8" +69abc408a8d3eaeba8e3999b8c3d8f7a87150f24 = "d82ca03a5ff2d65c357ad10e140a5ea30978ad36" +7cfac97beeefa5de0ed98592fc624464a2ed81fd = "e29a8cb5827d6b93bf1e1aeca3163138734433fe" +8fb5c7cab2293e89fb2b3df6dc02266af965b1c8 = "6cc7ad03d1adb6549bebe78c5b580e70e26d25c9" +90aee1147330b96835f247307377e60331345ac8 = "4aae9841ae5ceacc91795d738b2c3eade8a980a6" +a17a968d2c0c8a13a7aa1beb42f9730318667b92 = "705891ee132f17aebe89aa6364d54a40e4b854d1" +aa8427e1fd6a248cc8eb698710755b14e17a645e = "0c6714a4358364d3c03bd96af6f146dc22a0a456" +abe40789d3cc0a36b529520003d97a6d6509b22a = "7f71c82ec88516362393e16ac35fb2bb6ce4ff10" +b0be357ab3c578f6e0fd7f58d857a0586cd5a6e3 = "aab817f258d3a5d048cfe06c77a04cabd36b1d25" +b1f1d920a0f4aedf3a9f5434daa1d6b048969d6b = "1d0db2fbe3cffddcebd4b78c59f26c0f062e0f0a" +b5d109d5040f339195c41440cbefcc6eb46b22db = "4aebff95e0c44934dde0b927f5aca17cd68fcd75" +bcca68b5ece29e4cfb6906209d00981cabcbfcd9 = "1e6f3d8f5fc5dcd000fcf89b8c5026ae357d732f" +cfc3471ac26e0027c31fb39bd2d1af1b79ddebd6 = "3d07695dce161563a14c1f861aeabf22548fe35b" +d6d30084c8cbb5713bcdad1c7748fdacf50d6ea6 = "7f6b67708c422054aa8bd46e18e3cf89ea3fb99c" +e595ee8b746e0604e82dd77d18777045601545d9 = "2814a0173fe99a3121f3d8714e661e46b9ddf187" +f2c056d9b367303d5e6e54f300056c0c693f52a1 = "73409c356fe194ed1556a79c57b1b856329cdb64" +f6490b171daea0e9553cbd7251846eb15c5efef0 = "aba2d63e3dcdaf800626076e82768847792f492c" + +[7186c646-c682-5568-b8f7-a702076b479d] +0a131332b26e272153f4370bbe8adb70ec483e56 = "ffab268b792322bb5195a86e83404c6abe47b717" +3845c92bb15024c4eb690bdccb02b6d693423cae = "6e8c5656cee65d8cfc5baf30fb6233807bc08709" +aaa501d5074a057d1d2a610c21964f659b624ccf = "0303996d94613ac1d131a99b5bac517cf2b6376c" +b8abe9647e4910fcfb817c90cd16392199248978 = "b1361933bb3e8da9ecaaac1b4ec78f8c68e2c537" +c107312d72b8c64228a25fba4996a586f2030ab0 = "576b132a192d63a4d33911a9e191fabfab3c348b" + +[7200193e-83a8-5a55-b20d-5d36d44a0795] +29a0b6f234cee344279e188ed0a96e057b511602 = "0524e152f27cb777f403e02e81eda440a9054993" +4318593032bb8777f46be2756d06936bb178f73d = "44ef6b84249eabb1340baecb033bdfb9e61515d5" +53e63fb57754a093fc30cbfc78b4b829cf7cb584 = "c8f2fe7f685848edac4a93044fe5bac839763b05" +8502a7f191f7e19f11e2af9d1b11ea58e8e0f9a6 = "410ac8e16e4648b184afb0572c9b16463ff7dcca" +8d3125590cbf32a09d07b09862a2dc402a69b338 = "808983c84bf200719ccd590950ce1ce3df94bb6f" + +[7269a6da-0436-5bbc-96c2-40638cbb6118] +0a5cde445c83b9eda53066b76f23b0f4d3fc4dd0 = "630949bb9f1e27151e57d5662f06abf286fc2289" +8e31feeaf5186cd762ef578ca8f8f2f283cb5b51 = "d62f3b0f9e82ed0066fae1f3b1732d61111fa581" +9e8cb73ed7d45e0e5f77ad527a499545a314eda1 = "126dece652b1c663be96ff83620f2b11af619948" +d00ac72fe61bd175e393dfbd469910a139228006 = "64d4ef16ae8f8e4add75ed9d086fc39609f53738" +df3323bbb328b503acf832e60fb713c4f84f5bd9 = "e17542cd3f7fe2d31117b684eb3a88305682dc86" +e145c9f11f15048859d2485ad4849932d66eea5b = "d67d3c1d656f1672ce821169b33debe491eda134" +ef415a41fb14922a00867f592ef2b0cd93ec6e89 = "ad3ff5cfe25544ee2f4394859fe1687d4eed1e37" +fe6878bbfe501b4f00c938d37cd0c6e5e7cd0fd7 = "5bd95cdc7bfdbfa05864354334a98d6ea00a5903" + +[72b4f566-20aa-5d34-a893-970ba56e54ed] +2a49c24845325a2643630450274770f8295b4653 = "1c722b71d6df664bd06c72a22a1d8fb1ee6c15d4" +675b4cbf6713f55663a3b8d46d25fb178cdf66ef = "c3264952f18d3ff8f729d8f026c64424a2c04884" +93d2f5bdf141f70f155da69d86b0128c8a00bf1a = "0e94bcd31fa35770cf7676c76a9c9fce18dc86e5" +a626a5ba8096a3b54caee22ea34ae37885c4b49a = "9803ac18a3285c8ccb20b7def7c75f78d80ad397" +f51371e8e7f23c98fa29d44020043527999041a0 = "ac765a42794b94954a6243efc47db47e5b4ca9d6" + +[72bd7bb1-b4bd-5012-9e0f-f33a954fca4c] +3e93b817ce7a7a6cfa97e6c940057f63703133b3 = "1bafa4b5e0ec4998c1d9178d4fdb5ed010843844" +4dcf8ee87490b55b67c97b025c88d6051539e1de = "56bc31b8b30b68b7c60d7624c527e86f2362192d" +545fdd2dc130765d3136d9c9aabd9a6935c7e948 = "912b37d871fede8b54395a8aa533333351b8cfe5" +7b0ced2732c1197bb8333941725d75e70deece83 = "3ffa565d5676856fc4c4524696f3273ac25f95ec" + +[72f80fcb-8c52-57d9-aff0-40c1a3526986] +2223cbac2e30970608e499a3bdd29659832e254e = "878419f1577a9832a7c50f5f9294124c14dfdd2b" +279f625dc941f9e09c3d6aecc76294746befe602 = "a34a4dd0ae1f77bcadf57f6610fb63a0d7f944b9" +6c0ec6f0f1cf18db076e77f387c8959cacba2338 = "47f820c99a16b9408bfff5565b5bb131a8025f0d" +9d1b88f998c842e8ebb75182e11e90821d8043df = "0f1d953cf683c0f038079eb3bd3a249b4878e2ae" +e2f860c14aecc7ba60d500c6d35e3aac5b8a4f5f = "4f845153356320e85b0b5b95b059c0abc166fc20" + +[731186ca-8d62-57ce-b412-fbd966d074cd] +06c800494be02cb8061cd02aba459667cf727e25 = "ae86f657a474d1626143a2b582ef269bb88138a0" +09e4ad153052dbb2606c8d1deaf6f2813acb1a86 = "0dd14006ee200580ca52e1bab4028dc745fe3618" +0c3431dd08ba840ad1d807c835e42d2360d9b411 = "e858099b3622bef2d710c199c338d41b14027cc9" +19b71ed3b0df58662d53ddf28136dd64a620344d = "da66e073073ef8476469ca4dacd1bb328fac50a6" +19c0532ef77beabb7a09118ab8dcb3fbb13bc402 = "a792e49ecc406b9fbdf8d1019b8ce89d37ccf1eb" +22c18d86653e56591fde6c7ff70a0e607c4a26fb = "4195e129e8b714723d0964b40951de29713a6d7b" +3f956efb265d2ca05ca03b1b438705d9c539e356 = "db59c1af3b3d058c15e34f9b0ead5d1102e4a354" +47849e78095e4a86c8b23236ca05e861d61cb55d = "e8df594eb9816b6e0dcd149899bb6348f3fd9196" +5f20d540d19e25989a710c6a4814750203096a23 = "00a14daf923d5a938007686c519de9ebd6887209" +6827bbf1650d18640c15c57d49bd9caa0837c532 = "9bbccdedece042e59123cc240d28b38f33ce34c6" +7346d2c222a7c753fb2def512104e29795829b41 = "a5010b6e55f7c1b4187a6f22d6eb0447f69ca1b4" +795d4d48668c9125d23f108ce459f4b549bd9f91 = "b949c73217d1ed2685e22be597b512c3a8db6fc7" +876d5a4a12f4e3681bda45944b0c4ac63de2c0f6 = "749a65c809b1319fc73b2f5bc3d78dc87ace0662" +97b3bb7d76fc80e3704797645a6eb97c3a321fab = "d891e3395d4835b30cd04ff9e73df81cbf097e79" +9a95543ed2a9af0f45c2a1b0fbdd095957b15196 = "f56a933bc68da9fa9aaf5040a13e743b32d008a1" +9d2a40e0a299966ae72af07acb16d77ea1b25046 = "c49cba14b7b6ba40dffbb0142287d6d9658cec5c" +9f6ed2848bda622c9011077abd955ac484c0ec73 = "5a21a73cd95681e7921fbcf6ca4c6d29b75a4604" +a941a733727a057b978fa6ab7f8601e016c92d47 = "e06e877cba2e0cbba80b9e1c70b0cb60ef94ccb7" +a9ffb9e6ceb018adda44fcf473f54fe14c7558f6 = "349b71a21841a707c454d00de913515ecfb5d663" +b6a1411807f6d1916dd4523cccdcd37837b0d0f8 = "b2de110d21611a195cf22a52f15f651d97aa519c" +c049fc3eedea044892d7246c8e0c6cd187cca629 = "a7cf7de533d5624e41e5dec658f725bb1c6ac357" +c2d8019ada0a8515f3fd731d822a2122cd6cde6a = "6939c258d5f66baf6a55eb6cb1c213c0bd996243" +c640dedbf95f70bc38c283fd0305e1ed37bbb785 = "58196e508ded85e66c2f90a04cae11b9dc39e2ae" +c6c13cf545b658af4564c53a7d57d7e5e4e4146b = "bc3faf458bc9ec564d340190c94c63b4e872fbc4" +c7ee8d33617d7f726f19d51a7fa097312671557e = "6ccabb21629117a5e88a6c819ac62ea8dbe65f5f" +ce3ae7316d7cf07fd2679d42d20a683346ee0b4d = "856bb94067e0415dd2b90e7f148d7e5f291c1a2d" +d10bfba7ec0025d5868f236fce83c68ac5722ce6 = "62e4aafe57549e4cd417e165352032eb7aa21896" +df0c00e5c4300c4c4501295102cd8be8a6b5593f = "39607772e9a82eeb0cfb70d171206f4f38e7a13a" +e367d9eb5c5706692241fcdc4d3272ee7c44e8fb = "f9e83ed4c1990a5e7ea66b6ce83519b1782b83ef" +f0ce24d40c7e708083f8b1fc81dfb1a9c9100ba5 = "a3c4c392699978584684fa8f3b4a5c4727995801" +f2df3313b48babf66e4ca3e0a1bbf48f54545e55 = "1ec92572536fc5c2dd2bd19f81119d5fe324a61f" +f3fa5ca7ad289fd52a181a97e7ca9db880141586 = "94cf5cc94357ea739183801360614504c260bb9d" + +[732a3c5d-d6c0-58bc-adb1-1b51709a25e2] +04d751ed36aecbcec87c584d13fa726f24c167cb = "5e8d8a8e5e12d31e9e29906f1a47cc84d67c326b" +2420038ef8b65ddc147ef497b240c79b933eb5e9 = "2ac522ad7f9db72426b9c9a2ecb33ace69ad255b" +357d7d40dfcb2eea82dee85dd0a2107525d2e120 = "85ad7849fac8cb86310824c1c90e8a9674875c9b" + +[7330617f-0fd5-5d6e-ba18-c28896f68b72] +85aa843449dc1c73082a6e2e65c3e4a4fae54dcf = "ca5b7a74014c95d7a46364fc3e16faa63633496c" + +[735ffce8-66c7-5b61-a90f-89c46d1a79d5] +271d042a61023c73aba9fef1ad3987f28b9d5e49 = "2b0dc188b47f4901762544db23a82efafa65a674" +2b06c65c0e721c1d40a914eac2700b6428539fb3 = "9754d4412f805d1ce18d0ebf9a6896a98020e261" +2d1a7a583a1c74796d57d743e0bd81570f894cc3 = "95fdf6e36554ff2d42f2cf87a996b5985ab33582" +3612c71270e39b4de4f8e506c2a3865aae72ed8d = "0d74c9a8d663783931d39b0dbe3a802636a18770" +50f20b17f35272446442bf943bc0e93913c368e0 = "fcf918375e38ace67ae1c22ad145aa1f6c4225f5" +7aa2e386c398f04f83b8d3a093e0d3fd23a5abb2 = "1a0ce5761b871ba3a9c6a1585b7732c75248c780" +a4a3069bce44f79a6123f0d872371d600df30857 = "903649ebc02d4bd3d231283b20d885b264c2e0be" +bdf1df2784dda5bffd421854ef667529db1259f1 = "93d67e54873ac9b784c32371d7ccb54661520076" +d31355d288303bd980298c4aa3a3a5fe9c239dd9 = "29436b2c62e2f122896bdad535550823f59ecb3f" +d9657cd3f52d58831f7932e60b86e16cce7ba322 = "29eed4b54bbcf1f094e9ec64e1365b7ba31f729d" +dc76caaf52433cf66b5cb03da98e1c6d30e7a569 = "94e76dcc063c240b3f67cdc8ce9517cbf37f2a22" +e09075c7c1f6c31ccad6367a16a7d8d10635de83 = "0ab1303d8af0a2f0669270c86e2ca8d7e0621b5c" +e3a852f99ff10125134dcdbc48b43a7fe9c3e029 = "1df4f888f9e5044e2a2f0ec555361e450c5b96bf" +f58385b5c53cd3e52c6617c0cdcf4c1f254809e5 = "222079a22974edc44faa2962b43bf998cb95f183" +f5d8c6d4c3c47860a2fca7740549d800fdfed731 = "86bde013bbecf07d74cf209575c6e4d4b2ee91d2" + +[73760f76-fbc4-59ce-8f25-708e95d2df96] +150c9eb45fc77a2606d38491a8b67967aed013e1 = "6117918fc899c486e4d88895da0aa81f74c23a6a" +a97a950ceeb054d833a4aaed6b0aad3099b28772 = "4ba2726589b9b4c7637d0f37753cecd35f7fe4e0" +d372267044c696df5a54c94e80acde176e17a220 = "59df5315d6092212d42f14cfc143da78159babfc" + +[739be429-bea8-5141-9913-cc70e7f3736d] +09a856f884542722bc3ffca9fab12c57fe2da5ec = "ff4c327886cf80a607454f397fb1241a95bd426a" +173250ee12dc581fa8f22d8ab5173a89e528497e = "d6952cf17923ab0447ced60b95ae18eeab35d9a2" +18dfb5cde748f601fcb4546316d6f1deb8556d21 = "281300b47553de9244e30879f44a10c2eecec1bf" +21e642d0e5d302d503a705e81846376fe1fcefda = "3522a5450e4578d0aeb842d07cc364caaff405d3" +29b7c9424d7e1c32d8c107de27e47b90aa35655b = "74698ae55b6c28e4385efc5a7a5a931def4f6c1b" +2ca7a3cb6aaf3de0fc1fd7de9ce7a782958e0cd2 = "27f4d6eaea258c2dcedc03181e069886c192d1df" +3fc47bd49fc59e33042cea50e9228f68e8a09d9f = "d3dcca75335c09574db8b31b8651efcefb84049f" +43e1a4552063566761ea72bce47db0aee44666c8 = "ff98c230848df1c0227731bcb0920c3f25838b9c" +545b9f463873b8b80407aea6ecab4f498a7a1b04 = "235468d8b9c3ed7d60429ee61cb403d7040e5738" +634d9a9a047c4b9b094eec1fdf38e37b16d4a936 = "c0aab0b43a4317ff97d0764d4682f53df0a4e351" +714b8db68060a9971d6453bb915b775e4a579d18 = "c85228d99741c12fb99db1f4320bd7a93ce13601" +780c9187bf2d02b2f063052ec3e1c29cc04e752d = "6f804a8848284c3ca3a544747c44bdbd21190fc6" +7f54bb13d23e244b9687edb46447e96498af2eac = "b37161e7f8ed0654dc5308f3c05cbadd34cb7573" +8f1a1757cab75325ff909b495208996009bb0496 = "249f24d96196e90e0b4125ba7827ea2478f7c555" +946d9389ec707bfd0cbd78a20141abe0d8f2d703 = "714b8ad53b78378d03e4087d77865b0ead66201a" +97a24eb845646a9b0ec3d79a93d51fcae2008dc0 = "44784eb0b287104387fe22fa078f2436740b29a3" +9f143965da1673718e25cbeb9492aac7fc22c9a4 = "281ba61f47b9fbe503bf97ed84ccc8fce26d027e" +a4bcb6826f8725a023894308c77da996bcf0a645 = "e55bb18bd13850e5a3c6290a3fc689b4c0077a76" +afd2ef93ca24ff231f1c0fb656644f50bf1ac14e = "17decc9e76384effe6b2831f6ec9559e53749d09" +d77b6d1ed576f99ea3adbcbcec2c359d692038bf = "e039e9d3ec457524dc4d66818e372282555f12fa" +e1d243fc4b10704cd79abfbdaf98952418d1a983 = "35b2338a0b86ec733436b684328a14291cd86962" +ebf39081ad7651288858f5bbc6bdd4b490e40b7a = "18cf0c09f5ead0d0e832dc62a4765f0c09808819" +fcab83b78243c5572ba80454cd0e986b587f544b = "3d21b467cf157ce8be7acee73f1641e41229a764" +fce850db371b86616948901d09d4f7962d2aa229 = "c9dd420a3c57f30bfceaed7e16fef4ae55545b92" + +[73a40cab-d838-598c-9e4f-fbeedd26c289] +475c6511caf87570b78d233ab1f419b00ba011b5 = "d0c0ce1b984222acd6a27984f93b9e42d3850aa6" + +[73a701b4-84e1-5df0-88ff-1968ee2ee8dc] +089d7adbae8085204ea7183a1e887d9629e2297e = "d49043fa020a14afb6411136cc913e8e9883f685" +1057422fcb46adfab2c689c341e33d0113a0e62d = "9894a234385f9bc77e414b1236ed4db53cdccb28" +32e764e7075154842709815f9d262507d50ce37f = "4f648ce2f0352475d9cf7fc738b3ce3cea3e172e" +33f5f1397fe93ed329c80dacfaf77e3c0d99e505 = "8e2238de206ce98f87b60be33cf9637f78c152ca" +3ec3e58cb3eb942891ae480ab85b013fd7a5cea5 = "a14533331a25520c9bcdba4cc154077a3dd0bcf0" +4d0571e031225abc643d8c0064b4b1735564c188 = "cb65696f7aedd0b3f26fcd799748b6de88bf6af6" +4ee138074f57932c55f1c93118c90e7578296206 = "cd07f365b030ec7369ac1eeea81417f5e66b6ccc" +61d8deb1688d2c2e571e118c468945dbb74601ff = "70e8d0d91d4b002e623a1c6203b4284583e966b2" +65c5caa4826ffcbab5200830ec4ed39eec12f367 = "ae99bccba3258c4cf04e6564b3e2bb2d6dd654bd" +79040583a127ae686d1ddfc46353f19bde3ec68f = "4fd36965b7453e85a41e9bcd83055c3e8784b95e" +acf7dfbc6ae8515bb4213d9b0f7c54511ac91998 = "2b4041682d28939b048f9f5c03da78ba1689ee9c" + +[73af2aaf-3f58-5b29-82a9-435ecf827f5b] +99c25cb04e39d3114ba6f4c11c0fc3ef65568fbd = "0b8f7a8850bae4b11c5788c2b7fc0336d2fb0f15" +ad07a389773b7f98abfe13038c38c636eafabc7a = "96a84ec406f94bdf5e7574cd8fc602ae37a7a993" + +[741eb8d8-1b8a-5b1d-9526-a7052a967f3d] +27cf8e493df443d7b118c3a61e3041bf6e649965 = "6edd59e9313d81f40ef74648cc6c227d6d69f814" +a25564f96185feb5796405958156669f457c4935 = "018e0cd3d8f322de08ea4785161c08f8789c2028" + +[744748f2-ebff-55e5-9df3-df674b774292] +42a4a1affc99c6e13536f5bcc647845e0bc3d71e = "abc0f091f2b2b625a8ec0e89ea0f5199745b8c3f" +7c6e6a186ce04ea308a336e731c1e3ad6998f4fe = "e2f54726d10d04a378ad53cc92168c97c4d720d4" +839bbb619507f00e0398d05272a34ede97e8686a = "8d79ba2a29199e6db83c01386db41981b6dc0803" +89283dec3e4bb09bd040c9a83d6d04b5552722ed = "7815a5cf4473c7851cb6c122b8e6c837ea37389e" +c55b86dba59c7d81c776a8c8de16daf2e0b9eb18 = "6dff0bf5f1c126ae241774f8bd28e03644fcaa2c" +ecadc3f747fdd3aaa7a10ff2688dfb91bd5f3927 = "bc42b51727b193e1114937449f14ef65008990e8" + +[74e4bba8-bad1-5cfd-9e93-3875e29503ec] +189cd504c266cd3351d1d61155cb7164ab49f073 = "ac8987f2ca7dbc714ad4c6e0d881682b80c374f3" +52da6796e79dd6dd4deef8a049c32b3c90a46c7b = "3cd73279c06b1f2fe9d1aaab1c1d1d3720932a36" +dfac2f8902624cafe6c77fad0e939fd2873a5308 = "16a4f8724289f9559b5449a897d9f1c975191df4" + +[7522ee7d-7047-56d0-94d9-4bc626e7058d] +0dff2862ca1c092863d3ecf70e7720b06a0c8781 = "10bbf4300aaea7859937974e5f672937ee9367a6" +3da5ab97f7d49fa3edf23783cbffbe5fbc85ff24 = "e01807175ea4fcb29c2d4f4f4f81e22c0affd4dc" +4fceb2006fc8307e1f90cec7600d1579aa452ffe = "3de8b7b1764431aea93f1dda464a4669879088d5" + +[7545e2a2-eded-5652-8d61-4d7be8e6d59e] +5878f12020e32dde057bf2e5c35b7225c97d95b4 = "3068d6f09a65fbf6577af52f59836e07fd551ae1" + +[7577c65e-8fec-53c3-a011-b98165e3da76] +72d51a86d502deb709b54588f49bc02c332ee284 = "65022944920f43c7bd34504ee67db0977518b023" +8239f384265a6871186433cae2a31f01d022044a = "fb90ee882ff567d087b7335e57a0f020499a2929" +9967b42d59bd22f49c939c8bfaaf87d0b933b732 = "6ddb28a2755e95b1fd4ecd353b866cde41531791" +d323520b2bc105bb10d26237b1d6438b61c2c764 = "3361885635d2da61d59a61346f39aada3921bae9" + +[75c7ada1-017a-5fb6-b8c7-2125ff2d6c93] +dc0cafb5e712807a7460847bdbc5ddb5e423fa8c = "2ad118815367f66f07daf82908dd2da5dbaad68a" + +[76087f3c-5699-56af-9a33-bf431cd00edd] +00417b7634700ebacaf6dbd0d9582d0ff25b6bf3 = "01d01098a80698af5b1f5634097f59e81fec0403" +093fb2030b566ae32b363c277a9460d9719a9e4e = "7f9909793d311c0658abcd2ff1f4c468b209735f" +10c47956c082e1c3191f51fed43420c96ba02dcb = "3829ce67f11f03285337a10f6761f2db4fba1eef" +334e9d69d5aeb89c45fd9fd1c663b118541b32f2 = "48497699915a287dc43ca8946a711120b255b612" +4e0df34e750bd0b8e20bedef37267b40ef529581 = "1862e19df5480fff1a3f5bf1f61f158b125efb86" +523987afbb32105ed78dad0a127298284113147d = "2b879693c8404afe3cc6c3a7d7b982aafc9d0849" +54a469cb9b9f4252aa5ca0cad3d5aa4d69881e18 = "40aab0eea3dabb003a6c9655dd62345c1e2a266b" +54e04be6edfb5c8d7dfe455c587413b66e97abe6 = "7c982c27fe0dc06ba8d7edca878be53799c7223d" +78a635d334b51dd6ab696bb7d2670973e794846e = "ac9ab02e347c6eca8987681cc5a76cdbcb48e4da" +790b14028c88109e3c19922e57af2ab194ed5ae8 = "89acc6f4f4f806cee2e6f92a6479f5ac1ff1ab3a" +8616a099521d15bd65eeddfa763a1177525a096f = "1dccd8dde6bb1b38e3b45dc1a89bad0911a118c6" +9466bdbb27c3c2656596f94dde24c5bf2525f7a7 = "b435f2a6e62218732b90e17cce73212122f5940c" +a89125c6930d5559963bd0222d45e5bb7869569b = "02c583e6eaa8e08506a8d41cea4a6ddbfa179081" +befd716a8ad61778aa60f08a0ab9513d67e80735 = "30249fca999358e4d6d5bfbad612fd2a2f00493e" +dfaeff4a2a84a89eeddfc6070c346c322ed747b2 = "312c368321acfa9ed91cbb4fd9946cb55f71140d" +e7a4a2821dcd20d61941a57db723949f2134baf6 = "f1edddb4d391cdb20b6848e240d3ab3657fe54fb" +e7d5b9feedd2a60ae2dcf878112ddfaa2907a236 = "ffdf9e4eaac402d6971f196c64cf99cfed9bc121" +e8e736f20cd4b08e8fbfc15686f4a87ba5e1aae7 = "be59bee23ede8b5f21ed5c7563fdd116f7503c5a" + +[764a87c0-6b3e-53db-9096-fe964310641d] +6ae90c6e5289fb4d60776c66bd1711aab733f235 = "3fbe0179418bf0b099ee8aa9c9413b12be292cbe" +a075a774c48b896001dafd72514cca9892be59b9 = "aa356c832a453728d5fa3a60d1ce74c49fd93fe2" +a29fbdf83020f27765e5e80391d90cdc4f972912 = "4723aa040b6779547cd2c664ad1e84ebc9fb6751" +d6b2bcace6c743250366bfea67d2366c4d79d018 = "9a3bc25275e506eaa5fdbbe75c33f08510309886" + +[76746363-e552-5dba-9a5a-cef6fa9cc5ab] +34a98aefa0d5f1bef407f990107a940b57aed651 = "d16397c9cddf6eded32d05c6717091183f67e31a" +4ea8c3059c8b28844eb913624d448dfba71f5db2 = "8a6d875a7c064e18de50927805842d610c5ba727" +69e9fe5f54c0d8581bf7a1436b67316b949b12a1 = "a01809e28116504b7f5a17232075b9614f17ad2b" +850085b34afdd0ee0aacd9e0568c9293b2127c9d = "6a8eab2cce082a2b08e4d39451ad8304858d9b41" +8bc8f62b944ea5b54c411740b77422b6c9bad843 = "d0808b0dd6a9379b7973156ffb748123ce1dce93" +985790b3ad1d6a83a07c3d9af504d16f0c765e86 = "54bdc3d00e8c6ae51b97df50b395485ef1ede8dc" +ac60ec041f853bcc16636bfa34c6d2f78cf4c88d = "a29af268deae512aa99de75fa48228ee3ee5109e" +f9e459a6b4e1fd451b17a54d406923f46916cad5 = "3d91e319b0aee591cd285475ef6ce774180c7817" + +[76f85450-5226-5b5a-8eaa-529ad045b433] +05516b01e22f1d607f2c7ef9afabacfee227b1f3 = "6fbed1c25b7ba936879f21f1dbc8ce16c19a14a3" +0ac16c748c84fc94a02d6279a367f5842bdc6565 = "1a671fdf4cafb02e89b6ea4db3a3f4326d20210e" +21a9b017ab31888868c12c7d47667d5c072a7e12 = "ff3c599b162b19caf420e463d36df2128ff75197" +3fefb7c0fecdf062e0151ff6ea9541e47e64894a = "a99585dd9071cbd1e5ee437bd9146a57aee6f130" +568ca2a1fe7bb8c4276a31e1dc89b22102a5b99a = "55bc3678b197ea362a81de1605975235f816d7c2" +77708813e29ff2bf0035fff5f6287b7301aa92fc = "29df382778889adcabe3d2b8e2438ebe2d6358e2" +789c16fb19c7b6a9dec2f01720546eb33ce53e63 = "4183171a4a57341b04fd63714a172a7553e9f4e8" +7d1f2ea33b2321aa715c7a221468a3ebb658c725 = "2788d6409baac036123394bd3d834920c9e4f7e3" +814a0b12e951f444e97ed393abf52e8792db20e3 = "0af26e00a37cb2754d32a553b65c257a508ce319" +84e08f2252ae901cb3fa545a8a9c8529038df5cf = "3f93ccf96e71e009cb477810df88813b0b3f6b6a" +8a44ae3facaea18f7b63084bfc2e56539857f306 = "fd081b8d7c502a14adb8bb765de4de754b526db0" +8eb26c2d191df226a1fc5eb47d7d187217fabb17 = "730941bba2aaf3bd1d419a2c923d928fa25f3a75" +eded9eb7dfff64043848b3c0a1fe4d7621fc1e78 = "6fab0984198685a3f6fa400314073b097cd9f568" +f7573d1a62e40d96fb4e3f78ea3c6619c5f2cd8d = "d77178dbca67a497f33eaab283c4cf5557fa9b54" + +[76ffa3fe-65f7-5442-ba3d-1cbb0e9351a7] +dbeafcdd0eda97e17d5fec2d03c0566e8d67bd87 = "c44ad6959819651d8ddbf781293e88d48304125a" + +[77172c1b-203f-54ac-aa54-3f1198fe9f90] +0469d901391ad3a991d5652cbad68629b00eace1 = "d9af64bfa84356735e745dcdd43c1ed9d41d3527" +0628780e68d68fb9d9e2d8ae373517cb07755c98 = "4ab80ceabe4ad67726f0373434cf4a708b5808ea" +101a72f78048f5ee49783d8a4cf7821eefdc483a = "dff77298f406fcd188da96315bd0c9738c63dcf0" +132940028fdf1bdb699b33b570bedc5db17285e7 = "b6941fdf138e0b301322590df0b7c13f7bdbe0e4" +1b667052430055846a8322efe40c6391bdf1d2f5 = "8e58cdc92048873b5df215e0a8845e4ca2073776" +1b86aaa02a4add4d0e27a4d4e6c798ff1d8b799b = "3ca33d77d124fe9f66942f00f807a0a93fbb0377" +44cf656319d438e9124401746396e512b5c51540 = "836ad7dbf2b0164953b02b712735d44f4f0e0da0" +4c410684c32de40c490cc1f1f29743aee43b7e47 = "1f706cbd3ea5d73f6b84f3861a4eb92f7e9922c8" +6edd34596bf7650c16876b76f57c12f419d9e7f1 = "2f98ee799254892d19b8255c6d2f3b8bb89e9988" +6f25a1d5cc786c641576d79f238dc1368214ac6c = "f7d153aa45206ddd8e977c40fa73ab0609ba39e3" +75f242240d79a3cf0cdb80886a616671785099ce = "60c990399cbc6567a73cc55ce549c623a03e4223" +7fe15cc7c152baaf174aed5275f20f29d528ec15 = "46025251880febdfdf1c02e119f0657eaeacd67a" +8e0ddc5e443b5711bfcbae29f680ad9d44ea9bb0 = "698aa1974a270d76651baa3c27f12e2fd52cddf3" +96acf048b0800599eb1a7c51b8c279e79c8d4965 = "f725a5bc34256c118b8a7b538742285eaa03d9db" +a6c00ac0a36311d4ba0fc1f9f9461c7068059203 = "2768431f365e8c417e72c557be6493fb46117aae" +b6821d860395433cb3db2a3e6880144c18a05399 = "f8e967b295121804f632b7c5e439e3e907adde66" +c731d62e886286f6271e360e05c81b02c77653ad = "72e1a7e9a3336e09cc6f9588ee17feba88dae4c6" +d5201507b918c3bed8e7eb72c130352b984ebb7a = "2e42857af535543a2ead22d09ee2d212d5668e24" +e4643053385ad388a32f165776a49ab69cd09cda = "3b76187a38dabb84b1ac46916085269cb98555c9" +e546dc2cdc58ca2647674bda08fd5ef557c4f151 = "fe688be7c52ce451797d232f7352354c877b82d1" +e5bdf22b24122e2c203c5a66936c879b31091412 = "c61fbe043cb487cdfee2be7e5e1e187b65a87894" +ea62a572f5dd6fe745bf2c117ba766fddfb1cc36 = "430cff3a8c27866b08d232ee05a358a5bb05bcb1" +fd061264cfeb5c2ee8beb957d15136bd3408dc97 = "2879d700d2f36efe165c1ab9c414ff204ea107c7" + +[7774933c-dd73-5de8-a8c3-ca082e6dff1c] +2422c5cf3c98b4a000d81a25c7172c7cc16b0824 = "9c98fe25fbb9b792c041b73a395a83da137626be" +76d206d269d858cadcc2535ca929446a0e4453c0 = "c2e59ccaf2afbc1571a9cf9156bab04a5a76878d" +b89d74c589ffccdba2e757c2922be0e609146c37 = "f247dcef088f5a96f6fa3555629664e3419d615a" +f8e65d9f6d88ed71b84e0065772f701473d5edc2 = "c6e5068c16a145471745ce6d0c22a839978a4a27" + +[7774df62-37c0-5c21-b34d-f6d7f98f54bc] +166dd8f1b3de66869cca25a7c6c19fa09d808f04 = "bbd7bd97730d59ee59a588e1d137f6474bd9fe9b" +1aef752bad3219f5a624a6549fb71cd6280d23de = "42b01208914b94f3e74379093befe31433acc96d" +a25a05bd860265772530948e55cb33491ca73b0a = "94e6703c021c6e1a86ae92193100ad79e866df0a" +eae296327e2cdc9fc7e14cb49f953bbe28da09ea = "fbe329bf43af5385197744870411df9eb68192a8" +f0ea1fd23ec24579763ecf8382c92e62b58aeb1e = "66fd4af3b3adccf32e7abd1a389b2485d650d2e3" +f68a69d21ddb15bdf208065650264b026089e5d1 = "94ea84098190586ac0ac4c5a4d521ce1cf26b92a" +f7a02f318e70343671e901fc248e834f11610b47 = "8606e651400a952da12db415c0a22f0bf0e1adb7" + +[7779672a-5d86-5706-9bd0-ace5ecbc1638] +d9b937f55e4fd6dc328cf6fd1c6d76f1fffaea8a = "f7c7ed0bdcb922c14b19a396138a2b8351be53d3" + +[77a26b50-5914-5dd7-bc55-306e6241c503] +10b26ff5fbfbd89e31c241f7279793257fc4d239 = "ed768b424a98d67950ab352c7a87024c11d6586e" +12da4d398de85ad727c66c3d6fe2f2fa83ac7b59 = "2b389cd85021632f6ad066688e4d1c6620e2decc" +160986de3399de3591bcf19d4b3c61071bfcd7b6 = "8df12a3dfc7ddfe02216cfc8df76c42db929fc22" +1dcfb7fb853aa6c8e1fb64d4be90122dd6abb1d8 = "fbb6419254d3173ef8451810b101e2cf81df2493" +376391921df0f47f5709ec228feb128e627f7d80 = "bf5f1827e7028153004aa1f9addbb2f1f5c12764" +406018100c88d294f2c658557f88be7fa84dbefe = "4f4b14115cf86af645959bcaf6335c6c8fa1208e" +42db3d5cf9a33cf5cd6139fb91bb1b3f0afd54a1 = "04fa3588286bb47075d1d8de5dd55ca078bc3601" +76048c8f0e3bf8e5ddb00e7d538cccc9508d9b7b = "c9e5c0f10a05b9d44949a53484eb413a05177fad" +854368b2e9d09531d77cc4c2d2d761ee60b008e2 = "d2a737b3861937ca52e308868ce71115b014a2f4" +9f4ad2fe83bf43cac1c5900d652409fa76f99f0a = "3b2ca637c371b73685c6ac74da9bbdeb39a40307" +a1eadfbe5a5b92c94cb9ed4e0d2d9f6bc69213cb = "d71bab5412e8a162582466b4bcf87b3e1efe0a7c" +bc1c36f68e896aa78e5eb6dd48b4cc75a428b67b = "9221c54d0c504f3fb29da69b8a513d57f0701587" +bfbc93c67256043e24ba708dad9cfea2e55303de = "e6fc3bb3d87620fc6592c41afa3551f643885261" +cb9d1e7e6e14ae45a53566464170c4b068c7ad9b = "a3e1fab84d46783f217f7e73d1b0078e15e7d40c" +e6fdc07913bec15e206ca0062b11b9bd88e9c7c4 = "42bda515a94abd0b21d437c06aba4874bc3b0b2e" +fa752b95e9cd80babd7fafa6155737bbb9f2633b = "20fe250fb2903ef9acbb6dc54ddffe806df95b44" + +[77b51b56-6f8f-5c3a-9cb4-d71f9594ea6e] +03123c4ddc8565da09a301f3ea5a84f8304ce6c6 = "b910853a464218a037a41b5ede9d4409fa0b3533" +42e5b53d222b541aa32cdb1ab037dbe240461458 = "a0e948b6e8582308593bb244b2012e60c35cfb40" +4d0bf0f5e96f94c940c28eabc24278aceb8c292c = "e6a81943c815e2752ef34735e55901e530aa0fbe" +508c2ffc7a2a15063fb01f8bb8fba77c65394b26 = "fd7c20067586e0ae6fc2af99d91363d6bf21c97c" +684405940f43a3a16a5b57d6829a15cacbcc47f6 = "b23cd3f14bff248813d61b795e9b79a67744b879" +7e510042a994f2da93d3c9bb25cbb49b38313fc3 = "612869f8f6cb8442593e98c8cfbea8d611ed0235" +a588e609a665715ddaaefe388c40e586bc14f1be = "5db48353171dc87f1f5c328b35c0a8cc3b74e1d3" +db7a8747249735259aabe140e76ca2006c2284e1 = "dde4d9966d164d870f59115d450f7445221b391f" +f740ea1cc5267e8012cbbb7d445b6f3346e6b64e = "aeb88a608e8ea627bfd79cee1a422fdc16d4741b" + +[77ba4419-2d1f-58cd-9bb1-8ffee604a2e3] +46d4245fe036093e5844c0bfbc45de0b04152c27 = "f73606b592e8911871c2fce03f436f0035fcea3f" +4a9015c9cb561ca8b34db27fe8f1a6bc16d5abc8 = "da41557b099a85d331eaea0a0d55143c20a3a6fd" +6da4a4ea5679e6402810542f27c797e577100f31 = "e7dd843cc1ae06b1edebb0eead074a426bd81bf4" +6df371ff865038264210cb943af1c16313873c71 = "b77bcc4ce3224f284c519d371cc2291c573b47e0" +969151c5ff8022487379279ebac4a239a400dd44 = "87ea78e32dd66e96f001a8bef09d90af46d113aa" +ad7f3c3563262a37d51a51acb5f53475e720eda4 = "08fabd3ac6eba62ebff0eab0c1142dd62084c253" +b2148ab8461d73563dd4b7033e9a6546ec355328 = "67ded57dc6b1222cf15b0d85fc73159a7b70f7b6" +cbd6063e17379179bae17f7b01be877b325ca938 = "1cc4f4aa05480d44c4db0668a5d2671f032291bd" +ccd898ebbe6cc7659b5c3441fadbfa8dbe2a482a = "f550d14e7c0b58a8ba55b32e3d8c210f3329847f" +cd221663983a07f9700badfa7a8116e95a65dd83 = "1c79c27845d39a822c6bae896a6074bd8c6f056e" +e1929708a8529391b8f10c345b1cafa8c56ad18b = "835728556853f8fcde76171505ba2b5241969372" +f614e0c5acc80321fb66f88c42e75a2232343303 = "42353aeccb35ceb5ade32108a2799186cc38cd8f" + +[77dd3d4c-cb1d-5e09-9340-85030ff7ba66] +ec4c1f77562193e5b917218d45ac8e1f097bbe2a = "4bb2b9db6187fa74ac0ee5c551252aa702a854c0" + +[77f5812f-bd1f-5f6e-9b72-07b28d8bbbc3] +4c040ec5d6a963d4c65e9428e82ecefb77eaa8dd = "834c9adfdd89c3d6619a6b8b351ec18c826f98fa" +df8ad7ec982e48f91e56cea946d910037b83c50a = "8a819c089550afda7719be266013f85b36cae968" +e6b3b87cb9f6804e3c2070e72a741ebb8529d859 = "6890a6a61f1cd3b9c664d6a1455c173d493dd319" + +[7806a523-6efd-50cb-b5f6-3fa6f1930dbb] +051271024754502c44957d4df4c6c2eade2f9ca9 = "3cd94f3d3fdb76e0ff11af23e5284f6462201ef4" +05419b8fddbd8666a670799debd886851c5269a4 = "0186cfb28b8a0dd06b466bad16dc23db1e0a0b4f" +075079947bbb227ed2f4998f4267d8496d31b0b4 = "ba7b1584580e45fd9ff53f3358546cba8a3659ed" +0b82f5159a8b69708e868ab2ab95574783f3ea17 = "3f0d83658066533c302b02cd7b4ac6295af8ec82" +13ccdd3bd819d51d72b89dbc16737b20c10e4bb8 = "4a6bd70cbf4db6551ab3aa00d915be150376a671" +19f6da9109474cf21628e97b7a712ebca9bbd87b = "c0724af74e05521792e7f668a506820b8f98962f" +1b25af332c318ed17d94fd27d516b4711b0a278a = "caa399d596bd2b806b1fb19191d0403d77fc5369" +21cb20157508514bca0349b79d46035afc8fb3cf = "ea331691539ed096d12e16aa5c5ce82c688f40a8" +2a22974364b83229600362d0a668a5e90f28a65f = "a65f9b1f524fd558dd963364041409930453173b" +2aea471a4fd0c1073958670507152d6810458ffb = "763e970b7595a1f28bc29da3c1a78331e15a6258" +2b50b91c0bad543ffbb32146476d0fc871789bc4 = "b7f531dc378d79f23d68865317f3d74ecb484687" +2cb50b0292b02c0e65d5bf2704dda12b301be373 = "c35fa174f9590778a916aa64f736e567504e6e4f" +2d25e118870cf46b8a3cc299d4e22d358a825076 = "dce131eb70e4ab773cca8962ded616602f141bfb" +341c5cf761168d5061ffa83d2bcaf97b15078e31 = "b4784e06494c1371fc31e8dd282f44b40e29a68a" +398fdf19e4856d50e5729f80dc6342210f2260c4 = "b950c5484473e3f4224673203ddf18b239e0fa66" +43a0eadfb54809bee3e2a636879e346f41e6a402 = "cc8e3c31d07951800a1a3834ac5b7970a6797c7d" +4e81eff512bc97eb2e33356b6d18a39d935787bc = "a9e4ef62fecd8f1ff49195563d7c41f2fb13e0f4" +5a06c3f66d28a8bc2fb583de6c92969fa0b4fafa = "2605bd1351687dfb582ee1e327c380449a436bbf" +5f0adc5d6d0280f995ccc364e5d00a72f6387368 = "c0a93c7240da80f68e20ac563945d118cd19da56" +60a47e70c2afe5881525b3a8472a47d0aa6a4636 = "ef3c28c0959d6cb6f8035629912c6fccba261fe1" +6a5169e632ac729cacfbcfd384c2e35675430e8b = "56a01e053eb3e0af6da0b5ef84284de9dc96a68f" +80538a00fbd585ff4bd0be0f4a2cc9e8f7de2554 = "50cc6ade96f0a48dbc06846f2acfb287d0dbd3d0" +83765089feb5b2d30d72046ab78ca044841c827d = "101062e200a85f0db6fffdaa610247c78a2b22cd" +a40ae9145df85ee168cf7a5dd7ed5c95cafad068 = "6717b970dcc99e6598fcf8710758717fedf7af76" +aafb23a592716ad8d9f4a61b64ebe11511d56229 = "11705d14ec84e8f39b108148291311eee136b670" +df7ac51976d6f16e9d2465e48393a28de6ef4e54 = "94bf86e02463b486349dc3fdce9c587b69a7e6e2" +e52b425f0d96e68d5f1da21612f6960207065f3a = "94773d3d58a5f5e6dccb978db3c65403b595d99e" + +[7876af07-990d-54b4-ab0e-23690620f79a] +2e5a872e7e498ce204199779bd4dedd166645ec8 = "276fa06109ac5c80035cff711b0a18ad5b3117cc" +344355d8c58edf3149c3c3298628b24a4c8bbf1f = "046584dd01649b33cb163c841c06cc73c8f304d6" +449d01082a777ed174d9c534bf5a9e591d809560 = "3f6336838b0f4b529c6a3ac6f906f0ca7ef7c685" +526e34fdca2e3bb6959e6a236f4d9d717d3026d9 = "6cb40eba4dd78fc0fa3ebeb8cb7e125ba645be6e" +9088d0a6d06d3bde0a97630c01b572f57fa879c8 = "902feab6e7a5830f67868832fcf6995fa74143ac" +98e8f780c1a3ce8ccd3ba12c47254e98ef4863b7 = "cdc9326598e62eeaf66ecfbe5c1be44283f4091d" +b1990792d709bd512084674e46fa2e334acede84 = "686e1ac14b35cce47f90c91200f904c603ace29e" +d1ef7b00a8fb9b8e4ee274b1db78a18f36f41408 = "a00ac7321b8911dcc9701242ab2b85932b17eebf" + +[787d08f9-d448-5407-9aad-5290dd7ab264] +184845be503a1397b84b42da5e4a63acd78b2d18 = "4f73e673731fc3b22f2307ffe64e2bc811163803" +971e354bc0dfde54c969d8599639854160c4b465 = "a210a1abd95e77ea5a2207a61c10322e086c77cd" + +[789caeaf-c7a9-5a7d-9973-96adeb23e2a0] +0420447d5ad31545072096e337cb61186e59d6ca = "63648b5b9b7b7784e7d635556bbb7ab00cc58132" +044b6da9f84702cd81613a073f825d96e288ab6b = "f3cf2d8c14dbd13c569f891480bd790d25a9df22" +0ab044951917bfee733628e00403e6bbaf3e51f6 = "7b4e7a07a6bfd65038f6eae3d188d3c4334c8bb6" +0b16531bdf53ea5341bb2b1b837e19d27daddfa1 = "cfb82b2557659ffb889ee0eb7ff1153eb4ee9cbf" +0cb4ec7a368b0a0c9a854e7c352050baf3bfd022 = "11fb6672866cfad7597c8cd189ec154fb0927a1a" +0f35b3869fb018653fdf6106c717861f734cd39b = "c8a2e19c242f655f69209988ff13f4766e019456" +1b4c869860430e9846efd40a7c3af87c53fac170 = "3ea52abce12becafe0028017851e1c8bf8874389" +1e02d3a57bfe6c7971d88aa4612f9f6db83d03d5 = "9aa76d94771351b6cb3cf9d07fea50fc5f626cc5" +1e5a24cad6b1ffe84f030a4ed6341d6fda6f3fa0 = "63cf2af55f91d7805da1d7577927e3cdcbf66045" +218e1b701ee0fe822a1309a1cf68b0f2d91bf15b = "696210b5078994481cfedeeecb00667f90b809fd" +23da7db6da0134f53aa78b07afbf58402a76d9b3 = "1c4277a1761f2eb564d04b75022d5aa68fbde329" +265fb117b16648277a98ad0b3bb2a2b6c901b7fa = "2288a8b8bf52b6c764b4d521d513bcd0f6b95331" +2b259c61a303900081506811d5bc3423e850ed86 = "1a3076430d4b75d01a085f441d32d88c1bbf969a" +3250f1b6f8363b3f811129258b54095eb5b8d40a = "6b23398ac44978688ec6dccb32d65055796c9f2c" +32790b506f1bc5741bc2900b83c98871fce0f712 = "93a490a815cc0d700397054f2c0286a644887b28" +33bed9171e4f232665bc0d9b993efaccd368e487 = "a91118994c3cafd798ee1084a9522a94b3adc294" +3456cfe6f2cf9009ae023e2d92694257b42f5004 = "426471c90a21e2cac5a9e15a8095fa564546c16a" +36960d8ed1b574447d98bf4eade4acea81ebe4e2 = "187c1143530fbf8d5cd265504a452a6f10ca5c80" +3888bdc750bc1f79cb0e7258a678a635353817c2 = "5f4fffbd42f204870ff48a965b1eeddeac2d8797" +3d2a3ce791e854e1fa75586690f352b8ccae353a = "8d7b8b353c5c416ba722eb7ce1ce503d875226fa" +471a6c47a94c20705b8e9e8d44084a863899180f = "cde26591698649f200ba539551b037b7b1719c54" +4951b960ac3a7b7395782bf66750d8187f7c608b = "5cd952b63bd790cf07567ec92ae1a8f3ebe91efe" +5ba1e83a9e1686e66c18b6e8fda6df14d3f74480 = "42fd8c07fd16c0e96e39c53a18da498d085b1420" +743813d87a3c64f7f8e7cfa031a08c5ee8fc48bc = "4f3f62caacf0536d8de17d441c706394fbcf9486" +745b3ae5a9ed66e6045f4c0018f9d02f0b35eb8d = "734d7dc555a02331858d510c6bc6dbc590894514" +77795f1cb83f2f8b82d881fcdc400e41a61e2fa0 = "0b553788c9fb052b9934194ba7a410472790a944" +77f77a52c18bbc1ed0da2db1cee0d4060eab7b4f = "4b9c0d78e2e1d752cae848e94d7ab95c73cdfbde" +78a51cd21e7e4dbfe5da8a17dccb512528ed935d = "9d1c6a29a993a0398a9dab3ddda260004851a327" +80ff0e0ec2d570adab1552e5c66bbcba6a7d83fe = "6882a8e644d3c107e73f952ca7730cdbe91e2829" +8475a061d1e9ab22925f0a91cd52956ea46e470f = "f92f7a8b4874fd1a489853992f2b65698fdf4b03" +8518980759fe694ab56d685d7aef246dcbe03768 = "940ff652b819058eb94b8d5f1d6d6fd0a1d147ae" +89a3f660a21787edd6ea5701eb85e3d109800183 = "cbf75a37b29c0ac3aa99c7fc54384beb311b040b" +8b36f2136ddc289bed722cff2d02c6bb550048e1 = "281f4f5eca5bc623affd5d4df1242ff5de738386" +99c8fa134cbc8b0c90be3110c7506a5f7cd61cb7 = "aaab6c702d622d272cc0dc1fc8baaff2edc3437b" +9dc049ee667848f3aa23cfa2d471ef88c609c83a = "821a199e6be24dfc36fcee75d224e370a0b298dc" +9e160da798d88e201b16d0a6b814136c58ac49d8 = "c76632fd580c2c6594e942e8d582646f4b1ce2b9" +9faa8be6fb2138ae9fd507f07f309dabd3880f9a = "258946f1f30b35e1a1af132bc14dff00ab705777" +a0b62a7b672c33115a4e588f358af2070264434a = "3abda96de940178fae018163994de45ecb4b6d0a" +a5c1dc4a854f9ae31aa01525559a2ce437abe54e = "8b9cceddd77dcb79d8986ddd2cf91a1391f40ab6" +a62a06b1f061e4ee7f76c1bfe15b35d4a798964d = "4f290132fff160056b6683d04bad156080a6ceb3" +a8728b46d6f75489625d4d0f76f8e7402b5884ed = "ef764549111869faadd9b76d8a0e006946f47e7c" +ae69ef4f5cd80e2c7d36f479e59a57ec4d6e8e22 = "7210c0a775b7fe1606c4de2e584452b95bb2a2de" +b682c1e3d1f12388989d537d99b1129234d0fe94 = "f478d839fdd60a1fe914196e3e118c259fee789f" +b91b8cd99f4996d1a46d9ee0d3f33c20184b0898 = "d2ca486bb2ed541d0ee777c51050bc5dbce384da" +bd0516b2db2a189267bdf1e0ab0cb6603e8486fe = "8ba85f9ad34703dfd8fa95838bb980b0019c7a2d" +c0aea523b009b31ff9e0fa22abbae88c1c4f4bde = "94097d8f8a8b5c42f03503999ce05a1d8ee10944" +c21f9414bbd1868f376e9226781b69772de677a8 = "05282d13b5d2855468868eecc0db08de5ae84787" +d2c97966d5d547e221b280d097d4b8dd3cc6029d = "6a5b17307d8296c1af913e76fe06f629d12fa4dc" +d5d2c3a20ef28c5dbf7e3a0302282e6353034da6 = "4efdb5e82394232aaf44c875e0077bcb029a9dfe" +d956d619c36baf1c2663d24d443b95fbbb82507e = "35ab5f530e6c3f01ebde9a1f7b5ab3880e9083a8" +db687b77bc9f1e527e364acbb58c0bbc5ee4e146 = "713fab7c4a986025238da919d4f34128c946101e" +df56191ff71a4bf205794dca3166c0355a625b3b = "26e5313cf36e377618ef2e85d48def2c64504cb0" +e04accfa8f7acb988e11eae19d5a87a92ef407cd = "5c5922d016d27ca9d9d0e3be67fb6dc800de4352" +e0f46ffb37d0e908083df4df5ce15815d050dad0 = "37bba63267447e6463dff0361bbd07699f33ac8b" +e2cc207a3570f9b5c04ed07817ae64cee0c1b5e7 = "43d3565a7414ee870d128dd479d9b79a8dbfd573" +ea3f1ae97f522f5c6bf74c48327efc26afb15593 = "a3572669157aa0e6775bd2f83aa683d0b74dcd42" +ea92d569356f4995beec587911cc2e89ba232d60 = "6cef2e0724ce54c3b09a9a522eb4f8410e4c7664" +ee764f902e0994e177756e938945eb2b76753869 = "f29b37dec502bb342a9a1932aced38597a5d6468" +f53d32cbfba78920cbc2ad610f51a128cc68df66 = "5645a3cfb20392517be81cb99f6d924b24f86efa" +f695aa7ebef31d707922df93e55e6e4bf9c62ad4 = "4840c1259bd652f2a0d4ab73dbeda1a6850e03a1" +f792d76cd1f673571718bf511a6db77a47650f3d = "8e98d5c87f3815ccb1a14a7678d033aa9f1de23b" +f930d6e570ea72ff6979ad427f48796dd0df5f31 = "b65150eba7b2a1cccec3c2b0fe972908dc1aa39e" + +[78c3b35d-d492-501b-9361-3d52fe80e533] +04b8440ca7446aedf90b4816aa58892fd46f3229 = "f81536af6441ab8e7b250579b67265df70c84743" +3a90f5f215af00fb13c13d53a68558580d5f3f14 = "46043258b51e2302431659e649f59b38a82d0a4b" +3f133f37621ed4296b163b257f76794739e56f71 = "6b293eda8721b23ee58cbe70726c4f312959e18f" +54d790ca5a24f387f818e7785ea832b7ca66bc1c = "b5ff4a05bcd7953d5f3831b3f1d6d43b12a5672e" +60933960474cce2f7c359b612f2b28d5d17e4c73 = "65605e8600ed9def4d2f7c264cf63965acbb2eca" +63be29e83f37a04828b4f870738e2dfb1df91f0d = "2057345e7dbd8f384efa3ffcaaf9e7aacc5c17e8" +6c7a2fa146354d517c5f4c863147fb5c4a009e14 = "7a0088b1a49e5a94e27b6e059fcb1785fdcb8970" +738d1f7a82ac7546531fd8cd63b7a418cb93a37f = "2bedec7af2694281792d562cf4582c85e3d0ce0c" +7b7bc782f241e7cdd97f04b773a208ba6a53b884 = "93aedca5e1ae792469f1a6249434cb8cac5beb79" +834ac12db8312ff67d15cbe1237be1cdc836474d = "18403836594dcb39636a6254d87b77bb7fa9d1f9" +8b6802c53a91a33edf929d2db8c2384ab6b57b85 = "482fcebf4a606abb97fd8997cc8a43194c1d5e10" +9443a16d02d57c6dec06f0cc3fa8b3ae94d0dc64 = "7ff45da82d9cc85d52526e04e6d67e2991fee573" +b657c35aa2273d0e5b17a25e3a5d45f5e585fa0d = "6fc14c28d739b4436ad3de06085a4e46533e12ba" +d636919fcaacca67aea4e9384bb60b6d34d7dedd = "e831aeb93e29f4010a29f2fa7f6e17543fa54f6d" +fa209e78baf021d2efae59dd8d03e097148c8385 = "25ee8cda62beeecd9d4fb360dc9b9d84028d46c8" +fe0e5c449a3254f8aed1a5e06d671ce0ad00b77b = "f97baa972c23777d1e628ed185a8262af5d38dd3" +fe424677921dadb0384d3480e601a79608810b81 = "701a1b83a526e31e593d02e6eae23bb8ef0d70ba" +fe68377c706b92486c9d2c0fe70205b177602d2e = "dbb9dbbc4711ddd01d146b80a98985a1aca2067d" + +[78ddff82-25fc-5f2b-89aa-309469cbf16f] +223ee7e5cffc57afee15521a9f39248046f26516 = "d008c21941326178a9134b8943abdfdfebf92616" +52b524b24f4131c9210e864f373fcd3dba2dca63 = "c9b15d03573fc89aef6eb925ec4e500509b5ca8c" +5e82bfc1250a0fd296fed5fdf77116ff17401cb3 = "ab4d2a49428bc2d2fb8aeccd9974d531f250d9ed" +6ab0632b05e8c6a024362d450ba234deee6bc309 = "3ead0ea46c97026029c15dfc54e99cab8414cc27" +7cee819f5eb5017f0f86ce51e5e01bac48bd1cac = "c34de3a5b0b18e5227064dc5f247180b5f7410a9" +9376aabee31e59faba02a48ab9b7627fc498bb32 = "a55f74352bc037c2674cde3c8d9d9f93d4fb10b1" +95980ff3374d8758aa96dc2097a844e34d56972f = "2568dd00010d8e047b3fe3d007b3269e6dc74bcb" +a6241ba07efe0f8232d89bc8381430d6d862a862 = "39a3938fe0acf15bcbb565acbc0186da2ac9b762" +b75946b41c9f110befd80077a07ab33c220ed1d0 = "ad620240fe57ed68372774bdcdb2b43c40fadeaf" +e1431cb9cbfaa00de536fd32de7a5ab232e277fb = "0a6371c5785e2002c40d13c2302c8acaae7a2e92" +fca720fbe0ad35bb23a6c43f6fc7d64cc07bd31c = "bc4e8fa102c67246347e8c7f32fb37e817ebc1d4" + +[79010b50-67e0-5194-b8a4-bd41d479c903] +ae2a649392dd170a638f4cacc221acc30a3c587f = "fd728b60b01d2626d43a1d00638c685f660d3e81" + +[79092676-5637-529b-9d80-ae8d074b0231] +255de3e278b99dd138902e8843c4f243eda4a7fb = "097f94d0bcb1dbdbfd500f9be6bc4bc56c41d8a4" +4fa791fce1ff457785d82c07f486d396137be285 = "a23c08c3dcf720f8cfc83e0388c90ba2e17c9acb" + +[79098fc4-a85e-5d69-aa6a-4863f24498fa] +136d37f615ad2bfb4ad9a56ec3beb7b1e201003a = "8137a8471ee8b4bcfb8aba7953cbfd38ab3afcf4" +1973a7049412e1f0ef7b7b9bf18249f37e5fd53d = "66d844f9148af365ba061c45577e85fc348ad417" +22a36940d41e2dfae3555cc7cde07b972d5cce20 = "b0510a74dd3daea6df1d938f5036ed74db38bb13" +2b3d4b86c26949edbd9a1415ed94f565ca8735ce = "338f5622ace0b1dcf2566c1f024f5c2f444eac5a" +3435e1fcd06b8c96066600d2f890c9ad33606830 = "033bfd48ea2dd52ddcdbaad55b9e9fd81bbcdbb4" +894e51d38c2d4779a35c1e7239cb4fc154499bd5 = "1f1d556d9a805647fa366cc382424270e7610668" +cfecfa748b508c7bd705cb5df7589a2732f0f38d = "953956dfdca3c769beab33b0fee1a89d38a9dc9e" +d43c100d5d56342233025fd912cf82ea1ac03376 = "3b44e937086835d6f9c92980551795fc81a3c2dd" +ee002e9ed4ec6689f59dbabb5e8c0eb0396eb778 = "b8fd434b2405bd31dc647f4b93a4e1938edc9bf4" +ee5083c4358d0ff85fb017a4c06973ca15440269 = "cbe2085158a481c5d744d17f57259778facc5ee5" +f6b155e70b956ac8f67242b755e025fc90146e63 = "fb33b121ac630cf29a6a6c4ce12a0ee90c36a891" +f9379c0e4a419e54af397583bc9ee6cdc7a1bcf8 = "5a5cfd505da2a716a2b0f6b3b8dcede29be4f8d4" + +[791156c7-410a-5ede-a1ee-bcadd1b7b4c0] +4fa945b1757deae61c90fbe61fd42f05663d0b17 = "f4119bca7493733de0ba4c77ca5f32fac30c8018" +c7f98793d067c6c0a394ffcfbddf54b875950a79 = "eeae8eb3820aa19c7891b0e31c56e6ac951000d2" + +[7914e933-53e9-565d-9a34-2612de3a385b] +1bda98319e2368fc806438dcdef10ee31a220608 = "7712559f0df40bbfcd0f3bce3dfd0cf0c8f6277e" +373932ca8e7c2c1e42b34140e953b5c9bf8abfe4 = "454bdd24216a6b0b4799b2a530749a1d5dddf70d" +483dc8244da554e505ba1b26bef6107bdfd21d2f = "3913c160b9dfcc33efc4e912f316f66dcaf77123" +52ea15055fbfafd7cf0302e56540a1f715033590 = "83c50eafa35c3f895fdeb812e10c0314549980cf" +73646038911e77ea2ec68f9dd0453bce80273542 = "d7ad781a6d0c9a77c8b1f1e88eee310db58191b9" +7539a86bcc330fdb9025320a623bd70e37647d83 = "375280c0966fe2a15296607b4bb45b642b67d0be" +7c7616ce8c8ec27aa0fc9daf29101d471a19e654 = "45a03e8bc89e4986c2b2f088a88b3a45dfdca6d2" +826b189d7599819eee35b07b1e13a8d12fff7866 = "3f15c06d14574425b7e80f7eca6df474aee926ca" +a78f6e502227c0e37080dca8ca06fb1ce18e6370 = "5043664400947c1afd07f3d31b3a421474d0ec09" +e2b9ff7f1747b29b6c779c6a8cc85fa87457f4ba = "423a0bdff08400705ad8f947a4adfa68e52b7f3d" +ea5f70facbb09455a7409029c82fc8f4d320b4d9 = "3ff17109a3fcbea52180c88a077dae12755bc7cd" +eeee407b3df35bfc94caab123a60af71ec414993 = "95794041b7920ba695d298ca161ff15970a8f852" +f117b54dfcbce6d3c13509e9d23299ba35cf4540 = "d556b40ea7fb3609094afe7eeb29eeab71b04efa" +f5dbfd093056bafdd23d0900338ce7e0024a9c73 = "c48db581860bbe8d49ed6ac4bc11db9784121369" +fa9f1b5dc52d0a79461f47d5d64b5d816ee176ab = "ead1b5e5deeb29c3295086c83f1e81d496914c27" + +[794876cc-7f88-5b71-9fa9-be3737d389f3] +12879cf6659ac1fd737330d6c584541debd6873b = "cc88a7e323f5e733d5f54adb4b4e3f98cf3e8a9e" +1ce4d17f38afd0f055c1a83653f4dd323355306d = "c1ddf49704bb71b916bb9e911e4a0c380aaab741" +233ce104b73457f0c83c57b57787fa3338efef51 = "386a0a7616994acd487dba9a40832a0645d77ee5" +31829f28127e33e06e469cee8d5ccc11a662fd5e = "4e38b7e8a73d82f5e3385a3ebe3f20f44b992f2f" +3305d4c501483f27db3377a5c457850c666388a1 = "da0d33be5d992c8c93312c48d08ee6762e92e8cf" +46d3e29b40aa9e6a021768516edd66d018218767 = "1ece5e7749c3fe58bf1c0d8f7c23fe648bf17f46" +7e79730aaa47b0caf14cce1852061ea37cbdedce = "b84ad643d6b035d1bc66eb1ddf4e05be7eb54299" +8c86df752bfdd7da8695fb5e5bbc38f546344e83 = "60cf0dd50d9172068635a7511adf3d5162329151" +d51dedff767ce1dad119faaea0dff0f4f31fe596 = "bbb30177e6898fa9d8489bb399f4452615ad5f6d" +f844cabaccf61b487f8e469014ed3f722a879d02 = "634fc3b75b5d4f8515dbef70fe6cccbd3c782577" + +[796d8c31-69d0-5366-9081-a3bf997f4f0d] +b740f2fb658be0b85ef4649d012a27e4610e3503 = "f3206c1e3548d933b5eedbd0260528166811e862" +e311333e3d725991450adab1cb4e7b95707d28ef = "bdab7f2e300e7f260637f44014bf69b1e75393ec" + +[79aaed0f-17f3-5ad7-83bd-392955e7e585] +74ed1e44e6b373b1a701383e4ac0ed0257b3f323 = "9e55aa830f3a763e068df4c66a8206828480e787" + +[79ba05a6-28b6-5cd2-83e9-fc7923bb48b0] +00a31b3c49acae0eeb74965409e30ef01109a51c = "94ceb72a3bf61e6808c642b4002ac946e87a6df2" +66d12b7b007a45c3c79237fe057f3db1dea55e0b = "7c70b9e4c7f8c937f8a79fd7599decad496317db" +963a51e1954502e79f28e9e9b21e71df6a368310 = "579dbdf8b8a212d9c840fbca1483ade271f6a77c" +d64ca7a81fd7b776b57d5d82029b41afca27eab7 = "b8429725f20d8308387ddda363c975a6b880d9b8" + +[79c8b4cd-a41a-55fa-907c-fab5288e1383] +08f2c42d89d95b1ee38ed566bf786f0331aa8a86 = "9963d201b3a6b2e1b766e8dc18e9cbee7ac1dcc7" +6113172f84bcf639b556ad111d278aa2a59cd513 = "71bd0af1c5857d4d15280b60a19e0e85a4bbef36" +9491451f2798b0379fb0ad9dc0173cc3f2ad81ad = "b51dcd7ab7400c710221c84121d1641ae4e09031" + +[79e6a3ab-5dfb-504d-930d-738a2a938a0e] +87ba4fab1f6f87b6b3662e5aa217b0db1937f2a3 = "a6a0dad2aaa94001e73e36ee08fdb1fbccbb8a2a" +a0acf34d77f9921877477958da358b99cd21c65f = "182b4f3518a049cd3b67e25102c99b530afeda82" + +[7a028c6d-7168-5faa-951c-a19b98876597] +aebbef15cc47d047e9bc22cc1ade03a5a5296917 = "72c873a072734ba0050d60cff2335c2c185341f5" + +[7a12625a-238d-50fd-b39a-03d52299707e] +2d51d07dd1fba2444468aa2339821046f49bb765 = "fa4bb3fc2250f32cff69d4fb139d4f3b48fc9050" +9c27037507c85dee9f938ed17dc969b71cadf90a = "68376a92a54eb82cfcf0e9d753a34ead7c579bd3" +af429ab57ca83ff576eab757c71913bdd741881e = "b0ac8cff49e8f0786b9e78f866d9eb0876a44272" +c1598f31e0d8c8c47837f8473e6d9a0f169e4025 = "6bc30e335c595fae76c1ec7b53bf6c40cf544283" +c9d565764a687fe48bade4ce558b658befd6a880 = "415ad9bb7e0f91e45ac6f969d2166f5599952443" +ce480f530e921e541c15663845e4cfe23ce2f945 = "d07b099e2a86a3b6d6d126e0acb1fd9ff9554793" +d4b734bc61c231c26c59afffba562d2dae3710a8 = "2fdd2b4cd073e051f5a5c3b492ec32a543ce580e" +d5155c7323127bfa477513209fc4d123641aa330 = "b7b76dca42087e55d041ba6676239475b053a595" +e01006a5348b61e68ec4fd3a24f563316093fb7c = "d3ed12c3a801ed449a7036c7e4de93db7b84f069" +ee6c52323f687afe01e535e6da17121bebe09649 = "415ad9bb7e0f91e45ac6f969d2166f5599952443" +fee14890f8448d8a9df1b690f6800b0b82fc1153 = "8d822bc03c4944c513e0ecd533e5d1f348358d6e" + +[7a1cc6ca-52ef-59f5-83cd-3a7055c09341] +070cd891fda64f956aab5c0f5062948ade060a16 = "d04e9e9fdf1d6de3192ff9e94cdb4bd35ca8351f" +084713cbb4a3e7c44449ad6b2c630a2ae5ddcf1f = "adfe40381f66506a81ffe7ff3f2458d4cc320634" +16c27b0fee2dbebddb799c87811aa791130679d2 = "4da4370edc280f555280db074257d5039d56ae56" +821e0c9866bdef236bea39174a12a9de440376e4 = "2e6e8c8c2b223afafc5811a6c280677bed01fd5d" +8302e8730150ed999d58e371edfe8db2a979af71 = "67b05266f4f7e834d56818112052333e1b6582d8" +9d57158dc646852d430a06a11584b35643b52048 = "25e0b79a25a9567375c22c0385a4d962b406e269" +f286acf2ef8e76cd6f45fc88c51efcd57c51d3e4 = "e40c757b1d67787148de1d112c9de335b3adca0e" + +[7a4c25eb-d21e-5a73-b51d-4e4edb72d913] +09e977acb80a7724df117fb796778936a80b6297 = "b51e2b336ae1ffde79e550c711b3192e088d879d" +13faa90f623b2b6949f57c7dcd0cabb3d503f1f3 = "b87cf55cba590cf2835ab80999f33cd06788e029" +1cfa9b4bf84a1cd98555f8c081afd5c61963098b = "a660bc751e0ed261f187140da71d664f1f2d0987" +2ce51e262e823f2378bd187eb517583c90724dd7 = "896889d99b6a289311095cd5202c2d192ccdb419" +319156c9ff6f22c230270389f65b73ccb03832bb = "854a646ede07f67a77a6309044fb44e7d38889a9" +4619de4ba376d6ce0a450fc09e38e09205645a11 = "2ad0ae67f8b2da1cf18c73d655717186cf4ee4f6" +65b9fb116390ffe5f24b8288eed0b879866887c8 = "bb6f945ddf3844fc7d657404fc242b2039d7b6dc" +6d21c56c260fd48ebbe08c1e7d77e1db5c0f75dd = "db0f68e47df6c6899143831804e119760db7d288" +748913d7fe3be09b87234bdff969b13dee5c02b0 = "8100c9b3d5fa8f7828925e44518bfa6ff8362a7a" +903bd8c4873aac13cb9a2c258ab37ac1a11ec4f6 = "9e7ec6d515ca33072dec6f5dd273ac9d37f4a0bd" +b9be2701e164b0f70a8abd4916bf98b34f4f7233 = "5307277d56932a30d061383526c6f2e0414b60e0" +d3cd673d4c9760bb084d94b31a5169f5f12bf5d5 = "963621066d12f654a92f1ea7e7cb37b0ef5dcfff" +d612b578a83c4c48c09dbb1fd03274e80546d66d = "d60cc838e948ed4fb055c944d7c33dd3dfed3557" +dcd7ae7d9e3a9bee64fa97ff26db7a83f91807fd = "709bf05fae20975a27f73fb0a31a861f1fd0aec9" +ec3029cf217e5593318585cb2537e88662d0282f = "ceeee7683f33cb3dac2bdf4c3a3a0ebdfb5210bc" +fc3ca9eecca361f5df32e3a5b6e395dc5f2013d4 = "7e9ebd3612c80be6360c01983455b3f94f2fad6d" + +[7ab3c2ab-141d-5e0b-91dc-383929c5d41d] +8ea54c36a00d8f8eba726d2f2a5cf5ae5d5918b9 = "e10c03a8d6a5635a0741b522e8a55d3dd666b57e" + +[7ad07ef1-bdf2-5661-9d2b-286fd4296dac] +e792316561a85c4fbee8250227a4a91c136263d7 = "f41f4c0d0888bac6ce2a92aba0fd7eac3e3bbfb1" + +[7be3e51a-fa72-5567-ae20-c52109db422d] +83d96b103fa5bbb42f83ee794720a2e9c3571090 = "1c3d9576188d81bbcfbf24df527a0408ee1fe93b" + +[7c165e09-dada-5b64-9fdc-39b801c58527] +0650f4425f88aae7eeb2d75a69021de3671f9103 = "b32daeecbcd6c608355742098f2d8daedc55c33c" +1fa459fb0ce55d2797b52fd340622421c3663961 = "bb50088bc88ec96e651f02c83b17578ed26eacda" +4458da519464c13972b944d0d39dd93459d3a710 = "e4d2173060424618084097df41951382f14ff4b0" +4c1e08ecc323d94d6058a2b318e29b5579749f5b = "ad8f35a11bc03f6bafdcd0ebedeb78eb214dbf9e" +7ecfa21713b20ccb04de62c2e5733e6e196386a3 = "41be35f1a129483c13e7ff0a93c53923bccb1e64" +d5191b42f31fd2878deaab91d9f10f105219e07e = "9b299cc23c0e38e046dd484df22b45dba02c86c7" +e12ae4a8d464e2be8ae886056f4aa5f8ebd548c3 = "210ab02dc39b52339868db2080703033eb3fbdc5" + +[7c1d4256-1411-5781-91ec-d7bc3513ac07] +2af043b52d818efb98fdbdbe9b1f2834debd5ca6 = "0994d181ac288cda66a01c67e76971b0395c38c9" +487945b6940c50cf2f0dddd2215536ec3593bf9c = "19cc44ab7917b40d11b547cef512f8f39788feb3" + +[7c1eb372-2c01-5112-b025-ab474ef241bd] +7092d8ec22263b2fd005866434c82e9f21078500 = "46aacc82469a7697640457a6dede5a3d8e8e7c62" + +[7c2bda53-4c7f-5679-908a-7ca25bdd807e] +9838b3b33f5149f15b38db73cbbe23cd1a8fde04 = "fbded7fd98edaeee1ad607662d86bdad78b63591" +c0c28e9196f72d525523dabd7db51833c662c164 = "ae9c77af335c747a4ab1a2d2486c0fae68cfe0d8" +c6a1255d82593273b4e7fd95a973ff93ff0b162f = "5ea3a3082b6546200d98e8cfad36ba21f8557ecf" + +[7c4cb9fa-83a0-5386-9231-d6167c818060] +22625e0f25ce299b7bab9b1fb20d0a8dd2266ecf = "86838ccb733dd82d36aea61269482393792eae63" +8d0d48e069437a351fb29e5c323c3f1de13f8c56 = "3bb9730e477f4f56e7609d703508337ead3c97a4" + +[7c4d4715-977e-5154-bfe0-e096adeac482] +103910d01c4a9a2b6ee48f9c81b35f9e341dfdcb = "77abfc00c9e1a6dcf3a83ec80726eb56fe16857e" +507a1b13e288e70b31d09768baa0c42e421447fb = "c6fb2d89f562f664f82cf0e541ac5825026c5aab" +6a81ccb2434eee5aca69feaedd77bf7b38f4502f = "459e46f2e590c6a7506cc9a61fc8c22ee98caf46" +9fac3650ed5c4aea7f18fc0ddf85f9e1a955d927 = "8d4b51edfaa0c616af9acc88a25c4ad43c1e78ac" +ac10e30c96d1fe2c2c8c7ac253e00f531887c21d = "416ed737dfd6af28e3231f0995def6f2d0120885" +b8bcda24df4167ba8185fd7f5db80fd38893176c = "d63c9ec49a6eff41975ed0720e40c44ffb0e91fe" +df7ec3891eef9c7e35bd4bffd24ab93645f429b0 = "512b79f8904ac3b21a5fd45b3768c3974280894b" +e1badd61bf5446c5017fee86b1bc450ed9e54ecc = "fe4b5c67a21e0573e989fe812adddb31e1025fb2" +e251cc9671ab431e94cb78078d22781f07ef946c = "e242ffc76625efdb8d931976ac1f62e326cf53b0" +f1cab52cde678146e3637941aac34a0ee2ff2a19 = "b5af03d7a0e741463896cf940c4e9e97a12a5a2f" + +[7c893195-952b-5c83-bb6e-be12f22eed51] +387a48acf0fc511f3fcc597c94e641c8a47ff953 = "e1138513b91ebdbc66e810e9198dc524a0149812" +bcde96f66f16d5cd7483fdc8156afcf69d00f2f6 = "22b92049d974dcf0be9a415e348c5928392a1efe" + +[7c93e712-f81c-5805-81f7-1d3602bf3f15] +5ffb825561ea8c5246a8da1e2138ffdedda9b8e9 = "b0d18e3f2fa8df53a7b412c572e4d6e4694f501b" + +[7cb6cbaf-3823-58df-a841-732a989b1231] +06e2c3aadb775959ed94597ce807112bb15c8494 = "de5776774da425ac2fb8f892953afb23959a1a53" +3e88906af47b5e7b0321ec8c1d94ac6e049c7eae = "d881bb2dffe668b6a69833d543213d7a391614a9" +6574847d536ea996937dfc1603d7aed992520e5c = "56b05cd3e7093ba3bcae5f5565e18d4fdbbd8cb8" +67afefc0c38ad8e1960bda2a3cf6061747f563c6 = "b6a3d0931b40ca350c579d2dd6565e14970dfd25" +6893554f6cd1ba979f438dc8d84bd6345f38f13c = "f4fa767a616fa7c4168fb6c45de08ea0dbdaba68" +8aae36a44dcd11ab529407e83d947b7ba3c67995 = "e2a27b403204db9bce6ada1aa7dce35b73109c31" +a3dd36dae7d6294f28b5c7a509d8d0e46a8811a6 = "5dd988949fa3ca6708ad0640a918923931920ce7" +b1cc796726eee536b713b4ea0b0e04a0f70afa2c = "4ed5842778f92ce6181d8a81b994ef43376c5dc2" + +[7cc7f4f1-595a-5736-8088-15743c29ce5e] +0494b275efe9133cf85945e3e08e9f25b31a1ed0 = "e81fca5c6e1b662094dd97401b351e6f039dba0a" +37e2cafbd2473e097caba66880dfec23083bd960 = "9b300a550c51ee8f0c4f20e5dd3dbf15ef92737a" +883f516a8cac4ce2a69f14f23652011036f8ed55 = "0350ee886c85fde418bd9eba447f48ec8e933fa4" + +[7cd16168-b42c-5e7d-a585-4f59d326662d] +054fb2d515f0d8b5637280660feae6801d595bf3 = "822f61f06e60942c34ce4f0ee48fb5c9551804d3" +087753de2274b8438776508e3e41672bfb9934d9 = "cb788c11ad09a8a9f0e47140ea0d4c8bbdcd8ad0" +42b8cd23dd31744197f72e2cd0f950a5c205d48b = "fb139b88899668f32f909b7cb4c25ca7ee686501" +4fe20c9f52325eb881d4d06df362d376722b16ea = "f0fdde3024f935ffe0a90734b7168b22edec5ede" +58bce93fec5caf94503a1e0b50ced6e6c4aa904b = "0401a9a163930b21c7e0c665a7b8c4131c504a7b" +8ba686e4d5a7273037a0833800569e3ef8f6f117 = "63809ef88c9a7fe5c3bcdfe31998dc1c84bc60ce" +c2386d865b36bd3ae7176cde4bda4271ef7365d6 = "ba72b12ebe225e5a04f5dca67158e6e5820cde9a" +efd07771a3e41ad02967c7cd728bd44563a1fb95 = "6a08254db404a63cc79e66ccf4c3677443310ee9" +f5b0eb48bc7e58d2d98d3b356f5e13725f47ab0e = "2e5acc4f6257cfdf3f3acbda978f155113fb960b" + +[7d11a335-8259-52c9-8750-e30c45c66484] +a8aa2965f4cece5d973b650b9fe20ad73d6f9fed = "c23d4ae21c63ed1b073e2d0dcd90d404127921e9" +e8c3ef8344c23cc98e29349af7dbefef66ebb5a5 = "2db32daea39318fe343cc49d1db03948949d2e9c" + +[7d512f48-7fb1-5a58-b986-67e6dc259f01] +90c0c87d52a9037846d3ba47a3fb83d48ded8da3 = "e4c5d329adddf552c54a70525a60b5275f7a1d6e" +c465243ad34dc8e09b1b6ef06ffb182c8ac43134 = "797db88aad9802b4657c25450b4b1c39ba37ad92" + +[7d6aedc2-de2e-5286-8f3c-6eeb7cf86d4a] +f79342cfd3d98ae7a80075749403499c9d4088bb = "8d3e252b1b52740939ee28a9efaa8ad23eb74e72" + +[7dc9378f-8956-57ef-a780-aa31cc70ff3d] +afb6215041089856c664a7526a7c4e4f7da4875c = "7feb2336250ea0469000ef1e07679f9ab5dac4b4" + +[7de783dc-89a7-511c-b223-597fcba0cc71] +06582deba51e7568f15f1f25c390553559d98515 = "b8bf28a8e3c8596a66c99405b844f3abd35b8fd6" +090a73a0499030a7e9149e5f09ae7e59fa8a55a1 = "f8d4f96ff2d655f7006a732bf258da6ceba65c8c" +2535ea6fe6cee4ab8b92ffa710eaa4650a82b176 = "e295747fbb6d7cc4dcb9782df335eaab5ac6f913" +26d72efb27bee6b810ed9edb09a1a1204d9e73d1 = "23ddfbcf6ff429f0411e3bbd59892731f13ee727" +33751eb95c628799b8e1b0919554d6e8dce26f6f = "c09ef7f1c1410d04f1cabdc5779ac58530e92000" +399b7a04080ba2aec0cc15bf8e4cfe66e260ddaa = "918e787e6dec8e97d4e46a895fde531c42f7d0ce" +4251140343a1b82b63a9ce787d600ccdcd00ad48 = "5e74582251985e2b23074ecb9d705ca21a41e35e" +52b14e7dae6d507e2f7b974f521035fbf7b15c3a = "3789b626f7aacf95c17c5049e5cf906959efa641" +6d87343921f90e315d1eb4910c3cb9d8f6fd858a = "1d61fe19ef57560af4cad911242e52b237b899e3" +7eadc344326feb81ac46ae8305231b6d9f77a527 = "540ff3c666592fae2d46098c313aeec25cb0edfa" +89fd37046b16118376d42f65dfe42deba5e9477f = "e0a87b48d83374f8333c9d5020709b05f089fc84" +c9de916bd6835a0f9460229193e999fe9a619940 = "b4a1539ed4753bb2d9c44e922e1cd10c6d622311" +d6ebcd7331d6bb12eddacbc2a297c4927aa30f47 = "2bca3081b0be583cc7e46aa8541fd575bafecf6b" +da0e492e30a111f120c2bd757297f84b994f9ec1 = "be2af888a9c32add9587314c790615e93441f75a" +eeca5caef02ba30268965fbcdcb11cb2bce20fae = "9d4e4afe6a27b2cdff8af5695ab577efc11b4aa7" +fa2b9e3efaa437aaa363c393aad6ad35cf20857a = "e2f7b28cbe3e9e850652a257061e2742643562b7" + +[7defe7b3-18b9-55e5-9d73-8414b6b0bce4] +33d518a05d2f8fe2992027d61ef794f3e93f5eae = "0fb4fbb924ebdbdbd79704092a8414707aaa02ed" +408638e7bc4d92bb665a0058f0c3cce21bbe05dd = "736094c9cbffd2a4c7657408a2ae7166508f3866" +8346cdc2b31a577241a7173b4995415347a1ddb1 = "4dca76d790de9b18f569ca031e71195f464121e6" +894c894cea0e106652f9540b9201d337b928ba2a = "af9adc6a3b6978e7e4e915c05524e03b28841edb" + +[7e2a9768-7bc0-50b3-a796-3c4cdce8b7d1] +31cabcae53246e424f1a946116e2225df67f4a6b = "35231eb1cef604e33aa9ed2b65a7146e0a992bd8" +983fe9c857fb6b98d915227db1d70f962e20d633 = "01d90f8b4dc219544b33f25f9fbd50a6008eb892" + +[7e49bc5d-d907-5fdd-93a4-11f1b4f8bb51] +3369672a6efb111ac60b1c7a47e271446307bf8f = "ce502c6379ca8e33cd204c7faf932694b9a9f7c6" + +[7e4cc7a5-8b60-57c8-b743-06a5fc972085] +4214556d0f6e9efcd73c09bf1a50eaba2a331cfe = "52cf68fbac359816c02e85f5ee7cf4ff538000e7" +48243b8bfc69e6fde3b64a771ed560ae3df6de06 = "f5021aafb03bfe67a89d68dcd0dba282accfb2e7" +4a3f0160996771a571a41b51792e63fa03b7ef1f = "eaf4e9af116d6b8ca1b91464aade00a8de4c0b8e" +8828ce89df3aabab4e1c478b81b6f3943517d08e = "581b0216bbb34abcd536191ea1a85eefd4654ff7" +9efe9360d1e44d6a561012b6b0edbb0b15d4ff43 = "42b70c01747c20e04841f924f6e8dc7e9e948c16" +b6f0c39d93d0cb3ae48f02eedf3e3482fb206f80 = "2c9321a0e5142164e5d1cc2ee8f9f1627f51206c" +c4658a622dc122c1542a290a4e191b9778d8a1fa = "7fef3d37fead4423240f2fe8d6a3522e9b9ac4df" +fe04602c7a8f94096f71ff6778076476a6eb13cf = "e4e1dd58f0e87181baa2ecd90b13e98a0d7c17de" + +[7e6ae17a-c86d-528c-b3b9-7f778a29fe59] +097299644055033a9f2df174f23e170ee30a6de1 = "51c06da4e4dd9de1e57dbc6148ec126366a2497a" +3904c46d6f513dae3cb13c533c46251e09adff5a = "8399f008726286e8baf5fb17847d2cddb4de39fe" +3c02bfe7cf8999ce191adcc93f4a7aaf6beb88ce = "0a3ff1133a5d59c01729ef8866a1cba61e116ce5" +8bcf4a068bb42417a279387ae7ad172db2c7aebe = "ac2aef8c741c9f210b924663f71e760853349c95" +992a8108e1025d9093790453aa9e8972b84878aa = "f5a6ec9454f70aff726760fd993c5dc4c6c94491" +da650d5a5e8303f8b7540925ccd7f09e30653ad9 = "0ed02c8c628d8c51d5ac220cbfabe44ae9a54d6b" +f42bf8c8fac2468a6927d18a12c714f40ec0f357 = "1cedcad7d1337a66d7d64cc2c55373e944053817" +f7f4d882f1c8475a06b264fc4a10bf8f14d16c7a = "db2a28e621f3c1318f54d258dc90ff6c3adc9393" + +[7eab9655-7a32-54b9-bc77-719f19b65607] +5c160ca872bd81cc2665a0a9d2a34400d5df1725 = "55ae722200ff89e4d6ba5fe7a165455fdbc97b8c" +98844f79a6b23e9a7b1d3c25cf013d6e3a275ef3 = "6b8dd31188b8755de14c5971150656c6b405402a" +c1f0eab8896e4314b1fc6a8e13d4b4d37a81a03f = "2f12227ca8c885cdc69fbc4300f808e928845986" +c4141494028e38e22c7b058702abc9a86fa04b70 = "560f8488e257c1bac6605e1229237783e8d73816" + +[7eb4fadd-790c-5f42-8a69-bfa0b872bfbf] +04301908e7b5f14dd9703ca45cdc3ace4f0b687f = "a2382c40250960e3d6eb72fcc069d5aec253ab26" +05cf6bce064815978c4b56ecf23e600327d4e881 = "419fd46aeb6d18ae6cec5aeb9c0363a8e5217ffb" +1c980a4299a04d2fc0d0ac5041ef122c38c6b736 = "57a4979521dbb750d6e0295034106b40798c38e9" +26d83a6b424c55b2cff557995dccb10f9cf278cb = "4b01cd64ba6b5ef86e314eb2743bfa32ebdddc92" +4cf429650df0df1ef9c07ce7ac0d1e5a523a30ae = "e7c92348a86042cd55257ffa2070f46fc4e04c82" +59ca3fadb97a1526614aa39a5a5382e1d31feb7c = "49b6545c08443db5f6ffd3601a5be9d7ba79d4ee" +7b28ce1d562b56c1216a07bbfd465f86d015f46d = "ddc2cbaadde771e4255b90197f47fd30d429269f" +81d95d7e85afa678e78cd166e60a0affe055061c = "503e2acc65b9a341f2e5f0d2c9f91ba6a885ac97" +8318e38a5e5f7c528af6db02e042f5784ce079b7 = "a3436275c2d81e4c20738853c8fd26ac16c61a29" +8cc1cade164a5b851102a09a64a97600e1ce5799 = "2fc6a384692fb76f4fbcd9a147fe48bbc3030c87" +97f73ccd58b1c33c129c4b46af6ab74ab9c90225 = "ecd6243599d635a989e3628024adc3faac46d267" +aa3465f838c56616009caba6bbd04f1e6395a898 = "d192d7d73ee4fe3939dbe9c1e9d44b9990d31c5a" +c6328af4621141f2b58b18d9e7e5d4f3e59611fb = "3b4ceffc86c64117768d433e24bb0331e53b8a42" +cf3511f5fd597293e56081ab98370ab3816e1a86 = "997293419225829880a97df24dabf2155bbdc4a9" +d0d92ff5611336aa59dd30d2d3344b8de0fe7006 = "904fd2be2770310c9ac84ca7551c0c47533b576b" +db46113d1c49583534d5c61e3ec208ac4bbcc311 = "441ed125517d260eee532fd22048bbca26f656d1" + +[7ebbc34c-24a4-5a3f-b49a-24be4b3feaef] +5ec943415390a3b7480ee93392fd0506a4d4b266 = "69d07556a03ea69d0ab47e51fcb7729b06c15511" +6c9d09dd0d0caa553c82eb6374d0246fcd21c8af = "f0acc0cb35cd7a5614da8b3607db8baf37634689" +6e4e659d2bdd885df49a1919e97a693f1adf3ff6 = "bbc57c78fc82ad84d3d01e13e7ea220e1196b175" +db07ee44ec939afb866c04a5fd1edb18bf92f781 = "a78c1b98f36e101c189b5a044acc25b4f732ab51" +e87395a66747d5410f06c93b5c61e5adb551e60c = "2b7fd3bc5098ea25e7074c2e9eaae513cf6343e3" + +[7ebc0bd4-8b33-53fe-ada0-3930af7dae27] +1b3a4ce051d0f249c30cbad90e614833c57f6245 = "23ab7dcd11613421bbcaed9988125ebfd41e118b" + +[7ec2a2a8-e61c-5617-972c-ff57ecef9621] +0f31aa131ee5a4f988dbd17fe38db84a2ebdd489 = "2b362ab3dd39d6d5b8447dc6cd654f7fe136ae41" +4bc2fb1ca92d439090a92065fa0319338bc022a1 = "4a5bd25dcc430b8c2d2e94a779abc8e07e34a001" +62132f6b8841857181688269220b9fb8dd0a9358 = "bbd030e5a90bd7ec8fcd0274798dee03d9ab5290" +634dd86ac831d0042d68081711885e44a0454ac0 = "82157c33ad944434d3478524c84e091104176c6e" +a539047060066c608b48cf3ead702bfdbe6c10ac = "f0050acf9677069bb82a9d0556974fc7c2e8b56a" +ca5d8ddce7dcf750459f18908a43ee106fbc9cc1 = "61ff6088e47338491d8caa3beefa8ff818d88701" +ce3fb290b808e670b5ba84d4d9f0a78226788835 = "0019eee94a9ccb3e64829165c55cc114fbdb7997" +dddd92a218d06b00239a00be15e3e107779a2833 = "5259d9d4879072ac3894d79d5ec1c187b292ffb5" +e2c26b4e4caea4ce8e1f64f1eb82f1f8fa99739a = "f8983c6273b60b70a1fd5cd103ce0ab408ba9e75" +eef452a00a484e30bd4d4a786f2e5e59907df0a4 = "608e1eabc9632716e2f18c57d4b7610ae359e8fb" + +[7ec9b9c5-1998-51e1-b7fc-fc3590c18259] +11b07e546ac3b0e81bdc7cd98d3374a792e1cacf = "a51bf0748a65671454f798a73238038a4ce9ddeb" +510afd73fd86f5b609a3b0df713da663feacd18d = "c1589e621515f26d2d7aa97811413d2ba9f77bb3" +56f44a5bb8928e0a9e106dca1b3877e7609b31fe = "bc98fead644102a24f9dba52659e8631733494b3" +9d60f1c79035574513728cd6163a575bcad36ba3 = "2a5c230ae7d26d8c66befae168fe99311039b860" +9e405cb6b822a5e15a49a7d8bf49d73106f4be66 = "f1c6af03bf4561d71659c72445a7f71957afcb11" +cc9e937195573b7254dd92ba1bf0b9dd3856636d = "39fc1feeadde20a626a221352e17bb9606ccc081" + +[7f07e4c8-6df2-5971-ad44-bf349b9adcfd] +83c8cb335b4dfd4bb1923629c3c1fddeff2caf5e = "80e4d9e6a6eb45e04c9dc296b198eb32771ca4af" +e1f30f3e96039ef3fbc4774d10db961aefb2db58 = "e52875de596704c434a2337c4ae714a0fae4c769" + +[7f35dd7d-48ac-53c4-b315-575add349fcc] +4112f6acb8952201f54d664e480a3f1957f35d22 = "747770ee50f9450ffbfb995c489e91b0692b721b" +4d3b0cb72646044cd68e5fa8a724c9df82be66d7 = "418f4d7fe65673284dd12477afa58bb6b8c16470" +4e51837ddd0096bad24564731b28520844333fc4 = "97a3d6b7809d667594b4479e665d466668729db2" +71a2d6539087055825b13a608635162fde71f984 = "191ed350475c3fc74acaa5fffb89a231d63f78c2" +89e1c0bf92f2252786d3d34be7ee69d8a204f077 = "1263781d6cc883a7127d76711eb3f3f0ff9de073" +95dd2f5319ab8783b8069b6d94d315db1e19a8ff = "6cb7003216d6ec05922b332ac9bef20f0db1042c" +9c8ad6d278e2a9c7848e3094756e203347b1b1a5 = "37221f61f83848d95e08d0d652fd095fe3b93113" +a700b013457e8acbfe919d87ed41dc52f74b6f10 = "2e75f9d420a9cabc5c55ffc5c61dbda64e73e47a" +a7efdbfd329265f8cd314234f66de3fc16d2f2ea = "a62919848ba52066b6e415ba8c631bc040150d3a" +b2f46d5fdae5855984ecc7811596ada8813f6e8b = "e960e0946326014e118913332a1fb19dc22ecd34" +c30d2250c95d5904eb2301a77bffc50d9fbbe4d3 = "76b39888eb9fd45527f1cb056110a4fc4f13b62d" +cd3b64222caf8773f3efe91db8dc1f8c5f0de38e = "977cb1981b82e5971e3dd266c8a0a1546085fe3f" +d2cdd63818801b4e78ff1e4db784b58590da33c7 = "681279dce9361d6d48266cbdc7d8beed56d1eb13" +f60a9ef208547b0e140a4cbbed9bdf251e16f34a = "636d3b39e5b6366cf0c33f66d117e83468eb721a" +fb02a60aa1fd75c52602afa2e404448a7e8abbce = "4435f9dc198e885cc7fbf45883812744e83fb327" +fe2a9ffbc4ccf6fa346f3eb1b8ab0c1e4e902fa0 = "235990a487e8406fd1b2dd71410676b6ed617a53" + +[7f3e1038-61bc-5414-967e-017c9d82adda] +2658d364f8cfc912b62d39be0c3744c67504a721 = "3bc1e1bed615c7ec4bbb2a2bfdcf544a37649960" +dc5ad8ae691ac7d6f307ae0397e5859628e70e18 = "0b96949b99eb0d2292902fba5fd22607e25d58b1" + +[7f56f5a3-f504-529b-bc02-0b1fe5e64312] +1de71015c99096977237084b53bc38d0d6e8806e = "0fe31d63268160f31f24a29054052467659ce01b" +3c05d387c8ddd63ba87423ca6e895b62d3317c58 = "a1a9f5114f041e6743be8c5352151d523a7c8bbe" +a725621f49f45639353686ae7aa626361d05a855 = "807b3eedef6b84d68a212d686d0816f79c1fc30e" +fbd005792e5623c6df32a85900f9e0eedf10dfb2 = "0cbb555ac37d86db9383ebba1f1bf90db055040a" + +[7f8f8fb0-2700-5f03-b4bd-41f8cfc144b6] +3611abefef865662a67b51af05724fb0448aa074 = "5f8c65f61ab17574214fa4337a84406ffff8fad9" +5f551e2303b7fa6b6010aee9b60b8793516e9349 = "65e88ca8192ca8f68ef28a8b79bd1885ad56efdf" +8df011a638d82c64e935571f7362200f9a3cfa74 = "825fc25e031461d329a5e8b2a7785828f0b1aaf1" +9171d003eb8bc5d8eb01e947494fc0122c20ff21 = "3c2162fbf99b257907730c5e389df385896654a9" +984724e975e0b468e8b11a4f4c76b30a004ea1fe = "db57a7a5683fce60cd6052343df2405bf7707a90" +a14b4e6116171d82a3c50921b27d41325b8f3a39 = "c233d9a6d9f6ad45c556ba6b99295a3965b3cfb0" +ab536dfb92a7b48c7445ef360ea759d2b2ccc851 = "397743c7f291050c06f25954702b60fd8b795c19" +ae22d4cb8713fd09e10c2c07ce30ac1debe399f0 = "8e2a9c48a18f87a3dbcf1b5e7f43faaddb56e60a" +f09fec6a2ec0276ba6cb7379230ff7e6e2724c3f = "f6e32a5b6b4d65ae0d8e4f90af6cb955b8207275" + +[7f9c7709-75fb-5397-acba-f980073965f6] +0d191c4daa3c8191197242966da1a57ba71dd52c = "a74eb5519a73b643a81ae162f80e15262218a937" +1a9135620c847eab40e537ce540a85f898d593fd = "06706bace9265049ad1397b0cf3adbb587380138" +46720791b251bf3d51030a45a1688d159c72cb82 = "dce201db696187c1b9a5f38e5258a29de6c0e377" +477cca5815cc2a694ecd3b2025be260c69cdceaf = "08562d83f3842be0e9e80ed9ee306b7f3a93992b" +47f7b4135dc39d3e8d6e4ac88274b5dd08eb747a = "8cc61db46f31e3a24aabd5e64a5f585f23ed9e7e" +50fee887853c10694a5541c20f73588afd6d6402 = "a291f4001312c0ab6bff313839c171f68d18a06c" +5d88963a078ea7ea9d13ae5690a5618dc14faa8a = "17082c71a1234759d59406c24951d1d0f78322b9" +63a4557965bba3e58f9d46fe385ddb0307c746b8 = "ba9467253c820e2efd846d2e3fc73ed51afcb3c1" +770772d2a5e0c0945e40430564fa787fe9b47398 = "6ef5111c38f5a573f3958406a4e3080f0a2a73b6" +8a6a60400889886616f6d80ddac88f5de820dd59 = "4b775b3f98da6a57d4cdd62cbbb2f76207705236" +ae9857acf478fa1e1796091a51e0ffc49e2de521 = "83c438b099755862d333df622abd8e20e96e7e46" +bb1c47bc10c51487e1447916745b565c8ebcfde2 = "37b8f9c450866068c805b7cc6e42db3a9756e4c2" +c553995a370305d99827b877c3f5cdad9e533cc2 = "aa428946eb9f3c86863051881e65c61c4b721942" +cdb6eaa6e2415b53ad87a934f0f8136dc940d2e8 = "b5dceb55e1ad55562060887fce0ad2fa78f61a0d" +d7ca044508bd0d1dc261fa393627632ccce4e93b = "f38eb314f3f69753d3e3fd0c11b898563a64cf2d" +e604acdc1f5b912d83a4fa35bb0e8fcce9bfdead = "8f5007f8d20bdc47802536b1c5d830600b7d0108" +e65306f1a36934191bfa7aa55ba375136e74c2ae = "c79100155f6a41fedcab21b4c3f4d52ae971eade" +f2859fdb81eff4666fbbb5c643d9443cd5e5896b = "eccb46b0c97d6be6ecb757ef446ba3c0f3094c2c" + +[7ffbfc9d-0b36-52b1-a06e-feca771d9027] +974e3330ab7bf871bf928e1251b7feb1ce9e1705 = "1345d94dd9f91329b00393db77e706c73746793d" + +[80307280-efb2-5c5d-af8b-a9c15821677b] +6a0012fc49f47c3994c0761fc1a75e2cbf522e8e = "51acac5a111502f7f6a49ef08d831fcf38e17856" +9225bf7e802231f7e676ad9b25221e22e4b93e55 = "241bf56b7fb805fcd9dac1a528228f4dd55883f1" +c5b4d86c7955b5be776078b4e23cf146806fd17a = "2c5dc6a0400b7315927c81db1c1704672d04ade7" +fca6ec7de77aff576f5c87a9d8ad6094762189af = "b402e1c95faa2fafa517b2b38cbfe8282b0a0a16" + +[803aa692-84f0-5eed-9cc1-fbb46710dded] +9ff943065c697d50abaa5cf173abe8237a752137 = "4b9c5a11c76a8e212e1643863e654dfdff2d379d" + +[8045fcac-0607-5c8a-ba73-00410217113e] +c46cfa1e354660d3cd08e3447f6e620621e523d6 = "550ce9ed9ced3047bbabcd452f9c8bd86443afda" + +[804b2507-ca04-509e-bb29-a411f1881c77] +69132ef3e2a4f60d251279206d71da761a18234e = "3423785999f69c1c9c7886d9b3fed0d32f26793c" +8a527d4b7b7a99936e490e045f6ddfc91925f323 = "38462dce4617c892304f13d5bd1136d13dd304c5" + +[805246a1-aa7a-532a-bde9-049e8c820516] +cae7acc1398756964a4b875c3c9007d133f411d7 = "e6f5b670c29260b7ffa99cdac749e6b8a917d520" + +[80713f31-8817-5129-9cf8-209ff8fb23e1] +502c4d65f75fcfbda0ff52aa79c09c140fede434 = "70aada61c3b5f9cbb379d64be064e99e6a0228ea" +cdad66a0f0ccf009bb5f0355c068d8c5d79c2d47 = "584da78679488ff982430e6bd1984d48dc4684b5" + +[80c87078-a4c8-5101-a93a-266e81f0cc5f] +0dcd045354f0b63d76595b5bab979e88965021df = "3bddde78bbc5520583b195cdad4cd88b4ac1af39" +6b743c7e1de6eb452330220d0eafbb48ffc18698 = "f3fb1d6740a5aa4e541653171a08db37e5b210cf" +6c6cefdba324ebb43257e68622bed8e11ae25bd5 = "77d33c7c2176e573acf0117014db84540b53bdf2" +773d3f8bd4bbfb3dca983b1cee73b7f8c7aec4f0 = "6d1b3f3d3e544e82e5c7c789057eeefc0fbb591e" +777494819a18dbc4cf66045d1f6a97358aaf5d2a = "f0df4403e55fb415e8b58a17d1bcda08e59015fc" +b147f3c2cbeb2c614f2053c8dd89fc511cc1063b = "90890d8ac81b1e3d1e78e7ff84a43cef45611ab8" +b39676754a325d1231622ded5b75aa0c2fdacbfb = "7618ff8082a1640bd97a03732392d104d2ff6dbd" +bf51b90270a3d20d53cb6ea15e211477c8a4b428 = "7b2abc9a6cfd4b7c13cca85a9cc69b255d6e787a" +c05023bfccf8d26a24a16994509d41e1a2e6a254 = "c839199f42e39b9e2b8633c4f1b790ce4d14da9f" +c1b679c9deb4facf67f4926e180589d622897e5c = "1042680ffc268d77dc1473f8bb796639f647fb40" +d42b2abdb7afc860d14077f7777a7d296ab54f8a = "83c94218eea09b74ef6f2b3d6ba1c25921e11d27" + +[80e3a25a-59dd-53ce-a95c-a94c81a42368] +a5ee909347c20c191e29bf8d6c080559c656515c = "66878ae90460f63a3b910175c121e1bf8e363ded" + +[80ea8bcb-4634-5cb3-8ee8-a132660d1d2d] +2889669b7f0b04adb2cbca93f778295d799e8aa7 = "2ceceb7047e98b77d2e30b5c3149f3bd05fada9e" +a24cf8e9bc84af7a2e1a24185c14466830399e1f = "c1ea1a063d3b60852a8e2a6ec79ea8f501d470f4" +b6f59a1e9dcac55a746cf638e3fbe2b40c6fc87b = "8a3598cd4583c1c597b7c600c8bfd164e5116765" +ce51f8497fabeb299ddea36e8fcf6dcb342a9246 = "c9861a9dd02b1c5adb0d8f5bd057f0e70e0cff9a" +eaa5aa96bb0ba61b70be9d0608abeed5654c8704 = "4ef9590f0ca18d963eee90de58455d24e259a4d6" + +[80f3d04f-b880-5e6d-8e06-6a7e799169ac] +75fec04f592a274a29765cf3fce76d31a3f3b296 = "c2c799ab47c97d7c2924eff6149cb3a79bc03f3d" +a1afaf1141e255251a839de4fb33bf0d965b0042 = "7e2d8f99199362f4c4d2fd412f37c64a55d022db" +ce29ef184779873c3ceba6688710536aa2f3caf0 = "70f5f064533e5a39b5455db037781430fe8cf4e8" + +[8149f6b0-98f6-5db9-b78f-408fbbb8ef88] +00dfe9a37c86ccdf57cfd1b2e5ac70a2a6cae4eb = "6963884592ac2ce48bce4746306d750fe122601c" +06941dd0f84beb8bcb744ac4e33233d6a9ee00a8 = "51883ca94df63dc0d8fce3f571b6e69c3a116f3a" +14df1bf6fb638424824592ccd96b690f7439b7ab = "566184b821df0add240765f3ab69d38d4912fe9f" +15993e901c02bb00479980d4ce2b06fd6e158564 = "6ea91b8fe38b319d01ea979ec4e3952512b62816" +5634caafedd6ac06ef5e7c2cc8ac048209618e5d = "39790278d97c49db000a38ad53ec608bcab6b67d" +6dfa91602f85725eeac0bdeee1a83b2a6f1cb238 = "a4c22a6d5ce0da71138e8d9fd50f6fb93b23ee58" +81347ac6c484d4cfe36ef04b79bc296d39ff140e = "aef8488a8f5f6036cbd8dbb7bacb82f4325aa8c9" +816ad6203c62f0b0247085009dc1c3ddf9efc5fa = "bd7d725233aeed3df2578fc1bdf30d9bac678461" +af618d43b82a242337e82c62517f9f96af1ff88f = "dee1fcd4b7c8ec8b29c9b739c68f0d463e298f1d" +bc4d8b5c383209cd6a1e150411261c9ea207fe3e = "603691e9b62f33f490ce45aea5d2ceb2b9d1d045" +bcde098d57ab7b677da216215d5371c862b7963e = "afc79343963b4f39c31af2d06135e614ce9fd55f" +c32ae53ffd6a62e15e3119b6bccb2a7df1d33adf = "a84bc39cdbd7e77716ced3a85df998c741fc44a7" +ca477340ff673edd438d04ca7e39279bc227e491 = "a119e2fc0d51bef19759fdc330d5f815fd8bfe66" +d3ab995342c109695d559c1296ac47e7c5bb067c = "f8dd355d046f487db4102c3b6868a00d1f2bed16" +da69ca00b84f02861bd68e18226d471799fe0927 = "ddc828925d23f89f899508f3735cd5c5beb61da9" +dbcecd37a8ba01109b23605f47bd78430d99ca8e = "7ffda16bcc1b67bef25273eecc6ec3f66a21aa83" +f0db035a8f410c0bd49c5b65e8bad5d495bbdb17 = "07b7a921d188cdace909b8d7ed049595746a23cc" +f0ed3cdd48591b6fd004c8932f8b1887607340d1 = "98564315da00972f97e9b7f4792858bdbe8a6e92" +f0f4eb17b1a072646d49231a4520b98bbe9358f7 = "2cf50af643004f10abc5e34445908764701f67cc" +ffc183745e29cffcc51422429566100be32e62d3 = "b02798720cb27255ead28124b1fbca6d51a2bb9a" + +[8197267c-284f-5f27-9208-e0e47529a953] +1af92d6ff7d130fd3e3f41fd01bdd9ccd74375b1 = "f0ec361976475e669a6cff716d997c2ab5dbecea" +29998c52b24d2f74a683a9bc9f71086d9a0f2318 = "acd610a1ab8aef5b0c6b3a9849286a382fa3f2bf" +77d4bf067c769a4ed6a861c7fe09aa61830552a6 = "a7b2900175edc71eb104477106207b4b84c910a1" +9387c49ceba61e0d504a8091c1034b57648ab21d = "7a50ffad390611204be10a2f73830ce529dd0abd" +9a4d3eabc7ef612f27d13a2018b0b86af75b2ae9 = "ab26498c5b1a7daa78c3a01e9e848c98c5d4c13b" +9c79dfca156c46a3d5afdd88dd2545f9623a991a = "0882eaaa804f1766dd02d11763f32e1f6315c18a" +e83b982e66d468a298d7481dbcf76d8e480521a7 = "cdff32b5317100d5354c304f29057877e1257fd4" + +[81a5f4ea-a946-549a-aa7e-2a7f63a27d31] +6ae27341324fcf637ff1a60171600f42472568a0 = "00136fdf3ba299718464e531dc269070801e1c1a" +7f64ce9d79001d25eb1de06fb226b10f525dcff9 = "90673453a3e83eb905878e5bf55485c058832e14" + +[82193955-e24f-5292-bf16-6f2c5261a85f] +0c49d9842eb319f0523a58d39d09adc244686a54 = "b956f5a55ad0447e2e8e5e5f634d11a90e2ece2e" +5064333236f73ba6d3ed0a8aa379cbbb9f87fafe = "47566cea1a623a912a2829fedd19e9bd055a3290" +5c0c80c1d605d19e4a6d5748d7ba7b3ffe98b314 = "0b9fe04039885adb85b57a50f093951488d56bbf" +82318184c4143d223831b8d9effde30bf1c114fe = "05e699bb961e5d95387530df0695e0f2125b3ffd" +ab5119ddf1272254b507c428195640262ae162ab = "cd947fc9d7cfd8d199575508c406d2b51ac07d5f" +f04b314a293511a441e3792d2cf0210d582c0189 = "5dad16d7eca4d8b6628311ed5da47eaf6302dcbc" + +[82899510-4779-5014-852e-03e436cf321d] +559a3df20401cd052f3f5464b8a69ae30d9bc304 = "e437723cb0518b66d6b08870d2ee5ba205d3ee3e" +9e4ecd265a553495734606b75b99d3bf11b0fd00 = "cc69044ae736fd8c774e8162313b3458a6733419" + +[82bedeac-9837-5b62-883a-b5b3b7c811c5] +194a38746e411e2c25410bd43dd31139d97e22c3 = "a02d79b80a7dd33937e25f9843383bacfda90afd" +4833b707f9e11ee7c47f243752674ae1f3fdfc93 = "c9f53eeb7398307227ed4aeeef494a7faff5778e" +8e3d0fa0da20e05edc44f313549c616d0c1648de = "d282dbdc7fad80f3733ff680f1d764e2f4c4c4c3" + +[82daab19-8fc9-5c1e-9f69-37d6aaa0269b] +1cd0ba998791a282d3c1ae20a77ff9c103a96354 = "5162d00d5671ce282d89f9638b0f0a20c086fdc8" +52c02afb4da1a6e89f239319a6902c39b347dae9 = "6e28bce7f610697df843c8bd0eb6f0f45f680de4" +8f18dcd30fb6e5da16a92a6712a738cd40b59d81 = "fc686565193bafa9fcc26576febfafdcffdfe9e9" +96ce3ae8dde3ad3d1f469fd2abf78b9679bdf3cf = "23231ca188da68da5b5ac4d581f0317859bfaab3" +afd8982f3b547fdbf3f0562bbfb3e1293272e78a = "cf88d8271b4ddc2ca10c85b5ca0a3041b1568229" +eedea02226b21ad866125013b5264c6aef1e48b4 = "fa4d6b61fffb029e3bbe58ad0f4216b542e9fc42" +f5092ff093eb62046cb1b62b3e7d24a5deb14f12 = "1020ee6c1dbc218624eadcbd40bbfb50d8a57db9" +fb6924fda2bafd62578fe59148c8e554083c8cf1 = "e716296219d94f1828a8cfba23443a7619b336a6" + +[8314cec4-20b6-5062-9cdb-752b83310925] +7b7cc10ddb0c700da1fb16bc3ee283d846680253 = "d886a9e382d1b8a8cd3613b7f4b119d49bd53631" +7de4499457fae26bf9d0de7e5c6205d5077b6ca0 = "d5648a15fb3f72164d2a55acace4ff665d3c3f6e" +8c5ba11f858b84838bf024012266ae2e18b0db48 = "b6968be89c5d0755d03b4019bdfffa5f8c7cc5f3" +b81b17a9f0d3a3dc3ff4688e5f05b9856bf676eb = "c78f93703643330145f7b82a1837decd8029cf58" +df29875481a6d121d0847be18a8912b0ec080909 = "ae9ada4c15f2f335a0a1a2ce7a18a6cbec8fb233" + +[8332e584-40f3-5f5a-9eee-dfdb1ad742fa] +7fa32106076f6385c60c7cadcb60803688abb567 = "dccc203d4a4df713482aee10f690e1af3f12815c" + +[8365b1bb-bd83-58ee-a267-f2965fc81c73] +602596cc3c45bfc3da8cc9b05afd3639076d69f4 = "2c04e6dc115cdcd6f3f0dee95ec431ae63274692" + +[83bd3595-91a6-54ef-8b5b-f5724fa88d16] +23156e651cf7353da5e779619addab34d22b3b81 = "54affcd9d540445b1841c247e9307b07c71fa009" +28937018540e74c1f08165bfcf3934c48e36a8b1 = "f0237f1f66512f9334ec39244b22b618eb250c9b" +8780b9acfc49ebf9b231b373d31c2c4046f93f13 = "fd281a16fc3d6ad67ed0b50c00a7852b4df78d28" +ae640fdae478140bfb0fbabe1153ae3e854ff5ee = "609586585c0fbf04266cd9729bbbc340897b6f6e" +f31f4bddddfbea289e77ced9b14648037e7ddd95 = "f458bd0fad5e5e1cff5d4652226e367cc3c15440" + +[83e8ac13-25f8-5344-8a64-a9f2b223428f] +2fdadbd18fdea79dc3c8278ba329db840dc10be8 = "8d376e6027e07a6d1cb6b892fc05ea850ef05dd6" +507cde1d7c6299582fb7d51e68f82d785c264400 = "4955ad5ea81eb0f13976e01ee1b227e28917d11e" +7a1d1fc15d5812eff494fc05b8b70f03fac31bc3 = "f5b702b1a3326588e3cee7bc298ee4b3f6ec76ed" +84d01f0a6201613af4265d1d908f48e569e6b918 = "4bff777a46e2f9b77c1b911490967f44a9801b71" +8a91a7ed793c91c540ff442113f4fc36be305f43 = "c9e4fdb7dd4c6ec80e04ced3716f93ffdbeb295f" +ec6c9365bc3a04e1db0fa60350abdebd9a4e8179 = "243fbe455bfa98ea8bbc798360dc0a51985b7bae" + +[83f21c0b-4282-5fbc-9e3f-f6da3d2e584c] +8abc154e26e9b137558dd9f83170ec1ee228dfbb = "43674b271d96d5eae6774fcefae476cd5bfc7060" +8c763b0962a1ba02ccb00981ff9d886983ad6a8d = "8f99271a02907a2f9af78cfb35571525899ef6d8" +d215cdcc963e16ae329f426248840372c5d71e79 = "9d10c0a4657787a2c072e605d303d59d9ba23a26" +ed5da8181c31ae2cb194d9e4b6569cad4c35994c = "b7dc5d4dc3c546ee4b5831f6edf6276993373d62" + +[8401869c-8c2d-5ca6-9bd1-4e4419d09179] +bda97e454baeb7e3bc6c07ee3ad8b8b3625528a8 = "0095751f92b2e37ec021c8aec8e0b40e1a173513" + +[84343b55-15e5-57ce-a0f1-bacd12ca4aae] +166f569ed25afb1fdffb71a060ff2451bf58fa87 = "73308efe7dc8046715d0e700f85d3118ec49dcd0" + +[8448b6dc-31e4-5fff-9e7c-6ff656793c05] +1845a0d6f6567fe436ef903b5af2f9c76ef4337e = "f538f74ee206f45362b864b27f43a472173152cd" +753597e92d9336ee3197afe53815487a34839ebf = "78e7d582c8b9ca12ee04f23eb872efc56064d037" +916ab45715c40eccd75279d64817119dd3f58525 = "3b2465fc02420781ceb56b775cb3900a1850d223" +9637b20845e5a23d1ed8d140da6e777f4fb273d7 = "a1df43a8257a6b2a1b4fad5614eef9414d3c19ce" +a05c7cccf98cbaaf8ec6f593ad2f4c920d5f1a4b = "a79ab2634278bee08b23633c9039d3aee29c635e" +f1417b80ec7f3338275b2b692f7dc33289e50935 = "1df7a0c2d82cd88c5a3db088f8dcee2297bfe58b" +fddc9f77f0522b2a916b7ee4aa7a0aa5df95d0a6 = "a467269090101274ae5fbd7d0a5bc55760a6d72e" + +[845f30ce-e0dd-54de-816f-dea2af76ea42] +25202401c6a68235bc95892a9284b5ac67bd492a = "7e2bd2834fc0c0c039a8e9c686f0d26928134190" +74373eb988c5847add71b7b89b8e0e3d5cd1bb85 = "e929a4c027bf900643a13bb8cccbe897cbbc3a31" +d062847cad585799bf99b334f43c17b17f63053c = "552765c4b24ca370481299107bae0323192f4b30" +dfbd89421a9b3e6e5327f197f623c01dc10e78cb = "69f0f88359c10c11ca97bc1f4305352ca6b3d93f" + +[8483f79d-bbb9-5b09-9880-746422ab8387] +0d2b450f692a8a2ad3f4eaa1e6ef87e5c4800b0f = "59def2a78df00211dce37d4f1444029434427be7" +271442f5fc4a78146205019becfbc4117d25712a = "f803400b4c87ba678d2617daf27b530043b5ca7d" +7217dd05ee494751a81469cd0082a0972e95591b = "67cacec1182fa7f2c8a290fd75b885384170a44b" +751a0296dd182aeb9bb7110e945e2152d4c1a8c8 = "a1fb088d2a0b40c96b069bfb0eb9bbbe184d09da" +7bf9d3f79d7cce8481ad537d7b96a108c789daa9 = "a4eef6bbd8c1ba034ca8a024f03bb8f413606d1e" +7cc2ecff855d5cdbb8b83155ccedd8c59e599eb8 = "b981383148487610897f309afeac6074fd4a553b" +8b171525a426610efe26db052de6da46d9424e0d = "f5841684840b3e6701e897fe43fb1ce8475c4b8f" +9bd1b445d9855e27a8808b53b0e193b5544d8dac = "45845171543928fca8b73155c4057df9bd406619" +cddac8059828503b331b26ba3619bcc86b10cdfd = "43dc567d6270395703b93f8bf4d4c3fb948453b3" +d0a190983047359329964de5ec35977901d00bf2 = "cbd3328d37907b12284f3b550b95fa198419325c" +d3feef9aa7ec72ee73da03d633e81cfa3a5190e8 = "98ad77535db800e0b4c78559f0829062a2f1385d" +d738d86998e548247a333b5110f83b9aee9765e2 = "a3f289507d67c719c509dcf52ee855dfd73feda8" +df301d7e492edc2ce5e16bbec8469b9a630041d5 = "3880caa764804f7474d9e53e56cf9c8159e26afe" +fde9ff1433a8d22ad2b6e951be4ac052377d7d3f = "3ceb8721758e062c31e5c8aebf5c831666f6564d" + +[84935fa0-2c4a-516b-8990-718f0066a3cc] +559952ceb0a8ca2d956ab632beb25a13da548e50 = "d66b365e74824749e7bf6be58192624f610fbc88" +b846327368c4eac77e1f25240c86cd519b677738 = "f0422e0a0c08ce9ff50f04f34710c8c8d25391a4" + +[850e97f4-adf8-5461-80c9-b697039f073f] +04ba9ccaad69e4eadbcc6dc15936f21f1dbd9a1d = "bfc0268acb30ea349053021628f25c3c9396f534" +6b4d3c3eeb25a5eeab874f34c3cf3cf2900a0c4c = "ace0aba7eabfda2efd3c81b887020f20b534f7e6" +a94d5fefca761fad8c9dc884bec22a9f7c1b5cb8 = "893bd34757c06eac5d6b044a82faf7c5658774e6" + +[8574dada-bbe2-5b14-8c04-14b17cae11e5] +0b46767c98fc8fafa791054b4a2fc6ea7c58f822 = "ef9fa6d94bc977d4af4e5c45e37618912bdda5ee" +2292fa69d209fabcbfcda371e524b8867d33af0c = "b49b4f7afe8ff05c1ce24082cd4e197d1a36539b" +470dd4ab12cd7fccb028d1d4294007e1927c844e = "ec9e40f95adc8bff7a4bd5f28c0db16b2c0defd1" +8be17f6532dcc8818599bbaa9760d16a97fcaa44 = "dd052749c2e475be5af4e4080dd7f98b6fda5d19" + +[857edff2-01a9-55ba-8bc9-13e46c0ddbb2] +04c92b64226d3d77232af4ff071836ee3de95a5d = "70f8cd6d65e05e814b6cd3d8d086136b66be1423" +0c6fe15c3f6bb71e6f60886cacc820d2c1504eb6 = "07fdf422004b5bedb47be031d0a86fb45104e160" +13f06bf843b3b37a50a241dbac95073161ff2817 = "f2eb3edca2db5d56804fee0979b56cbd5a6a5712" +80343a88e358a85cc93193aa922c1db642a51e7a = "18124f4b8ce63e413b897e3272950cc48cff050a" +b6bf941dbc9230b1f1866428dfa8f80b0ad7a440 = "29ee8941cd94b231f2ee6c867a1ac44783cc3e62" +be0402e5b6f6cc7d3c703cf0c40318524ee46207 = "e6c2f58e1e409b4673b8362eb75485bc5295b9b7" +c8254f7746ae73473c0951b78db332e518a39d26 = "361a30f374f47dc3e777ccf95458c876dc009365" +e869c812ba2e90dfd3965e1a8d3a012677e78605 = "d4a41ed4e75f096c0617d1edb613f2f91af8ff82" +f776585cb8751147048ef14c80976551992502d3 = "2f806dc3863003b4be0e03990b4a4ef20d2aa27c" +f7821fdda02c6b75407d8cd79caf12ceca861b27 = "80ab693789648d51b2ad6d69b05906203d9fb1c5" + +[85a6dd25-e78a-55b7-8502-1745935b8125] +2f02a7569f150d82850ac1daa49c26e5a03aa426 = "36f38e465c0d1f6e4154839ae513441ba2334cb8" +32233b5a3d4b4453a8de28a6d363344023b1e074 = "b2106d9cb030af26d6c015e9bf6e66083bfa36e6" +428ff4a0d3abfff82976b814ba022d606288e916 = "754d1212623f13cee340dee85786a2194986df3a" +c18865971782e31973c35b537081fc58a2c14dae = "62f16f26036f6ccde24c19adba9a0a0ed6cf445d" +ea1398ad48254da3936137b4fc6930ccc9ad048a = "efe764c57600eb4b862cd6bbf5e424efb932dd63" + +[85c772de-338a-5e7f-b815-41e76c26ac1f] +111eecbbb99c65ff6ceee952bfdb9c339c164f1e = "8d762cdb635147676b54eac1a44b2355b2ad7d6f" +7ba53c59aae0ebae10ca09e94038bc0d08adbae0 = "34617f1bf20846bc3a8f6a955f77a800639bd2bd" + +[85eb9095-274b-55ce-be28-9e90f41ac741] +06a56ce3ce90a28237dcbf11bdb1ab3dd0880b9f = "5bcbc1c5ae74c5228fa83962ebeed4b24f5ca1dc" +771144ceb43704510349ed5d8b6688253f0488cf = "f428a1db8de48ad58b2b8deeaf12e2a04015966f" +ac9f6029b911f283f40bb5a3ba804e6cb28cfd99 = "72b53632c95832a68b4f544f894260b01d4d35ec" +b1cbbf035ed9153361828c849c2b64a3bad4f9eb = "d1ec3dcb7278a1ae0b82448fa635da5d9b69e3d7" + +[85f8d34a-cbdd-5861-8df4-14fed0d494ab] +4d80495834765ffb01ad312273567f1f331186db = "a9b07232b4fd5ef2cba5cb6ca58e6e2aad6fc71f" +66a6dac99eecdf19e39cae9dfcd0a09e8a1ea314 = "30cccd91953c67ce6bc23761dd91c7da2320c6b8" +899297f3fe686a9407f6039fe7ee54a9115bdca6 = "9bce9039785ea600d374ac8625bd739da68b846f" +93407c9660e9974dddc75d6eb57b11c57ca858f6 = "164b610970f334f1928b3817c1263f05ecd07873" +a5e4553d8c6bae2927bf47770c8d989270929f31 = "ca9d654698fc1fb3da058e84cbf8bbcb08c3c83f" +be90edac20d40f9943d4ad95e8818a52d90a10b9 = "c5b5f61a9499dc6e6b545d296a03df3dbbf85c36" +c574408d734d3f6b77ab0a2dda9a5bf650f32d21 = "1c1ec79a78595bacf4c0d8b413e87c0129c20f91" + +[8603256b-76ad-53fe-b511-38a38e6437cd] +008a63dff6d60f3773b72e6c09a17dc46f084f66 = "c47589a9e4f562ced37790c1a33b0a8e30bd4696" +1cc0f4c52b80bd47c47d1cc1a6c59ffad2d7cdfb = "5b8ae9c2085017f2d301e6038ef4de3adabdc628" +2631df1d5969b5b658566f2b26c4ef3dc2f07371 = "604f86f1e8f9d50ec73be6efa44adf012f19e10e" +a4316a50f81399f5ab875b25080a8d5b53479560 = "0baeb47040f1461867a4c634ea1abd8f07592861" + +[86162151-8369-513e-95ac-db6cacff8834] +07be0bb709676c101c71ba49334172618a3f1888 = "ee660311d4f75cd94c058ff27eeba596e70d286b" +19aae7eb8d392adf28c813c0e1a17e60ffed3aeb = "b0eb1ce8baf03e2ecfec990e65283e2954a5b4e8" +c0b86d78c0a7aef497ba99e935bf0720beaa0963 = "0728fffa3f6d6141c19538fd84a10c8881fcfa08" + +[861a8166-3701-5b0c-9a16-15d98fcdc6aa] +15a86147542c1e5246cd9d15814e9ae31b8ea2cc = "0e42d563e4a0bee712ac1f2457b8e47c36a7d559" +2fd2dcd6cc09052e9799096a96dc14845aa587f7 = "71fcbfe7d47c65a31610f856467ad5c18e6170fb" +3c08c9af9ebeaa54589e939c0cf2e652ef4ca6a0 = "23a41b7cefa58e1ebfa73c7d2731413a03ca010f" +5a7b050bcbf0ef1db878aa57d274342f72de02eb = "2e614287c4b79c6bc4a5dd9836d2c24044c0eebd" +5e3d1b34adac5c7dfc2bd45d5515b34c87d6c9b0 = "4a5a56e4794e858748aa9ed4325420d933721a49" +69265d09ef038907d6fd86ef595933d9b1097ea4 = "97d3e559c71fa9cfa9c9de61dae92109f89e350f" +84fe2fd43a945007fdf192bb959de24c48838435 = "c64abe311a1671ae3a597141c4d6826efa7dcc3f" +9188f5a941223e29a4b0718069d0b02dc399b41d = "9ac973da84af54a374d859fb59c3e8e5301ab304" +956a6f5d82945085e0216fd565a188b1b8685d9d = "59d270adb553c6940bd75c807a966c74b702436e" +aaaf5f48413f2003531b6d00918d68a139511c44 = "e300a96eeec0d00214ba91e66a9dcceceab85856" +d1b68720d0109c76c39b795216b95e47c46e6b4d = "1a6c3befc5b61343dca5e4b7db3647ce8e947b16" +dca8530bfa4daeafab2f880230bf4a018a6a938f = "fbe085b6806b26b331fcc29fcbb12522b5361b3b" + +[86223c79-3864-5bf0-83f7-82e725a168b6] +0207655f5e3f51dde98e507b4e5f4ccf480390eb = "a0db44dd30f0ba2d42afe018d51f5a2b01cc3ec3" +035d316543e358d0b2e49d19d606a753385bfd06 = "195a0ec8e646b58955f518bbb0943d7af7ad08e4" +04b198d197f4389f7a6e356a78846159dfda14f9 = "1ab6da3ee6832c0139e09fe8a49dd307250c2f1c" +11f1cb07ca6d591bc70c5c700291b2f8fcfa5a2b = "7a763a75a55c62407b0592e70b1f8f625f846a01" +29eacd5f391c0ae4448b39525a4933fc16ad38a4 = "9a137014792a46e338b65ca22d0ff19e171448e6" +32312611bcc0439c485b9c677debebaeb00135cf = "940be327c9c564d2314b25267b38c72bd153a1aa" +410d1190c783c860e3b4d23786e94aa328f33513 = "80117cc5f8e749a689dbd20e3d4cd21c232ad241" +4d6cfe1e44e2be0c13dcfa4ec2a6707a3177b995 = "d99e9a2e418319aefad594415bbf2fe736287d44" +55b28dbb809118fa3f44d3eb0d8ca10dead3c57a = "2d4e1da97fc6f5b5cb6899cf94a867d90a06a56f" +6de2f20dc982c5d0bd4813797d2c2cfb270931e4 = "ece139a5a60ea0273a8cba2eb36bdd895efecfd6" +6fc2016ea84c92f8969824a5d8efeae564e5f6bf = "428f391d5ebd971ca6f9609b91a603be8c77d409" +73ff7d60446799b2883fdcc07ada800b312bfed4 = "34d3c161a8ce5238de3ed55433d457b4cd1b1b74" +784d12602dd3eefa2f94824ae7daf2b42b8c6b6c = "324a8d5182a02eeda3191524355658591ee11e5d" +7ad317207900bebd06c70912ae10521bb7a59545 = "6d7674b6c63161e2317670c5b739ac5dc52e44d9" +8773b7dde9957a72de3260a6fc4928a8f5650a1c = "91c5d7891d136fa4174dde6efe7beeddf7b5f69b" +89aee212d8f5abbf12c8eea745a58efac3fd987c = "c67cd7a41aa3e9d937feb4ae7e69ee0aac12be99" +8cc8854cfa74a9be4887215f88861bdad4c71761 = "9c6768ee9b87866c48c07a47ae94fe54ee22d2c4" +a9a0c00906f42f0ab8e48d194d65490e80d5f15d = "b5fe53e4dd15946e9283be8e244a38b12eab3e5a" +afc63dd60123805cafcdc443d2a2917e043d300e = "51f78b196a618f99ffd1d3e4afae154aadd221c3" +c9b431737f9992224cac980e6e4e6a5a9923017a = "4b39ba1f89767d6bdc3abaa1f22c25388b6df3d7" +d530e9ab70c8a49bf3e258cf6a705517cc1c0399 = "ac280b1054a3da61aa84bdfdd82c9a1dfa764725" +dcda1bf06371242fefe5204a5d259c9d5effd969 = "7d5a9673ab5dcde594c7c64e028857cef3d81784" +ded94af335e4af283b21d791e8dc83e922105177 = "4a4665650b8acd84063293fce6e330a8eba722e5" +f3462013e14ef3c482abebc26095304934dd25fc = "90eab5291c5cae27244c0b48b1c7ccadfe5e6dfc" +f96e998bb9252d7d9f30c1253e1da10803034539 = "51e30341f28205aa470804831d82a7de91457ca5" +fdd31d92aaf0fe3ddbb5c1d8ddf60381cba3da67 = "2086751e13b712312e16483980e70807238ec57b" + +[864edb3b-99cc-5e75-8d2d-829cb0a9cfe8] +006562497d9be04d7ed6507306e639032ad47829 = "6df8425ae31f26dc1cf93eec691ee06bf224ab6e" +043ed242e608aee9f83823c547e67c730f2cb99a = "a035490971e70602132e3d1eb6fb4b590c0cdfac" +06792b4667f3dd3990a22a8affff8aeb087f6dec = "3901fec7c77958a917f3d555f15036f55bb0092e" +08683b47824957bd057d0db448d3efdfdc632cf7 = "9e276e52386fa086ef5de5103765b784a6069cd6" +087b9db5187b845902b77a0082eac306bee7a0d3 = "f32825cd19597de223f8960352054006acf1938a" +118622617ea4db1b55e8e0c7249c41500d871073 = "422d12219ba09f9756279657e12fdff057ae4903" +151958999e51866d814561e1a71f2d1a2dde8757 = "53d60367286a0fbb09f204c2425d24648e590698" +162249b625014952b066ba661eb258129991c94c = "e79976d054a1c4c648c533cdce06271c89bb0d48" +1b3edeb01a2dac87790596f782fda37a096a3ef0 = "af76a614d223a77c4035c96bb928c3ba5419ee96" +27f9c9291230064f07f3183a3c8f7ad4335f602f = "2ca45054118e6c56389fd0dc7bbe89da5c237b7c" +2f25f0679d26b159629c33ad3418e6619aa79393 = "15841801fd86323217ac3c601314914e324154bd" +398b13cff75994afa23e7c46ee6f60143a93723b = "5114221772794016901f7f09803b4daea4dc2efc" +3afb7a24c304c67a0b3d432af89a2550333eb071 = "5d397ce12398171853aaf36c8245a9be67fb02dc" +3d21cee067f35016997ec1781ad48cef570bc633 = "e35edc6307dc73e1f8cc628ca27f33240d1f745c" +402a6d45cc016408888db299c94821538ecb55e1 = "4158566d3a4be125db7d7844f761a3348fa5102d" +4900dc27d473508668cd0f164dd655b429a75ee2 = "ed7357e1c971446c237e0a9334fc5d5b82af8cf2" +49561fa79d39caf8c92d584e88750c1666a10480 = "12c26861088473a78a3f0b6776e329e442dc3781" +4b8de289604760b99d9a85691027710a74bc46a9 = "1d3dad4ce78e0e48b67ab1f981d23c01cca4a3dc" +52615e84024f2ac666469fb8f2af95a6194ad84c = "3ada868240d6ee925dc58c480824cbf7afc36b20" +5a4a6421fd0e387a9f2b9826a1eb4fbf175bd15b = "f96052af803c4449bc96d05ee85cb501f42e07e2" +63038135479f953ade6571662f4638d9953ebb82 = "49ae445d3f5666199644e9007b1f8763d838a029" +631824366e269cf415e2fdaeb79d7c35266d0ac1 = "a841160c3936de3893542aa0cd66790a3b6b9ed9" +7086f3a1fd28fef2b1a979c11ffefbd3f9daf251 = "af4dd9256e09fa7159e72607402bdb7bd657f906" +7198c4fb7c5d468998bce89c0c1629dee3ce665f = "b19543e9c0d0a88a17b47c0f4dea60229fab1df4" +789cf00848723b3ac67ac5f4f0f27c3dfc4c7304 = "1a57bb2520fc6afcc6c1653e8ec91e934d17afac" +79e517b1a41659290c18be31c0d25ec96578c7c7 = "30843ee16c4dd16d98ad990f078236108a5203ac" +7cb00c6bc3cb1c132b91047fb6424a60dd163d05 = "1aa0246a5e1e97beb7e12ce3c62dd3d563d051d9" +7f8b770aaee5d827737dc8823ed2aca9294f4043 = "2245ac5549b4caef9bd93030ab35c834ba1c31e9" +81cca83f9d691f54f24e7fba2aba09a9b43e731c = "036021f753b36bff5dbb5abc7993e505da1afee1" +87a29b0a0fdde625037943759a51c3be069a3951 = "34d159b50ec392056cef237cfaf986a472ea2121" +880480f06b674dd0c1f00103ed3d69cd4ebb6d4d = "dd578553865ce68262e6f647793b4fbd9dde505c" +9081d6260207b5a09a190c4faa95837595345c3f = "3514cb667e9535c810214ba963639934064f8d04" +91ccb8dae7e49534604e93bf1bfee6e43d001a28 = "4d35d46a4b989f46d070f1a23158367b27ef295f" +a934b9ca03db47657f0206b02ae7d9ce85a77162 = "778c1a8e0193b87e3262ba8078a3ac57fa84304e" +af0d3739bdf18ebfcd4aa53ca9f4187840ac938f = "e639a40f8369c0d17dd821986262dfc4ccb8b398" +b11255efd04dbc509086de1a9b3eafea86d247b8 = "ec4054e6df8589efc59e07b17d8c4fce752e6c56" +b4aea82ce1cf165b96115f9271efd33776435fe0 = "c223fa7b69318f61a4038b60249e6dfa9e07b400" +ba696672be809f812dfef079819564b6065ffd36 = "84bea819ff0c08e8f9fd55a637d25bdc685c6c5b" +c1cbcb3ad62dab29e7765089c4eef2f3afc1a344 = "78c82f066fbccb651727b9bf8d8797528a93b219" +c3059a99d867b681fce562c1c463968428226737 = "6c783b43a6faf2dc235ba0c853b89a014af41fec" +ce598f10f482653aec888c1c956e8c2b5cbde10b = "7fa30a55a347cac2e7cd3ac8cdfa99f1b840fc02" +d5308421daea7370a60d3e2718e1b3fc5fe47f50 = "b49714f42791b25725e1c1d3b3580d9628887cce" +d631e5ce8fd174576171eae6c30a34b8a9b3498b = "07d8c67c3da9cef71053082bc90aca6e26f12ed4" +d7f79801adc41b8d0bafcc016bd5b28d10308543 = "964c91e4f3441b7abbf5d83f6646570836fb25af" +f0d185a3604e0c0cd87f0ac4544bd423c28913ea = "90d17a91e4695a11be9beee9e7074f4a117bd772" +f67dc0b144d1fcc83eb48a7beddca746d4841f9e = "31a72dc5dc72a939bf04db1788b8138dcfbc8e78" +fcc643ae32378a4c76672560e4f39661f8194998 = "d4b37bb53acf88cf185871ccaacc41f4e03d9622" + +[86800b63-3017-5277-aca5-15d7d6a5f2b2] +85520e66147c51096cc7b9c1c9b3d4d18ab7573f = "522a2cc850032c9d6779f4e50a7de14e9f55a1e7" +8b6e743c864501413e1f750cbff5d6375fab0453 = "768a7a8c80a4cf28a848953f2b079b9a956fb708" + +[868d336d-f365-5dbb-979b-2c1525cefd4e] +ff47a4164c6554ffe195e38736e9b607f3317dc1 = "b28eba12294a59d0a66ecdd43a4e983d4512ec82" + +[86cbd20a-38ae-5b56-a3b9-c5a70d2def0c] +4ea71c4f5e17b1cedf87ab8ac79c0e9fcf92ac86 = "3a8cf1ca91dcf5bf1763867cf9140b31fb545b8f" +50e5fc623a60dbf94bb8bc0938c4e8322b8e5247 = "517415893b532c2c20bce32da21fe1e7dcec2132" + +[86f7a689-2022-50b4-a561-43c23ac3c673] +0025d3684e8e4ba7f947416f6e467b13ffc8f966 = "9a3b340eb5696dc3a949fcb236933a46225ff038" +31246de6ede10c446b26db8fbfceea2ce99b33aa = "7b8c4ad2313807e2929706788e64c447fb7096cf" +3aca1f362f5e85c560d7c9df6b9bee5e68588ab4 = "95e79434c22c5bcb7e5c554f51844336ec8f5dbc" +41d7c452e858f55ef6671f5e449019adfd1a5d93 = "510b16489bdeac608db4f39689eeef9b7f7bfcc0" +4273e3b991b67c16aeb7f2338e3160d52b235077 = "12af3e7358a6d510e500f3892f9d920650ad30e7" +4c391959ea58377b677c4c0a29a387f2de1bba4a = "2013f58e79d778181c498fed433caf6dd74c9746" +5310388fafc069639ce4404b2146054e129ad254 = "d6f80379132c02cb809c0f98ac5c9b62fbf61f36" +53a4a939945c07184307e60b597a82daf4d6025d = "467bbecc45dc61222769bbe681f0e7b512581018" +6eb45741abbbf9dee4d3108ec6e095a6fb89205d = "b30d890cb40515c76716bacd2d23a1d0dd69bc92" +8e35d01b382bbeec853e59872f306f00bf5ff363 = "3f788885ee6b8acaf59be366e8d48eb8605e24a3" +94f3edab8b63c6e0c9ed63087f2a5a3fb2ecbaf6 = "00a992c7bcd6e309e956d769f858609d261171c1" +a49c474051629e1c3449783c08f2488dc913d4b6 = "085103dab9105a7debdef2072dc4c33d7392b567" +b020af41c852bb090c13db42b4d2efc9451c71b9 = "1728bcbc91862efbbb01b1295e6d4745cc414b39" +b9117b30435feb21fadddf9f2ea020dbf4bf1a63 = "67a78ab786d2f36b5445c0c332d125ea40dbfcce" +b99138f32081e94dee83f97996e0d60b7a53afab = "f2288b3e3c9bbf78fb8005849257bd1e5a809a55" +ccf26532c48e5175d6ec2ffaa93c308493ddf476 = "9af4b39a1c9177bc871bb54654e9e2acc93c2c28" +d37f97b92c10a1dca9c93b5395eb2698d4ed2496 = "254145d132007a3075d63a975a1e584777899d18" +ef8a1fbf650d162ff169226a102826ac9c9d71bf = "64a81a576cf238f6569571528b6e7c718081c405" +f9dbffcab67cede7227538f98ac71eda96eb78d9 = "e3a0fd34a1bea8cfcafd90245ac6bb465829e3de" +fa78640b3d516905f7d6883843648c0f3e0296f9 = "17fe00193abc47304980688be6240c0cb166d148" +ff6e7ae143c6f3766ea6fbd33151d74ab38a5776 = "d7afcd1545cb3f9896dccd6b47d7a47a993fe50e" + +[86fae568-95e7-573e-a6b2-d8a6b900c9ef] +0ad314c8f22d4f054eef8cf0fd0121e8499bc24e = "1c13e0caf44c206d566f5c77d83cfa9e48617a72" +1271fe1a838d6b64f4fe37e59b3b476695b9ab4b = "fe20fa49ba1321a11ce826062d0ad98a9ad9174f" +16566b74a29f459457c2de39daf3b4c64cbc0b44 = "ce1fca9c4d001275a4fb00da6d3019e65e89ab53" +17cc77dc042cc9cbd9d45183429248bff54c579d = "834c9a32b6894a68cc2ebf31484ab78b21b2ffdf" +1f06a62ae152acd5d7a82cd9cacb1efff8c2553d = "23b537786a82971ed054118be1836e7bae0be7f9" +2035bdf88705ab5d49e7e6599f7337cee1723f8f = "42c9568a60f87d7d9e11972a79b93a67291da845" +2225e7de45d2089953383e1b1c6388f9e906b5f5 = "5229f43df548fd2738cb0f14234a696bbf29889f" +28d4db394088d583d7b372a9fe49a52138bf36ad = "beba30d27a8e210846e3fe09cd28568e5e4d6765" +2a5da26befc2b609f4ce6e7641d56dac04bb66b9 = "2061de2ba271ff7f54d061bb57b0747ea07b90f0" +2d5237fd7af7cf852b2e1974c8074d6830259e9e = "011431e949e07e225b71368b03e94afa495bfd4c" +32a83f74d841be5cd5b8ab59669239444906c9b5 = "490473eaa2dbe6680d51e54198b594b56f47b879" +35ce5b4aa9ac5b34daa5adf8c27316c79629d573 = "d35e1e1b983546b453a230463088a70b48684ac4" +364e79ac88bb14e8f0ba023ad3015db648d3b66c = "20fe6baf51114a832e7e05a9463630f6b4461b82" +40dc3523969764e267496a6b95e93f69efdf9f37 = "f479052149516d895d4975409555fb83fc288903" +41aa02fc01d7b4d8b0f34d3e70d2ecfb6d0d0591 = "6a0769344e95821c33cdcf7d8a3b90e344035358" +487dc05cb007638aaa306fbd38ab3f2c9378bbbb = "35b223627af0b6d7e34a599c33405d429b526eca" +4cb34f87f50d8918c300a3396239fa813f9d2033 = "e73f7ef499130368a55a8cc15cfb7c765c0af7b2" +4f86054e7d8adcf971abd430fb1c886f6d873f56 = "7e9e25dbe9b6bb0ed8e0dbfb887dd637edeef121" +518ed25ba8a9b65cbc01560ce50636f1894ad8de = "c000399a5ea673b30afa63dcedebb7f3566c2784" +52f7f261c74052a58731a4c8aab37ef86434b80d = "dcbde9238a83b073d75b0a23855cb8b4bd064801" +53965ae9075c3746590bfdcdf915782f222717c7 = "e091b76ea1e61b4d25a8c0884f7957f66ab7cb05" +5c95569aec2c74b89218f861d261723e7dd60459 = "7effbca732fcf758c0b54ab43629a939eee4d124" +5e3f1091185d09b82fa362a4f742ccbf44c9625e = "521a2ac5d037c8b82f7bf2abce2e6f87d3376c21" +5f74af8affd8e9501a88b692e46519df316146bd = "62f684d264eb94bfed9779c499c1a8abd085cdcd" +604ae66a6216faebd440afd6b1a97aaf1db1d47b = "47a0302864828b9ed788291eee3aac7f96de6d06" +714d4c552e7421a64639e10031e1aeabf5044752 = "dd2e8472ddaf3af962134cfc0b321c053511d59c" +7179b243500a5d9641a49c414f261955de525dca = "8cedbed4983e2b0e9119b490cb117d28c219bad2" +7655e53e8f4a938ca393ab9b7b66f25213028a1e = "87a2ddef5e2932bf68847c742d22f56993a3f2e7" +77740f2738c23f4a0d091481684f7eb116296040 = "43064a8a7c66600a73344ebcb96dcf05020bb288" +78c4f8df15067dcf7447f13cac287f30de125ad4 = "92682b5cb50a770bc954eb0b097b9e9e6af94d54" +8157932ede84c6c239c38e4f0e534b036adbf4c1 = "98b6abe444b644791e57ba0b2d35848aa4051da6" +81d6c4dfe329ee2c0b32dadfa2a296168f7ea04d = "b64ad0e356f7dfc6930d2c7c22087bd64195debd" +8647951601846e7287ce83f80eedcb77efccc9a9 = "7360ef270f77c0e6e52fdbbb94933d52f56adbf9" +8e1a06093aecbdf5460cd6c85dee7edfd2c36c65 = "9b64e55522964b246adb65d10e85110fdabeb299" +95633550302ee97270917619b1782ee35713f53c = "56eeaaffb6aedbbe6625f4128a8f0f3410a9e60a" +9689b261c382807aab9e009812eb8caf2facdb4f = "85d6cdd20b7ed29835ab33269873154a69002dcc" +9c7b64a04cb14fae1fcc84b2d7230c01c76e4e6c = "80e48bad27e4527aa340055dcfc739a64273bbf3" +9c7ee23a54f5e63a92ee63fcdeff415681e6dff6 = "b0734dc354505da9546970af13d224d554a0174c" +a666eede913e449bcc3f91ac7a27fe8e67fd99f7 = "3e750141313cf972a8539855fa899223a00136b0" +a6a1c105e8659409ec864ba371438a25b22e84da = "3360dd68be11042ca469fc48ab568a0e69fcf81f" +b423648c694000355e31fb243583dc1308082022 = "94b876ffd26d88bac198e3eec763db7b5d33831a" +b5992badb70075251ac05f3bb638c46640f65e76 = "be3fa93166c627329b64755745740047af4e3ec1" +b5b1ba39c12b9e328068c4e7ed04a32857c5730d = "110629e98c2bc44d8bbc41da3137e139eb365091" +c02143410325f0879f24b13f01f5252d7992cca3 = "73890f6b3d24a780a21055a97e81104fe63c30fd" +c1c14bb0878cbf3724b46e9d357a5ba0fb2afbd5 = "6e6b4909f2cb4bb17b4f4a4b6d9f7a60fad6b770" +c57e6a61fafef4ae8b26cdc2de979beccb822f55 = "1bfd2548d425a0c4ecd1f799bdb4ca802747ef3d" +ca9fc0c348465bcaed20d078e010ecaf716f7645 = "a0aad57117ef332c1a72e87b4b3aead7db1caef6" +cfb394fd866b93426493dde8cd04fc663a61d84c = "7f0ca24cb239e1ccbedb464c7650524846779a81" +d49a4795cf48ff45826ddea35737c0158f10e65a = "018544364bfa16e6d6cae6408475f5d17f52c4a4" +f5a5de144ee3e457c62f282a46c80a7aa50028c8 = "9ea078ce793862e53c5ffbc06e71169b02567cc6" +ff4158006a5512a59bccd92f4b7d9fae03ade3ba = "48f784964082127ea8473e19eca0bfd0b923f782" +fff1d66ab0580d1b421743c875440e586febbace = "ee91af58f5704c43bb92cd6ecb4b6c51c319b1b8" + +[8710203e-1f21-525d-b237-938bdd24ee6a] +0075f31dcca0711f16264cea602c1f75ab09c2a0 = "36d22b1696e5d1e56bd023c457cb30c460ed3412" +13b43e46bed5a1e664c9657c955c3bf163161fec = "5faa9322c1c7c14a3504f071a4757a08712ab10b" +23e62188e9466d15d35d53530f694dde4764b442 = "e6b4a5008630a97a5faf09b88524bbb484947559" +4ba61e763bafb30d59c183d2b0b5e5b5a3735109 = "5a86d38f21db6b9cfc4fca93b43bb7bcb1ee6e00" +bbb623831c921a058171e7be59ac25ececccd825 = "cd12972151c7c4c0084256f6581cbc62585806fe" +f88451f491ced73319041c9b1892b678fc08a629 = "43837601c3b48f8b4ae55521aaa5a3ba9f689af0" + +[872c559c-99b0-510c-b3b7-b6c96a88d5cd] +285179e07e7c6c83d41094e382ef29e83cbae0fb = "0b9744aa76f3f6d5220977a0f11a9d9910dbed77" +38ba0254e3b1103e6d76546d4e82cd4c5fba378e = "cb13256e37e873d4c39d767be808ac9275c3c017" +3fca9d078ca72a356c4c687693c3999545e91da2 = "eb8718aa865835ed0c2f730ed3cd23b94de63bb3" +980c76824455003c4d179336cf65180a2ed925f8 = "3f5bd37b9f9266bd6dcc9b12c5beb44f767cc3a1" +d15b558d812bfdd323f2c4cff2d876edd702ba2b = "f272e4b657c2afc4a92f7be2e4fea229a311ed60" +e4b48c1f41b2786ae5d1efef1ba54ff82eeeb49c = "24e4372337c49e3b9ae7037618d29840e87849ae" +f446498c3406c08cf3cf2deb280c1d007bf04796 = "23330aeabf0d2e0b820380559023881528dee664" + +[875022e3-a016-506a-99d3-0712b6c7904b] +ca021549dc4ce15560f4c64f8c32835aa891ad57 = "c3d253b5e4768e35ec70b2dc8f29b04ff2ade7c9" + +[877fce51-0832-5d5d-b749-dff746d2f7eb] +1137b18bf81129d4b46d26515b777f3a53785b5e = "dc9fb9a2e6926d44dba8f830a1b74dd77ee6cfeb" +16d84438d5475ce7d018ff4a4f90e53ab81e12ae = "134a5cebde8ec773679028f5ce135bee60f8e08a" +24f5357ad2b4047d6503d3f42575debb32520b20 = "616303f12b7d242e161eabc98f6242f05bdd6d31" +2bfd01bf000e6e76f12ddd955106f5229b690311 = "8dba17040a068a7b1b1d7c25dee0de09194ad969" +4b3d400ff3606ff71bfe60cdbe50b21e8ae7f2e6 = "ee781c8614b1cb234c59f83bcf6beb1edd8d6620" +58001cfa588dad8489f7f5968e15d86779c4f448 = "e571e844d3ba286446dae641c9c403226e6bb3bb" +680976c8b9fa394a2b603b1b9b6f295d6add0fbf = "f9db8b2ee93cee470a61f2884d0b0c73a7157d57" +ce61022be7f00c092dbdb66d725390356b608d30 = "205b2fd36e18578fa2ba9e6d9710f2ee6bc9c123" + +[87a02803-f0ee-5d26-846e-298423f06ab0] +613ab104ddef105e7ae50c1f53ff557793d8cae4 = "88a10a44c8b157c28f3cb579382eebf63436dd87" +7fea0ee863ce74201c0ded73169e6a0f702641d9 = "30667e5394a2cf719a1f31314aaae24f568c7de4" +d5da619a1c36a63917be37cc7608cb9b3154ba45 = "f8755159275286c5afcd5b1b6041c97901a5916a" +f2b30d6fa61193fdf046948cb9bdcfceaaab82d1 = "efe353bd825f7320433f7de9b079a5475cbd6a3a" +ff2c19a97e3d56fb509e3555107871f63beece31 = "900b6a578a810afbd37a8c7412327eef8aead291" + +[87a1d0c5-8d4d-59a5-bdb5-139d412edc85] +e0441f10ebbb8b989ee85bfbc6801fdb34164b2e = "0f10cca0a9970e3a7153dad70d3c0d040e88a71a" + +[87e2bd06-a317-5318-96d9-3ecbac512eee] +24d37a5f2b425afaf2df23231c6cd881dcd92698 = "34678ffa6b4fe97321e9337f8984d192fdf79279" + +[87fe21bd-8b4a-52b0-bd56-87cb6841bc05] +7a3ec953b69d067615b1e96c221a6dbe61ff5f20 = "e9c79327e6c00bd5c936bb30f5054b2e1ded2364" +852d391b6302cf57a245b198ccebe61814c82582 = "bc3fe1a0d5004980c57460cfdae53927d5d58b2d" +ad4dc40484c4a16a4671bae8a5922715fbf6d680 = "875d7bc9b13df2f5c25bbce5372c21ecc48630dc" +f7511f90619e3b64303553a5c45456822acb1afa = "9e259c798bf6202b3b0108c584cd70501cf8e48e" + +[88034a9c-02f8-509d-84a9-84ec65e18404] +0a72cd60ee0f01c6cd9135b368f00149735b8690 = "5bb9cdcaea6367b3aa4d9dc205ec802f51796946" +3b420d1871716afe5baee0d26b02aea451f4e527 = "27579a1c8fd046446ac4edb0b13eaf114f1059d8" +90f6865120f3d02f9d17fa2d0f18b43a0c41dfe2 = "e0d83cb04738fc15629d2de7ad8ade3b34181c94" +99b997c9e29a0efd4549afca38ae333756add5b2 = "2d4d36cf585a66708c5e6690e7931af19ef2be4a" +dee136e1c3962ea44321c06f75141a83da1a3d22 = "5b6468679ca90dadfa558382a1da9703ab6cc84a" + +[88353bc9-fd38-507d-a820-d3b43837d6b9] +294c83c767cf90c3f392660062bb7a1e3ffcdb8c = "70f2aaef2a5ce11ff3589e26b9805a674e84035d" +3ea61aa302b891f42d413014c0e6dee1b4411914 = "d1e76baa9d5fdc677cdee2b8116de9db6d6700a6" +59a8a8e1a9df627bd66c872e90b01f7e2b861652 = "86b4becaf692ad505ec4b48cdd8e78cb1ddb5e10" +6fbef1e06dc5f9eda2f1ce5096a7c035c85c1ea4 = "b7027289ed2b02224842ceec653732718a6bc82a" +8be731f20c1c2168e05c98963aaa5a5ff5ee8a68 = "37a8a1a7f2c825034f56d11a332251027aeb7773" +9792156fd42341f6cae894291f31e27a9dd6e737 = "04b76aa5cf08b545d8191742d5622be4de6abd1a" +c954d83808ebbedad911447bfa94512ef3919fe1 = "86b4becaf692ad505ec4b48cdd8e78cb1ddb5e10" +ebf9a39e16346cd56cd8b20474f5f9445982da8c = "c7ca0d6f7cd8383ecac77f3b8b4b619a2c45c96a" +fd87e2198e9cda422f516d53c7263ba9539e9a33 = "c10ae9acb476c83a67fff5e2a2b6d3839337af95" + +[8851364b-9c05-55b9-a122-f5ac41ab072d] +06d6decdf23b95859f9899b6571b0623c47059ec = "1fab58223d4605934c991ae4984ba2be20f46695" +389b93293a1f4088f8cf95dc392524176593542a = "9cca76b357938fe115bd1777b96f708840906a39" +7f924bca122b11c440f2200c7f4103b92464e0d4 = "e96cc73c50de380db671ea0f7afa21ef122a7332" +80be6c23c63d84f39bf71f43eb009539a83f2eef = "d254476f8819a07f977159419b17925325fac37e" +ab6ee2425bec59c53f0db4b5f8790aa62bfe4e8b = "056346af746019759741d2f07b3575f82a7355cd" +b003085fbfdc57aaa70509316bbb79ad3ca68933 = "d2574317eb5f99212770e05082f1c0cb22b462ca" +dcd1022c6818ce9430252d64cf64d4b351e706f8 = "9c6374e5717a3ec041d85687ea2452c497af196c" + +[885aceaa-7568-5b56-b2d4-116a98ea4ee1] +c7be580ee0c7af07fe11f288b17a342d91436f06 = "519d1df0a343d6ed56dea9214e5736ab46b040a9" +d9b11b4606008ec40714040654205d968db8c598 = "c7e0653560e9cff78ef35f28de2ce4e843cc1d45" + +[88634af6-177f-5301-88b8-7819386cfa38] +4a27e6e8971552ad26e4236a7cc4d4c2a54cda9f = "b7537c7120310ce7da3e48d8dd4f79a96e2edf13" +a290359e032ef05948817ecac6331d0894a0ca15 = "63155fd283f151b2f71f0c4f34fd562ff89438e2" + +[8913abdc-d7a1-5212-bb33-e6dc6371b233] +63b78f8672d328bc8436ba00857a42d9fbbaabf5 = "e05fbf8581779cff31fd301236a745f1aa0c147d" + +[891a1506-143c-57d2-908e-e1f8e92e6de9] +0ee4432e2491ea083026076854e4a57b1af84a82 = "01920fe3c9c5fea17429c51c6bf1991d96ade4aa" +2750ec4bcca6795946f36bbe4af15f93821a2f38 = "e236a4ac73e4bc4508e777ba83330121a0e1b554" +2f67c42efcd1a4ea16677198909dc13fcf866547 = "fbef8c24d61ff5f896d5289ab5be9d8be4f891cf" +3c777a62181e23a0d0b3dbfb081c49ab45be83aa = "5feba306cc9dda267952c79df720a47804aa9b3b" +4ceb4dd9241e9e4f3f003ee041923f46797587a9 = "8e3147a48d3d56264d28a2b6e0c87f694e6f5590" +51a6b18b8bcf08df701b541d571ad1968cc78d49 = "fec3c0bd9cab47a99ec356c37245cb6277e844bb" +65e18df1d1ac2db99e7651ee69529704656f06b5 = "bf2fe548186ea2d32405228577b60d786797c42c" +6f916cf4e9caec7e043f3de7007f0dbae3346b51 = "5a28886f1d63527606b30b9c644fed65c592c5ee" +c716f3d971be8ba446a43f09fd873b68d9259606 = "45a52653f954b08111077b77d395e137dcb80170" +cec1adba45bf6e53814d6fa3a5bdd06ae16c0fce = "72962237ac5f13280df4126755dc309f78bb805e" +e7185bd53d204b7dc8892eb987d91305949b3126 = "6fdaf83a89134fd54c69d14944d1eafa2a6dd86c" + +[89210da2-f0be-5ef8-ba65-10393cce509d] +26d3005556f7f8960d8a820f435a2b573ad29359 = "092befca351057310416c3af839a25f4b878c480" +5ab4fc989206a72e64834dda95bc29e1be387ba9 = "41840cb82cd00042e62d4ff111f590ee1445f153" +5ce82aa1cd4ff0bb7cc3dbb92c9602efcc46eedf = "3ff2215719393c380d6c88a6a6f1ae8e30da1ead" + +[89212889-6d3f-5f97-b412-7825138f6c9c] +09e6eed8c9c7497d7bd238d4e2381ac77330eebb = "6ec7fb03c25943719294637564cd5dd9f53f6153" +0e5a939bfce99b1a6bb25791e72031948aae66b0 = "fe41e579287afdc2aed26f38680e49be0273cd05" +15e1d3700726a77616aa5ad02d228f40f4875dbd = "e0e4fb9575684c8136604c0e147e2f44c62a9833" +1928e729792a18b0ca84dc1479454fc2bbea7524 = "f4d27c25d2359c78f553c8c1021ae05750c96901" +1bc89101ca6c04ed84da7636165c22cb6736688d = "f1458348b48dcd407755447df7f981d81f8c4518" +1bd876027d86be9cae4f6b51d519c201dfb998a9 = "92f8697355685492f23f0e6c96e1709a808fc9dc" +200b06316501c3ad3f5adea08f45634a0f40cf16 = "8ec8dffb9dffd5ce8bc948d252b0d6ae042bb4eb" +290493303d3df2f6593778cba1e766d63bd51063 = "ea2c9c78ab63917c05c6c94232730f38a0b4a6c9" +307ae6dd2fd35529dc0f252d96d7777341e6d87e = "efbbb454798bc4bee7df4de8b371e6020e976adf" +3148de776bbc5c649e3a994f543039bedf87d766 = "676953556af2db8d7639e48a6330b3b45b0c8cdd" +3374f7525fab63b92e716593c011dbd877333db0 = "6ee768bd999c6de8aebdfd836c73c9051a174385" +37b26dbf9e847018a717d957fd0a26a0e2e83bc7 = "5ab48f0f62209a5c9de9c6ce772975907896394a" +40b3d109e3c1612e162c0c36a1b55d1a3d48c86d = "2c200735df5019c651281569f14f683130bfae77" +4ac5ec73b65f55eb1719c4873feaee72b2836587 = "088e8a887d7886cab9474afd5bde70ee8a61431a" +5cc7d9abe0e41e8c93fe4824220a1612bf6a4963 = "ce3d52b2340c83fb338ba68a52d7e9a104ed859b" +606026f55106e1a833986f9587b02e3ef017c0ac = "4d787101b29009c2e5acd901609fa606817e80a7" +61f08d60149ad988a5f792acf91e793b583cdba9 = "778b3295a31d0ffdcf00fa1d98a1bec6327222e7" +62e8d4418ae6343edb92a3999b03a8a3f7880242 = "c50fd05846f3cff346c525908dffbc67cd1cb9f1" +6588faecf9a1097791406709cb4aad3b3315eae3 = "eca031d0b2239524bbf6efc09a24f9fe785717eb" +6680f2ee700cf45f1c94af4920341bbb7782d934 = "ae3b9549967abfc7f1e48f78380e746ba00097da" +67fd26573826e6fee7e5bd83a1a232d05dd6b6d1 = "bcde33675960b3ec337fa604a22170cec1486933" +6ba2fe8295803f8d7f3e3c888716a898fdf7f06d = "7d15abea3b83863d189257d5b3d1df111fce8760" +72b2a3002a75c3668b53336cb4d2988d9e07eb26 = "39ab8e5b9d39dde635705f9c965f0197dad78327" +74f65dc7b7712ae921aa194408c2311025f66cbc = "3589674dc4a925890f462973104a78dea5236e36" +758f0daa96a64bf26f2a25253915e4c26d51c7bc = "094ec150f9c490be6c6d03b072ddfe9c7061e1a3" +7b2a72c4e2d40bd6c56aa93273efa30b268774e7 = "dc8fb5963d595066b1be38a28d656c1731fe71ce" +7dd71d9668a8727acccca2515a77baf722c9fc97 = "c2164a02c97ed2045786051d066fac9d34e8baf1" +823f920c523369ace7da58972605a73584eafa53 = "f32643b96892a903b537743a331bce6a79a49367" +84094904310f7f59e4071659c4bf84de237ce5da = "588135654f49cfbebbe104e998bf0b83a79dbbb5" +87024ee41924135ff4c4851d5fff2ca16ae77d53 = "ce884785a01ecb1df6b6a048ccdbad15f9fcf96c" +95031df65c575c2218d59ba8ff9591c9bd9cf47c = "4404a2ff0f9485f4e18971a9416aa19dfaf335d1" +99ecc5e41824d3cd5e8ab3cd50d962bcf1ab9421 = "7b483ac5502a8556db85268c2d8c2a2acf6d139e" +b20b2f3cbf77cdca1ba59a12e4150f42d83e6f02 = "61d50c547f85da74ac7d64f58486003a6bd9fbd5" +ba5daca777cec76b453d4180263131979dd78e88 = "9db6993813b57882ec769dadc0a82d48524ef896" +bd2432c61548f86ac3c0653b87fdef00eb5d285c = "b77be357fbe2a5334311501336182c8504984177" +c18fb1de6a156c5639d73524172ec8988baaba0d = "9ec170ed02a8b3ea3a083cbdd2a42075c564b6fe" +c223483bf878c6f760629204d768b32d745bd393 = "88ad39d279d612c4c0fbcca6a8166440ed9b654e" +c3e54933710d4198f2840b7ccba210ed43d0e4d5 = "98ee65c60323e85972fbac251d14747ffb0d096c" +c660af3cee4fbe3db3aa0386d8a87b6e9a5bce55 = "1d61dea8e9d424f6fa6afc1064e71217da7b0b74" +c9d5210534648dc6d58687d531e08ce5b7632739 = "d08c226bb659e6a09632ecbc1f879668a1976146" +d3e7ecb9b37b6b1e8dc569a010811ef7f03978bf = "451bbbba8172577038919edec08dc4e2f8638143" +d64315492ae3b0cbd6c50f7f9eb668518c2d33d9 = "b44dafba58186a3ea755ba7d7fe391897f380f1a" +d81abf0e5d459a8554e0f031cd1f520ee98e1eef = "f745aa3be6d839a1e0ad94b28aba7186414a0553" +e1d34328f23bdba98a3f4dad2c78928e732007fb = "6bf991a813382d69387ae555f610b49b0279322b" +e5f252ee7fc8ed084a3711a4aa999d9b43688809 = "263b9365fd1c8cd956ef30b83f60c05e6f616afb" +e6db18f304729c830abea65f183370337e732c49 = "875658d5b65a5d46394a3d317288d0f9419eb601" +ec708f3329b38fe2a886ed31e72344c0eecfb33d = "751b72a586a52ff95b7b1b47b9161fe10a35f0f4" +ef85883cbe54d5ecc3470907db182ae326938cd5 = "ff2848d5223e8c6a1bd08d870dc66e3003fd7339" +f127de50a60676adeb2f760ad5b30092cb34c785 = "4ad5a2eb4216bcb1658344739e88e405b618258f" +fcdbc847e87ea59d3840d8ba68de673e0aded6ec = "88f96471609df2b6b4e88931ed68ebb692e0102e" + +[89643fc8-cc5b-5201-a099-c275ee1642a0] +1f0cd4b9572206ebece7a286c14f5e4217b94146 = "83da80174f33069aa06a65034be97ebf361b40e0" +897f5aad2a1945c6aa859e2d4700a53388cc4b31 = "8b3c119a28fa45bb06846b18d10ab231189532e4" +c5739bff841ac818a26b7f3c3f2016d6a2dec9c0 = "a83c3d7b887e5dde30a9049709c520cd4aa6c9d4" + +[898213cb-b102-5a47-900c-97e73b919f73] +18095ab8ba331c2fe685b6e9090096bc3b648fc9 = "448a89d74eb9e8fbf81b4a453973bbd280f95f88" +3a394624d3499ccece64d44c4346f14def39b517 = "4bf7f1eaae86520ebb51cd3066590c3a9c9ec35a" +d32fcad35d9ce39536b36e58421fbace2bb0ee73 = "499568f5a1b03ab4cf891b4c103e851e96355b58" + +[899a7d2d-5c61-547b-bef9-6698a8d05446] +3619443128a09774fb6583f6d2ab651eb60245e3 = "e8bdf45aa7a14d8b5e2406bd3dd18609fc15c2ed" +a2e54222240a0b06d52074a216b0f09ce3d2ba68 = "ff5eaba95e0d00f4007769dcc5bb22643a610ce4" +baecd090de80b241c981ec4e195708abf1ed3c2f = "293d77d8916ec067bada8f01f700c73954522472" + +[89ab07c8-7ba9-54fb-a7de-e55844b2596b] +2558279e9bd157732f58f64d87dba74c9069e3ae = "8056d9944825e965d7e2618731d08f93ff0e86e6" +5bee1851fd488b118678d504ca1c2b7cfbaae20d = "29a9af3da853e68b2b895cef654f6d2df04eb940" +9d92aee40c7ffe2dfebc43bd776df4be0965d24c = "fc6bb19c808562218cfa92c79e5dc240c25f413d" + +[89b67f3b-d1aa-5f6f-9ca4-282e8d98620d] +3e86f36fee9ae6624f4cc6b20de7c56851ff023e = "dfa4ae5324b5060eda171e3bf33e828cdc7a2280" +4f1154c76fe697c15fb8693b3944600b437dab43 = "729b6748bdc9a13095705d25f2c6b2961a757195" +d4c74c0ca96acf707408a241ffa70458a371945c = "f7b30097c211e7a2d0030f9b998d8cd75fcdb60e" + +[89bd72ed-8c37-5969-8989-5c5e0cf73e51] +32ddf5dfa12a098f07a5a693b5ed58369f7d4d20 = "1ff57164de0d3e852e2722d2241fdbd37bd1862c" +63b870cec7a4e4541575b9e2e9fef2424ca0c130 = "45f360b7bac74ba24b44eb8d75c8f831cb500e66" +a527840b141ced62712f7bdc93d91e849e94205e = "ba81ff65242d40a29af54bf465f0ff30867efcce" + +[89d8d30b-2485-52b0-94e9-e2a8fdf814ee] +246d0a390e99b8993372b581dec8e0d38f6ae73e = "356ccc807a1dbc613e0b65615d0453e1f03b8ca6" +6ef8fa131297340e1245f8e003b5b943605bb6c7 = "5e8b49499299ea69bc50bcc8cd6e20964f668d99" +82bfbf1b776fbdf1807ee9f1822c644ae3611d26 = "cf4ffe481e7a6675e29ffe8cfe17c5ed41533126" +d8dc42edd00fb8887af91eb9f108ffba3dd98e6c = "b8ce24904b4cf078d4d8a43556cebb9d771fe4f8" + +[8a103c6c-1328-584e-8316-b4faba0ff29c] +2e937a619f562f3f251de4b4967276005735d837 = "10110454f0261271af258d0441ab9d34dec2d6be" +86e0b47c032d5a735da00a2ed7057418a2182487 = "24ef1d6e25afa3ab960501fc1b60ead2ebe47ce5" +8b9ec59dfa0dc64d2d87c5b0e03965132b83aee5 = "02c19d26b61d73b884b2939a20a19408fa5acaee" +9de626079d10deaeb086c12cf0ecbf742d6a9e26 = "7e614fff69153462ab8e30f3470b3e4975dd150e" +fe11f025f21ced07119ae9b72d72cbdffe10982c = "d381fb79deabf7c40ae3d9c985368c58fc990395" + +[8a292aeb-7a57-582c-b821-06e4c11590b1] +25c6acebb85df8d2719d1191c21594c033338f18 = "25129bf6dfedaca9d7ff3da1d98a5efbacd41a27" +31df0f54bd16d9147c4c2c5a1ee31badba43fbf8 = "c3e33292cd616b4e7002009497401491c528d200" +4b1c6085fd8d7d8712552a1c7c642cb046a9fc0c = "b55a6156b86ab393e449b4cbb7354d2d838153d9" +59bb97c6e04b11545427d6ad1b95a7f30d274a9d = "08cc645204b2e9edda2365ded35377c32dd321c3" +7dbe36c99a3f1770fdb993c0fb9344dbd6bf4493 = "e331101f2de20dd44fbfed208f3899ae044abcfb" +974f8d11980e3dfdc54b42eb44790839c316e54d = "f86469552dff874fe572020d4e75bb29cf28da24" +9cbe93367fdb3d60d25119606846109a814309e4 = "0c03cc34b19eaca6bf5f76f5f0162f37fd3be064" +9d0354a19a3968d8f02c72d1291808cce8798908 = "4515561dd8e9af8b71574e3b9179c5b53ae47818" +af57779864f33b3cb1c52ff8b0bc5da1f3c007ea = "b93851b9b3bacdea1319de07f56631e2c8f6f300" +bb46d5938256d1e033c47e5970d794e9336b4aa9 = "81bcd16286531a40ee7c46a3d2243e24753a5630" +f4472c19d6590ed3e685a403c627bc2eaa9e7071 = "42d3343aae4eff86894efa60d8fab102753e9406" +f64049187dca8e3cfe4b9ba5ec8fe66a6fb66bd5 = "8f2d552b3cdf3d07b745651e2ae3d37f1bb9befe" +f824d18468feff7fbb6a0be2ad69ff2d706820a2 = "c18f5d36867844fe8e47bffdff8bee7941295963" +fcbd97ff3fdb72016539cea522ac3f03a7de9856 = "9d9d60d81d34c298bd2c3fc1f676be34fa637dbf" + +[8a3de34f-2e95-52ea-a40b-c424eaf95c4d] +2737f366e401875b49f8c3bf88b4cf8db003803c = "9ad6fc5be2682b5ca94cf682426c21c8a1d6bb31" +3db38aa198387328d89196e85c58434eb317e2fa = "a877c35a1edfbba6aa33aea756417e8e8980ce4e" +5573e2d3bef571e35c51ad9ec95ca67ff1b6d60c = "81e90cb0fdbc9b7f16cb883f7b3beda14156db43" +7dc97d64532c464e8d9ab8257bfc091f76909bae = "c1e64520a6aec64ead296667d6c3adfe0e659341" +d25e13bfa47716a449bd4b1f844cf694fabcbc98 = "7e27ea06f372682bb26b00bef53e7e87cb01ab56" +ec27b6dafb700c16e0739c0e547d7b9528134384 = "561971e3af6ac963c6ac557e950b8ae3bb5d307b" + +[8a646f90-c42f-53d8-aeb7-0639fcac22d5] +1d5442aa59110bcfbffb4b1141de3af6e9398eb8 = "fd526ff6a40f55b4ad00ec32af0db12961fa1249" +469993ab630d2264b6da7b0d9e4f94f90dbd0028 = "74ab03ceb38293e25d280b9ee911077e392537f0" +5f219d93d21f7a43f641cb87157ffc7c30b2c0a3 = "4a51587523d52d42f5374d4ad3212226606f96fa" +744a1588146ee49fee406c5371f9a7ecc89845a0 = "75b731b0c8ccbedda178e57c9bd68215a8e8ed1e" +b6b81926af93a1803cfb3f7b22ea721fd8afc173 = "ef66c66325d36c2cc27a1d39c8c2a3f0551e4cb3" +efff10eb370f5407c3c7ce863973e03d8ee6ff25 = "c09fd5dca60033b2a91963304d32ec4a28fd3b9d" + +[8a9ee94e-83cd-5b5c-8445-d7d8cfb161d8] +3b4de00e81aee2bd6a9f6dc2dd3ef1acfa6dccf9 = "027bc997064c78753b80ac1718490d599c983f91" +8390f0e4b9957d964023d52e8db352253107ef33 = "892ac36bdcfe846afb8269057531bb8fb1590920" + +[8ac3fa9e-de4c-5943-b1dc-09c6b5f20637] +42aff30f84e552be716eccdbc0c994338fb05808 = "bedb0c87b1663e2dfa6b6f687243bcd28c70e02f" + +[8acf8dda-514d-5c36-9488-7e3496cf596e] +2287634af4918f9c1d91d94d583db6d9e08e5430 = "964170aa03c184efbf846feef1c3c8ad7dd1e921" +4b54152a52165009cff5a3e25dea02466cc9e9a3 = "03117be98b0b150800bf1ba664956d29ae91a14a" +cc12981f25aa3340b754c708214f8ab487e619d1 = "24294652d7b1621a8092f43c665780486eceaf76" + +[8b8db58a-4d47-5b48-8778-177fc09af6f5] +14e76b17b25fe27ec442e27ecb304130058d5e1c = "fe0497c11cdfeb39e3a90a8edd0ef6ab0d83aa28" + +[8bab3169-4815-5aad-9f88-5df82062e999] +624cabb9933435c8f4df41a205e9a46f2688e98b = "1cffe7405c4e2f0ede7e93f0dad32e62baaf2df1" +c4960410f342f0c2db77ca9b94a38806c4cfb47e = "4f2ed36578a061c2c765b280b143358589cd7bd0" +c645202a0375584a9628febb921d4f609703f321 = "b554a0183d4113a46cce0bc86ab96bfe841a2a5a" +d7e4e80e13f90e05412de294ec80979f0968ee5b = "176e866679797ea2906a4cdb1c44782cb1e6ec82" + +[8c227e2d-9d82-5208-8462-f144982ddfc0] +745d008ca3c3928124ab96a8ee93ec90afad083b = "8afb74e31ba63b37efe0c5fbb1137bdc51312ca3" + +[8c675823-c5d5-50f8-acb2-29aff48dfc1d] +04e230201060357cdce24aaea4246775f403884e = "57bd8428e30959512accc0132d1f371bb670fab4" +a399adf1105e0db2c844c8aa859c9de40bb66aad = "1525b67d5b8f52d8a0105bfccf44088b789243d9" + +[8c8f4381-2cdd-507c-846c-be2bcff6f45f] +09900c2ace84c41dc3103ff580cd0faa5158bf3c = "4fec648e0c0995a3bfa20f938b718570dfdb77be" +10414b9db15aa8def75fdd4a45b6460d2c6d3b8d = "5fb27501d77483b1bc64cdb43d031ef62aed0fb1" +35e06fad2e6762253b2004cad728bff7524136e9 = "555cbfdfbe7411ec64ec10e11778d04427007c49" +6bfd838fe803dccf36b974c8e95b62a2614e4d3e = "462ba3193c7f10b926c74dccc27f826598a264e7" +e0e9c2295b62d74430ddb1e9014cff446f1ffbb0 = "e9b4ab5b3dfab34089c0a3cbb7061cdf78745546" +ed8cf4f22d264b4d293c64f5752a9e8c24e031fa = "bbdb4f256b96ddf0fc34484449326dc6c3dccd13" + +[8c91b7c6-e17c-5caa-9fa8-1cba1108c241] +1bf8de4012a2baa3ded62b1be18ecfb15a12e6af = "6ecd2b9fffcb78f8742a14c9da118459cc2e9d84" +973d5661d62b15f5a1571740c75ec4283fd48836 = "f243004ebf3d23f01cad93872955fdc98e864670" +df3290f5cbf990a642978f4e899182e9aca5ed96 = "f8afcd1d3be80a7f8fe752c5fb9b1a4143bcdb1a" +edaafae28658b92d7c9e051dd51d500417a646c2 = "a6e1047758cef7833c109ee78ab6b1cb54b03fa3" + +[8ca2a67e-f683-5b14-a319-732e1d1d8f2e] +3d2883fadc662d425be7f6743c3fbf1bc790f8a8 = "cbd407ba7c7b07e80bf48b70d9a0cde63bc9036f" +67fbdf4310b866b0196de32b45d9b9a7a39ac4f9 = "5cc95db08f1a6df4f90a95f1ff4f6002d47f5801" +8a0bb9fa38e3b384cd6b75326c2c55704aa089be = "4abc7af6d9d9c2484de3d0a49165d26c144a70d7" + +[8d5ece8b-de18-5317-b113-243142960cc6] +328317a143c5f0fd82f9002daa035b145adee8a8 = "4a5623e743ff5d857d525eab0c809f179f3a94dc" +6a5522cc1799dddb248c325747b2a0ac81f7e626 = "c76132d454d1a84e2460f85455905bcac2f0100b" +93374a731b645d7551014a3b173309c2fadcac92 = "220450427abe4450e1d1d64528e1a5f88d3556a7" +96a4871db6dce5ccfb630da0c2056d9b0ea31e37 = "4cc94c69887f1cc8f3ad5814a03bcb9ea8b4f030" +a65acd65a8634e654f26870c641151c0b0a74b81 = "ad13cc9837eab94dfb54747a54d5a97b54da6ea5" +d1fab11f5eeb9714aa7d4e4388673368ee3b4cd1 = "661077acc551a33de191864de752acac619baee1" +f3d7cf19e7684986f64bead9940fb553d13a6b69 = "3fb9df0510ec34cd25fdf2adc31a5eef37dc1fc9" + +[8d673c98-5a32-5a15-b616-7dad274ffdd7] +67e3214cd3b7352ef772ac3888717d1feb77e7d9 = "d6f86de47228efb137467c95015f3b9d58aa9c15" +783dec826ed2556db5832aa59ac5e81d8386601d = "5a2a6de9322460ca1701d24a4064e6590ec5b7bc" +92934ea5058681aadead2fbc4861535be0ddeb6d = "6b489c201bb514b5e7f893bf5444b1f8677d30ba" +c9026381539c34b6ba7c342e62c1557e4c39df89 = "73c6a3fea536231475a2aae9e6501ae4b7588c38" + +[8d9c9c80-f77e-5080-9541-c6f69d204e22] +1ed5cd3717b7e9d4460151e217283f9e07dc3734 = "059953ff000d564fa9145ccd3440c594ed8516a3" +57b89d1380dc51122b2965d9b016f299204c5832 = "85a225b1adfdf048e5f5fcdceaed5e1f1bdeacbf" +6b1de65ca319938e5e6f20a679039c12901e9569 = "3cf164fe9267fb61bbc5c529f4efb0076a2d6815" +816f1a95c93e430bc9aaa8902f2ec76c62f5ab9f = "dbe6e3fc335e309e4670787eed33445d7989f5c8" +8cd35d3e65bf64a26dd000f7e506935df3dd3273 = "f228bd4db5b6689af650a9d3a6bf38847599349c" +9045482d1fd7d08d4ab342b422224184b6d26a17 = "74a66ace5b6442fc9b9abbc78bfbb3e299636a49" +bc5c16ebdcd997b8de51f9901c1a055d49c1b163 = "9a10cf072ee6208d1cdbda4e9c14e15b02cacf92" +c82fdf6c62d06d85566429c721d2a3fbbec32bb3 = "c38aeaad7c2bce52a13c74913e1c61ae9f08cc4a" +d60d93cb9b2b5fa9d7e15b90eb765127723912d0 = "60950ad63c04c70442c70793e64e457434d5198c" +d73da97b73277fe6d64cb9c99e5545cfda765b04 = "8cd01dda3f2af10920b59633e25870b80be8860f" +f0bccbb7af2399c161a8ade8e9d8ebe0ad416269 = "4ba5e27826bae25917d8e3dcc15b0224ead2a2ef" +fde6e2fbdb13c47cca41028b59810f61aa113def = "7716c758a3e367eb5d754a626ab63c20798a740b" + +[8dd2cf45-7ae6-549f-9931-1ba6cdc71bab] +16e3b9a530828897429cc31bdbaffcf52528f266 = "babae6718d6178970b61991807daaa3783f4fc14" +25861cf5f9ac0550dad002dfd8533072da0c8f4f = "40229aec2aecadf9494e0d6f407200807509ef47" +55553d801801459caaa546bf5b698e687a8a9003 = "12dd8a61481877cf7177df388b2705f48ebec54a" + +[8e049039-38e8-557d-ae3a-bc521ccf6204] +0c83b52cd93b9aea3efa6e68e22b55c8cd8a2ec4 = "4d01ddb682d15983e1a578b352b9630860255d98" +214a04015dc6954836e0fb5093d1d9c707db0d1b = "7bc6026773741218993dd2c3a30ccef9f71ae87f" + +[8e2b3108-d4c1-50be-a7a2-16352aec75c3] +a4e6dbc41a3e36f58d8f3218d23a1ad86e66b2ed = "350f9c916bd3c673f58949d8354493b204aa1d4a" + +[8e315b71-c09b-5a61-8d95-8aa79a05d8ac] +74e0f56da5b9b8a04551ca105fed95407794dfdf = "4ed5fc7327b0ee52f2259b215f77d71f37804013" + +[8e462317-f959-576b-b3c1-403f26cec956] +60159cc3e1d54100ea8ebc61f5fdf477454c9073 = "b1e3d7cbc0fbb1a42efbd1c3046e993488c3c765" + +[8e46ac0e-a145-5836-8321-a980f36feb52] +333342f789320b24bc722f90f0a22e9e7b0c568d = "abd4b503ec458abfe94dacb4639e8288ec4d7f5e" + +[8e5f9369-c58e-59b6-8572-2d2e779a44f0] +69fa7f55508c54b4ea1aaf7e1ce77a27d75c2ef2 = "59f8b3d9cea5897d600e4588164228d4b6659746" +bbcd8090dd68fd5e4da7f72fab42d4a47576adb9 = "51ce61de3e146d18d5e3c88fc6dd835ddfec62ca" + +[8e7c35d0-a365-5155-bbbb-fb81a777f24e] +48524326b6b7c89d0c37fbcd88411a93390cfe72 = "61aec93f44034ef4316c1329e369e7f25af1419f" +4fd38a2a9b3097b16c3a9c049e63d319d5aa8289 = "64cc94abfb886c78d7a805b2c97d367a41c369b6" +536d63fed16ddcc4522c4f7458e3a0c722bce35d = "cee75cc9be02bd81a543a10571fbd96da6c34e7d" +615a15862745b775d595df02f2fa829265a5c69a = "bca225273eb9c6b55f7a9902d89c0841c826006c" +84a1106a29e43dd934c1c3f665633ac068078524 = "a11847e4cb9db46cf6bca6ae4d665d6565f24c1f" +bb4f94fd1f9da336d69546461655a207e62e9630 = "42a52e7f635dbd323a4e6646073a1a0b74a4b204" + +[8e980c4a-a4fe-5da2-b3a7-4b4b0353a2f4] +087e3aab07b695458a4af85ef26fa3cc1f8cd89c = "399b37e9946f6fbc7fd48984941dd9ee00cecea4" +373743d7b01704f76bb16cc2bc637457cad93096 = "1d6f454932bcb3692787e4cea9214b2e1739f687" +47b998e07f83a782c06287a93b98f0592861ea0f = "16b6b7aa77524965ce521610792e6a74525b76a6" +6085748f1da68bee2a9b5f7353c25e35eb6637d3 = "c9481a1ea8e7aa5c739a280bb9af34f704b563da" +dc3503cadc484eca1902252a4460f3bb35974546 = "9ee6b56ce7f00bc9d05f6f66303fd1e390d407ca" +f787fd9ae3787209b114484d842090ed3a26667c = "e21eb10c985687daa31528ebcb2b920bfb328ec4" + +[8ef0a80b-9436-5d2c-a485-80b904378c43] +1a333b0ccf8850f7a7fffe51ef8f4ca56f9d531b = "835633f4bdcdd722754e5244ef8e99b9ae5df56c" +485934ac04656a1e16ccd6f4a40859fc3d771249 = "39ab535813c4524e77b725b9a81244d67241aacc" +d3cff56439e4aa1509383527c77e42885a946fb0 = "e10a4ee395401203c35ce2635ec61c7cbf22daf5" +f26afc506ab8887565d706554246ef616fc7a19e = "796e0d143d87062be66f4e1708733c944bb96317" +fb70b7915011bf483a35b1790e8f26dc7469f715 = "0efb68c267a529794139d3c1943a835e030a5bff" + +[8f4894fe-55b9-5d5d-ac02-aa6554b49763] +23726bc1bd9c86ad104c8a60438e353e6dd2e974 = "3c1ed23a6e8d535d2ffc9228bdfa391f59429c92" +475b1bba004780462de80c4e26bf0159e8a214a7 = "818263cb5c2f2d60797a81dab0bde07b1b8c756b" +ca74be28c21038642bff4be9ec7c0fe4a95a02b0 = "12511654a8516f89bf2c2791edef9a201c46cb44" +e41132f73b755aa5bbb2e6dbfb444827425a0165 = "e175adebde3d70b0223f0e24f4ad6c2db0c8a009" +fd24d095be00d2d4f86c6e1b310d6c64fe946bf7 = "120d7ec63ace18df40f2fc929129e7c2c69122f2" + +[8f4d0f93-b110-5947-807f-2305c1781a2d] +1156d54d7dab917698ab5d7bebc1a027dcb46c47 = "4b07892ba5907b58db21d8c1ce5417c9e5f105a1" +301245077ee784daef72553172273d555d802447 = "519d843d950ffedde2c5566fcdf3450ce2b76bbc" +4e9f3009ce319b19f803e175b0e0955b4b54f1df = "f9028faabc5b8c1813e8e9f7510e9d6d5cdc1d77" +61fcdc758f657b483b4de48847ffc386496bbbf9 = "edcb16be55f1c9770e2de0df21dfef5ab3ecc8c7" +681ba46a6ea8ebd95a4477cab3eb52392b80cddc = "23da82fee930935d0651eb18dae3d20999c10c8b" +6c36de6689efe2be424d01debfae07dcedb79988 = "e8c3802487dc1af5b4ee7af2bd28b1525015360f" +6ca6a3b58b24b985f57fde5736fd085f302cb8c1 = "590e8f85aa24d966163aa390c415fe6730316f55" +71d7f071482ac51e374a5990465ddd525662df0a = "39bbcd635fa8d5c15c6820a513ba2a18b6d5116b" +876fb80a00e036e96ad878d45d9b6d1adc8ae10f = "2ed4160bf298d6c70fc062e7f29e892e213f262a" +8ceedda4e8879fb0fa3e673227b934baff27c388 = "3f684cd5690908b254c2fdaf7873d68853bca755" +8d25479190982497e16f13701432e1d93b1f0ec4 = "560376f51e22c8aa23593a884f82d1ddec7fa913" +90ff4b3284d2e32ef918d017058072a2c1c41189 = "872f4aed6876af3652c3fc41a7619637e5c4f4cd" +95db9afb3a38bce81d587e95a38ff70433af7c6f = "a8600130d077a9f167aaa9d143ec201c8410eb62" +9ce99efb968eab828f242a93b8e2ac323a3955ef = "2047a27c8cbea1b9b62c7aa27473dc9d8b7e8c64" +a345989bd944de451671a5eda42e78f597d1f282 = "b80e3a3fac298a3d6919c66580c072c44a19032b" +a5150832de1192691122b0b4fcfd0e06be72f013 = "9703dbab3b9afad783572b50dd40779317cb2717" +a80e24eba57358b04166dbfb952cd05af771a08e = "1a911db61cd39e462dbb9d750b950bb12fe12c06" +b9c392923bc39be079e8ae38f5e6a8327fc85b64 = "bfbd25402b0a8c4dd06bf5b73e9c9f6614b81f18" +c63dd73a1b159ef3505b52db8b18fc20d9467352 = "fec7bed813ae2b5d2612e5c720ab0e7025716b03" +c973d4dbf59a2e9d0041a5308a922ae1f0a99ae1 = "3207fd39cdea575f22362212550c161a8aabb551" +da472a562d7c3e6b894f8b2cc2795d840b0a102c = "82b8479bfa4e3a8facd181275b975b405bdeb6f0" +ebc2e3fbd5e9a52df432c610169e384f2a298b8d = "a5b3f04cfeaf8bd621070d8f0b72c06e5e5536d0" +f7a05aa054d653cf40feb62084305fc84136bfd1 = "b26546424d5f3ac33b50f13b8442236deac42546" +fc40ebe5488974a7d4e4edce36a238a6ebe03437 = "ee6c63f680382ea771bcb481bc23d95f4a9080dd" + +[8f5d6c58-4d21-5cfd-889c-e3ad7ee6a615] +18202276bc5493b49165a32b92ac4bfe5992e41a = "163a63979de4d876e13674e8e78e81c82e908c1f" +253f132d0d9340c17d72976fbd4e357e1fc67296 = "5ab24b22697c7298a2deefb446bf57cbb6189ee5" +3043dab160ae84487c0d5df36d91bd1f07b11bcb = "478420c44f77f8c60fb85877f8441d5aa9b26374" +46663512753ac73bb6d825308a98563225905473 = "94d032921daf3a120b285d6ef79b063115db68fd" +4d9fdf3e7b88c92326f63f227feff54bdbad37f8 = "516d003a15cff30588d778d37f1127530ec6103e" +564adfe1123a1dc301199cd7ad7e04e73c42dc5a = "45f5ee663c1893174132fc91aafce7d9d1067eff" +627f93b24771c674eae2f1befc1ba8c253fb2b05 = "3fa877d45483f7ebfffcd1d9c90b479680e928fa" +73b163af1c3765d40dfaa5043915eaaa48f5b24f = "e869cfe5f63030c55def58a9e56772ddf417bbd2" +751258dce985ec12d538a3d8256677637e353fe1 = "645544b6794623f42ca01766602ee517c86d1d70" +965b4de72fec1377c62c01d691bc966504aa885f = "a7adb54c46e7de3bea76b5ce2ab5d529959d3cba" +9a49981a8569af07dcc415d744d01d6d8059e5a8 = "bfc73f31df76094c6cc30d9b3b4709e8aa7fa9cb" +9f532f34f5806f948d31f5be28339ada50e60424 = "93a8bdd3a77c96f3c9cec95bceaca99e3e51b481" +a514d84689697016e04b73a5a388db51e9b4cb9e = "ef6bbbb654edbb7f87cdd89e18174c7f9a65fc19" +b3f45752dad3a147925ccabffaa45aa5a9e7d847 = "ed545a629f82d538d0d3b52f861abed9bfb33e73" +b4378f654c3171e66432f65b198413c4fe23aa38 = "07d7a332a68138bbde85d6d43f622ad2ff00d0cc" +c1ce99720ca63edfb39da7d5580f25da75a79fd8 = "d4f84580eb381c81497fed944e6c05a83af74ab8" +c9494c5aa68bab62b3017705df94ab1e59a41627 = "5d80420e5fa291a668001bc118ebc28d346e4bd1" +d25b9a700da9d22bcc548254b83c53ac79ce6a2a = "86a382bcfc86445d1e0219ba6fd6d21ff024e284" +d75b00346680fbed25a5fd5b194e92b3fcd1b1a4 = "98a8703a1247ebc5bb0590b9ebc43efcdb283277" +d839406048d1c81fdaa29ba9773d86ed2c36a7bd = "62ff46071a58ddd2eafd36a90ce6c84e11117067" + +[8fc22ac5-c921-52a6-82fd-178b2807b824] +150b24eaf5961c7715f5f6db9365e2217891ec11 = "cc5e296f66adb6ac30c36aa7aa20b727e07ce904" +1889287dae99d5b614fec41b9d5108a061a15476 = "5faaba943b1cd3c1003862221a3ffc2ca61913b7" +7ab745c5dd86cc0f576f3ec7d7e0d24d0323b725 = "144b1a27d631988435825ad1fd0bf4e9f4723693" +b3c8be670e78dfaf593bba8579e9ed9ebf9be7d0 = "efeb40042c85949f4cd35270d1addebbde5c8497" +fbe7e9c42f1e01b8420b869d65ab2e0ef5a82576 = "2d27801d0a294c020ba6e3c600b595ec2e0f6801" +fe6ef4dd6072b4647b1f6e32608b8d4112988728 = "56c14376e9d09593785f59ffdb7fadf7eaf8c650" + +[8fc9afd4-d406-50e7-af9f-060f3f6de630] +1bf9c2d1c49149aebe78c008b3f0b4e1e75213f7 = "e2e24186f9e58a0075a6aa6554e5b73b57e81be9" +434a12e7ee22583177eb2d01e9cad2120f48eae3 = "015c15ca0edc686f5c6e61f0098d55beefec8996" +6b84ec9f33f29814ceaf37bbf50bbae8e04d1239 = "9c078c5529178414034ac88b1da58f76df984968" +8ebf76c8adff6837734ae8884e455d61bbc0c5df = "3dbf68df39648c4872a6cc2e95c59dbed794d5d2" + +[90014a1f-27ba-587c-ab20-58faa44d9150] +0fddb9f76f775d99e7c4fc58b4bdab0417e4331a = "6687d8106cd528ac634b8a81fa514090404564bf" +10a586b39375d73cee18bd7bf8dcee366cb9c5fc = "723178b8b2ea1400bc5f0f19f26d08bfcedf77ac" +13bae6a657243742705af5c48fc4f8604a9e33f1 = "5412c3a6eb27c580e88520693d80303e13668ff0" +1d86dd4355a82b508cc655ae1adba5d2d6afdf63 = "9236182f4705a665d2718edb4639b141bb0cbb69" +234e27215fb1d41d931335df63915fd32330dfd3 = "8ae605f0739926c7b62cc957e74b97b0be6d878b" +3b6bf6142bd3b93d21a6afb1f6a22775b0cede67 = "cce29707dda3ea41830425ef51f9e4699714f35a" +44a1b678e38272f94d7bdb872c0a09759e55abd6 = "9a40dbb59284cf6395173f81cade5aad4fa2fb3c" +468766722dfa0e7f9e56154124dcddd4b1915bfe = "00e97d564e94d85d9adf6dd27eca1b15324148d4" +490112262b3670021ca9e40f890189347a3556ce = "cd47da09a92b59016a048945f00fb02a61102952" +55cb2b42845198603dc30234e623fd359ab14931 = "902b4b4db8bb885103a9bae7007acad8df659a0c" +5d12b541f458e44ee598f986970c8989e183e063 = "ef15fc51f181e219bea3af9b03b8bb2e5281a65f" +6449f5fb7eb957180f2cbc557f654d425e2e1982 = "4bc65ec1aa6cef38a6a6e24051a8f2582d0c23dc" +770ba3eb3eec1f9eb8251eb6f3948bd041c4dfaf = "e1a465241e94ee6f06dacfb2ae217f6cd1361da3" +7c04e6abccd7814d4650cf3d623e38438d7ea431 = "4330746259f545918f69139b92d69d12fb35e6d8" +83d2440bca8bdd7ce2e039fcbfbf1633b608be29 = "83a0d1d031b6d2a28409fffd8d64c48861a460c0" +8af3861de499cc8742424d189e466f39078c56b6 = "4dcd806cfc2ee540c011f01545f3178897c380d9" +8fa302c7106f552971253573b24b3d9d8b39a8a7 = "b3ee60c4937f3dea0f1ed2e32b78c0cbbd4a0a21" +99d3b8cec23314293d477ba5ddeca5dfd81dce08 = "39ee7ac369c52e57e5f267cbb5b4764aa193777e" +9adc92cf3252611b8aa8f3a14e712901e68ffbc9 = "787a2aac6c39fd4e5e8b9cf98c315b721184251a" +a134789404241f24bcf6eb7a397e8f8591f83705 = "27ab470be143ce8c9c36f6fd6633a6df3378cb16" +a1e8a94461b3d969479a3663de304065a55522a2 = "666e9cd35612ba119078ec6084797ef2e46f7561" +a7871cb072f73f4792c43a70a295c1ef8b03c593 = "7dd56e29a2dad243818c56cd1e2796d3886abcfb" +afb7891204b0dc76076a46f22d2e41d88e135048 = "c9f0deb0c455aaafc89336bbe3d4dde8e3f55780" +b832fb5efd551d218ed45d0a9ae11a33d8ee8720 = "d98142199e98498c3baad0b6a67faba080975728" +b961e141b95e6adec92a25bb48c6db891291a99b = "25a5af7b68750f92742a083365acfd849a5f5c35" +b9d9f9597f18528e2ce5620ce7a1f25217d24083 = "85542d9fb0376ef9ed61b7bf6dbde27f0326efdb" +bb25a3089beaafb0e71c2b1344720ec04d04f027 = "b4b762b4e5059051e3667c261fdd04c231b9a8da" +bf05fe7b6fd8e35536d38e88f9ed2b27555ce4d8 = "81bd716dc44d476f7bf6f1bcb0f330ef872aa3bd" +d5962306546b2355abab849ff5e91177698baf80 = "763864b0fa8bc9b2b27aa3f16f07927fd98fa12e" +ed96aec2ccdf953711442c5a2c7b49eacb401d79 = "6376f169fbc5ea31071a92f0f6451e5abdca4122" + +[90071601-5f65-5655-93ed-1a4f6628b2b5] +492d01eea9c7b959f6777d525ab49ade49fb3ddc = "7525eeebb27de26b64315d6a75bd2477c0c6734f" +523e718cd866b93265db0c5e436686ca4f92cfd0 = "24c83b6cae547aae9b567b458d9868b575878923" +ca0cdb833b949376353175d243bd7c790203fd23 = "820c7e2eb332684191d07814c90171fe901d912e" +cf133945044580029a7a2d82c45822c334f4cc52 = "d5b7cf1e29073a288b6b31d3754e599eb9ef7b12" + +[90137ffa-7385-5640-81b9-e52037218182] +11ec06334a067fc86b0ae6951d0ce004881c7239 = "ac15d66931d9ce34e44e84548d5ba4f1fc6749ed" +12bab2aeb596fd5c8321ed0ceacaf205a877a964 = "9dc57a7f101f05288eea98d96bb4f0a6e2549b15" +1be47ccdce1044e96e89736364b63c1e44ee4e8b = "af0fca3679f85c25c6b8405880934fdc3b3610b7" +261939b1f39c9f301dd05edc100f26ab76708f24 = "86d9663fa8193a6f237e400277d0a1c272a716cc" +26dde0be38e36727d36d7189d6811fbf1377c269 = "856afee90c3938e3f55bbc5efbf6836754bfde85" +2e9feffe066b1400f30f082e67559af0d517df89 = "880b94f4a33d2938220a7ce50171620d5012a016" +324308b79ac5d076f41ebc0478ac51a6915fe5af = "9a4b4fd2d2625a85044250693b939fbec003baa3" +5b733a3c4e320dc2fc575c2ce59d779fded9f9a4 = "f3a6e0935880a36a611e5e7e8ec4545c01775f97" +6df38acc9379d91f3529c86988898113c6a0a0d7 = "01e5f1d54c8fb3ae3d831be9fdf09500e3bd8263" +726b18b0969f50d9cd9645e50f88064e608894e5 = "0977d0842af2e5b7b79b1b242747545ec64ad102" +7f610e0c4249b53ecc0ea06cf4c44c48038463e6 = "4f61be709bed56bb99b8a9ea9b109121e5efdd9d" +8f195dacab18e19c0400e35cceadbc9fba78fa2f = "005276466e00443854e1daafc2616126eff21daf" +997e5dd1e671f7c2e792d0f2b76f488aa8f63fc4 = "d4e4324541a88be296450e9236c916c126ee5033" +9e720addb512e53b03aeb3f80fd2cedd343e67e9 = "406b48ea53826b4f4f2a9ff1cf8946ab54434753" +a2eaeb427211980ae2f595c4416c3629747095cb = "9e1f056e95741a23cc03a957be862ee30e0af7e4" +aa5606993863b90dbdbe341443ae4d00d3f0e495 = "2e3650df4fa4cbb9d6491b6a1c23a60cf6ffac36" +af478d662e329e74b855dc06206a14f8aef792f9 = "49d89123100e3c150264c80ef546a25ff87e259d" +afcb14581431c6b2f53b05a650eeb805a7d546f6 = "c74be3f070c48589f0a962507df3505dece12aa2" +b0c971be2600fb76c4f79caef1ba5bb34f3ddc9a = "26dfb3028a0e08bb621502311fc82dd76017892e" +b43192c9a1b16cfbbcac6d93825d2ec0addb5ec9 = "436e572a7eff62cd680c39b40413f5fed90953dc" +c57557a6d456036b76eeb74e0e8c59b7fd350f25 = "c856debf05e123b2bf3b897a08c3814eda980b8b" +c7f25990f58493daad28baf0f86dbb5f323c8c8f = "98ad3b81a586a63fab225a85ea6fe4e5e1359115" +cc229220a72ee33cc2d1cd3c5a57d04f755a99ad = "fd3da0079044c0e3c0cc978557e271becf88058f" +cd71bb8cc916c24403232a41874aacd62fce5f90 = "e376e18bfff4e8798d80c7387eef7032f6f786e4" +ce42f74868d5c25f5236f0a699149f0920fe7a25 = "228d8611f259093389972b5d04131b5a881f6e1e" +d1561ea5086343c7d891a5cb6df84de4984f9fcc = "56a6ef8d9f0ce17548fb96c866bad99bdb8c4f59" +e5337be23cd27db2f7c4c0ba145b7b6f65fa7bdc = "a144bfef6d6cb11341d1ba4bc6f9656dbf81ca9b" +e6d73879caf3c070e19b942211da5ca28381bd4d = "ab0082af625bb3763a12aa956f8ac1dc36536e84" +e72b2192db0aba27e6081ad546ca5354b438caa7 = "6afd11b8f7b221492c74cad5ab7779735a3e21c9" +eaf6a55406b1df38a05ba113ca507e07c1f56484 = "86fd91642cef3b21b7f77eb9e5de26b16a56daaf" +eb408b9757496af6c3ff8fc503ce267526a4ba09 = "7512e08ca4a0439a1f30332cade7553a6e6e9ebe" + +[902c3f28-d1ec-5e7e-8399-a24c3845ee38] +72d1ba046aa4cfd3b561f6d2fc9b9321a7b209a0 = "97ca4d3ea10600fba00484f7a6a0af58391af46a" +94af2a2c58371d695736cf13a790186d559f6869 = "273828ac12bf2bd86ce3a45e66d6a2cf93eb3a1e" +c10694dcffb588b7972dbf0780626940cbf71b24 = "bdebeb38181bad313fd00c88117010f411951ac7" +d047d61993fed5547842ff834821d5357ce4a08d = "56be887c0eb55e45e656e5355fb686c72858a7d9" + +[904591bb-b899-562f-9e6f-b8df64c7d480] +076a8db52fa317049c808eabd2e45c458f0c3725 = "21b0fe58128bad4cca9d1ba82efde2fdc21f48d3" +476212075512dfff85b371a8254824693d3e8fd0 = "48fb9ef191cd2d519137b13ccc33226557826526" +4bca1d41497fe6fe40644fe3d78a70529d2e8a75 = "eb4a5e6f13a58e8ad9a26b32da7213c7f7abfb12" +559a915f9ec08ce620788b2a9b64153d662d6d17 = "51f89d04af42248f0d11585a9b3585cc1fa2a522" +73c1e06989b04e8ffc7c0ca3a8d6ee8c99418c35 = "04649e3d02683d364adcd3dc43b26119769281cb" +7b4563d353d2d6aaa53a6e651faae2052df76693 = "95be97366c82e88fb848dcaef026beb15be7d8bd" +85175e0efc07d224b77221e00a33f15f5fe604db = "7a521369d671ff1c7f3722b124bce8bc1b37ab27" +8abf6fb0af215095865e9a6d15a1a3e1e2cf9010 = "a3288a402d4c673b2774029722339a05635c31a4" +912101943783eaead0b5d75dc095c70e2e0d4750 = "e5d670105ce445773fb90d4d27cb3f6a678d661c" +a9e7fb0ee3b8ef265b866303d326cd23849d14f9 = "e7ceea00bc4bd4badf9c26f4a15b0c7790dcf1b5" +ac625cd49afd57d82413d3d305f26adddb7a974b = "0b581765101cf3fec3c97ea068d52bc1724d2f22" +cb47af420561f10a2a3f1a5c7586b6b27c8c799f = "0ee5d03eea5d446d5c59fbdc32876f6bcb128c34" +d6320e44d23d5ffdbdeeef0e28aa8dc3371651cd = "83ad5e1f1e58a870ce7f85927f5f4b7a03d55331" +e7d0093c52ef9ab64c09a6f950dd2a5b9a154958 = "48b2d4ad077103ca75c9021839ab627c2982e268" +ebbb14345a36571704619c3e887109e0fc93e5bd = "dc54ba7ef4ee19d5ff8bae62c7ad0164565aa463" +f64332ad56ca5ed5c16fd8244b3193f24348f197 = "e69efc2348d3a78c310aa480158fbb019290aefd" + +[909c4415-5a2d-5741-b701-ee6f02f60631] +28af1f966f8f00692d38d6e22b97fd0b82cf7115 = "f05ec98ffe64b441cf288f062f66cca0c8077f76" +7cbe1f4cef10f8bd682fe5aa58b65f78d89a0616 = "6086299431b59b7abcfa3ddae735c89a6b78ab05" + +[90a78b3b-3267-592f-9713-0db173aa947b] +22198721303398185853a77533f5aca990b66d99 = "879e63e9213a26a963c4b75fe55ea410491555cd" +b1d9080311ef23d9283244e500e1026788ead05d = "d2f5c18436e58478148da515aba23d6093749d72" +d31911e339d1858f3b02394631df60811e592b47 = "5509a320ac7955ef3909b60d3ff525a86f262081" + +[90c472d1-064c-5c63-af2e-229f1fdb5f26] +0019d948a093154b05991e4c8bab49186e554e7d = "c68e8006edcc37b955ca2e7abc85bdd2e6934629" +764e8b5ee04b5f401d01ea87f16e91a9f80ca641 = "1afe8bb1da2bd9cdc6e78ea0fb6bdfff29d8d8f2" + +[90d7349d-81aa-5495-813a-883243abfe31] +13931144d6d44a2c4afa5913f7302cdb9661ac5b = "79d5bec36e0f80028e126e66195ec4458ade548f" +462c82294cd1c2e84e5cbfdb0db5fb57102534fa = "a29e10dc76bfa3d97e690ff64017c7e854e9d142" +56a464381c082929c10ca78cb86e5bc68f8d6100 = "f12bb4c0bd463397b0e9063ab01fb7e55df66f95" +66e6f1999dd8bd1a8b314ef10b82c9029c20289d = "ea9f9bc3f88f199908c5f3b924e3a87e24b5e4b4" +7b933c62a07b483692f2cd5f7fbaa8f64ce5674d = "b1cc9f5522cef7f00bce3e5a8ca1d92196e4bdd3" +7e48013fb264137cceb291f7118cb7be20d07abc = "c4e14cd4fa42dadec1032fcea7cb76dbf910487e" +a6fcbdac84fb750cc6e6b048c82994a88f50dbde = "94136fbf5168817067362666bb19da29da689acf" + +[90fa49ef-747e-5e6f-a989-263ba693cf1a] +47ea7652e4d4149f2c5a5779745249967e6984f6 = "f667b4d4a2468fca8b0c393cc3a909f8fe15ab34" +49deefe8428a473a46a9cf11a65b1d4fd164b79c = "bb677dfa2c6620e57690ac3157d9a78fc4e5d971" +c8f12395ae45169ae2b1f8a3d101b99f000b997d = "7a9fac496bc00292cfc47d9f693baf513223fdb9" + +[916415d5-f1e6-5110-898d-aaa5f9f070e0] +01c7cf0cdae58084e55acdfb44f42a5b20097140 = "b7afc1ad2fecb0ecbe2e356759c546026bd89ebd" +0862ea7f939ed33c4969017bc47987b0e8bfdefb = "8e17056a65ca0c55ec88b8977e9f97ad19b159b7" +0a16a210721892be80e4bb518b2372dc65909f02 = "c71d53f0992aca3d4542624cc3bd65d9473d4b48" +0c2d36a587760c5eb1f95bebde40e79148d51e68 = "c6ddfe94b4d11503aff1ea2816bd908adb023e40" +10b289353850d7724c7c64ae57b1da430275c647 = "5ae160e19751093def060378227c0d9661481aaf" +1651e82c21bf0d57259dc49767539ef7dcd39322 = "124e249a4ddd7453177c6405412804f33f765b2f" +173749ec63ae4deebeff4dd57ba72809d67f8282 = "3704417ee5596432c6e7422ea3a2eeac3970890a" +18590c72509832eb21f520ae992016a5f7a3f910 = "683403e3fa9de082c95b5bd527ff0f2802258b09" +1b3536e6700d1f56e85de03e8a41cb5357daeaae = "dfcf05d72fab1694a492760ed73ab887415fff0c" +1b5c7873739db3afd04936cf0ffc31a2b70ddcab = "932cea098d6e29f99b43cc7cc2a62373adec7cdb" +1bc740c6e055b83a465208b673fc2aa8879ca042 = "3b3de20c766d0283b3fbf6f407f50f0f02c06dd8" +1d5310501cd5a95676b35882f2ea0d19897d4afa = "66c43696b79db2620061faf19a96833cf16a16e4" +1d7a12ccff8e665a3e3458c212c34de4e6d32cfe = "3992ea0da879be7155a5fe4f9a45a4a5d04c3574" +200d039e3e76909b6940a99ad30e8fbc548af5c1 = "f07b38fdc3ac9c98add975e535b2fd030f921eab" +20da19aa668c87d9278b7fde14e8e1e414c855ad = "12e27f0303056dda1532d2d72c131464e27c59e8" +210a01c1e5765a0ceca58c3b17de1583324ca37e = "65de046ccff802f46c3f078e971a87ce28efca6d" +21e68e2ee1b168fad138b19b4ff0bfbd4b04dcfe = "d7fbbf0bc0ac76d1f321a4e23af7cd9eee71df20" +22b5ebfcc15143628e1004d5f3ee9c8d166127c0 = "50e791e51126aa6f0bc1d9b4f8c8b943a0556965" +23358ebbc7c25f10f60d247cc8a4c4f0e96e7f4b = "a9ee896434c941e4c533edf84b3e6a3ce767c59e" +24856b34e896d8f731c061e58aacbb659b7fc30e = "2bcfdea1d4de39ca5cb2b735b0782009511e8c1f" +2587fb4df0dfe7a1f7404e2ffcdbd0fc0cf3097f = "556afa2d949a522b06b8f01094b68d4766a67ad6" +2770a38cf6b91211336a09642e90b33b3551a2ac = "f638cd230de604573c15357bd088f8e7a761d91f" +28bdcd3b86ff7f79158dab9e67d684fcba6f581e = "ebb339a9268aea58f9324458345214152e8b531a" +29601ec723590380262f22d2e70d50b87c6b506b = "e2f39063313cbbb4b237bfc4eb19e4a0d23d8887" +2c8d3473685262e86e51e49ffcb62f1793fa0956 = "80a01255aa587e279987a3e56d5e973624eb9ab5" +342e2bad209d870a59a5c910810cf2bfa5f14aab = "a38f9c40dd879f93a5e033fcc189c9dc1d63b4bc" +34d354546913a55a5977c6a6edc004b0b17f5c9d = "c661b187a2f4a3c2ca64ec1ebf29c5074cef758e" +3507e62b9490aee438d109098a507a4ff0875340 = "537353ea0887a2ee1292a5ffb5f79aeb8d0a03c1" +351e4447c3c900db5b36b557a2022d8380aa1a1a = "c83a37b5e825194adde0dc850e64e32f362024ba" +3c6ec94d7903cb417353f1d973092f8b2c460f4e = "6f1b0995297ed51fe67c3699eb1b9de389deb12a" +3fcb4b5c256bf3892deeb27604a7a2c14bb0d45c = "3211b6c2f2fc686022e75d653d033f43c85bbdec" +419681fe5fa1f90a07e9947188dafdf0b9954ca7 = "fa428afe642993a162ffdf0b8b6207e972b16496" +429963ed64941c3eb24a6796fbe1e941cf52fe3e = "2706fa0205bb98045cef9d75f994732a3d6465da" +42f5cca15210d8da1629bba2d80d1b5e288b4f12 = "f042a03c033e5767a90beb42362d9ff52eb70b5b" +4670011d0ce91dc23440a169a8f2242133692c3c = "d557e40f9ee516e43c09c2f5d25c06db4cb08068" +49f469457e4346e13eac8fd0adc4afb1b7e15aaa = "426469429ef3cb9698dbc34d20df76fa89b5ed54" +4b3b922d0d28a77aaa7463cae9a3e557f01de4f5 = "f5c1e1227757d8ee2e0df2dc9ce53a23cc0cbd2e" +4c2c153a5c3db7cb6c9bbad91af4154537cd977e = "e323c6c13c5fb83e08ab702b2e81441fe03f201f" +51d9d6fb7927e7133b7b3ffcc0a04a7efb15685b = "756af1ce18143e3ad6fa404c4d3c0d8413017e68" +55a7e59ee7c5ff43bd2e483af9feb4d2b0256425 = "18849137b969fbb17366637dac7d09e7bcf009c9" +56ab1c49a053c0e905a7e22f1d20d447aa25429c = "86c0c5880ddd989dadbc03df3b3df6757115e747" +56b1070202716206c0ba4237631f71dbdfbe612e = "7b8b688406785d8525a3a2fc55ade897bd129344" +5f86200dbe2f003cf26e1625af5ec0fa5742efb1 = "2d068b751f6df59e04c9061c977c5cd60a521f12" +646c075d819d1f32ad6b1893a2e3d9d6e3810f07 = "c923ae3176737562f0eb5fa82303e56d37842543" +64a0942062f85cd735624dc56331c26b74b9a47c = "ca260f7bd75d88b532f137aeb42a1fb77fa83e89" +6630699dfbb3334ef9a40207571e101a5b12d098 = "79ec614fa9165ccfdf00dc02f618c9a06d30db4f" +66a49566cf2a75326e70a7d19b127c7097e45973 = "204203a229f5c56167038b2bafec6745ee982409" +6760f78243b2c3e4588d6b73aa1e000e6a58e5e8 = "2f3bb68bb7401368a78e81edd578ab42ab715658" +68126750d07dec407ed0dbbd8ba01be28ce176d1 = "2fa6d88829d22cbe54e103805ed252ccdffccd83" +692470323ecce73e568e3190482db3bb65628ff2 = "4a54773991c4b6223409437f55f154885c10552f" +6a3f1ce49a432567b726696f70e3b650650919ec = "703cdb4d6d4a350c778130e0fb03d9ccb39031df" +6e3b8619524e932fdbb9051c92fcc637e9f33358 = "abefc71b610cb8b436fc5b84b6814df8f1b8e658" +6ee9903f1dcbde23265bdc033c2cd3cd9730c616 = "8a4a0d60417bbd47ffaf04e364606f2c41c10731" +6f249cff7628dbe2df5e43820da0725f090425ed = "c5b7411e57010cf89f133e8adb30ec5614535519" +702706a777d287fab1a82d52d3b07d72e3479ce3 = "88f3d07276f3bb2b7f42fd094a73617cf9de60ff" +728216c493a054e75b12401c07d9b4389a00bf46 = "7554cad819dc22ba58c24916c6aa0a9b1e66a211" +777589bd99083faa1a800db1e3229c30b68ef163 = "da5d36f29ce74e02f629669762675624e6605aa2" +77fb7def64004aaf7dfcb7719cb6e0a4db9f85ec = "e170712d7d07000ed77ceea49962f76f45ed41ce" +79abedd76ed5bd2edca6f3d3c5f7eaca805431ea = "ec6a9bbc09d1b73c58350b5f13689f938fcb4ed3" +79cdf0edcf0637fb0b6c1d990b234e4a36b7744d = "14a8b0b57266ea23059f5d6f15a0e62b3eafb6d6" +79d37d4a21913e4d162b99f090b1c655fa3e0785 = "de318413b2ea3f9c69d5df061482498291d23115" +7c8a791d6622d94a8812198a8bfeb5e587bd2687 = "fb5108b740f35eb4ec3d70cd23696a0cbe8d967b" +7e741cf3788d0163d42df46c8068f2baef935198 = "a790ce416eb5a9095a9350322458ff4387272c14" +85aac4fdd08303716f10c3e70339e502e3cdd2d5 = "e14b77fd77b5cf206941f4cdddc3b53673490696" +8840a952817eb5d8d78cf122ed6f9d2a87ae2aec = "3d70a6cae29c2b6f1e3454e84c47bf9a1b0ebe06" +8917723f759936aa62e74865c57252482bba951d = "08180823531a3acafb509ba8c458078b7de1a3a8" +8bd5a5e6c38841d5d3620500e52541a631812c8b = "6a6d1efa61b2487e0c143bf1bb5793672b4a03a5" +8de545da684fbed70946951a8471241a918c38a6 = "3ad5a9c2840bc31509efc18aff0346002cf4ab71" +8e3664fade90db34c4176f0955920dbb82d31fb9 = "046a5a7c0decfb33f3721001d53410d214207dc2" +8f3e4129a7e8dad83d5300d6fc0829da47a857b3 = "ea0bd7022ece1999a1d75a3a27768f4e1cdd87b3" +8fe2a3b23ec77d05d5d08ec2e52dc9f130d9c262 = "834171a304f7c6f3ffbe46cf32bae0d7487d3d85" +93e362f9204dd001b572e52e73b30dbd5484d526 = "ea95f0464ec49bd7c02a109b2533ef2792e18cb2" +98a9fac26e2cb55021f50b59c5a480733a162448 = "a1f8291b0a8cb7d74d21cf6e504f1a084d882461" +9b9047ff0d768373f9a27cfd325e6654ce15ddbd = "cadfb4ff1833d609c7a7c4e54f2b365127a4b210" +9c7f998747f4ebaecc6197187726851fafb71e61 = "8956fadaab497ededad6539e1bef335023b32f0a" +9caf8cadfc295fb65753e362c948bce279fff906 = "ce9d37a2b510809215fc20d76649b5ac86efe3d9" +9ee8146a52aac267cf5bbe80dd82840619f0c543 = "434525b729280dbd988039367bc97772e0ae076d" +a2f2dd55b70de440644c8d4c147a9e2ebcc7fb39 = "ba03140f6bac5fb17763b7730af4101129c011cc" +a3b178c45968fd7bc1bfaeece0ba9a53ca84037e = "5640944e10c12013a093d93cafd9f564c1ba6fb4" +a3d846af751e33288bd6c7883a29ba718f73f958 = "33fcba143039698a00f76995f29badd46a067d6a" +a43da870ad5799f19b2e1d7c40253f216156e501 = "245195f14de6e5a1f1c699a2652088852e39c32d" +a4b0e6cbc8f00f7172c9f72240c58f87d30e96f3 = "aab82a11bb67db200da8e00e1fe7a2c9071c3042" +a5a441177aee4f88b08668dcd6838256ec9c58cf = "2c51319a5859e46941fd0d9c4a4c2c2adbe56b7c" +a98e2939ac88983e1eb30e8c9eefc6e8d7de2e88 = "68b28093b602e38100a4cbadc49da134c8d83ded" +aa04e63487d46f0e41041e4ca65365ea3aa240ba = "64f383e4c0861da624c3851115ea67707964c689" +abd289870fb0ad7eb7c3f7a5330298976a2b0333 = "e9725f47699ecd182f0fed6e7928b88707d689a8" +afe3832cd464efb63b848516c72f793de8c0086e = "4d0c48421966e17a874563e9063255631809b275" +b54e5315145f8c6b1a6f11cdb9e0f63b7b8283c5 = "7c62c8f675b68065f0406de9c1bb68a6f051cb89" +b5ee132f059a273280b58c6385b3971fb8ac8da9 = "49e12487a97d48b9b1cfeb76d550b7999142831e" +b635f7b0f7eba110287034164445099143671821 = "7529c8cf9d7ca7d4ca61cbc4361c74a0acab68df" +b6f85f6b2a2d62a91db7caed552d9f143a3e4e7e = "ec3e851b91db69b174e399e05978d668386fdc37" +bcc9afe9f90a61c4ce678c909657d7bcd896dda1 = "f41c33b66dba213a2b0a257b5395e215c7e271fc" +c0f69bcabac42400cbe99b964a9149d53be7abd8 = "58536b76205d69b4455b9017b7018c93038e8898" +c23cd4e3e3239effa4314245ad47b5eee51d3603 = "f4ff04f700d1477ddb276add2f517d02357cf9ce" +c76b46015bbeb9f580a2c4cb6c93143dbec370a3 = "183c9cc8b7667a95bae9f1fae6287002a23c5ffd" +cc147817d145d76830eac660b525951237e834c7 = "fe483d4197bf795cfcc0629c0d26f8949e510a3b" +cdc7907a9ee32a598d5ce29b9d162523b3ecb023 = "1ba065b926a88d7609c178e781ebb719a366f8dc" +cf3f9958303baf9a6ec47fd5022f084cf9ebc554 = "bc08d546b4c584714413ffa5b0729706efd9e59b" +d0602c20031c097aceccce91fa4a0116599d81d7 = "2e5a7873ad4fc59937c7595449012bd62c61d1bf" +d09b9d7a02bb1011e197aaec200c2a31d09f2714 = "cc9797e338267109bbe87bb0f615deb9e182a8bf" +d1b67195ec35bb21b119ea79062ff16fa19e8568 = "bfbb5086c18e99a900905f8c9f063642c51c5359" +d1f361c0dc42ed0175b4ce07a05d9e88a7dc4ca6 = "524cd3183bbe9b14a86fe571bd3f91f50dd7a572" +d20aa188c2bca35bd69b3d109991e6b91e82d05b = "74e8d1a263bc90d8c69dbc6b75378c2fce8f3bf5" +d2b5229ba662b101d71e2fa3c73f42302e986010 = "a2f6cb56a73d5850971952b248855b9e78ade94a" +d54609d8369406335650dfe4b4ecee124fcd5f6c = "ee2c2eda95b81a7403dae90f30501c8756f5c2ff" +da2544c4499e8cfdbcb39641f8a5441619007464 = "390930119a474aa34596e74de8de4b5197792a8c" +dc78510d112b330eab39c9257e4f9cf0e5864d85 = "791e6e2e95d9e0b3f1605435b90a101ef68974c1" +de74f4b365c74df705be12e3f160c5c5edf5dafb = "603ab170d0100fa3f342e4a9b59ab932b63f34d7" +dff8281dbb7cb4ff76de2d48143a02650c4981ea = "974fd70d9c498b4cb6035d9b7fbb634ae7b42504" +e36ebdc3beab9b1038c8f718b7ec2bc56a8cc9c8 = "3202fca3a53182e01cd82150c837db9191ae371d" +e4fe2032d32cf4915923182a920f7472aad240a4 = "a40dd56b44b919bfb5b799f5a0533d71f585f2cc" +e8cc413c0a3e0fb459ba84b17236f840b2dd8af6 = "5250a1157507307030af2cbf521a73684f0fabb1" +e98adf3b81e514d0a166ddebfcef90dc81e8530e = "c74d9fa2cf35cb2ccb55d392fb8f24da180941d0" +ea36e4720a854b3f3f66a85e943cb1636231c3e9 = "8e8d100b61aade7e0c40e3f019218c807b2e17d3" +ecd35f185912489a94e57f22852d8be974b6a9dd = "da96018d4a24b2e111398769674243c5c7f7c085" +ee27cfd283021ad4087d5870fbc0b8cd7f861721 = "52f5f9e4494dfdd8ccfc5ecf8136ee7af2e7136a" +ee3af59e6e98a11d028e68d19301bd390ee9e336 = "70550c57c2f83e175113100fc981eb61bdc69967" +ee4e932a07de970c5e21de2d074016c485abdd00 = "ed77aed05265333a8c17ff212b8084b6973812b3" +ee9b7dcf255f4ef844fe8ddf81dc19f462e195b7 = "477f1f48a167ca78b5dae84faa61abf8a3f20785" +efac0091c9df6f9fe7240fa9f55441afdcdde0d6 = "5248f4a98dec944aa71360964c3b52ecca0ffeeb" +f00c9ba81f3955454a92f9c21784c57e3a683bf6 = "bcdf58db479e2021624864a5196f064e8deff6f2" +f200faf900b5723ff912dd41ccc8348a73deefa5 = "eeead026711370936dcf829f87269f1a1818e5f1" +f2b1ad762a18289f5f76fa1070debb460ed6e082 = "208e104fd3a5cc2e762616891380c7c599bf80f3" +f2b6493199fc9d8e3388d62d485bf7730387080f = "666d482d251a0e1951184e2ae513def2c75d2b50" +f327f56ff85e21d15bf145242a8585bc2a26fdca = "37d79f0820ab243767a5d2e349d472df08b2d6a4" +f3fde357469914719e18e5b18df0dec68024c18c = "d6e2592924c68abf0ebaea7ab1308c234a8f8909" +f408a21365c6b70c93252bdcb6911a507ccc4918 = "be138986560cacd1e784a1b9e6485a95c39fe278" +f556bdd8b30e82d550994ce9e81f62e918ddca37 = "a3c1cccac32ac3350bae066e6494edc29da0c83c" +f5a618fa2d4369afa3687786e9cfc0cf798f6c7a = "5d361c05cfaf76efa66309c4f89075adaf1363b7" +f629d05c981f1d676d6ab1d4e05543f181c0fafb = "87001079f04939b060c295cd8a0ac6f262677284" +f63ea043503320ea8e626f3dcadc59e9281b0d0d = "457b69c114c2969f717e680774d066c461227c54" +f7ae0c7844bf77cd0e96723760939da7f2972395 = "3475d0af208ac6fd8e687f9395904b802105d4c7" +f7bb7a702577b48c2bc985794f047fe19ec08664 = "2fde452e850a26cb6087ca72eca645736cda8cf4" +fb78f8524b86d0ab10b4a744206fa12a5221a83a = "b77b464d54e081b679d72bbe91c1fab5c49e4c1a" +fd4529b658e597962bc99baed22f2bf2e5473854 = "a52bbef66578f94bcd850fb2243e5b470420dce2" +fe430c342c3b48934bb7e4a9847901217cb11229 = "d95e8a2c5384c21e14b1e82afcf1116303d80ba5" + +[91a5bcdd-55d7-5caf-9e0b-520d859cae80] +00f3d450f92b793318433e59484426e53786523a = "44ff406ab482cda0c6bea630bf705da328f749c1" +011f51fbd91a7dac440569426b24766f39aa813f = "7d7ac5d5792cb029fe218f3e8677e0abb0f3f2d6" +01b9cc92fdeccb99f4e9a053bb9263e8e80bd1d9 = "8081afe54aa5a6409cbc459c8a88f5bafd90577a" +0cc15102fb91ade31a53fe8ff06ff0dfa54d5234 = "f123b67c6fc5f4b2bdacaf22d54331c2205e5df9" +0d17aa00935b3b95ff7f9c0bb6274988d4487446 = "26c4f9fc47d907e256af4446125d9b43fab2b724" +1115ff83bb559735344be6cbab9ff76d19e1f5ee = "a52e8ecf6d6a614e7836eb0045191e950bc60b5a" +120f861a271e4e1eb059f637111c30ca8223173a = "e4fb7c64cb88166d4cdd3f0028c3bec789a124e6" +199a3306db73c29bce2dd8e96d2e1762ed38d776 = "96a5498d06dbe6543be541ad8ea360c2b8d868ae" +20df4967a4298e97e0b89060affcab551280622f = "c20908ae6c0fb1307a0ed2f8596ef586fe40f82c" +228d3af1fa72bd2fca171e3379e20d9ac95d87f0 = "f610dfdbcb99ebf0c4db32ed6ce881a2241d6957" +22fd25b30f48b95bd6dff22b560e9a5554507cfe = "633ffc1f0e04fd4a1aa4b8c2c584b10b05c0b9f7" +23a22102c5c660196dbad27bd2cd8afb4e7b4176 = "7960c94438234c89e3fa42cc4e037b283d63afe5" +2fb7dddffb060984bd286e72a1a659d165a8388f = "0df5ad0ab2f13d38fb3704e98695b574fd7c36c4" +3bd9e70fa91de1e27ea6a190ff3e7aaa41230259 = "464f5bf8b1ef7bd903e883767b4c359637206618" +3c09921cbd4da44b36fb5a6ed03e0a528d0e38f8 = "61d22367eea6453240b46bd5fb568896c8bff4e6" +3f21d02a0d432549c7ad6167efb98de13bad324b = "00afddec8a38f2a798bf9f9f3f261fc3041b5fc2" +3fc5f873881119256ef9f5f982a7347a9b7d2944 = "f12e4c8e8e99812c0605112a1aa7bce05be24cd9" +40cbddab29edf946a76f65ea443131be1a9814bd = "387c095d383c247ce65e954b7514ca4d20028a4c" +42c3827ded3d898db2f0459adf2834869c0b2aa2 = "59e044a32b2c66b90030dc053c20188289e579b9" +436ab89d2d4a90a6004386bfcfc56cd4d3810345 = "05fd92567136601650457a7914639dcf0f5a93b4" +4757bd89c0824e1b60b8a9ef505950164384bb6a = "bad4eafb7dc8fac9b9153bb38eb4e0b057004c94" +4c2b01ccb02569ef3ae3a7951958061bb2709cbf = "bc35e382f7e15890b77a624bf8c6507dc1dadd50" +531a38bc39a7e64ee0d8f905e7d112ae23c6d4e9 = "f595180048136660405d880c9544b7847d3cfd40" +558627e7a9ab001c3c7bdd16de67837762d05ffd = "2e76a81eabb78d5a4580169a4891a8ee03ac58eb" +601f24a006fd1caafb9c7baee1d5549dc9bbe99b = "40ec00a6de265ce3afb93c24ee91cd6eebcf1d2a" +65e18a8669612c998905d0ced3ee638fc6a26635 = "650f1f17475f3529f3119dfc6f01d87585a74031" +6a129bfe922bce41620053f93c4673c03548b72b = "59748552ef2fe8ce5274ae42cd39387cfe464735" +6ae0912e0e48a657a71a626455288923bc798355 = "623c93d39f5b0d6f4758b30524eb56e720af1413" +6c6769ca98476a48f18a62c47580622c223a89f1 = "b31e36c9db5c47cf050fb830b666f2298216b852" +73af635be61602d90a63aee67c3072754a3a1827 = "7ddbfe325690ee2fe648e340f7dffd66716255ca" +8023e15bb97cfc6eaa81ae1ec9c0abaa08669aa2 = "ad816e3dfbe17eb67a56e5c97209d6fdedfeee8d" +81302c1e9dad35ae1c713268f5fe39452819fa12 = "f7158bc19f065f3c0f1fafb6966076e610ee6eae" +894928d7ca2f14c4bf5aa4fe97b581736f4264c1 = "c98badc02567c4aa1e4ed5eb8ad790aef6d37296" +92672ffddfef671812377cd7bab89c20a899b897 = "10d811b9a64ea6f68cb250c189ebf6fd077f5f30" +a9062b061125b764483f827c28e240c5125df437 = "20b66b327ab6f5a3ed23b8f1b65ef1545718cf71" +acfb14a1f55da9122f8b0e949bdf963c61ab4dcb = "004698bb9ef05bb87ba69b034220ad2dbb27a60f" +c092d3cab48d784dc75e999efb5090bf00057c92 = "0a2398b74edecba0016e11afa48e3dbd15337596" +c4bdc5b856dccfec5d9c322397880750120d8de8 = "b27383b91d412f9d08b2b94d25143ad0a7642d37" +c798fe682280cf9e81ea9dfb2e6c57679d7a5c92 = "b8b2f4e1bd486d006c2c8b2bb4ab04027b86a48a" +d0a89858003ec6724f9043c20eab9ff16ff73e21 = "45d4c206008f88ba5d1dfdba6b101166dd043eba" +d52b2a9adc465ccaae45702c795fcaee0a42f43a = "d0fec47ea9bdb3bd5837ae8245c045713bc24bfa" +dcab8e3ac29460c4ee0ddd04c2ccf48e3a5ccd14 = "c5a172915bb4a5f1e80328154522a694da7cb847" +dd7b09552a3a6d8534bfa8b95f603d53a860a405 = "f972bb6d52c725e3a8295d8ec50d557dfa238191" +de6e3d46ec1d72e41e89a109e2135b3a4287bcfe = "2dc6589c5e72921561c0814d317100c3026939ff" +df729cd0f6dd115e1e509372ae691efbedb0784a = "840bdfb2233242fe723299f9febf9850cb2aa4b7" +e8ed79a6bbdb88279c9a7134cd39bd418c7b1079 = "c01b146ac7312fff428b8c4ce6e8bd8f3ac7734b" +ea7867429fdd016004a11c41778b5e4b1c12b92e = "b29487495b566a3b10365ed46b899e1afd5157ae" +eba1e366bb21b44d719cfee568aaaadc1721651e = "0c4da81f0e0dce0850affa0f2f61fb2dcb245694" +f3544dc82672a836f81520bddfbc40d5d836350f = "984336863196c805cc066fb2df523101e73b4377" +fd4dd13270b564c45ff81f0b7928c1db66465733 = "8b9e80976bc05e654566181eaff17331e39f7f5d" +ff3ba18b1578aa3af076fedcf242e9d1f97ebd0f = "e5e3ffc05e3eda198259e461360cbaf996d30182" + +[91ca9103-c91c-5507-a6ff-05d8648e996f] +66416c2660a11e73353910c2d1356a183f3ec518 = "133493e1befd4eb0bf22981b4e4c3a8c833199e8" +6fe7428b8730d3cddfdf47de7ce966df30a0a734 = "b31cf497374fa7d9b515dcb9a3dda469bbdc5e10" +73167d09df879ee17b2ea4cfa5e98ce057c29feb = "88145c1b7d6c24a66be9bcb774398d3fb0b5377b" + +[91fb55c2-4c03-5a59-ba21-f4ea956187b8] +0f105f4c91fdc6d662e50236f4226ff43a160461 = "7a668e03d1ec0bc40eeadad9e5f7baf4e50d78a1" +2a6ae2afb5390d5e1510301da5f113ea37b756d6 = "734b46f9c1a9ea19b7eb42688d698bd122ddc83d" +64f5d302dabcb89c20524007dd15938dbd0b5915 = "3e9bfa5a9684798f8c34b2326e462d22baa65220" +6bb6b52d8baff9ce95620060dbc42f6fe4cfeb1a = "c11cd3a83a74e2b8ba9317640666b402c2c7d001" +b6bac6e7278c04ea4c5236eeb6f90b6afb0a22ef = "c245caf74fcee3990857d45f20c158f1f6b10918" +bd4d6e217f468d7f15bf17f2908a4cef8b96c35b = "f4547c245782017267457687b2552a67d81f874e" +d89b97497163bf1ec1cc7d8fd83a42a96363df2b = "56291063c0b9b86f729b67693c0903c32468255e" +e4bcfc1ff97ea2f6970e5915cd5ac06b2cfee5c9 = "f087b0156866a8440341830f0104b58e2190e75e" +f91331f07f256e103e173543879fc24e6045ec72 = "d4523ed99b289c4c81f875f1513170fe1fc97eac" + +[922354f6-6876-5285-8954-7bb8005415d2] +74eee46d56a2bf9e4ab7dc32753d7596941d35e3 = "b2ab415df6e4bd5a2d8af1cba1ef9e6addca1b8c" + +[92393bbf-ba23-5323-a3fa-fbe1e5f35af8] +23c33a7bd8da33ff8bc1cdfa208d4f9d8baa36fa = "167978abddf9e3fa96c6709a24f600e0d7981d11" +9c72e835927b95664b851a0227fa0a6fd4ec4fc3 = "a24678d83bccc094a380efc4f075bf4b1e3b5dc8" +c141483fd1fde67f745be10491081dfaee01cdf6 = "2854725c00d3c5c01d16a179651d295e68315ef2" +d4b5b25817243f3879aed2c69bf5262b060f7d3d = "f2d74e692a4577f42b05bf02dfe637d5c13f8f48" +dd0f93cb5b41c1ca564eafade2cbc2e6b6c221c1 = "1750fff11709767801170115d77723023383e5db" +e74f6a8ce59f299351a271599673483a64ab1448 = "eb158e172792ad1f971ebf93abb2619c1eb19290" +e86dd7db82772cf7c240497fcaf1378c29b9498f = "2c637e79f893066494641512ce4cba0c3f826f8e" +e95d5bb2a3a65befba624a7d217c1954617b4570 = "aaeba23ebd9925d5ea4420dfd050ce95b64bb94d" + +[925886fa-5bf2-5e8e-b522-a9147a512338] +08c8146f76d32912c225af6604e14e634e093c8c = "799c1b7f2bef90f34b91ccd4374026ba5f763b56" +32d29c264e000eeed2a33e586ed4ba25b368daa0 = "83635b9e0451b47f925d85cb368912642fd2603b" +3aa989ae5170b7d7aeeefe2788ace4d27ef5650b = "400e49a203f44e03d02f1eb5e6e66b7000129636" +6a50e028dfb3878bb73c5d1d12a45c1dfcd13b48 = "150783f017fa15111cb347194212a75ec2ba81da" +6f8e2052488d3375449c35e95f870becf1dab8cb = "f7990c202f4aa35bb565000c8693809b7293dbeb" +7042d75a6feda9acea4ae053369e1b247a3221a3 = "c9c58562c17c0cf65d296898765653bd6e0096a5" +759ee04d8d1ab354aff06c5ffe84dc24b45470f4 = "569315cadd72774854224ff683db56b50b56678a" +7cf8316b9153fef1df04b8818813188e4e7baf4d = "a025c0ad101cc85553bc822538c87fa8d3ca1011" +a843a0c5c183bc469fbc7c7e83560a5fd44407e6 = "dc589d85b61c224c906e70f13a85e4f286f7430c" +b70dc612bc46677c391baf7b91c37824e94a9df3 = "37067e90d69784564c4aff6603eb95f17ed9ca33" +bff476415d3fdb63d4785da105c57e2045aaac9e = "96052c3330b9c7b83241d2d708f6cee593a82225" +c169dae5bb2a25bb5c8088057d64fec19d1bea0b = "505895167809d59fdf9caa8af8c0d73689804cb4" +cab12070db57571d194137cc4355db5a10fccc6e = "14507e13c1673a05b2cb5180f7d9fc0dc9d4cb01" +e0a25a0b32ae7d5521c7af9083005c795b6727f1 = "b22f88467fc30f747b5aacd28b031b9aae85f0fd" +f772ea4ea8746f190b7fdabd8c783710571ad6fc = "9c21d5e89b353bac80d97a4bc1b591765a08506e" + +[928aab9d-ef52-54ac-8ca1-acd7ca42c160] +236d1154514c9af978b69b5478e79bbd190a92cb = "b28ba9765e44ecf8cb43d1eadfbeee75dc68eb6d" +263289e3912106dcfd2a7c2329f321b012149ea6 = "37fb48841fbc46c80acc025bb5efd13115552bd9" +51199b0f2c5a0c70242a29db7e8abec7bcf48825 = "6fa8a40fecc9b48025fe39f9471266f3d35570c2" +a8ae397fd59fd60ed6d6a2eefafbf78f24495a84 = "91992ec5d705195fe46caf949f002daf84dfde34" +e12fedf35cdd779176ec204f2e060306e81c5d29 = "002a2d015caa32c72713b7dd5d6d7fdbe5a20c3b" +fb30ea797109bed2fc86ea95f9f18d5cc99b9fd6 = "bacc249a5a5698fea194857dfbfd6872891bcbfa" + +[92933f4c-e287-5a05-a399-4b506db050ca] +1331ffd0622ee2e0731960e11618fcf9a491c035 = "4b48ffcb9e1d907c4dae8e67f3fca6353221f7cb" +1c096f5cdda4df472abcbdf69b4fafd46a2b7240 = "e369a3986dc077b82326704ce3c247f602b049ac" +2cb2ffc2ab8a507068666a552eab304c1a7d461c = "a3303783e5d40ba0153a610795891db6b9ad2052" +2fa2b00245705d5071bf189d0c7673bb8f460d4c = "5d85442e3c52cba4e7cfd39f183000c62efd8933" +48bed8c197f0dc9956bdba0b49768f11eccf364a = "d06b4ada015b35f482445f7b48147b3eaa20b0aa" +5d688867a87d1a27a27246257311028e17bd88a7 = "25e1a4dffd78fcddb0fd5ce21f9d2c5672567a90" +63399f636ba9c3b01bf1713e4b05eff65717d916 = "25a7c3d8ab0e4129ac451b8b20864972efab5d39" +63571299696ac1dd8ecf87500f5178a385d01423 = "0eed08eb6686b014ac4b70fa0d04bf47b93eae9b" +7d135ec628f6db7e8a98c1dd3148a430d89cf0b4 = "953c570c131050ea0f646a443f18d43468c94973" +83f94e092a51f6014c2719059ada8032083d83dc = "a9d68b1542a85d43ba475824656aeac1d911b391" +8b1e6987fef1f89d0c6dd52e9a251bd33bef16bb = "e8255f2c6866a853a3b0dd4f95226b961504ab83" +94a39108df2a481e020ca1d557f9dfaae11a23e9 = "ce78c996f798392258ec6ef1b89ed5720d1a1e19" +b1b7885f381e40f16be16628f2027c226158bc2e = "ec4618fa3c9d73e6d11eef295faa166e567bb7c3" +bcf2df91e8c1c285b47d7572a30836f44d15a72b = "40e45391d51dd6ba4ebc29fca1bee7d8da710645" +c185e88351ef4ac3e9e89051a2494b9c2879619a = "82e55976f2022c28fc232394cef14c29b6505dea" +c538ba6afd4223ae00f1cfdf58f2523a98b18eb7 = "3a8584da591cbe5f39ac4da11cf978940bd7da0b" +d5b46b8220d0d147bba87a2ec98b605a12eee176 = "95fdf7458cb308a9546204ea1cd3ba83ed7b1eb2" +dc78d575c35d25fb31adc649778fda208adc71c3 = "461a6abef799f91851039dad20fb6b92ba927c2d" +e7152b14550abb708c3e48abbc3ac2d437421526 = "2e9bb7f9b484ab73cf219286db399fe8622d24ae" +f7db3a5acc91d2cc50532bf469dad688984670e9 = "926f02a9860291848b3f096b954447f7f590a71a" + +[929cbde3-209d-540e-8aea-75f648917ca0] +07ab967defa6051052f45988f9b1c667f8741d9e = "0f8fc9505daed17b14702d83dc48edf77475c5b9" +25e8e956bd089eb6ca9409d5e8afaf6a463368af = "36a2748a2f79c83ed066cb9be571e726204b7e41" +3d993b5b61fd2682aa581539f4b86eff94a1bc99 = "ea7120513c90e5ace7d221770421301bdc73aadd" +4da763814a55772eb5bfb5b3a3d1ee8fe6b89eae = "58380fd0c7f4c10dc2c9abe6b0c41bdb0483c57d" +59872992e4a020fb55294235cbfe374ed2d0b016 = "d34747de9d459a18e05d3a494880e09fb9c27001" +5dd80230927f25e9e2d3d14282921e11423e335b = "dd2a570e2a6896309437cf7af8f5d6ac06da80ce" +6978a3419490c0351813b857493d62a30a8a17be = "df7f687d975460ef525a85a3158a503c5bdb3863" +85bdce34c5eb7ec0ed05901e67b4349a3d455eee = "a23a1b0b84ddfd4b6e273fafffc00e58cf757626" +92113761416624cc1125dad0f492a848fad81c9d = "f335e82602b517218dd1c62804141bf9f124a1a8" +9411fca058cbff0861ffa281772540706a67db9f = "019a9bf94cc47949e108a58c69a642e1ed5d8576" +9ef8150d38b90867e9bc69478427166ea1fbb84a = "a2e8cbef85898acd10cab0a81b949fbb12d46b6f" +bf66a6cd9a84b99208a0358ddb25aafa65a5041b = "2cb38d84280fa56e313d00578b9b2e38bf933577" +c67f4c19e52ca89553ef80fec67700f613b7424d = "ccaeab2963a0b74cea259a4464c9d1fccdf07546" +d867e47816fcfb1c3a841bbb802377951b1619fd = "0e34502ccd6bf94d2ac5100847ab73b09f6fc913" +d9074ad44c2fedbd5a608237e2534f29edf81fb2 = "cc94b33494eebd7d7f7d14654120c805538893dc" +db8a049df2650e36680ed562f3d61a4e93c23778 = "7f10990d688bc700813f080eaa5b0bed15b1a1c7" +dd3a7aca639bc20867cd826d78a8646eaf6bdc2b = "9270d5915b29790763db3ac1d9b7eb96c02eb2d9" +e035742e6b60908a3bfe9a2d2f30ddaa991a10c2 = "994d7843559c7bcfed070cbb410fcda1138a49e2" +e434b172ab8972fc8d87a9ee053f5e74be28525a = "c707c1aedf904223f99af60145872eefc6e88683" +e978d70b04ea82fc62bab149cb1812303db37f9f = "11c98845480ed18753585533e650be344a35113e" +f4f802581658f2a7d6810a195242b8bc93c8805e = "71c61c4dd4d33cccbed043d29e6c983cc81e61a0" +f5564877b1620a943d966a4eb3c3a21315f527a0 = "b89b7885146d100d4970d7b60143680c01612e2e" +fb17dad3da6cc28a9b99756c5b19788dc42346f7 = "c9db3870334f16d947037a8a0ced372416c4ae7a" +fdb1a8fc549a307c105948a6514ed159444f59aa = "12c8a3583c5bf6c5de2bb5cddfed03c648bb7ef3" +fdf71764f8f4fe6665c9f7e926dd9e38f37d2b55 = "33798d0df1b3cd61ffc8e0626033c95245e92258" + +[92b13dbe-c966-51a2-8445-caca9f8a7d42] +0b095efa8dbe54913d01628ca24b83eae579908c = "dae4b09f992c02b872fff0a5450a3770aa012801" +1816a9ec41b638a04d1fe3f9a0cd1961dc64f134 = "1c1b8e8eea2e4bfc03923e2a087d58bb90f99ea7" +2ed4550876d851be53f55beb10619e9cf8f27e91 = "4e74a55be422c90148afef6a603d763c6482b5dd" +9c3e0ca9ac2daff208a4ef2901c2becc204b6834 = "03b2dcd1d6ebbb849a4a7b74b71b9d187a2a81f4" +afbc80100e0567f511ae44db012873838a3c9728 = "33419de096e8f06b0d13c9797198727091a50167" +ea417f4ed9e3b2bdae881d5a98e7ae0d655b9afc = "fe80cc0cbf137dad7f5aefcfee694a23b38ba08e" + +[92c85e6c-cbff-5e0c-80f7-495c94daaecd] +37cac0c1b0ff1ead07acc8ea4c7e4804436a4b70 = "908470e3acf236b3085f1f56c1d7ae00281dbfed" +47e025a8995ecedcb338e385a038ef6df2f90da7 = "cefab19b7575a5f7b573141b4529d2a2d5cecedf" +488258e9ce31182f0da9f1fa22c836b25f5de06d = "cf648e2210c69670a2062f709d8c72487530ad7f" +4c7916d223e4a6d21f7cc9b8d7c6e040488e7c87 = "8dc757f7b04a27555c766aae24abb1a7f1ff3a44" +6487a77efcdd142a342af2a4b524daab579d8552 = "14ab2ecc0d1cf6b4ffb5f19c6ecbd71b69495054" +6bcb3feb77782416a17d7cf2db9d16cb895aef0b = "9a34da3cb6745aacdf57eb9ed0749f28390cb853" +8456534aa6adc32381c91811768acc229155c181 = "625571525ece27847807f216ede9c4bfe6180502" +973c91c559926d42401db4f65ec0741b42669b5e = "214af5e34c2c3f8a94f95bd0bc972f270f5632d1" +b62723b3b1e65ab602bfdbe35c2257f36cb1b846 = "fc9338097eda842db5e85f32373b69ae47e92653" +c46b4c9321e09e55fd2c06db2d2a9f00f1627e9a = "23529be61f6b7dfb6029aea0d64a08e7758eed21" +e4c7431ac8265d56b567230e350d1c299995e99a = "fbe77aa2e933c2ebb584156e20c6e68c75c4575b" +ef0fd0bd9e4cb1872ff5746426240939fc42541c = "ece75add3f11682424fadd456de4f052983849b8" + +[92f6eab1-61e3-5b29-aa81-669a19de860c] +1d88b038aad438d17afa2f3e1e164a211d20eee3 = "2a40b088551c7e99e39e317d8029b9a1fd8af71f" +59b2f51518750a490ab6eb78cc8996565ac6a0be = "0cc46cd3927dc46428f7903443018662e0a8d4c2" +bd525cf5e6042640ef5c8a3c5bb122f5a6caf027 = "4bb859d58cb6f096c69b1a7a2ed5a6203ad8b671" +c89f80bcb253b657963bb03dc63ad9956b72f836 = "1b8d50dfc69572e838967dadded169dd32fc4c87" +eb94769f0ac08ac7f295d27d152ca1a1ddc96733 = "699cc098ebd30913bb89c00917148b729e43e026" + +[92fee26a-97fe-5a0c-ad85-20a5f3185b63] +061fe75330b70388895a09f8ab66bc1e7c4614f1 = "e20b92f1992278410efeef1f7f6dcec36d8981e7" +0d1a5e9c73cfe36932d1613751b7f8e3a5385af0 = "3293059fbcc4ab547bc3d32d9a74821740d796b4" +268a606062d9c3543bbdd4effa6ec74aaa4a47b5 = "bd78c2fa5762c4385c955ad901ba7ba92eef9fb4" +3af7c5ca9f16d7206516f89314d15186430bf9e5 = "ec5ee613a68e518e28809599233e391a4fe52669" +44ac3390ccf130c4e54bf0ef97273293af7282c6 = "07f2aa50aa27486e8017d3667e7f86c5e8568bc8" +4d00c3a40bc9506af1804afedcd3781da8d5de6f = "72782e82ae9208033644aa355ea92b9acd1a467b" +595efb8aafd15b692a1bd31f1d186f7152550e9b = "63dbd52cfe09a8bfa7b6782758d44900da289861" +65fa1e289700bdb64691f18f0ef2fee7d3d0e1b7 = "b82254cafb60667c96c82b4304ac6aa2694cd249" +69b6765416cc454a201eab7dc6dd0ae07e45981d = "7a783ba4057e4c67e4e09f137052480753c93ea1" +75960bb242b13ae24668d73403be47e204efff28 = "73e89796605a8fafdfbbe48896be6b0cfebed1c6" +8d49922f059a3296f94181c29a237cebf397f676 = "0f522f09d9196133ffa503689f3277eb4cff163b" +ad42afce02bddf5b8f6531511ff35fe1a1625d73 = "dc7f96e1c97e9913393ddc594b1f2b6f9929352c" +af5987a7644c85df983610d86046f08d38fec0c3 = "f818d8da351d720b0f3f750a580660fafd3b61bb" +b4ff3f452dfeaab12b23036894c8145e44e33d95 = "e0cfc642d46446d8bd99dcc72da704477f088ba2" +c1e18f53fcdfcc6eb1f4f7486a0ef96f9e54d9fa = "a436c42d05537b269d8baa3426200ffb18a399ec" +d2f662589c1beea06276504e48363053488a7e61 = "4b44fca38a6dea6a786fb0081bc4b958626bc29c" +d42aca39d59dcdb8e238841a2f2660a34ebc2c8f = "9ddf213b14f864cbdd71d5b38f8910d7dad23469" +d60ba9f7d4abf06909c471c3d556d229e835b02f = "95791561989f94a2ee35beaff6e9c8c7dee4b0ce" +dbd40e5f7d0e829ff53066965e6789117c0d61a1 = "6480c7f03b6804416ccdd9ecf9e3b79f869ba865" +df5704c089a934f237534f244217d246220457da = "d8f5222bceed664603c47025127b4c4f2058bee2" +ed6663119b876c6263e021df31198c89125eb47c = "fa8bde19daf9092aec6883ee55ca23dc59d03239" +fc2419cdaf367041c61cfe9df20f22ead41a15d4 = "0277f2d5a12a681c4997bb4362f233e82b6061e4" +fdd0e4595d23eeeca2769df089f6dada752b4e16 = "422387fded412aee9225c1ba4f145d913c990602" + +[92ff4b2b-8094-53d3-b29d-97f740f06cef] +b1c80864b3c0f1dde55bcd84390681d033af410d = "c2a69ffc82b9e34c85379d52622fcbd5ae331fab" + +[933ac57d-ae2c-5684-854b-0ea345a8088a] +4316fa2af83330cd9dac2b099f431bef705874fc = "77e146a8cff14d3740027e87e486fdd77f4aff70" +46a4f3fa364ee32b85d6484006bcf8f593e9bcc5 = "8a4b732b7254941c880db5d7d7d146c3ad7cbab2" +9902e6eb2b233d7e2528379def3e86d2c4ad0b9e = "386bf13e110b53a77ce068679ea082f844e7530b" + +[9341520b-331d-57cd-baf0-c27f46988a5f] +11b97755b634c9a3e3d16b5eea36303e94d2d0dd = "97a82014bab5a56abbe10162350973046fbb40b7" +21e6f49a0db6945ca5b12bd3db1c489deabc4a5e = "564fc7cf78f8e99280e2f8f613617f8953a7158a" +5349175087bbc5a6ff8d776c88cd0e1128ac5165 = "6f5f484d4de6d1810e3a8badb4b7a0e4ad3bfed4" +612628c525d8b6bdaa39febf597b96ac86c2dc3c = "93f3db0633d9e05ebce1200792822037e5797e84" +63c97241542187c5cf22050f1224c2343646a0f2 = "de575e29469a7f6bc8e768ccd16d13e76534576c" +6d03e593f6d38665dbc02e08d6093fa97e97da37 = "bd04c648f3dc3c9e042b3332e5c564b7ea5803d2" +c08a8fbf1e7477a9362b8c7270ceeee354cb984c = "8aadedd70da105b818e7135d2d98549499cb2bd5" +d4ea10dccdeefeb1572cddb6acac25734cb1b114 = "929f82b1cf8e67dd1551db3b3f5f2c2bfe1468f1" +f6d09b776e59a184eeb1b7b003d9760e2980ea1d = "1d9990a485eeaffd7fb0493fff7c83225e723462" + +[93e0c654-6965-5f22-aba9-9c1ae6b3c259] +27104850ba98f17277e7db941d73fd115366d35a = "37646545102647660f802651812994a5b2a8b14a" +4ce1030e336b93cbc461983ecbb7eaafb49ac1be = "685fbf627ce0644ed27fbbdd1f11336f90d4b7ba" +a1f1d3a3ad81422582fff42a285c07aeb9f76988 = "249773c174579440cec0e3937cbd65852425601e" +b9c379ecc0879b8dfc2ada6a3d8ef979a3754ee3 = "f5297ffc93363153c882cc5133f29c9fadc00edd" +cec4d29741f351666b6adcd360114bf2f189e6f9 = "bbd76bf9870abfb23eb7163fce36cb9c14d2636b" +da8db01b9f1ce37b86e8c2d7ca71a70366295f23 = "b0f654c3df97aeed05cb7192cdcb07e6da840369" +e23c968c4b79d6e55aae0a3d3639407e627a7507 = "dcc1d49ec245fcb169ab79d168d1cc0846d66478" +fed2933c4800ac9f1c0be1af19f7f6655cbbbf9c = "82a80e1b9a65eafa01a52fd53c34ce5dfd77c0b4" + +[9410fac5-19ca-571c-9dc6-233cb5eb36d4] +4c81e77b8ff0b683c8253d72112056d7c515a5f9 = "aa72b3bb0a0d8aca09044f20255a9c381e146ad6" + +[94167541-0a4e-5fbf-aeea-474b87c587e3] +19d080b0416cd7601fff18b380eadd6749a29c43 = "e3b12b11e5ae8a3581f36cec174b5326ddde21c2" +27a4b8b246a8f1e849937ccd77a8802b59a31bfe = "443a7bde354e4991c382fedec8aba4b5a638ed93" +2a9346fa12188238452e37dde11a13493fc3cdd8 = "a2b284859cc883df382e07992dc80dc3cd1860cd" +362012b0ba26725a38d033c60b3229fa1a163244 = "8709242fe70761fb7d2200ed7a49400031c335d4" +49704d5dad9bd4b26071a3f9272a384bf00c8115 = "30bb27fdf3c8c9779ad647bc766c32c85ae8f2cd" +4ab8d7f25d00443806b77f220f02091afc334b86 = "8ce90af3d2735d28aa33faf9798ad11bf70ce2c6" +4f2973ab8ec916a395e07ed7bccf3b2a0216c06b = "c4080c752d25f7903e3721f86587d9a7d385f373" +69104f08b469c42e020f56a09d210a749673ea3e = "4dee23432d70110c7def4a941fb901df195f9bad" +78750b4d28eed216bfe57a2b6ecbb6d93f125af9 = "80b3aa25c0b0a8e3698f41b777acdbe4128041d6" +85d726a7f4d2fa9f3c83dbce2a71a0660f8aba0a = "9949c97c37e2a1673efa995fe67307cab84f7fd5" +994db3fe8317b1d9f7215d809c32a69212b6a73e = "3b032b179a9f21df45b3248131f7ac7ef27b01d7" +a943ed53b588dc0698adc0aa71518197787efbd6 = "2d169e268d751f6a88facb948d82d7c11f752c2e" +add699785a261b979978c7d12861a021de24cbcd = "d6c95927b3d2e360a84a58af27f33b03af632ec9" +e59b4afb7264976423ffe0fef31b37ba872d761c = "084d7fdb2484618749bd0249f403de18f49b0330" + +[944b1d66-785c-5afd-91f1-9de20f533193] +1628c7da97f0a3a2a600528ccec8761753737045 = "fa6cc58cf7f53c8a9ac863ce7daf284645fd390e" +4bf80b243567e3b052c27c078bbaa09fc1bb5a10 = "f00b778c319e6db3342ef99b3f23860779962e53" +7bbef285947a572d5a2133d40bd049e4ef18a895 = "92dae2d9e85dee48124da03744532f0ca5d232fd" +875a0c8ae95def1f2ed1bf8542dc23a210f9e1c8 = "b58dfd980625d9d41d45de59798a3ea928736cc2" +a0ca6a1f6422999efd72f3bf66de91172904e8f9 = "99781853fe5b7fb794a4f7747f7bdb6bb14363cb" +a1d470a884c0d641b6c03ff67f5de261d7f2eaaf = "71208d8c16433bda5f09be7f6407522a0ceafe1c" +ac6157425d18850718c9044972f51b351c5cccdb = "dee59a4d46133ddbc161ea4b0ee227e99601befc" + +[945b72a4-3b13-509d-9b46-1525bb5c06de] +1d593c2a3a2a4dbdba9c197a32ac7dda75c34f40 = "6b9f60d60d0e42edbdf3aaa99b0eb8b3493c73c2" +328347e1687aa77b79c318e0f205ac7a9d88a1f5 = "77bee79d96acf13457e4aad8eda831056ab58147" +37dc75a2ebfcf5aa84dfbf722f10727a68bad977 = "11c1ba0699c26e9a641858cd84ddeaf79b69ae25" +4613f51dc7c8d5d7abc145e5ccb121eee57572b2 = "0963a534e63d3be3faa57bb273b1e4e769242178" +479ac835e3ac1b43353ab25acd052f15d1176fa5 = "b6785f695838659b22a1ea95495647cb1f7c886b" +527e91d3c567f92f312ac5b5e2520db17a0e8d08 = "889e97455162d92e55363fbd715cd24d608788c8" +5aaac5677a76ab9f654fdef1225e1038c092e8fd = "eb7ad9ece7fc1ba3858d1faaed615266c7b422cf" +690da07c940cc50e289da4b9448b5acb5167ac58 = "e18d325829ff4da47c338bd50527980f55940481" +74644114ef34842a2d1ff6db2b339ca6061f1c93 = "4601fe99c8f7fa514be135497aee3d12df3dfc82" +8fb7b091c4e5851fb7c323a62c07495ac8138e41 = "32fdb1e1813367d340155887016b1c2aa17d45b9" +96ec4be5ca852cd3ec10b10bc5655e5d165dbfde = "3cee3522a7581f377e5b316b52b2c367128351e7" +98e13edc2a6ccd4639f051522ccaf1eb6731ef47 = "f382748b6b6c4725edc9d45b0a8d369e1195638b" +9b5ec5ffed5965730e1d65b632267579f5933f19 = "05383b96f7a7d091ad05299a35a16eee97dca837" +a6d8862b36871ddbc08d2010361a500f65cebb4f = "03a92a244f1df39e3d2680e4baa6267e17021da4" +ab98488e99b19d988d1e5006626dc85542cadec5 = "e9fbebffb3e8226677c2d8b130169e8bde110fc1" +aea13f256d7286b490003229d49ceebd1c4bddc5 = "c501c5e7d343f30c55130bede99b3fe843029b70" +b79628f831bcbbd3e51f0a2a08422f2f6c9d9235 = "e5b902ec408a1e6dfeede108668cc6fb3ef4bfdd" +c296deeb28232e42227a69dce4b4ebf815a855c8 = "651238c43f89bc38084a9339bc1e936f49166a04" +c30ede7887b8a0fdbd64ee9a4686b4854dfeac57 = "b16cf33b3050fb0696ec7178f5eb889cb086dc4f" +d3e7e37355076f7a2a4a8675d041abe6ec45ba7a = "cdd1062b91921697c272062e025d85409b0dc60a" +d754959581010b230bdf9a513ca3c0e8ee790ae1 = "098cc2cc97a51013924dcf0e061172e19097d7d5" +da576aeeb92d3dd8762f466744a33b3d40a4b1d5 = "79f29cbfd270f1f22b67f42a40239c6a6374dacf" +e3532925173f5de08b8d1e49415d73130b1df006 = "9531144f47136fe7a43465c330aa75904ac165a4" +f0a37a3003b5990f3daba3dd36306084bd83acdc = "216d0c80f7bf1d5ffb87f5bee0e61f924cc1a93b" +fb023532cc53209d917e0fc85a282d4db85dc753 = "961150b59796b71d2cca5b083924e2c3c8272006" + +[945c410c-986d-556a-acb1-167a618e0462] +5ccb3ea7d8cbad801994c97054ef2e077b340878 = "3f16460decfb986d5649eed8281b9537b999992e" +61adc07e8adb61acb00db944f9334a4229e3eb97 = "74679c3bcf49ad7167177fe8536a31bfb3d7cdc7" +6a795c5ae2a4498081d8b4c689e95f79ebbac4ee = "6655cd6c6502465e9fa7517d2f4740a0ef9decb0" +777db61242216a53a12051f0a2abdf1f4ed7880d = "922d8754ddc1cf87eea1ffd659ada3ba0d1cc135" +7ed60948798d22774c502e09e144336d4fbdac90 = "0c2dcb5c457b822356a3ac1ba0adbdf606355b11" + +[946b8c4f-e133-5c8e-ac42-a7229434e25a] +92154815220401bafa31a8a6cdb62e6c0ecd2ba2 = "1c8ded9eb9a542cc542ae7023c5154592943edce" +cf844ad5a495312654d3214fef83c1be6ff00cb0 = "7049e7d07cf05096a8e83969b18412630e267aa2" + +[946f28ca-a746-5062-aae8-8de1d469c02a] +84ea1ce6717f1ec15f02443b094625b044373ee1 = "3bf789e516bd1e077ea4404079e928d11099be5e" +999bcbe58e50059e5abca43ea9133c74f30852ae = "01c9be8ae00e38ed021e699493f7aba0c615470d" +bb002695f950c95ff8afc000a92dcf3e3b1d6879 = "0767e5ce3f3607033acd715e793408525beea084" +e629014d537fff8e62f8635016a93fffb16ac2f3 = "dfd71959e0bc1947bac55d9fe731a333e9461a0d" + +[94a5cd58-49a0-5741-bd07-fa4f4be8babf] +0c3b3c65e68bb1fa68a7bad28b0e22eb617f3a60 = "3fb9608ded82d0173e7d4f1f6d5c13861ddef804" +3da5437514a291b7b5dd9120d9b3d57cc2ca41db = "b971709d86f97a810d5c493ebd11b8aab1eebbb1" +622daf794a38a7a906a98b0ea7188bf282b9e0ab = "58e0dfcd827c450694488210449943d0f711fde5" +fc4686896f772644824d4380866c67ec78f5fb93 = "8029902a271b10b7f9663b258dd1ef1445548522" + +[94ee1d12-ae83-5a48-8b1c-48b8ff168ae0] +1a81c4d369cbf434e90fc63bd5fc299e075504e3 = "9375614141fcfba22a5ec3e4c23621fd9eaf3111" +288d1d6faaef9049a6fc68619c5b056e428b4ff0 = "b9b54bbc89d76f1ad992be0e5d762065a7d71f49" +5a68546879b1bf29973c672466d82b8c7134e9c0 = "4a1506d6f1a1abdc4f3f68598ce65233801a68f9" +62200f0ac5efd6d4d042f5d778d0cf2856c38c50 = "3714e319e95bffafdea166e07d7debeba102e926" +ac488e96c852e1c4cb4ae69abb12d7e12aeab154 = "579826722c2c2020e6c80709b820e6b1d7932e31" +bc13fc6ad83b0a14df67f3eb343a0a5be1126f16 = "c8ff98bdba639762c4f9ef0aef6a5e006d3d3819" +edf1e6fcd1c06808ddbe131c80675d358ae34747 = "24a433a39f8ed6dd87e8c4825f46c64f76e20853" +f702021ea580045276944a524a83297d0500e939 = "52c03b531726e538bea3cedd4ce49f5288651fae" + +[9516f557-4a54-5a79-b954-c272e753c77a] +e0e4a1fd8038957ba9b76fc2772cec63339563fd = "f8059e36a5c745b2357e3553cc2ab510712b0c86" + +[952205b0-75a0-561c-bf54-4eaf7b36f838] +18af915b233bab175ea3d254f99d8dcc4db998bc = "854baa2dd5d28ec6a4f2a0700d583111aefbba27" +4f931c22e485c125a6820f8829213ab9b7310541 = "5327a996f75db7d0d2c82fb83d42a675e6e05f77" +4fbad75ba267dbbfb19ae35e1393a07b9566a96e = "4e23f246a3084a10d5da7a37978649f91f903f19" +7bc0cc688380859c591a6923ff1d2ba042452794 = "ea032f2cc37355b253f8cb606679b0613f6bd978" +804055190303562f29ef5223c20934c512004620 = "3297f823cd3bf976ed66d6fc7a7190e753b370c0" +ae02684c3a91f120d34619dc99501f83222ec36d = "7a1a585553765d8fc5364d327fd717cb858cc6d6" +d3cd357d41e136dce6dabccd4377ffe3458adaaa = "46563e0f5a673580e52f8bb056396111ec6287a3" +ed466ce00374b04a556fa957d2476ae2c0709f79 = "80d86804b2da8e1a2ba54925f5d3037f9950d54e" + +[95701278-4526-5785-aba3-513cca398f19] +0eb64b21374d95c1d21b9cfe853c94b52c464861 = "f789d1cff2d9b6d9440042dead3a22c181507d54" +20cd91a5b5e64a45bb252b40c2f2dc40a587e209 = "9d54c241c79666c1d7ca0486cf40ceee6c06709c" +ab52f94ae5571344d39ab23c9c2ebc6517ad2ef6 = "563714ef04d43e0fd0732b878773a1b673442293" +b9bf29ea504935a16285311cebf8499361d559a0 = "e5a84d8e14fe50258b2dd066a6a2df57485c8139" +d6f9cdba441d3554836cd8259777e69818d658cf = "13d117dfd0acb889d1f7c267cb997032046b64d1" +dff8dd24993f93de5f6b28c3da556e72006acff6 = "bdbd43ac704b055bb872dc7ef7f054422972aa4c" + +[9602ed7d-8fef-5bc8-8597-8f21381861e8] +85f2ebaf2165fa1bb3897057c538604fad32019b = "a63098090de91d877036c4af84f94a69ea01fee6" + +[96124ad7-5c0a-5c8f-8316-419835a3cefd] +1526bcab977ff07eca752c696a1c645e8c689074 = "2e4072dc39318bd4f8b18865a23fd790861ffe73" +1aaa77e267ebf0b51aa4eb21656567215494429d = "5ec4681becde133373d2c294a6b8ec0883e2a6bf" +1b29d72910587ea6bc5f2663845eab407b24d1e7 = "0ac40b6a2b12106bb58119d250d550a143cdc44f" +1ce05169d21a93fd86e98d59fb4a9a324e4264df = "3a4569916d358f34dacc78316dcd8e2cb8931d38" +6f0b5284cf738c4a3f6d7896911e87c3ce3a6551 = "e4f93a5c3f42133f4064dc0d47ef0e8e9797dffb" +c8e1c7f1d0e32c6990b8626d4915657196fe521f = "00a146d766b56f6591fea3690bb73760fd4cd8e6" +f126624d51434062f2365086dfa847a2849a24bf = "9409d8cf3264c61e98107fd175ce4c15724349e3" + +[961f58de-4b49-5c3c-9748-6bd4ff1bfe02] +2101870250242d44b5118dc5efa7cd8680f7c89e = "380a7d867f333a9995b5b9fa38c43739ccac93eb" +fe37a095b943d779236c2d3075bf5e4ed4a2750d = "1f9182664614783bcd13d0e272f59b4c86967836" + +[962b0ad3-91c5-5e3e-9f91-41efdfe054b1] +39607c912872eec9d370f50714dc69a49cedb3f6 = "0e4adbfaafde168d669c33a441df6124c07c2861" +e92cc45b94ae5dcd12b2a1a48423d1133762b243 = "855ccd002501fa323e92d3b7741fd295fb7410cf" + +[96374032-68de-5a5b-8d9e-752f78720389] +00e8f51aa20e3ab35b59ebebdfb6d074018d1ef3 = "006f42d055905c3e12f728135e396a34694e8d4e" +3354545d79b4a598c1d2bfd847f60ecd68339093 = "6a717ad30ce686f311525c976fc55229c6a706b4" +39caa93ec967ddcc0ac8403d49490b18795b2185 = "970a1e508bcc2b0171ccfb9f1b3638571bf3181e" +59ed4392dba891393646d109fdee1f50c5a65bbd = "f2af1179cb99177a6612070f01aa91ca7756d18f" +67574177f25b6041c9047eb4479412b9a659ca5d = "7f21f0b7b5fb69c1ef2886f9c4e58c9c41b3519d" +811ed7d7891d494bcf3f659fe1c2baf1e5f5e4d6 = "5976b13d56638bdf520705f706d53dcbeb7c456a" +8e3984ebbc219fe52b0a3951f186bec226db8f17 = "56057059bf0e1298a8cef47e2671c6ef5a6c63ac" +b61bf03d5854a1292e44cd213845d49a63478832 = "e793fd9a903dbd6c3d4c6e277f5197b2866d8046" +efa7f03a5467189b58bec892c14d59dbe9839bda = "0617c694df4b115566ac49018c0dc38562c384c0" + +[96684042-fbdc-5399-9b8e-d34e539a126c] +ab53da2223b84de2dca7bc40ac4a9814c84f67ca = "d9c5bace185a4e6a647bce0930bdb92c5e18751e" +acf423e033164742f8575874f533731da781ad32 = "8d29d10d8097ac7b62920965238fc5b3f760c603" +d26b9a9b36368399634b8f565fc26b670cf05dae = "b550b7c2ab47ce66306ecc287fa379e5a97905da" + +[9672c7b4-1e72-59bd-8a11-6ac3964bc41f] +684b501825f2acd7ef7626008ca568f33a1c29e9 = "981a195e6b20e5b479f3b6dd7f163cf5ace51e45" +ace7f8708f65c50d646222c9d3f9e8c865ec2d19 = "d126feff6b1b492a6d749144cca6326313449ed3" + +[9689d877-bbb0-593d-8021-de8e3bedf7bf] +3e49ec3ed2be9de9bb7410513435400b9bd6c49a = "829861e0569f26a974738cb4a5a54693f3bda3a0" +4655010eb6da712507280c823095473bf80f5fec = "d0e332b3acaa5f83e2dead10aa44137714b663ff" +4ea4126fea2038857b4428b8cbcf9cc291603b8b = "a7fcdc5b80d8d6b5b64a81f9e78927c11e5d3c04" +591238c19d2a7b49851042200ff86c959c61a0ba = "5c587f39bbf39c8c762f364553691ad7630826aa" +64bf6eb23c863a56988f12fa2ae0a499f6baab33 = "a36e75d8ac4f999e60f5469092d5a614d405990f" +6ce4a9396e0e445e0e3b0e28a749099b22b55b9a = "397e5c39f586fe91a390073329fa7ae042380a30" +7e7d7d5af2fb055cd07da0f2e20bed7c07bdd020 = "2baa8cffd28df7dfc101cdf1a4d16d819dc18758" +8e24be91f923aa6087fbee34e47e4b4905b0dbda = "94335812403b89e1fec7ac69f69cc4b80ca06e73" +8ecc3937e344412b12f999e5d8109d54cd9cb5be = "cf5ade659b77c21a6f039b6554fb9d2ad142be7a" +9a5186556456d7fa29a25977c9d29880a44dfd05 = "40170126483f10a08ece5ab2ceea889f9815151f" +c50e3d29b6b38c83bfc279aaa5e8ee8c06c994ee = "601caa19acaaf6a163708c29bc8611291d263ca5" +d8c8d9d4587a592137d627d6e2a0ea05140a55a7 = "7ee5acabd0a31b78aa00ba30f8ebc09848de9cd4" +db6101d306b7b2efe7071ece22948e23b4ce467f = "47f06b7939b35a0d12228207ba4e33fb2f38b99d" +dbce0537f2386c8c1cf319de05306fd83353c768 = "d5b22488fff5829a07ce9af785b42dbb97c9db82" +e66d3fe55916425ae750b658403f6d447aad716e = "427fdf2e084b15e3deb9a934e39c3a40989c44ac" + +[968ba79b-81e4-546f-ab3a-2eecfa62a9db] +1956a82e509f9b7b6ef4d764d4e493b06a7ad32b = "535db887128e97a4c3bbc0cc592ec24b7415c9bb" +3a8e3d2722991b816e8a4e7c5e75aa72f4f8efc4 = "40961eb2c7dfbf8891d31a7b4c27466db4b70361" +5325529284e47a1796885539ec2c0faa11b88309 = "ce26240154f0f41acd5abfda0e29045b068b18ac" +64ae97d39448aae19add2078f865d94730bc5f0b = "98834c1d35478b1c5786b898bc9c970b202ce567" +6ec6454dc06c3afae87b7a458499d35887515752 = "87146ea6f0ac773dd9816b47aaf45198d75ca66c" +831a0416653c76c7ceed2c3723f659ae7fd3d5b1 = "bd80bb785970e359e076993ad81c46bb772a77d3" +98fe2bb6b979dd68c3d52c0a27638c4e915a802d = "28331a5c9afc1dc47cb90c4360db02ea60389b85" +9ec380aa5ea8ae58f072fe196253510b9ec409bd = "81688c9c16f7dc8d31be7f21508e7c98d9e13320" +dbffb5c41b5dc2fc37dab22e39a1f0d8f7c7f628 = "bbcc954881243dd375c8056f0ae1c4db06de21e0" +f3e9934db42df03329619f64b3f71ebe51b0eeb2 = "be3862edd8279e96f42baf23782b81f06d8a45c9" + +[96e1709c-041e-5d42-98d9-815bb6f3efac] +743dba23afc0a4695020e494b5097371d99c84ed = "6d99f5ffa55714edad33da659feea9154813e690" +7fe6e8845b269c23cc200ac3d3e855e0869cfae3 = "e0779493f90def29b7a7a3ae2958326526b4d201" + +[9777e3ea-c9c0-58f7-a64a-625c82e13989] +2b974adb13c4e234d70862c1d33728792f99f05f = "ede45027a01ac62d10a32e2dafe01bf71952ded3" + +[978d42fe-2d73-5cd0-af12-dec9c7021217] +23ee3a39ad6b6d2cd96c45bb6fbdd4d0d8aee01d = "a573c02ada254190792e771c6435f7e2faaddcd1" +2c8e61ec9ec85e940d2867259478553fd0ea8e07 = "e2dd3a2741d441794072780c7ad365098927d800" +6fd733ce03c6159ea08137754e68c3f33cbf82c6 = "238af36dcd3daefa7c9644dbdf7393bb36da9986" + +[97cc5700-e6cb-5ca1-8fb2-7f6b45264ecd] +0f43c73e17ae5edd9f6f87ca348d7d41f4599fec = "45d60cf86a20e8373a76f52479ec52400b6d8af8" +10c957fa276046102cf41896d81a53786607ae36 = "aa8a2bc03eea7c94199d6be6b7342fd09459c513" +13b2854f69d57a16b24214d3caef554a669577f1 = "6212bfaadb0f9f6230c929406acf6615c8e9a5ac" +537ce26c7cc29aa36f324d318d2978b0408ada68 = "341ccbd87f6ecf84c5e64ef8fa9c7fff857c741b" +92c50127c3cfb9e1ae84e6d281fb10e678ad4203 = "adddf2d635b80d10365e5a993802f41c58fbaa2a" +f2e8c98350dd2ca6ff1d816a22dd73b4dfcc25e7 = "e720925283575d12cccf51a8b5925eb3978af1f5" +f3558a9adc5780a5d049b929ef642ca7f8fed24f = "266bad16e3585424a7220b07bdfd1b00ef04c5a2" +fbb95d7af305a337b478b53c3e4537f171a82fac = "61989715ad6e0a2529e965e53b99aed4bd6b49f1" + +[98003276-9b86-5dd8-b0fb-08f007e5f4cd] +263c02c537632d60d0ae6e14a49abcb8a1b61f4f = "922d0cc7736e02cffd5722d453416c22377d7372" +bae3b27178270fcf4e70ced2546e19c0a399fb01 = "e68730c037a6ab19ab851ab0ccff43f8032ba676" + +[984bce1d-4616-540c-a9ee-88d1112d94c9] +0d2e3956f623cb2194e82f5f650413370743d429 = "908ae423484d9e0f47a15e23a5c555e9a7b43d0b" +1da8a85fd3dbf5fea7ab579f1a6c708fceca5db5 = "11ea15924bcbcf821bf5e24dae36ef725aef3d0c" +5f73b77611f7961f102c2a82bfb59c3459bb2309 = "1668ed6da0021b2ba289ceb424feccabb4f1b967" +b0b60588c7f2fd26c5552f1b4a263e8a27c35bb4 = "aa84c7e93092b5f10c73fcfa30a4e0c458e6790f" +e5af0dac24075d65c48b6924116f9b5791d24721 = "f98127571401dea02b909e22b7e200564b673f9d" +e86cc55fc38e63d011008981cdccd4c05fe1524a = "9a13b92a8dfad6380208770a49c69e7ba1125e7b" + +[98700a41-f20d-59c7-9e81-44d0470ae598] +06544f5e707cc10ec7893c39f765a460ab2361b7 = "dc58642376f4d432a2797844a30dbddaa8d421c5" +7d00a39c64d6ed793dd1095785190487733bc45d = "b29113afd9308250ebbac9818413b8ee9fae6d65" + +[98c9b6dd-1b90-5d67-90ca-be6a773cd6f7] +0e276ddb3bee136e67bbced587a43f79706597da = "4b31e96cc52abcc716c0a9ce2a64bec0853cea33" +378585579c6545519cafaeb0b669b163c290f9fd = "2d2aae70aa4c1a79a135ff2d25e865969e78c382" +48e0064eb384a41d72aac7f44114bb7adf714acf = "58d03234e5613aaea9941269085f149825991e98" +511c88c30e63b18151a23e8c87c746ba12f2c0f8 = "9141bec89afcabe5a3b8e2b6f08882ae8417d3f9" +6926853fd31ceb36f102716c2a7e4627981ba110 = "4e83636990fbf70e62bb0de7f0af94d518796246" +9605fea46734277179cb25a5c416ed717d6447f5 = "2811b2ab5b84b97de1b150142c484c8a9a33dd22" +a4ae2a1c3006b4f80eebe175a2f32a8ddaaa0466 = "c7dd319ed842d933f9da15f86fb74686217fb959" +b0eaa19450499bf65b6f2271d94b69a5a1258b5a = "3c5dcb6721ab065fa0b3bc5fafe6ba2b7e7eb22d" + +[98cad3c8-aec3-5f06-8e41-884608649ab7] +0eef0eb66f5e7954fb951f71b36570a8ede5243e = "460ae7c7bd3a4440d1c15bcb6a2abfa78562408d" +12d3c0ad483d4c25090fdbda92c24ccfe0be816f = "a7385ca239b663872655812f202190811484a1a9" +220145096c0d918689c836b7fefec4b50f155ba1 = "9699a56e8c49f5e89705b82f50cd09a758f52bf7" +5bc9e08c367855b1d4d9412ff1ad6131047d4af4 = "1a07e0785a788a079c4a4dedf5d9fae393fbedfe" +89dfa52fa9679964619a4d857234032c711d0c9e = "a3ac89abe62cab1ed4a3e4023cfdcc5fa0561c1a" +b1f9af4c2fabe83b3d45b2dd2d38e520bdff10af = "5e18546249996274cd53ae895e9ee855b50ad83f" +c1a33fd5c399305099c4a56ba89e73b7c0baa0d0 = "5adf4e0a54fb2a2476f4f75ae5d592a4b8efd7d7" +ca386cd183e5fb012eb15eed16a46ad7f0f65213 = "70d315d3d27759a695ceb2345d7e65b6864da9f2" +e41facb8d58063d56630751f86237314fdcae765 = "ff3c86460bb71e5b85fb20891c39892bab53c470" +e4585e780ed49b2f857233ff6f1887761f2c51ce = "c66719e0d02c5e0f806d1474b7aa9cfaf3069936" +ff93a1c5b4ad9e8a9a79ef33e48c4838ee4198db = "551c171afd681942a45e5caa082188c377ea6d56" + +[98d63f0c-4670-53f4-a117-61cbc77e80ae] +2504ca2f35e17b198db734e6d121be11720a54de = "b3bf0746b249be6bdb4dd1dfb76d995eb4662070" +261a003c0fdb81fd2c9ed622b28357ec0b81dd4f = "e183c6cfa486af0de0dc0f069aa7002f756e8d27" +2a9a583aeaffff627064f28f6a0fa46b12f76850 = "e43d78e03f125ba8e56aa8dea738eae9f477323d" +4b3b27479a16a24dc08714bc26fd5cdce6a6496b = "782cf686cd7e71bb811439245c19c1fc61b3aa56" + +[98ddbbb5-515b-5fbb-b838-e9f4fd00c944] +04ad35d23ccbf2ef1b4b6ac54e0f6dfcb13ad48c = "1ed8e6cb66fc3832e138b9ef1065c355ebd9b712" +14a3cfbd43327b85d5f22ee7c9adabc9d706fce2 = "baa3ea9c124e2aebdfa2645870405b3a797f59de" +b924db5697de915a66f2896a22ce7f60b5005499 = "11e22fc5944ad78fb77ba6a4cd1eaf69ee431427" +d6c057d9b587621cceee8c9c0b6d659e2867d398 = "716577545c34868f6a95a7f5b3379e83c505b878" + +[98dea707-09b6-5a61-a46f-43b0fb0fb92b] +9cf9b0f42b26d2a7e5b34d7b7fddf012f5180bdc = "a7228b5532b14a16b9e4e91bf0d96fbbba0d575a" + +[98f049d2-a028-5a73-bd4d-a8c50ff59ab5] +140b662989e8a3ff7a442fe41dc5f80e359b4bd5 = "d234fec8056712fe7d7b23308597c81ac787bebe" +2ca3ed86418d56ba72ab86e9be04b0867eddcc8c = "ff0076ceabe14bbea7bc1e877c04c88baab8f028" +3e226d51370f30801eb2002dee469d38e694dce4 = "2a855407ce712c18d4e03d95f74005bce3123061" +42bd1613d4f847d3916d8eecb7961bc5d54d0bd3 = "b1340cd3b592e7896cc575352c29c410039a2589" +45f74fafab9701c67ac2d3a48df19913e2047d2a = "73763922207186aea45429b971090ce76db59663" +4f1265e9703a74772002b4af743e1ed6aa45da47 = "af196d9d30e4b63ad5b5c2dd6e3c7a0100036818" +50a3fd3fc6134297908cf8170076cc302f890b80 = "a0df5008bd15dfee206b013deadcbdd56387523e" +61fd27d9ebfc791ef47c4c70091f7724f5d178d9 = "983131d02911c6d7449c6db762edf9a9f34b2a8d" +74a89abd1c0708e3917c96baab74b931ef779691 = "9000ead7bdd2d8b00d1230d4e5f2366b79e643bf" +8cf8f94235f7dac8581a206b11aa20413b507c70 = "ebb366af5ad9a322caa6ac453aa0db1ac0885c68" +c577d00c99dd1477036672c219f51efa72930917 = "6a640486226717c77d4ec7e02369e701836bd2bf" +e6ec8ba890bf3337d4d017431b9a6728893e3b69 = "ecadf9f2a7b1c8bfac581f42e0f9613838ee7e06" + +[9920b226-0b2a-5f5f-9153-9aa70a013f8b] +2eded6599c8a9e1f23240ca051008ae8a9fda2fd = "936068b4831da9a9a882bc9fb033cca9ac12cf46" +377ad95cbaf08b6c38a6163119bc15301d022da3 = "e01340b430acfbdb391622430ca09995c87c5671" +8730b3df5822893c0c744dbd1231085414758df3 = "f82d21697e542c32b40d2edee205a76217eed8fe" +8e3d1b87e28c89e21714b7aea8ce347593569937 = "d14cdf12dbad0bad505096ac05c3a62771fe1cf6" +b4ea88989c67efc61e03b63911f0e143b3490092 = "4c1f83fb40af837c93079ea1d4d822c488d0961c" +f79ed89f842d66ef4b8e4272d3e0b83e2a6d4ff4 = "e96bd215ad61597191d4e593c2d96bad866fd06d" + +[992d4aef-0814-514b-bc4d-f2e9a6c4116f] +11a6134821f8f0b55a8d8d35d763d75ca5b78236 = "88ba7805e50ca676e38dc5b7ce45a5da9180d346" +1bfbd515dee783eee49bd99b68a44733b22b92c2 = "f60c49e181177f8b1d144bcdc9f3928ce0b78cb1" +319ccfcc1135b895ced2d7db8ef013714304bf34 = "28c4699381b999918c8de70b53ecca5a5ebf59fd" +39b9288ad7e7d5786c04071a35f32a01d19bf2a7 = "af430f8d5be4e604d4edae516e3f99cbb5c2f4e4" +7457f08320a026b538e6ec2cc8094a84cf386865 = "b98f225b1e0678d1d34e1cb1b098928e6b845e0d" +7e0bd85c36e87add18c5c3dfa3470cf34cdef317 = "3bfde76702686d88c6d3fc0290c9004f11cf3497" +8d5c7cbb4090b777ab021a361a3b59527393624f = "7970341995d5846a21eb4461839b717d9e71e798" +8e5056a09403ee73305b61627290748374ddbd45 = "27527944e61826e6d7721fcbf11cdd90122c417d" +e08c0b01a21ff5c4e75a3436086c6d3da7f85f9f = "845949d2aafedd56ac2e05cf426121d04096f2d3" + +[995b91a9-d308-5afd-9ec6-746e21dbc043] +15a1f70303407e9c22f1b17a9433e3dcbb0ea6aa = "52b44654025219a647f82b1fa1661cf29a1d2c44" +18788ccfe6f10657a3fa182bfdc2c6e0d88a3209 = "c780b2b8eff4427f4534050860d40080c23a187c" +681b291aaa8ddafcbf863c3981693a450b81e9c9 = "3c67ceb2f96db03e01e25bf032160c652cbaf243" +779b63ea9c0fe069e0a91f867a085c86510f3fff = "a03a75022a87dd7a9a585fd77c935045e2b1cc53" +77b78fdce4ded51558ae6fcb0ece779001c7b806 = "b8b55fecf2daf6b5702b63d4c84d56396cfcb5eb" +79a6f7e513c5226d99e9b6e4598a85770bf5e843 = "476dad138f25dace1c24599b0f90d9a5aab6fae7" +8294d5ec277c314c850fd1117ee5c6efe012acb8 = "7d7134e400223d815bda90a201712d3fdd4c21dd" +ada3c99764173ffc8a64ca1023e2f09847c3d3d0 = "179bcf9d8c73f87cdb51ceeaaac1d329462a255b" +c8d84fe3add4fd683fa95f5cc1d155c844605dfd = "ac210765c8b78859016ae7572256563c279dc5c1" +e2f421de75813468538e6c1b510156479c90f630 = "3bbe76c99ac426e85f3b8150f40b3a979b28fcd6" +e4fc359fe1e309168e1fd0a32acc70c0318a98fe = "9ea2a41297908f02c799d7eb400c6c43b8ee4aa4" +fb8404578c21834a48d5984b0ea8e260b5052cd0 = "d42063f288d897ff5563fd694de0c389573ca9e5" + +[9961bab8-2fa3-5c5a-9d89-47fab24efd76] +248c7f8ead35887e86df4a9b428622742e7265fb = "6c20843fec777e809e8e407a2b267f4818a42472" +292b881f958117a0087bb6edcea62435e616b070 = "e11348d0b81cf8071e17d2fa2d231c2bcb0879b0" +3209edebbee4da2e11c9e47835df650a3fe0562a = "4d53c5f339d7676663a01bc28f342b16c2352af2" +3ab43a281ad7b4c318917638ff281e9dba656c06 = "3a563ba2b906d34747dc7ec5d98d87b9dc6626d9" +456175aa56d087e975805ef0eed82569f6659e8a = "657e7d07c631ebd84358e1b79b98c7f53ea7c456" +58d67088ff816a29b63c12721613f1a2d0f82383 = "7a4df9412f136822eb4401b9ccbe7f8c55af855a" +59b815c07aa4165112743b6ebdbfc7095dfc8728 = "dcd2bf0cca3d411410550b2ec0f8e456feacc332" +60070eb4af0786d9cc8f70e11a3f9803bb2856a4 = "c0d00fe06ac44e32c9843d67b9e0947a8b8e6b9d" +75cee0b50433edc4319459546aa2423c6fd0aed2 = "acdaa5aefe79131e4c2235334ff983f75f268683" +a48fb728ce8674afd86da4d0ad3b0bbfca5ad9c6 = "44598aadf929fd1d35e3bdb6831be9823a7b8a48" +aed0d73a5611a2bede96d73f26069048f16d321c = "4442dcbfbdc3a4c57f05916ec23cb464d17957f9" +b1cd3e1f4931e3fd9a0249ddaf981f8ccb992aff = "f6b8c398e913f395bebd100f5cf04ebfc5540a71" +b31483f991cd83eaa5ba113eebeffc593364043f = "9d5b24d568864633ec5bff6efd55185ae98044a2" +b525002623f42733142d08a766dd7c6a1edfa7a7 = "b15ff609cce0fc026a0191f1e4cf27f0fd59181c" +bdd97f465b4b4fc90ef5e0e8af671ec7efbc0594 = "5eca3d9f59513112bbdfa16fa9018510db147e89" +bf89a611a5e8bda5e388edebe70bd7fac7b6b3dd = "fd1d0fcc151d630bd97157b4aa9e257130a5bf1e" +ce1c474d96611056a50b00c162389a50db26532b = "cf669291f07a34b6846df11193d654c2016c948d" +df1e048d5c2bef92a6e16d3456d0df75ae006fc2 = "4721789fbe637e39123ac6dc9271059f81df9383" +e149a32b78c7a5570da1674f1fd1d4447eefdc49 = "6d4423a28736473ea2088ca4ba0ca10b15eb8150" +e631fd790ecf4548fd6a16337f69a42691d0082d = "54e8390dec11b95a9fedfbcb8e4fdd22b740353a" +f08e61fe1af6c1caddf1b8cffd6aa65fa7edefd0 = "6760dd16b56325d75f06c6b443500f48876ae6d5" +f1311654f9d8ae8de3aaaa65de7f25cefbcde773 = "c1df8a34b3bb4cbdd13b29ac151bc4f16cbe3917" + +[9966252f-7483-59e3-9a4c-8607a6b2a5fe] +188ede139519b6728362a198d2b06fdc6beea4c2 = "e562bce4b0df3ed65562ce2ec7f56cb399368daf" +b456bb073af22cb697914bb381d6d7eb54869915 = "5c3d09ebb23773fd897fd8583660dbcde47da439" +ba6a7e1bcf723973bfa12a06dccc8d6b4f4d3373 = "06fc4ce60caa552f615bd6b36dde4fef0af091fe" +ee92c78a7567c28c440cd8ed3ae531ba4348229a = "9153118ca1f09430b76f096121dd3db4f303ab29" + +[99720b0f-0d4b-5b12-b398-be149b96c7cb] +16fca743b82fb91172b88177953af4af35b62715 = "fbc2dcccbf49fc621583a84adeba0244c6774edd" +27f6a8881e944a73ce0299d4aef241a43ec644b4 = "0e737626cc4a237e2eb25f4a8022ef27d3d6208a" +2f2639a24a2560ee99e1b3e8552f8a3375aeffee = "0fb96e70ea88760c9095c2d01fb21d33934cdec4" +35bc94740c3afd4b974b45ee9921d028889b1fd9 = "65851af6ce4ad29dd677843a9701b52dace0d3c8" +5976f77395b0fcfad30461dbda79351e032986c1 = "d3dd671297781adbdd032b223cf4e85cfb17505b" +6ef60e3396e313a042a86e8cfade7f88746d167a = "337edcb8f1b2d66522cd6cc8c082a519dfe89113" +7b180a57133e1d7e84f7bd78ba2c93e01e12d804 = "c3dda7eb7dfa835ac71a44847803a0217b9f9261" +8e21647279adb3722a3d8a0ad11a43c96fb28fc8 = "771d57f175bf77c4b410eaedd352dc7ea632ffa6" +8ebdbb7c50e6a42d022913b45c486a44d65d1298 = "e6e9f00d5e9875936a9c72d265fa7d9e2c550301" +97bd83eb53288262b8ae98cb6b68cc0e5044132f = "4e637d16bff33f10f992f03b1fa7311a13206846" +a83dc11dc6b9271a5859091e18aeeb9639b25ab3 = "5fefcf37a5ad5e84caf2ac91046b0e7f323b85c7" +e98d9ad8da0ac2b6fe89d7e5e895875bc25bef99 = "076750d69a37f4f8916276999b7dbf21ed0e8721" +f5b2d51c31fb8ae8a1c24ed892bc5d6fa22f734d = "bb61346220206e8a4017ba578d684686be5d8ccb" +f99a82b609721bddfa24976ccbcefd0e06135c33 = "bf1dee7e6ce347d92b20b828a5fef1882f54d9e6" + +[99927692-7a4b-549e-8702-55f97b263da0] +94176b6d650d2a1c9094520c9d6122c3387ca029 = "0b030d985a13b58593d4ae8c975954c043edc305" +dc40164c1fcd044f46ba076368ada5d26b32b1d5 = "a32d9cf0b0fe101c01910228b4da6a3c604858c7" + +[99f44e22-a591-53d1-9472-aa23ef4bd671] +15fcfac2c8a486f746f3488a7dc30c409ec58c53 = "91e392b95c9e6a78783b6e48785defa70d537b37" +1fbe1ed3a2f69763b787fede3526816efa9975fa = "4aacae25234eff78aa01bbe0d4e79adcc8b5ff79" +4f0934ebf4d0c40dd88311950e74415d9eb16400 = "7b534f75e29aa51521965b7cc7f9f6cc25a56733" +72c815023eac3c9d0b30de89fa553a3a2e0fd33f = "25e5917a32301c2e59359f13139bd8ca6a86dc16" +b1c2fe62790ec63aee103ea3038fc26315e40da2 = "a370ecaf3606c260ac67b55950c4bb6d7c9c204c" +f6e387587656e74f6811b37eda3de44a6ba51182 = "a4f25ea105a650a9018af525a372f767b3ca1c70" +f818753b4ff7bde8ce9f89011ea14b3e287cc4b7 = "448758f28fb86f526a45f1807865b4efa989d4c7" + +[9a091434-52ca-5815-8d59-830a134e3a9e] +4fd31f242dd92c9d6433a1f9dcac82eb58b17742 = "4756040be914537eb3724f0bc927717d180f9ebb" +5445fc7b4e0320d529b10e6288964c894a641de9 = "3fd70f47faa0f5e04d233a1b50ef05bb81d74115" +64a41a340113c3ff98eacb120d8b3018549e6d7c = "a4dc67a709540e3202688166180bf1e1b933ad5a" +df7ce9f55f601283830979f18cc589da542c39fc = "3f2f7b39896270067daea5060771927bad09e9bf" + +[9a2cd570-f05c-5dc1-9209-93ad6f5727f7] +6b468204f314c9dcf19a54fefc5a8432fb82a5b1 = "5026c69aef61e60b4b18167dcc712c0eee45f3a6" +964bca6c9ab389b7c5bfa33f5a9c943dc54901b8 = "5273950e1d60588505479e3643e236770d9fd87d" +e2f9351e74ec6ca44cb811e0671d010eee406001 = "98c057f06d3c3effd8677d8e22154735d9a3d671" +f1a7d20e2175f89c171ad30546f66a0445aff02b = "938992354de389a18a60f5500bd52e445818f11e" +f1e7b8eefaa84248fe968e924bda798291542a00 = "b410208d47f435c9a36867bfe6a43f1aa2d59d91" + +[9a7e659c-8ee8-5706-894e-f68f43bc57ea] +2a8f2385a62244718e8a61d3ca8eebf2d6be5c2a = "d35df44808cb9d692d26fed560cd03fdaf117620" +c1d8ec14c51987c04297b28affaf9c495933327b = "d82fbf49aabf49a1e1b3dc4746e41bde15e8b4b3" +c7bac29f3aa79f071417347dc609edb14626d829 = "33bb1524f7e57faab20f1976af8753deb143f99f" + +[9a8bc11e-79be-5b39-94d7-1ccc349a1a85] +19f2c94c77a54d53e19861b4eed9f6cac2d67e5a = "f9c89823904bd16fd952725dabedc8281054dc4b" +1f3b0d0ce4a0ff69035ce173cfb6495ba2a24998 = "1178ed45560b10d6e148bbf71f7650b59ad84a42" +2cca825fecb314e827f43009b10bc6359a5a0d8f = "d485477cb097c66627831d24e922add2e7b36675" +399831f36db3d5054a2f84f3bad82ee88240ba0f = "acf87099d83c59819ef513dbd9339dd23aea401d" +3bab4d16e54108c0276be5e348f40e9ff73001fe = "80ab4b4e4f7860aad669f6c00bc847292daf62f3" +50a20a4d8fe8130948efc2451e2b5899095f2121 = "6184e8e3bc4c9441481f9e42737fac43dae0e9bb" +53521cb03de5e24ab9b509e05eac49b58dce7aaf = "d3d824b69ce89a9f4509f2ba523664f09dcdc61f" +5ae8d79f1356741c74ee55e36794407eb46c9cbd = "20d007565d293dc4b2ff23e0b4259d654a56d5d2" +6a9996b1be3ad208d0eefad0c57958a34db19f4a = "caad92fbcd908313b4c3790e703b80f694d47e50" +6fd55153d157da21e81aacb857a274d9bd842465 = "bc4d99c5203fb3082927440ff24e2b8e6a1dc394" +7ef58fbaef1c4bb848b1123f5b6332abc7a4e456 = "ce29740c0c11c894877b341b163697932690ff83" +8ee82fa0e6802faf185ccf4bf525b9139d132b2d = "ec074413b87fb2424f9b43ba8882182ba1b76718" +9c52c498dbfb80850ff38df04c7cf45264495ff9 = "0dc30872a2eb0e0a158c45906c939ecf3511e559" +a09a18b9559f1da81cfca3175b8c9f3da1c97b2c = "4af5397446ee33983252b3a290ad6f89b8ff4026" +b5f575059b661b63f983dac276652d7777bc6e42 = "61908a2925d60bb91ae5719fd9036bb07750f7c1" +b94a6cece84f576c7b20e82804e73a93335b84d3 = "3ddf8747c72c9181420d3a51d068c20f2de7d565" +be1a9dde178d703e4f2e168fd1ed867208fdcfa6 = "e03c856b1822a64c81c5b0349c49652e4f6062e8" +c8a690c5f326b3e68c4c32e46511839dbb55bdbc = "33759c5b9257f090b060a280567aeef64323e927" +d0969d1d10fd330cbf8d16a515f73b82f7d0139c = "a06b1073ceb12a1a4fbb53fafd3b0a333579d2f2" +d1a806cf893b6ea3f6126bbb92a0ea74a5e9a22f = "56b1d87f38f3a252e18228cab4739a97e6b5a9b4" +ef3ce845ed2b1ff2b2a6dcf453a68fb0facb4ca7 = "d0c63a3816858bad0317acaa4740806e6c289c81" +f530cb450a06ef29caf37be19bf02c37af2c4112 = "9c5eb928d17f74d0648f4bb5ce150f4f10d578c4" +f75f579b0e4476ffff8736ebbd900c1bb9efbb1d = "7809bdaee09efcfabd195fbc327f45d4947353cf" +fec5b0044a495fe0a776ead84bea6a9cf3828c14 = "74a266d8e08fc49161e4920764e9e6732e66afd0" + +[9a9c4646-d80d-55a4-af4c-84afa59d2e13] +d3f2ddce2f51afb9e8868f0f6e6575ec55ed1ba9 = "1fc3018ae8f0d8614d0f69e1372957bcd984d9b3" + +[9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a] +170cad9e26326d6f6f664912e46b918b2f83c5ea = "ab31392bbdd4f7c254fbeab8fe9ee470fe5e5f7c" +e2b851582d9fe9384a6e49bec3b78febf54ae10c = "7f5d718ea83a1c14cabc67c0fb967b5259d00220" + +[9ae72ec6-68ba-53e0-b5b5-d14fcaab5b43] +03003e3855de1c8e8de609181bc5f5aee98d3cd4 = "c53fa6ebf721d07d177fef532301e5e33131c09e" +2369fddf274ecd87d13af68c55efecd4c8dfaaec = "83e9d3d866f636eba4237ce7343eea63759d3310" +39c0a4b8e7316ecc5852f3a7e0d200e53bba4c62 = "05c2fe77cd11458f58569aea5eac6719f853b88e" +4a13211b7537c48715988bca19634de71ca76a55 = "24334cccd0fba2154d2eb0b2ac2ea54f58b33781" +4d4134afedb12a3e36047cce90d75884df1ca32b = "357cf46e559c1005ee12c8af49d9bfe67f0713d3" +5a5a584d0bfa5c055593cb353326349c8a3d643e = "4dfee2fcedd6afcc2f808e7a8ee3ec036a88b16b" +f5e04a3e59dc90a363d88b0e325ad3899724566a = "01835b39b4ba8364976e0daa47a8fc23919775bc" +fce3f952026c6edcd68af3416f51bef226bf326a = "5c383687fe3d7bfe73991d925b998f309ad43a88" + +[9b13fd28-a010-5f03-acff-a1bbcff69959] +02feb5bf79a749b3fde8c35554f663314909264f = "e956d65e05efa1c33d3c255f8e8939f9d578533c" +103a3c4aa0dc9fc7aae7c92777546290c00dbc86 = "93124746d4e8f24698799bb62f538904cc735d59" +135a2744d6f6373a0d22a2745ec8fb16fbcd041c = "3c066bb1c4d737a66aebddc35a4bf2e2557c0879" +7201daea8d87dbbb18ca081f87d6473d282acfa7 = "1e9991e79868b84c1b0dd0a3ad3025bd0932f664" +7e709ac34fdb1ccd9f35466bce09cf96be80fafe = "d7dc7ced64866b853abb03c9f0449d80d8f36224" + +[9b14a902-7c83-54fe-9277-9fa23d4e9d1c] +1bcb9258d2ebba7c9efabd83cf6dc056efbc19f3 = "a033954b764b43cfa8be58c6389f20a65d492422" +2ba28fe08a7889cc9028fede55447ca7c7c2d3c3 = "1d8753237bfc23e59032009e3b739a512b0670ce" +438e0db14d216a3fbc58809741c0d7a2fa7c0555 = "679e5620ced9e540f21a2bbb79c6fd40ac0225f1" + +[9b435220-3ad3-5d4f-b1ea-1e7b29ae9b13] +006d0c872542f42c845e168dd9bc66e086660909 = "baf9faa9f19c65bb539340d38957909683f76506" +1a752da39d12c73be8bada339376c2a818ebe2eb = "092ad55ed044aa5ab31ee800d4ae5bec526a8f09" +72ea141826c1ea926718f75c7c586cf79fb24549 = "24940fb926dc2f3b7a73c79d1b84754bb8e9d26e" +bfa29b503425812cea0aa6ee21d4b8631a02bb81 = "b4118363c5059c9ae92366c4dd75c49780b7546d" + +[9b49b652-2545-5b88-a3af-87b516beb26f] +3d1fe4443fe292dd150f0c3cb47332815274e5dd = "12fcd99a663170d53541fd72051b2b4624917602" +3e4382757b4ab60e101578ffda4d54a51254a7f4 = "9a1d6ac19e9c1132354929aa470ffde7af3bcf46" +40ff35ce918e2c826b82821ede24295859ad1d19 = "622fe1e238d55093a1bd49f82d9f80ba0daa924d" +5c3d01fbd1914866eafaad1bc569fae4cf230074 = "f3494fada66862c080ae84075dd8f534e9723adb" +628f66ba4d990e8d2028eda8805f03509ba95c54 = "7d22318564e2fa572d7f78ae66e1217c8da37ce8" + +[9b64898b-da2a-5774-a656-fd6fb605642c] +a66ff86a58901564d9d1da6271f4e818c111deac = "28defb4e146093a7ebce0c968a738296b2199838" + +[9b8138ad-1b09-5408-aa39-e87ed6d21b63] +451efa320dfa19eb5fa8e1a829d558231541b5e8 = "131d152eda51789bfb29cfe1199546afee8247e6" +51d2658ec85992993ce31b6f4516d893b42783a0 = "de6ae8ce971e738a0aec3688ad65fdc02f30249c" +809a32d3261fba2050929e47d868f8f6f5577083 = "23ade83258bbbf612e1f09701c5509c5d5311bf4" +abc3f39ef87888c73433a7681ee6545dc551447f = "32d4ff4ec7882fa6ab47b9db71807cce3d6097d0" +afd91ec82293f3f028be57d8887b5e2b4ce112f4 = "2c948950eeafaff9b3516df2ab00bc2522c5f49a" +e722b14e28e882f9ec5eaece1e04dd19cecaebfe = "a3814d50e3a595adfebb117b3bab0f12e2232f3c" +f1a4ea05932fd2a6b1098ea92b49250e2062932c = "2c4bb8a61b6ea04f74eb2badc6d6a50472909913" +fa7e846a12158d735c24be8bed184c9ffc879dd0 = "114cbf4f0d0eca5a732c398b8ddd9809c5d78075" + +[9b87118b-4619-50d2-8e1e-99f35a4d4d9d] +748049ef9f861dde3176afb41d5808802c64972d = "1422d0ea51576e1e3c6c562ce9c0091982b8d749" +be291ccf5da92d9320878aebffa5a60421666d82 = "874b199d93235f5b8fba0f6306a1f05056b923eb" + +[9bb6cfbd-7763-5393-b1b5-1c8e09872146] +061cb0da9b51ae0ae082ce04a14befaa2962c21f = "ee7e0f776075b0547564e83baa098c141074d03d" +67b85cc942dfbcebb86be3df1e2836b046b627a9 = "45695eba734fb8456472cd8c86f853c911305404" +7a052b65c832728a762ae0b178739dd9fcfdf7ce = "710f7fb20cbc3341ab7f236af7255c19d2f64b19" +91f75e6bb399bd7f298ad69ed50f735e24784a0d = "d547f157dda6b96df7162f937311e3d9d641171a" +a41017a1a6adf12f269203c3a425760a9211358b = "5f18a53935d81d6ebb31f2f369c60ed0efeed40e" +a8f21d4fc93898271cae79e3b078212df990bca3 = "b4db36fdcb5d7094941349c61bff4577e14d31f5" +dba7ce602f0ed94da95f2f258038e66817593539 = "455bca187747a9ef5760efc5dd246208300b4c94" +eba47b1578f7f30bd84d9db6f60ab74911475867 = "db8f26354eb2917de0670e9e46f8ad6dd641ec20" + +[9bbee03b-0db5-5f46-924f-b5c9c21b8c60] +1e84bc50771d741d19a9b8313ba060a6136e1576 = "7bf3b062a84939c4010009ba4e69b9a12e4c3659" +3f3d0d9249030a9078e3121c27c645efa4646286 = "306742d7d49be05cfd2f9f3adbf574bc9f399a9f" +989e41bb1478512c648db3d5f8972b5c99b7714f = "66b13990981d70013fbf5e5f61bc481f37b67f1b" +f4b7b280309b8b6ec8a77bc871f9939a6f44992c = "d91ad84cf355cec6def160d886257b8231a31cd0" + +[9bc6ac9d-e6b2-5f70-b0a8-242a01662520] +3a7c88f04aad3ed9446731a241af22701309541c = "fd16dddcfe7632f4af5ccde6ea82e634a3e47091" +4ad828442cc3c6e8f1fe3ab3b69ce5877e882fb2 = "2b63b7319b0db9e6efb29a6a78137a1a3516ac63" +a6b5301ac5bf42c3f9208e9acbdc3216c72af9ac = "ead9b973b2dba944a21c5dfb36ac5a161e520d17" +b7899bc231bb3ee47b3ee439fe41966486f90885 = "f252fe2124ee5a3adcdc69aa7764d12c615f4220" + +[9bec6418-d174-5fc7-97b5-85721dcec3ff] +4841d0ac1a2bbb68f2e1341992f7d6777e7144b8 = "e30df8fb51500d954b02c5ec5518a9cfc7dfe395" +69e3f39afed966a2482f910446e509669e3c8116 = "875233dea8cff0657d56ffac1ced4cd066f087d5" +7ed534034bf6c54e75c1c22a077142f2ee22e615 = "691659b20daab2f5778e4c548edf15f634f67132" +864d7ef00a260c1919088d21d70e906a517a15f3 = "268d2c31aa8a9b7e0f2bb965292203c41539a33a" +8e1195dca6cad02bf2bdb365b58376964f0fce56 = "e1d6bcb8e90ea9a95e0266d3adbe77cc0232bec4" +b281cdb688cf57ca3e287bfbc472d94aaea64602 = "87e1622f589f6a2ad4daf9e1e5b63cbec1463fad" + +[9bedddac-7bd8-5a76-a87b-3e0c06c424c8] +3042923c0c9281b0ff6d7bccb44f3ad3c161d9b7 = "b76d024a67c94a7d8066dd86895a6eb33337eecc" +47a2bb4ffc1405a38e5779ffa4ac8db7717b0222 = "6dce80bc17f800aed094e003891dc650bdd4657c" +8126431217eef00ff3d353c4e81afecc454db49b = "06bde0e26f8a2fb4fafb0ca8444285a82adb4d03" +8dbe5909c8dd5c13684fb3434b764dbd368e5b13 = "0b74b9fe7d3cc3e1b18eeef5bf8a4849d1db62ea" +e73bd936b0cd8472bd69f273af4fcd3285c1074a = "622f8dcca41778b349c031c2f0073a692c3e9f3b" + +[9c2e70fb-c67a-5ec7-8d93-51b38135a8ac] +13073b8b3c4c796a3628b0f2105117677aa33b42 = "c2ea3de6316e7e739f98be5b66efc9d83fba2df2" +17bf37d2f90173f081cab19ab00cad0f08e7b59d = "365bc14a9e4c779596cee0886c0bbd53ba36720a" +2530372a9c7fe1cb134c1c93cb01025956ef3b20 = "d1d314b55c70e80f621644ee5d04868cc50f5741" +7a62f8bffe8aebe5998f01944d74d4f1968e5548 = "1c0398fe0c7cdf4b2e2a0eba7774144c32618ed0" +80ac91389d255dff9eadb4a359b10cd2a48f7cd3 = "c9365e61b678a80fc6309c2b90f55f5f21a041de" +8956082b24972ba0f10c94ed14cddd2a8b636fdf = "44635c54f9816400e99012973a4e46545c811e22" +8dc2718828e4b34d58d29980974f026e8e8d6519 = "e04c4f207cdc9b2636f2312c7e5f6ecc806be83e" +9c7fafb16061c94818b491cc39713464fde3502f = "8f91956d2ce632269f6354e5d70d3227471a913a" + +[9c690861-8ade-587a-897e-15364bc6f718] +1652020390e63ba5326c165fa924153b40b786d5 = "05b14f540fd2114252010f12931db5dc2a55b3ad" +adb19d2bfb6cfb3ae74d1c1b814ad05f284a9858 = "0e4ff08009941f04bef7e72cfaa15fd00a01ffde" +e5ccce0b50d7cc3f545a365b6e136bc19b2cd5dc = "3d709623102d736446e8a3a7f79ccfe01c404179" + +[9c8b4983-aa76-5018-a973-4c85ecc9e179] +069f51fd6bc10b364fa1f58b36b21b8936f86e25 = "da1157f236aaee6b0087c60776636bd168a2aa24" +09cbf6454d0b8f5b194aeba3e81fca1c25777af0 = "1c0308cc4758cf6d16407ebb0348464218c992cd" +0d987a8df6f2d3ccacb25988d8000ae5c8e91455 = "7f8d4c3483838d043e370ca1c9c745ffcc88687e" +1138cabafaceb577661d0b191f72aaa98beb02e9 = "86432da91d1d8c3213e42820a6b19dce35b2b3ff" +11b3852f75a73f7bc7ed722e7be879e884c06d55 = "2c9dafe83d722d78e01abfaac5d4ecf64febb85a" +154fefc9766b84bd506860916a3b8ef60198e9aa = "6af46e3fb93e98f2e36cdb2cc4cea9a1ad70c112" +1b555888c92392e9b3861065950aabf369befb4d = "829b4a3428ce3ac70130216526cc14546460cfc5" +2cbe95517d4bc742689a7605c489c920e6b30b1d = "e9a4a66225d9d74f05e8abaff6249f897bb40056" +417c5da51cd2d1db7019b743d1844a16cb5e528e = "2ec3f5adf483712420b38eb2320ed10e87187c6f" +435301f18bc08e8a58bb0ec3dfc3393f40059d99 = "70095f9371fb066849052f01c2580c37715564e1" +5872c3a35cb88f712b8caf6c1293e1416241a234 = "56a4ab2be13870f4b6ab8611dc6a8f3ad0b9fa43" +7467163eb0152880009808eff5a3b56dae14e912 = "f00b4a508bc05f63c612fab9f6f696352f7711ae" +87e6762c8612b03e097351cd96c981a2cdab5558 = "30b9949966f786e25bd49039a7a5eb240b0c6291" +8bdd8d24f5561ef420fb6e67bc742087af68a200 = "f644939cf4c6eedf5c1d6f59a2c8a08a1d1790c7" +a8e8b85e7e839c36a3f89ff50c41037cde07bbd8 = "f36f927c96f2d6243cdc291afb3332eb2d4c80a8" +b7149bd73084b2e05e2c14e135b1eccdcd46dcf6 = "36ac7fc29c5b2e615d31f837d82c837dd4e236e4" +bd448e97d046e3a806f4d0f73c60b5fedcd4d7df = "c0fdfa96248bfa8fe036e64f070a3d46a546263a" +e1a059eeff593d04817786c79d0b71cc1a901cd7 = "830b61b3aa1dd88ebd88e52f2bed652db758d6f5" +fa863e054faee6cd4acebc3108b115742e1d3cf8 = "8f7a49710b93ae6c83adb9b14dee017e4952bbaa" + +[9cb14a52-7b5c-50bf-af31-3305bbc37d16] +0c053c4322f1bb582e597ff9be28c9c3351dd6c2 = "e82083591a5bc44370799a2cc00df524863f6636" +3a12c07236079f5adb250c61731425b13024eb1d = "5d37f3c3e553a7defc0f5a13c562ffa76f8b7e4f" +88c8823b1e22a6df8ecfa02026a4c1f003cef4ce = "ac9498efd2c1672627f53263b97f233d5122cd8f" + +[9cb23587-5139-55ee-b027-91422c7131b8] +0c6250a01e2124aec399e82dab94b0edc02e94d9 = "de2d9dd989d657365115a7e2dd5af3ae9e04d0cf" +d4fedf36db0b98195bc219efbb9aad11260ee74a = "de600868e3b76deeed3dfe67ceff3717d84cd194" + +[9cd584b6-1a68-5b24-b787-24af5fbbf48b] +1a3f3e5635c756617c91396e4a76cec6547a9bc3 = "c3311dca495a26eff75685ae923af268bdf10c9d" +bea55a8a203aa592149be63b8fabfd92a4d14339 = "a92d9314dfd821693cf0b16aa822cef29fd1333e" +d1d2fc2a7333ce75a93eab6daacbad8635908c70 = "64b7d66df98a7a2477b9ea97f6ac8e7340cfcd64" + +[9cfb0768-07a8-5146-8897-ffaa113e453e] +b264298e1e1f56f319bbf0871a43b84b1c7bd025 = "4ced19221a57d10e58e5349710274c8d1bef5cf6" + +[9d1c9671-1ee4-5573-9bdf-56d4f028cf50] +01511a087c721dbb3be616a85bb68aad13bb8b5c = "eedf143e1572cbd6187b665f5dfa7076a1b8c62d" +04ad02c49809d4a2eda87c8da058d68e789e1a72 = "58eec944de3aa7282752f67de5f9b2895a43ccbb" +e141b82f68d79cfd586add3e7126a20c706e1cb7 = "84d96982e11587785005b440092cd8b8297966a9" + +[9d24351c-2990-5e1b-a277-04c4b809c898] +1203a43cf1c46cb14fc78dcecde320673f3a7311 = "3e062d08bd6a0c0e1d9e7d5fac249964f949d7fb" +19cf619c7107e5f85e8530f849c29389e43cca77 = "a72e9f5b75d2b0f3617fe67c82041dd4a92eb6ea" +7ef705b432ad037fdb9c0db9c8755c0023026443 = "164dbb1359c3da07913fb21b37c4357e1ec3a91b" + +[9d4a7304-c3b4-5347-99a8-9cc862165b3e] +3ba50f8052abb264c62329fde29ec335d748b215 = "d9b96b346df0288fa148464021e82eaff6e014e3" + +[9d5cd8c9-2029-5cab-9928-427838db53e3] +081e40dbed568cda70b99bdcfe2fd9d2b80f92a0 = "9fd0915793f4f6bcf504ee88d8b2a317b14287ee" +4d99970da5e60f394d8f66064a7bd3d8808b14bd = "5ea051284ae28e1f514f28d87d7675f657f72d1a" +5619b4f38aa64253751e44bb28aa280d1489f955 = "43c65aeba76fab513a4708bf424f3e6e70095192" +78bf0ad10705e219e9a4ba2e94e9b38a0f80c3c4 = "8178ae2119650b54962cb00b4780ca68a1237a9e" +a132380e51770f0c9eea1c51559a61ffde7b273a = "d050c3c76d523fc7bac6fd4c56c6b7bc0048b4c1" +d20702ee51123e6bc5d9c30fd8ea047a270120f2 = "b716cb443774199f0ee1e5e930bbef2295f171a5" +d74e028bcfd4ab1c69a6509834bf33d13696376f = "9bd72de90d78d153a5eccd5f53a124921810aa9c" +d85a650a11b281b90664a05789f32ae325b92c36 = "ce8b75e2756d6b807657e957fcc1b91a94630efa" +d9556418bd5bbb233b50c07983fb287900616939 = "b4dff059012a351d44866d5390234b8550b4f564" +dd41dce7ad843a57786fd031f5a74d00123f8aa3 = "eb0f683d45a287305e2fb1559e24d65aa4a05178" +e0773437ce09c0c5faa9dd3f0c3281955a5a3fed = "62a6ca74b9c2f637f1a15109cc58f21651f22427" + +[9d70cc08-aa8b-5bb0-a0ac-e009eb2b6668] +13f8b2f4d1fbea5427d3bdff653c8671ddf0faf1 = "3397d4dcf3fe07a08fb54e2ee2046dd9c2974d3b" +16713162c1c9f04febb0d39214fc9a5df6a62f42 = "481807aa1b7bee53d5eec612d1ed894916814188" +1d2ad8ec15e5a6fdd64ed7094178bb2d8dedd2e3 = "63e4b8dc2b183b9adc97bc20188c675323f68809" +24ab00d48b06aa9a4fe9ecf8b1334d7a241ca7ad = "f3fe42c7617c72b3111e73af81cf6eaf59ba844f" +8dfd77a36a57b0c18716ae30f603922a6c61547a = "e190b56ca866d97dae3dde955cb3bc99c1723fff" +a54103c356240278f0819674da9360720f36a3dd = "d4b2f994f2f304b617f2b1819b377513b864b3d8" +c3a82777fd1a09a3563b2f973efd24ac8c088ce0 = "ec44bea3d0bec3692aa93a990b1370e5fb0d2bd5" + +[9d95972d-f1c8-5527-a6e0-b4b365fa01f6] +1c4efb559a22be15004fd8072625efb8474403eb = "cb2f26210851b42f3d81ca811c4032fc93532939" + +[9d95f2ec-7b3d-5a63-8d20-e2491e220bb9] +2e12a6133e977e73a9829f65731997fed45dbba2 = "e9cfb41345f41f0e79aee290b3b64c8b8ed8428a" +53bd1dc00b40bfc97aa6fc7d847894a137400dde = "10725c8e85b87f338c9f390d714c11720ff2b18c" +61fbb3fdc03084cf22226680bd14125b6ff87983 = "414988187f35240b1ef944f9ba3c3417233fd649" +67cd7d33cc27845632eb348da32005de69a93707 = "15932971105f6b638e28c4e3b93a53c337ee0589" +899016651079e50c56b54db6e090427212ed88d5 = "9c42373e5fb2c08219d469f43215a745ac86e962" +8ad4db2292792ef89498f58136c19f0a6868bfc3 = "5763225fb4b2886d04826763dadb4c948418d07c" +9570e5f2e21a3276015f0f8a9371c86f940ea255 = "6d4809736f23053c8adbcdbc64340d6fe6e572e4" +ccb6004aa744dfeb8cea952aa7ee349c488e167f = "9de0228151948e25215b92681d277744de02b199" +edfee3f0b1c037730a03f66cfa66a1bf95701c40 = "c52a6a83efc1b1f6daddf6420b308f36032df853" +ee068295f197804fe91e0b05accd06d9dfeadecd = "6072c7341d8c2646d605cd1741fcbcfe3ce9f0bf" + +[9e28174c-4ba2-5203-b857-d8d62c4213ee] +00bdc84e55ae0b2e198a8d50a2a90a5ddfd72260 = "416c0aef5a427aebfdb05b84408e767033fb374a" +03d2499d6aa0dd007a083b55cb06e44378a0f940 = "069f0cf72ffcb3d60c6d3cb77089bd5299c9915b" +0cea5a34994ddfb75c343cf8f1dfb4fde30801dc = "018b4d526230983d8855630b16b824c98f3a6262" +115b2288460c15a1e9d1af23e25f473d672124a4 = "42f06db4431bc89f492cf67c530819baff67f164" +12f19302cc5c7767343a2a56d8f3ad0eaeef363d = "b5bd7330a953a57835e9990bbf3333591fd12ec5" +1719bf41ad0a2b7495523e92aa68cf33a3d3f5b8 = "4dad48ab6c42c7827c6ee58234d8679babed3179" +23ff75735c6744857e484f02c47b32d7515e82af = "0e9877b6c2f217eda2eb1f3175d09d3c272868cf" +264e086062f3c39adba7997f187bd54bc0e6b218 = "28db737a557076fc94db3fec48a7ffc5f410969b" +33a680e7d386c9e1d80ddf055e936708c2470057 = "c8e0809ecc3a2cc02eb949f5e59a2f6f31c49ef6" +3afa9bae8d00364eda4cd3607d625e8e9e6eacb6 = "47300529a079f78d9f8399cb77c27b139b5dd3c2" +3ca923cd0c479a4d2c8bca851f254693ca0d8f16 = "f00491a3d6b5d8162a2b3554fa96f6f9ab8811d6" +4585cd05377e9fa8725ee3c069ce2ee654698777 = "942e04556244ddf77f483972ff9fc4712b8d3657" +461c08f8827752ad2b3c57b4643f4a5a4d350417 = "f1bbbcbef3330fb364b422daf2e03e822ba1e6a1" +4959cd5b60424ef62551dc4acf8bb0bb0872354c = "143fe8aa0c754f51222b31e2825ee679eb0ae6d2" +4a73bc0fe656447e24abee8a83b5a5bba2b9a7d6 = "09a3116ab9b319b6b6b2aa4d3655566aa8f63dfa" +4d0398f457caad09dc908b704cdd5d22ea3a49b3 = "e17ff1f615095138220eceb70d4b1c8347bc576a" +57991d0b4c66dae97ee7d4a617921570e72d3984 = "6876ad48d788265a2af7fc51f6aaee750f0e0b6d" +5b659ae5b984909a734c71fe9c53a79d07ab2e4b = "a4566038b57c376c539ee08557d1333289955afb" +5c503c281869608baf94b4fb1f56e3c2b34de974 = "cd8e66c8083c4d115a01a941845c18d5545271c7" +68ce26216445bea3a8862ffee2f7f48a08b27c99 = "00aa428de09f8e34a8dfb88cea15e62f3e2024ba" +6deec8fe46bb91242fc7cc1f02674818105c26db = "a9618661aa4e5d8006be3daeb6228d47c4efc665" +708a18028f39f575339f48d3f50c818171910a98 = "0949e3aaa8098145e8109283bf1b2cf5d072c920" +742ee7e1f8e9e1eb16386c9862ef3e7413d544c9 = "4edf0f23f9127825025c76f83cac8c77b996e738" +75444ddba47b2cd4a03fb35c6287f7f726a33578 = "ed12e5fd25ae5250f4c17fca7f4deb5fa24531ac" +784716b66db7290ed898ef7345c9eb40792af9f7 = "c26ef084172bd9d9de7ee17e623bc6131339aacc" +78bdefc54a29660302257d8a9d58632ce2a6d5b5 = "ce884faf2781474c7afda13493a7bc131982821b" +7908e25f056e0edcecf4efcc1c5521fe34f05ab3 = "071ee8652a79514fc761d3ec35a0ad5e9c251aa2" +7eeef60901208e8ffb0ccbd557ba7cfc4cb6f28a = "57c02c408b9d4bfa03507d2182dfd73006e90140" +803ca7975d8b5f43610fcb7504f09f2e573b82fd = "fa93c2526f944ca6d0432c82ed6b2014e5a8c3cc" +80dddcd36c59703729d945e602d0b9a486a94406 = "33b53ce9b711659d8a95e9639fba5e75ee008547" +842d763f4bf0447af7b7db0ee0270ee648ae4c92 = "b15cdd3a5f4bf0335106c5d04339833a04530f50" +86ba965cdcd4d1d1604653212ff06774bfa9f15f = "b011ae14d1fda81e5fd292812bd7b0173fb47279" +8e436e7ecfdae04e47453259b764737a3c9da10f = "4d73fa6b4de600d1dbd10258b872a8f60e52681a" +9258820a0762fcdf7956cbe6d4f2881fde466708 = "0c936d38449bcf9e37c5e7c66714335702e98739" +9ab6b8e6b47bc9541a4f1370e35348dc6fd2853e = "d3a0bbccd936d1efdcbea737ee7950469ddd4eb5" +9e4ec6c4f5821d7ef21897da0883852ab24753f0 = "903de8bca196d10ef47520f15585822916ee0057" +9fd47f296b754d4db481a3cb44fa6f8d99e3927e = "ecd56c3be8ca9a8ae46485800fc8bad92722c2c0" +a016a93a40de13f932d5d5468604b28c02e0d383 = "d09aaad2a51a09860c702dd8aa378b94aad43ee6" +a4841d98b2b2e5b9c74c5a829ae26cc055af1044 = "1436e387f7ee5aa5a7dbabeee9ceefa5f8471f80" +a5fc72d205dbccef9d23fa3352729f899fb055ef = "10d766722bfe003a2a5d1a4051a6e5ca87bead84" +a9b34c136eefe3d75b35a49229ba011ea51a6f5c = "83497c166c23b09d9f833c7d78836153ca897894" +b0d298380106c6dc67bfdcddd56333b7f4863a61 = "168533fc004ad21f24b96809fcbe999fc2812d67" +b12e1a21290f99cf1fc4d5f90d86858bb6bd629b = "2f0d3c298e5582218b6afee1419da65d0909f09b" +d1312ce4ffff0aa84ec542bc39e4b5c5a6ba15cd = "89b6961505dd9fe3fafe7461ab3ac133c7ca08c3" +d2777f762912ca94db433d4f2017ada82e50416d = "576293ccd3fa94b489a6e8fa9723322961fc7cce" +d57430a7e55546b9545054cfb5c34724dbed1795 = "36940570397aa776d998bb593a3ab282f9104258" +dbba2bd83a0ff11f5d9933eca10341fdc67be56e = "998eb778709aa808d8ef067d9d3783631ba683aa" +e03c07ef728a0475279407b7370e0b05ce862a63 = "b18bba2a494c440faa97852c0aea9d45cd3f7a6f" +e0ef102e3a160d62b2a23ab84418d290a9e24f8f = "1f780fe32fe0fdf5387666ae44a6586b70e75f3e" +e2553e57468d5692f7e13f45ddc888670bcbbfda = "d3703a7b565b12162cee1f88784a3a857b0505f0" +e932361f0ead9cb68873b36694ff841649fe2748 = "7af981285e7e89a442fe64bf5ed84336fceb8d35" +ed936d1c2e7cf20f532e02c35e300d125fbb59ae = "24815a2f751fcc1e2d5ba6903b4710cd1c1771ed" +ee1eef3129640c7b41eca0430e0125c79fe842bf = "1b1e9e5a615d94b55d0339159e2c97fc7e5f9bb3" +f29943b2cd167e45ad9941d0b619d8261e8ef3f4 = "6a4d8f8a554993bde11d5a01bb202290eda75061" +f9d4b990ff5bff388cc084ae0a9cdcd53fd36bfe = "5e1c6d9eadedfa7b98e4b83baf7a4f9af66bfdff" + +[9e3dc215-6440-5c97-bce1-76c03772f85e] +02269a3d6b6ff08fafaa2135df5730b5ad3f8e79 = "77a9fcce27e52daa857dbe54e649e60bd2792983" +06017cb782bbbe9090ecf2de878ee621237c280d = "bb1f0c626c87142aeddc9af5b05e119673e34380" +071dd22c73d93594896419dd5f372427d8c6efae = "8d9aea57aa769d3fd05a50311bdc290b52b8b9b0" +07491c39d3b819f65f36ec57e3892238644afed5 = "f11510f0884f9cde03b53f60264f71f0bcfc985c" +07b7841fd703844ecf69b5392bc5241fae56ee48 = "8a94c18469038429c3e4a4fcff3a689b13f552f5" +07e5faeaece6c07e18d41028a27ffc3d0e8958d9 = "be181dde1e3a640c8e7826cb909b4b04ddc30598" +1c1d71ce182fe28433d05d66f534caec9734a37f = "8d743f6348b74e72b982d6a1e5dbdf16c3ad1de0" +1d1841a1faf0ae4999f9d522a5c9715c4692c193 = "6ca67972fad2957402bb2934820864f7aae4462a" +1e7b06675a340b88ddafb5eff4c5fb614b2c6524 = "a6240c97848c161a6df7660c851f6584317f0e7b" +218e2450086276004c9b4f13b9f3a653b7274067 = "66c1c2392c27df77f03aa3e17910febfcbee3d0f" +230e1df3158a5f273cc4811d3e925a397f8a897f = "c1b5ef2434a5e3f937087ec294c6d080c6c6d3c5" +24c595a38838abddea935b2b84fc016327bb0fce = "458a8f37a680179271ea75d1baae52b7df24845d" +2dcdc61eca9946d62dc72b6f24bf55e3605346a6 = "1676503235e2ed01524b7140300b2b4afa20dea2" +3165705a0145302c48a8ba9e81fce18d7ff4ca8b = "b28682aceefba54b582bbbdc46b9c7fafed3ca2e" +34ca0c152a2a4f3d12de3acc718f2f36cbe5dcec = "0e75ea674130affbf75d4b0d8c0ab236daeb2e59" +3c3feb47eea645a803afdf6cb66af2a614983fe9 = "d669a757d8ec97df52c87ae3eedb59a2b95d826e" +3f8bd8171a0c85f7919b6ef9084f5fefe9409fef = "0b7fd232b040f4ea22a8a727504a97711e8c5593" +42a73fc1a038ad73b5f7f41faf45072a1d6c186b = "61a83d88153342250e8b77ad39f919c1dddfa2de" +42b3c03efa9fb15b778264aee458ba82199e81b6 = "30a7d5f76e785740bbffcf7cc0c462d1e543b5fb" +4301ed5b9a8b11346851235c30f46b248c841705 = "e1dd853f953c47f65423ba19dbb3a82d1d13cf03" +44496b2052fcb3ed69c61348790867a6de975431 = "94245d4b52afc3eda0a5e750fd9d7d808562a6ba" +4828125aadb912f4128a3c399c9476f148c71a37 = "ad76e09b7378f08ab28e9cdb53c5465ac00762e8" +4e98aeaea389a8a0428f1fb951a9a1291327093b = "44cacd1ea24d6226f5be4a666e804b1e219a65c7" +4f4343d6f092cce541c722c16e5189589c21e145 = "a25b025aeef6f1b93dd4046bd038d2e25c5e387c" +63138d3ac4ebd9c343c0e082d8a45ce17740b95f = "aacb2b98ba47845aaac147055b1a41a2eb8377f9" +6a3c1c688666c54532aa485c934a67d77966d4af = "5ec35386aace00859337ddbb7ca56d221eee7579" +7175ac58749958077edb50e40e4880ed89dcad19 = "2f5171b48145039feb564c9c6c0b6b3e1f448036" +74b23d50d1f8894d3323e2f2843f3ff387ee7631 = "ff756e97e79dd3b970586be3d14d842ada76a09c" +74f9c9b6c71fbdaa29b5283805ca02ccc5c889b2 = "b9f56a202508a6a2b106b4805d011bdca5191243" +814122e0c5b68a585c28732e9f311d05007a9dfe = "388a0d144dba62f80ba08c51be4a5061ffea34eb" +8220cdc547082e514ce0a80df89091bf9f3b9fcd = "c60c645c99e3c04667f53e735338739544dd91cb" +82337d7b82855bb135c50f30cc04614b64bed243 = "2d75f2f61033fab18402d540846c734bafaf27ac" +86704b39b406b1509fe41ddba0f70a5c0ff30961 = "8d3969500f36d227cac10ba6bfd5436028cbb297" +874d23a26f35b2b6a1a116c31e717d274ef7357f = "79c4dc0a25206b59d119d7ba813e4acbdb624f5b" +87acbd7eba6bea6a413429fe21d133afba9760d5 = "a8fea54d45b7766492d1ec319ab83089ea40f059" +8a333555ac7d76a560aee6b4df2f2604da090f8e = "e09014f12c8d78701f13777f606cd5df6ead0e45" +9247dac058cfc08651daebfbab2c0828656caa6b = "a8380370241431657c879885f3b2575dadaa6ffa" +94eea28160ce9c5bfac6dfffa8ba462030bb1dd4 = "bfb7f678a375ed542f44c9328f713845604f5b1a" +9acf25cb8a09382b3b829b8c6d475136ded577f0 = "daea6823a9581972b4af90482cc67bf5a6628cdd" +9d88f03b45eb5a199fc3f0c9f54411f2c147ac66 = "21cceaffad916f7a719fef35d75729e62c44fbc7" +9e433492a582b82dd4ba61b764663b05a02a57e9 = "49e53a15c1544d9128b79a27cb43cf51e84ac70f" +a06dd10a7502b2d8c3efc139814e9a4813d3a00a = "9f08ebca15724b964bcb2d18a5a2e929d095a5bc" +a23d0a53a3b20832ef30b21f413320836644268c = "ea849a8d4774ebb6ed7b4f56d8b9f5c771634bc6" +a5a4ed72b3a21a8af3a098887aabf699bbeed689 = "922beac136f8841778aca5a595ee9a7389b42041" +a6af977817cd11e8ae2ad0dc2de28b273a7b67a5 = "b4cd73b1f61cdc011b36bd8ae77757e0078c869d" +a8c28306520fd41289f64a9ca9e7947555899eb8 = "c9cca7fc2dd1b2705d5e1829e9e1675e6b5bea2d" +ad708f7a3137822c28dac70450768fdb557f2aa7 = "772c977a60cd67392f1c371e26e2f46fd2d980d7" +ae9473023b7eec6e27a5d01a47e178d43cceb6b3 = "c0f58533e81379691468c3bca58821f3c9f49caa" +b8cba88ffcc86a96c2e2da3c973ce6d475174ab3 = "f795088a69a4bb48f7216f122caf7bfdbd7e6741" +b8cf90512ea6ada3388bccd9e2061d50b80aecea = "4c7765ffa386e61a00b9cee742303cd2e7d780df" +ba2e73abb88a8cd3640acc7679f1782dd747e2a8 = "007af2c199107cacdf333b7dec061fba818985d4" +bc2dab1927ad632dc2ce2139bfc9d83acc0b7f15 = "72717d9b80bbb1c5ae1d791e568851ba2da14a10" +bd329eafdf58dba312f647ea2cf400a788de5944 = "ee6f1741bbd7cde62b30954593d11206c6cd2d15" +c2b0b971e6b285981d98e516f3c52ff656199a1d = "4b43dd925d4a01fb0a27983dd64ba126430e7cbf" +c334780d4f80a20016d84aa5e24a972be669bbc3 = "746583bf09e36df9b756d3c6350e6f4a439635df" +c390fd4dec87298149de962a6c98c15e325575e1 = "6e7b3a8ea21467eafacd7956651971f044941041" +c3ef0ba3341ce21d61bd0ca6de96007feb195c89 = "694d63f65974090c02271ddbfafca9a59032660a" +c7389e37647d88808329b81d277412f66670a057 = "5ea15d8625cc65c1cee1628a10ac1d0078a4514b" +c8d6b1ff738f0c2b098610a36d7e8b75d8725366 = "193a0ad811abc35044e4a48211735be7c33aa52a" +cd2a3f99cf73530c0704d540ad2aa60e017cb6b6 = "465366351f6e76678f45e8d5141bad5d957dcf81" +d39db57c09df9698eea9cd02b8ea580ade341dd5 = "db1692ab5dd6111f8477ee6787af90c7ba9d9c80" +dd47e557377f7e209f9debb5888f52e436c7b3cd = "188372280e89227d1542b7133998f81037523d5f" +de8e1360add131eab199968a3bebf31aa25745c7 = "fb51a0a329ccc07b5810b1580066366dd1778ea4" +e3dbbbf8340064a71ee07e3c9f04c1da23292b19 = "2c20a8689d4c8ebe97d043324559555126a3d801" +e42766c323f940a902f0da50bdddcbc61848a6b9 = "f8f03471822e8b92cfc857d610acf939f8b5af9c" +e7c79bd45e555825e8b39cec4444d39a4a2062ba = "73a44cb61ea2e3ffecb12f02cd007e660a5ba46a" +ea16eb5ec634852b2c9e77b3416546ebb95686f2 = "d01f0012e00d8a9b05b634cc9abe9e1d7973acdc" +ed1c21523fe66c4540bdd5d93a4c2899fac30db8 = "6164a8bf801b230a0e980e7c0f8ff1595f00a4aa" +f5dd45385b1f2ccaf73d8996cfd92d1bda69e2e5 = "cf509406d11346cf1bb4a9cadd9c7029f5f48974" +f5ed853d332fa646d3b8bc3f3e4199b364091e22 = "e68aeae44d721c53bbbde984dd69276ffee9a23d" +fc08218dbf9c680f423c3a4e8ca94cfa74da8e25 = "48077c80a01ff6651741c40b08fe5a131f08c2f3" + +[9e511cdf-bcf0-5b3d-ab4e-3598940ff39c] +1a3e93b30b0e63ecd11da293c5e880ef7da35c72 = "89cafb048f74e7c1ff598732e0d7b0b33ca2123e" + +[9e70acf3-d6c9-5be6-b5bd-4e2c73e3e054] +35938a7a5e55ffcb9b035d79a42a4c7ac7c1a8c8 = "6b6cba66373b63cca856f42378d7a4f008eb4cc5" +469ddb5d93e52c50cedbf09e44236b182addc940 = "401812c6f3cd6e54a2bb37c2c5c183d5e538cbf7" +50ec26b777453baa2f08943ab8bc8f20e18d409c = "71b8cee11368095fba700b2baaf68edfcfa57850" +6fe41930a5917b85c5c48309258f43829f77e55d = "a8599e26d021ee9c220fa654db21864b6efdde96" +868c7b6925e8c2dd5f55fa77a5658dabd39a34f5 = "821994ed549abcfd2332650d9b693113bcc521ce" +a8fc40cd027635fa365d254943502ca09ac23d60 = "d0f7a200a2c544a1ab0443134393fcf940d15293" +d060565193ea8ed821a8d7d44fda7c7292f46160 = "f080c8b8e010361c0716be3f9731682e916c57a9" +ff16ad35d8acf035fc61d85d73f54a9e3cb8ee49 = "a7d50756dc2f235c5b46ad8614911ef62768ca56" + +[9ec21e9f-7406-57b0-a65e-294f80374cfd] +3ebd054c9e96d27202375cfdca1218283892c240 = "bfaeba0c60ef4f088aeec1b8dbef17e81ed90074" +400d935ae8e8370886a33812bffdf150a77a111d = "8edef04285c013e7b0b37e7bb787ae97d01936a8" +8b917c7306b2f3f5ad39a695baae348aecfa27eb = "677b973c3f4a87533819530cad02f3ad0b270358" +bd17b0aedbed08d544c0d43c8dd42250a28d21ff = "2f78c4b9eec93e974502629a0ade6e789fcc8ae4" +bfac721d77e79443dfabb4e3936bc5071de3a3f3 = "ba6fc64fd367f28bf2b3f8346b26a889893295c2" +f5be87433d6297508150e3b2b050e3786fdbe1d8 = "15d40eff1074e48c382b7a8f89434dffe31eec0c" + +[9ee2f689-5b39-572f-ac38-e7a530c1478e] +00495f2d035f968f96d740ee2ab8490b2ef7591e = "795b1446f86bd69b50a0548c91222651f910f77c" +088c0c60909afd09d739f254f9cc37d019718104 = "87197ab392937f3181626d0abcda9454de4323ea" +0d1f59b2533767f6201438e42d9ddd03c383b9d5 = "8bdcde9bf32ea7f6392cb6fd36de2d95c9630c38" +1530225bf6babca9f7e6fd5888def19eca8778aa = "cca790b34991a69d78f52c94eb917d57766d1126" +21e4a995564b442087e40447db0b21007b71b9d3 = "d838061a76cbed56a2ac4b99f297d18d707f2edf" +32400a55a9714fb19216eec10244dcf6c4a1069d = "6e01e31fbc59b20ac8be43321e11e33c989f5714" +4226ee8cfa3ed82e058643fe1abc434ef6023250 = "6ddb6e8839e752ec5a2b9b4b33d17c0ba224298a" +633270f2592ad3c753315944050be71b4a0839fc = "3dfd99d723c9a2f5f795da8e6a436bce91ae95d9" +654f35c6c350636e6c3e25465fda25f68179e620 = "e2e3473b1730608b9289186caff2ed51bad7423e" +69bf2158d36e9225083769ec3609478917e064b5 = "e33d2baebce5b1e08c1771cfaf9a66936faf75ac" +7be248de7929a611883432239bf4527398e4fbe2 = "aacc65ee6ec33b67b1892fa4fe4b99a78f6d3cbc" +88e074079a9723b228649d2f014ef5d6238c06fd = "8d0e6ed984d46b54c0c6a7b9f6888471da204ff8" +8f165dc2f209d9d3d77c862e15c120096375d513 = "d343e528dc95a4a842afe38d66745a3b1721ad13" +906e4304d554dce57c29cb2a369ac86585c8294d = "4f5a663c86ce8b10790ba984be9d5912a528b0ad" +9aa84993ed3a9823548b63d135afed766ddbf105 = "eef4356cb94db90f0ddcaedeeb98a1bb60e5a533" +9be4b870dcf0852a517d8ab8ddd4cbf68d7953cb = "b291ba881a89356994bf9fe7a1b36ebf9df8f111" +a364f001eac10af91bc162e17432d44e4366f1f1 = "42b0a2f9f392f4baba8442a0937c7d0791ba43f2" +a55ecff6b6571b9099ca163da3be7d04d1114797 = "84094192ab0d62c02d15629aa037e74fefdc1f33" +ad432068bbef034ecbac1401f158bb525c6e9f0f = "759d2315f0d892c1f8fa9c2daeadaee62eda8fcf" +b319e149fbc17849a7b3ae21a6ef870b063b0440 = "d6a2662b9881e892ecbdd44bfc8957921ad116b9" +b59dbfb75fecdeb0a4a2054aa433c68fd52382d1 = "e207148f076554b8902031dad20726ee2e1f6d68" +b93a2a4ccecbbea291e4e248736ada28944eba54 = "4019625c6c932e539680aed5f2dec064a478c483" +bfe46dbfe4725851142bc7209b6e67bd14226a7f = "fa09b75337819c7c9c33c8c4ff0265846f5b402c" +d0a94af391fc5689c90e942fffdadc849e08bf6c = "b9a3bb578f53d16ab170fcf7a69527e9cc4ab4f5" +d430e873754d8e4fab91ce426ecf160fde775d28 = "41d03703906f7fc6bc331f482e173651e7ba9943" +d6b97a48cf7e4c9d44cacdc93114ee8db6cacfd4 = "3a5985dba40003e6baccfd46820fe51574db173b" +d8ae4e242226ad92a95cd8662b4d15f600c9a893 = "7df0952a06209e7e6bb9e0e774317d502628054e" +e845af7203aa7bce901ad7122f89e04f6b896260 = "6a77b5e890b584188dac4bac7f26f84d5dfb4f00" +eb90cc4321d2458cbc8a8cd35d85ce2c5d222ce6 = "47b1f969456efe216ac5c11ab9059a7c3853a66c" +f894ab575437c133a7c35890da3c6a06b4e36e65 = "04b209d386c788445c88a76d42e232f377859711" +fad1962b25c57197b2d9a5bdfee45fa2de8c0cb6 = "ccf39a4bc9426614349d05861bcca2d8057b2a49" +fb7b1140a2216a9211d132310ba5868286c16a45 = "5a897ddde44a29ad25c668cd908fdb4f852f6b3b" +ffd391330c9ed8af5c33b7b9088f71a178282e0e = "bdf133190cc82d9aa78aa285149447386608cdb4" + +[9f1343a7-0369-5bbf-908c-557b4757cf4e] +531c5e68552726f6ad4f0d866d53e958b8cf0cc7 = "ef01181514ab7b24ac6d62e5d97fa1983419abef" +802023d2b341bf4e40ea1cef28f60e5abf7bb181 = "d3500441ebb535e966a19c30c776eba30423ee08" +a2b3d7006f91e7c7f55e31a38f720f67a6e5a025 = "750d6024caa999c27ae3ea353602c0c56a5d8dcd" +cb3f3dce04b87f82d2fee2cb2791d7c498766a42 = "33cdd1a522161e81dab6d0bfe766092d8980c4ba" + +[9f4a2347-a52b-52c3-b18a-5631cfb5128d] +06b23d9541673bb4e2cf6c9006548073f2fff478 = "3e5821efdb68976eaf5842755c3c860a5fc09919" +2783c3ff2fe1603edc8e56ceffa35fdaccae80f0 = "00b61dcd29b642255522c987fdfc50cb9113dfda" +a475106a1cf2e9f2b2a1407b44b05bfe762b59f6 = "b7b727c4609e57532cdff17bcdac54cd95b1c9ee" +a890b49b4c3e1534ebe3ee0d12b02a4d8044a261 = "4f4cefabe9d2f844b93d0559246d1455c077ad2f" +b940902fdd4c5a9e87f0fee84d79efc218e83c0f = "de20f52cf9c4d81c32eb5b7facb349ace9f50920" +e95c11cae95a0fd0f060dc5c053af7384b6bb78f = "0f76f3bec23a3d16686fde5edaca700fa17a1b9b" +f9ab84e72761a229dc1ea4a8e17a544fe9de3886 = "75bc6b745af79591cd68f1ccfaab6d8468c71966" + +[9f57e263-0b3d-5e2e-b1be-24f2bb48858b] +32b8e131651e9364ef5cfa106ee86f833aec5087 = "6743def9cf1324af9affcbba08e0ed1c046fccd7" +9350aae4694c3934dc299b9cc7ef0823411153c5 = "a4bc92f5041b14e4164e110f03f85c2f3c48d88e" + +[9f826617-01f7-5ddc-9699-a00d146ffb6f] +ac2a7269866e9ea2e4041ac74b0df0f53affb8c9 = "0991d696e46908a65ee4d0a274399b82a540af7b" + +[9fb69e20-1954-56bb-a84f-559cc56a8ff7] +95abcf50f3b25de1d9b5d8e0e572af16af3522f2 = "6222f8728491a42d4cfb72699bf89ddce5d260db" +9a989b804848bf5f08a312ad2b67b71a86015080 = "750dd309e53b51e63884e3a9309d45d07e854ea1" +dc648d31d29726583b5c0bfedeff716b45a6f4e6 = "5df9b142e099e2000bf8893b74267b5829bc3e40" +dd44576e3ee52ccf9e7aa54818e5c1e5b4d238a7 = "c57f743ea76e424f7ddf2afab7b104e1c7a5c131" + +[9fdde737-9c7f-55bf-ade8-46b3f136cc48] +2298ea3f2def5511025f064be6c63843cf5c5781 = "ff950034c207d93cdbd49c8f86932cc995965232" +db4152af36a4b97e7327e344aa9e42d084947229 = "942ef3d8965287100e003f288afc5a778241b8ca" + +[9feee581-b078-5644-a8a4-58372fb796b0] +54da15e7bf6d52c1191ad8f02a87704c722a9c9d = "8bc4bd43831911b5928852ee8496feadbed71c7a" +7e06269ebdcbaf95cb990420c20b7aa2cab7ade6 = "44003802f03d258569e35314c2e5d7aa69bfcfcc" +b248642fc07218a7bb6bc999f6f712159e0d1340 = "6a5148ddb8e14ecb98c89addea700df053146387" +fe9e462c58138a9c12f925af5ec9a1f68a069887 = "cbf77a0f7dfbfa2d6029a18245f0e04683fc8700" + +[9ff05d80-102d-5586-aa04-3a8bd1a90d20] +5bdf86e23ef2a12f6c8bc0defc17e1802561bcc0 = "4c6ef704927a0af9aa6b4ce89f08256047ddaf2d" + +[a076750e-1247-5638-91d2-ce28b192dca0] +008ec9dcadbdf2a7361148705fc71e92e7e461c7 = "565c0a101e534d56889c989bfdde4b89e37aad78" +185393cca6a395c6989a124d802c92a810a6ef91 = "c6f3ec1f8213c6724d3c59edcd3d3486099709e6" +1e0037042b365523631c63bb67237a5d2dc6cca8 = "debe4de4abaa99f96df1a774225d6b9edd6f9f32" +1f92ca4e7ba36bd399f92e9047ba22fd90b78ab7 = "e80f533f0f23e50693ff9a7c486ad6b3abccddb9" +292e3c74e71df0eb88a51f1d784ca4365a243484 = "093ccb2d7223c66a56c849743bda308a7736c39b" +2a371851aa6d673f30e4891d7535c1ddb098770a = "5c57648f4149f382d4ea07b2434940d2bcf8eb63" +2c21d3a619c0f8f14809ab809921e5be56cea81e = "8d10c443c627012aa4e5bda027ea684170b9e94a" +35d24569d400c810ca1119e339c5cf090cc07cd5 = "852d425281743ebc98fd3afdd8fab014711f7f63" +35f0c919a609706d4189caf29a76013488269e18 = "e14fd6f904e7a477528f721fe15e19e67ead95b5" +549bc3680c3c9931a4aadbe5bc3bf063cb835a11 = "e202ae69c3d41512516b8a01c652a005bfa1f8e7" +5ca36740d9d39cafef78aa6ef2f8ab7f15b0518f = "5aa33b87b3910a03f1e507f1dfed8a0bed8253b5" +5d38ff84602c8d5110c000c69af2ce3f42fac78a = "72eea7fe13838d8ee4ac822727b04f6a33fe4807" +607970e3954f88338912943085cd29f65126f2da = "4fa0edfbc197ee27b0878c5aa17e1e32de919b9f" +6a7d7321157a291157597dc44f4f2a068e6795cb = "e47b48295bddcfb481de40575b37912339dfe222" +6ded0d07a619416778737b3c087cdbfbecd64ec5 = "f29efea128834d64f4add6597a9d843b1a086897" +706af21f76cb375ddcbb36ad9172cfca12ee52e9 = "4eccdae70fbcdb0a7fd7144869bb37faa405f2b6" +74c6759ac73ca54f92c74b5457fcac5bef7df32e = "3f3cd3f6eb6b7000c258255329918378938965ce" +828e7d27127f928a28f15f65d6fa0cd22f9a1728 = "82cdad67525f92e76f0f8ba0234063f75cdfe290" +8bc871dc89caf6bca76756f773efdb604791b782 = "949eddd5aa3aa5ffbe7fd72835a18649d477adad" +96f94a26bf53320d95f2c8714d25fdd0ad10c8ba = "9e80d73616ce6d2c2876fb5455067a48243fe671" +a07d7099b92753a876a12ddede2265b679550cbe = "88976354ff94d8b86953865c3c07565f7b026a9a" +a0d529e19004805ef7722f3fd6f3374635a8cf95 = "dddf0d8007e4716aa26f040575bb5087e0fee9f8" +a4b7d5947b93d4d48b821fbe9a944ac3baed188f = "e945ed11f25ceff5f07d9e7da864299722018dd9" +afdb5df0d3d235e5be10675e8f90068781822520 = "c491258056c925b680ffc917f82d5e9a6979efee" +b08458350e39435b38c9b6420eb558c601907877 = "49d04954f3c257006719f1f54a567fcf4bbd1a9d" +b42fa9399011afdcdc99e901154f74eb869b687c = "27b47e272b2e0c74d9b33bd42a4b1afcb704e540" +b69e3239efd83785522aa407b06b2ec59894a405 = "47818ae2d12ebc83f5876e5b5034e6f79325b016" +bc54be1a9f0e5877eadf46c5d345ddcb84574ef3 = "ecd7f047c7563109eb99e3e7b4f35842462a0e49" +c1cc49692676549836dadef455bf54ddfc979817 = "0559d01c628b27c80bcafbbcf309eef511b57bb6" +c6036588c893f9661369068a07b28485a6dd411e = "f6b27f91522e15b0fb0f9fa790ab038b0c548b62" +cdd190f8e6c578ff8423eff992978517238be721 = "3b48f746e631d75cce9733ea104570c41224f5ca" +d445611db7dbfaa3f71db200c5d17aa265fe4ef8 = "817cee7ce7a3013ea303f0ef94e28ddfd3c1af07" +ebee362be54160a11e64054a2f30569b7173cfbc = "72206e0518fb27f7f458ef77ab90c10d155ebfa7" +f3bd416168c2effa84c1ee15d4359fbc0c664a6c = "f51e513eaaa41260b6b34433c5d5733c55256a9a" +f7b1864001b018954c53b09165613c28a65bf326 = "1e1bea190136031da3cbdf9f952253c60f760e13" +f87845a337e694c8951fa7cba81f28d53b2c9d82 = "c8945ac2c5283c0cb381f147274d08419de8e09e" + +[a077e3f3-b75c-5d7f-a0c6-6bc4c8ec64a9] +02c440d405ac8c049b6e351a54939f99425ae049 = "d1162b7cabd2749dea71065678130998ecb2f8b5" +0e7f78499860574982db4db61209dbd32674f83f = "bd8dace7b70cc1b6703e8f09c60eab44f0d15331" +0ef4b2f87be5ff5fa3bb28e8de12392ab6409ff8 = "9dfb49db17fad01303431b9fc0a5949fd6d0d9b8" +138c102867452683b82db4579c749a5f36cde83c = "a624acf9d9713306885208df05df5cd69526855e" +61cf58991f979eedfe4899bb7c73075f824c0225 = "1f1e6f3bbdaae6500b85947095b164b8bf31ae33" +694c3e08fd2ec4d6125ec2760c494790590d570c = "cab388992d9bf9cda8ac614e4b814f5ad69fbaf0" +816bda7442cb323784a1786314c6da687f13fa68 = "97b0eb21784147b92836f9317b42b89bedd847fe" +a57d3ed8e33a5ee6595a2dce7ad78663be40b359 = "47c881e23749bde2591479ecfe770ce153882367" +ae0c4ac43d83368bd0392d7b4205a51a79fa3f46 = "f409c20e150e48dc6bdb9645cd1c8a3b70c118b5" +b0ca3a0d514083c7c876bc85f40195de6daa1729 = "17487e91f9cfcdd651682840fbf6c84395d082f8" +b570b8cf3833825e14af12de231624f92c476afe = "b36c02354a32ef5fbf3242e6574ad76bf5fe5eba" +d60400bfd459c4019c7c40c7df1eadba9fb79743 = "b503e76fdeb66996823b4f966b1f08a5837b4baa" +e8d4dcb213b93f330ead1955a6db108ad6d2b417 = "2fc41c3ad0701ed17c34d6801f8fa257bf44850a" +ef037a7865ef322872e505f29393d332c6ff8761 = "cbbc12393d892d936d65dde97c35b05c1e7a855a" +f406dc3ec79950e63d79215f068a1e650e9f66be = "df8afe69050fd53a5237a13beb0e6dd951a41441" +fa6beb452c1afe21b3ffa47676a25538733b5818 = "e9f2594dbd2490be8b6435625e1f07ec168b8f1a" +fe37c4b3f2fb4d808f5b681d3cf1fbd079fb7f67 = "bfa8500d6ce2eab7e3c47c00f4a07e9acd858a90" + +[a0979ab6-dee4-51c8-812d-69046455aaa6] +1699210de0b488483bc6e6c443af1b275442a6a9 = "76e398554afe934c134da5da3b0f893408b14534" +4d91473348db4bdca6c82859c27368c6f4131981 = "942c79a6b92943859a2ab68804d1a5ca14803ac3" +52c70aae9c53902f3241b0c3be0ec2e40a743147 = "0762649233dd8633eacacbad31c2486c357599d9" +a7bff688d983edfb716ee8c0e16b3db7ae18314d = "590d895eb7d93ea014143c0ee308dcc8ed326310" +ef86983ab8df3b35a8d1749513c0b4f9d304af77 = "ef4f06cd356488f851d75c1dd7716cf007470077" + +[a09fc81d-aa75-5fe9-8630-4744c3626534] +0077965035a7f8ea4649184b75863da8c168b87b = "405d015965e14d695e816416765047df28ed9e93" +1d974dca954433ce592d5c7f9f7f8765c78a5270 = "97093bc25bf85cbc24f2f8dc05e7cc2cf461ad96" +23ed55e46631980e98f9301e5658646f0c184876 = "c345685cd4c9537ab0bfb2a8025e3574ce0b9761" +2b8e45fedc62240a3371d6aada311743ec26bd9f = "b660524a9a5b4f2aefa93fe1d045599214a1b557" +2db10f8f137ad7682a70cc15ea774b64bbb2ec4d = "ee4ffc2ded6eeb27fbeeba7b087b595390773348" +41cca88658f48d343817896985f8ac672842f13d = "41bfd22b3c43a9c16e4a417517a15432a8174018" +421026f2af11a07b67d99168e588f44a849c330b = "fee4f5302f2a751f92db3a42317c4773a01d7ca3" +5bb26fce4dac8cbd458fbf6eb5c2a8ddf58f5ab6 = "dfa18cc27bc5d078c031f92e49b1645dc7f901e0" +6963878e45c0dc31dc41637344889f705ba95fac = "735e3e000542e96a17f899b8b1c9df936b1789ff" +7dd9acb178d0f83e697077399cb122b2ef89769a = "7877c2e97911961dc7387d5fedfa3ad75663ddbd" +86bfc0ff9ca727df058f04fe28c90fc9a23297ac = "883a887e7a07cd01ada7882224285c4fa795a1e5" +88efe950f8e9ec36d1563522784b6e91e064d541 = "6e23b3248442a6931a50e2e80b52fe786b0580d6" +8b01c7e1f3437e2c7e75e43ac7701f3eee2d0430 = "b2a33e79c43cc85608f7e7b61cd78ec0eca23d76" +94c3f76c3b586bb61a2f0c771324aa7f321191f2 = "c0953cd0ad97244120b23e279d58ed2d1bfba838" +a278c6d92cb195ea153bbb5f57ee27592bdb82d0 = "935a43938a6754376fe1509ebd072c3e95f7c51b" +a3527941afb91414b939db259100da89723dc7a0 = "22e3caa72cd3197fda98e6c5a4ae9ecb5533abc8" +b31e927e9a7591ea5ead2e8d0ff33acb59381f1e = "7018f57e8bd2deabaaf4f2fe2d1b574ef24edf46" +c686fc13143744e43c19ad856bf7f0b8ee6f967b = "560d21351e8167f8a3a9d942b5a754e687a7311a" +c94238a82d185c7c713b206a3c40ad4e420d314e = "b93b0a39bf090461e39a504e837488b43a6692fd" +cbb9fb341e4d1f351cb1a724a8e47923eaa3c80a = "08866d09c55e089bc9eee4806c7bef9bdfbee9d4" + +[a0b5b9ef-44b7-5148-a2d1-f6db19f3c3d2] +192a3fd1b7696ceb4e4ff565cbf5b9725c881cad = "7998783d3877797ba00a30e706ca0ed326c1e06e" +1f3ad87cce8e06f8a61fe2c907ea417d788becda = "dd04cf771de29c25f2a80a736c0200399d0b610e" +2fe24c9048e60f61f7b93061e1b82f8e0495b0d6 = "1df05327c97c016eae774f0e60d9c51bb4f38c38" +cf172795ff34bb98ccdeef788050cc85492a192e = "f45266987aacf45c42e34c15df0bd8eeb8a7a42c" +dc67ebe923041e49140b8fa9aa95798dd6020a71 = "3d0883ad1f419bccd0fdaef6decbcb1c6c532f09" + +[a0c94c4b-ebed-5953-b5fc-82fe598ac79f] +478248290fe247d08a2947e37e62a5d0e55a8c7b = "7f06455da334206513e2de2bae4d82aa537752b3" +6b46832f6111e1cb6d33c2786b991a21210af20a = "5b91e0427ef3cbc00b3c9a302fd357cf622d830e" +815cc1107873ee57e2a3f8adb23cbd95666a3f2a = "671cd96ad07e82750c0164727fa9de35a4384559" +939bd577b10a1620000192096465cb1f7706003f = "fc8eb9505fcb3e7fded9eda02cdc812b3962e08e" +9b22ffa3a83a3c68f092e01a1562ae7f9741969f = "59a7a865c5e799c3044ddb2a58ef3af668b62b45" +c93c44370c1d4047f8f4b7cce115675cf81edcdd = "bf9d741efaf4c87febbf8ed576a3e5f71e4917a8" +df09164701e109432be6a0720dabf3a7646eb8c9 = "4684d9773da121d76ac46fdae4036bd1460414cf" + +[a0d4ced5-b29c-5395-b614-ca030a679c4b] +8cc43a8bfaaa940d3bf3432e3160bf08750a61ba = "95f8cb0f0352c9b67c02461c14bd6ac7b5eda8cd" + +[a0db51d4-8652-5775-b4fd-a48cdb0f6f1f] +5b52e27834d774356e1f52ae7df756a7575cab6f = "70ebf6d7b9e6d51cf41a6a2e685c90f22990617c" + +[a0f608ac-68d0-5108-ad9a-0cdca73324f3] +104df63a5b9de2991793e1f99fc117f037b72357 = "f560e24e984a39bc4f21669652c883bb0fdb64e5" +130740d5bce9832808619fc785a990c34a6b0c32 = "19ccd052cb0288072c55adebf4a356dc391f56ea" +1e7d1e791df66620dd477989e67b22d19f83e0ce = "040a5d4008e6b65f796873af4a2b446e4add4e09" +3f0587e428284c36b22dba135c5aad92e4ebf8d8 = "9cec9886a65f830b805f985265c4640dd862144a" +65aa4a133568cfa194dd4b6649066bbc7fce85ce = "18f8088460e510f28850ad524571efb35e2a0d79" +683e4e8bc4f7fd24250a914e119f0f2eca17cf2d = "f8e9532ad3b98fe1b670b307ff6936e2a36893e8" +848d8368181e14988f431e8e831900cfa83c6433 = "39b1913f6ca1dbe2b9d514f600bd8e4de6f7787d" +988e663f64b2d7558d7b76a88712800bdd96d1f3 = "4c61d44345e5a9727567bcbd9cfc1b2115670bd8" +c007be1f529039d2813d001e19c11a6030bf391e = "006fd56f45b7bdcbf76ff0c07ec76922b383db4f" +c887cc47723cab9c725a2029dc2e6be2540c4d68 = "5f5a142b3848076bb94b55c6796ac8f2b4aca712" +eaa95b83a90d6700f4456702aba94c88a7284d20 = "088ebcd64a48f16f03846f038d183643bb67dda5" +f0a7393e8f1a3fb49b103e7ae719d7739e9a8747 = "42a3ba8a7a8609391b89f5223f621f4bb4dee459" +f4810ea5241f2347ee525cd221775fde9a6d17c7 = "6032f86b6c946ae0d94b55f6fa30b91a9c411a20" +f57c854fca9eb552aa3387c0a7e86c584369d5cc = "49045ea3acbe2cb2b246bfdd74f937d22f261638" + +[a10504cf-72a7-53fd-8489-d9cc60862a4b] +02f6d749326a8d8f47316ed2fe4717b4294d891c = "5c8aee1a9ebce95439e57b240a0a62649893bc2e" +127127a5b055e832e66d37348674bc602655680d = "8e7f10b07ab1fdbfb5f59fcce5a4487da335e943" +2fd2dcd6cc09052e9799096a96dc14845aa587f7 = "71fcbfe7d47c65a31610f856467ad5c18e6170fb" + +[a110ec8f-48c8-5d59-8f7e-f91bc4cc0c3d] +0933b9da0b7939f78a3398283d9f2586e594ed99 = "f86da552299ab098f7b37c352225966136ba0b29" +117ce77950d1271ea1e4e9ceaa70651d8e180be7 = "df31bdba779a57f13274e4c3999a7a98fe8aea6f" +151846bf4ed0ddb439a7d396144718dde548dfce = "ec666d863f9023853d59ae61f31a0a03d3f3ba63" +1cfd96d419329f3618c4e56da609027c36411e8d = "6e160756169d77e051af39ad4060505ae95043fe" +24e079ce7999a7b6a6c4c8203a89fa68ed3dcdd8 = "ed21d0661322eddb81e94aa9c69eca01fd18c2fe" +37458717cb347b55d298c311404b5f81740f60b3 = "91d17e6f7449900d22c66f4dd898ef2558b979c9" +398c434d54fc47fa5362d297cd89274a2f44c410 = "cbf22bdbe743d2947b889d42d4809238b5e992db" +4e736eae369fe2f2baf1a3832474cad3d06eda9c = "aee6c5fc1bb9c9a4a8a452e86a5ef163de41f631" +619f268f172f795766df40bcdf783e160b62432d = "e4b6eb2ecc30385b6e87483d459893d794eb5408" +69e8be6ff94c35dd2b1df909214b456992a17df3 = "d44ff7140b2085f4561e019403f57d93485c05d7" +8274c6d100f2ff4f224227ace7ecd949c54906cb = "9366049041c3d32e0f18ac4cafbb649b2ecde0ea" +9489be634b1e06b747ff36a84dce4a500d23a10e = "c51cc90f406528934f1cc6acafbab42a160f44ab" +95bbb42b1e946b1810c045643e3f6206bcb2e434 = "2ea92caab1a381c18d3e9a8b5e2035e8a87a3a74" +9a0dc56f0915ea89e3b5cd9c875ad00ec5b9eb3d = "9d13d46a00fff0256e548858039f1ede9ded9be4" +9b0c9098e84fc9eba0b27f7685f96eb23d4c98d7 = "9a0787d485700c4e09cb8a15481d4ce30511e871" +9de09ac6a0a5456a7aa2503e4c989442f1d61878 = "0fbc7edb1ded69adf390a9f8421d17df784dd9fe" +a59a103d9d1683898502f7f1baac4157e30ae906 = "19805b8dc97863fade93af4867b7cf6a0a2dbc46" +b6be8608f68c05f5692e1bebc1bf2acbf26b1f05 = "8cb3592d591be33c378c7ae1ff576557ee0f0bef" +c2d9ba8d3fdf48d4c7ac093b47116b20bdb6453b = "61dbf4dcc2fae0367273049fd8c45301c562aca2" +c98b72d2b082d0c4a38012f3b06a95cecc5e18b3 = "91c0b47184bbbc24114d748b7a2cc9817cbb94b7" +ce3889e1a2edeee071aa810a024a56d258809075 = "a3fcdf910e36d4df76d8300286ff8828b6a7a0d7" +da8c3264c83f44f10e269c7b5fd822e258cca079 = "eeb21478ead71314ac6c869f610c6e6e2b2ec5dd" +e0cfa3905446f34b601bf6469a944e31338137ee = "0d139269bd5bda3f4eac1222ad15e002612deeda" +e139e6d43da9252e8dcc54ad337d3ad26b4cc578 = "7ec86d29012f9420c5916b52622cbec2de5df182" +e37deaeb24a2900bc578f03af300bbfd73f9a2a7 = "a56993ab12a5ac27376aaa7091c456e7ae232d6c" +e455d3e1492bea01cd15a63cfd358277b013a6d7 = "177eee08cf753dcf9458a4e8ec5fbc908a783d4a" +e66ad082ff324ebaea7fe8255c3afcdbd6c69a73 = "428c95131872a51317602ae61c4f75555301e4b8" +ee13827c58355bfb7ddbe36eb84415a31e966474 = "a2d29ef8f2a8c340977f8f5357e885b12001d9dd" +f121296805e5917d9c4b828df84459c4da303cff = "3b697fff3b143fca958d78330ba6ef667e456d71" + +[a134a8b2-14d6-55f6-9291-3336d3ab0209] +02aad4c3ff776a4f279418096e8ecbb1095a7948 = "bbfac494d5503bcf3f469763399b7fc9344a69f9" +150f012b81ce9a706bc1da3cbbebd04a2ffe406d = "0e6b224661d38b4381311d1c37e9ba94937db156" +4fc185d8009f9f7d6c3e14219fe7742f072842ed = "05cf3f7597e303e0f4d2aadeaedbfb8162367fb2" +53f455efbdf4fd1608e8e90bb6488d2408e48275 = "74cc189d0fac08ca9ba5554488913600fbc8f80b" +6b405b9cb07c9d6e38f1b195080c7e69a92bd1d9 = "c376274a8a918df92980531552e3f5c0aba4be3d" +6eb8405c3ca99b4ea783e1e6b0972c495deb4e6f = "62fee80903e4aed6d4b0aa97e58da0e6e3b47446" +bd0745c543ad4b5f5c03a6b459b3c9a97edef27f = "e340038ae5f12e873f968c701a59457141a9cc0f" + +[a14fa8ac-7845-53f2-854f-e9bba4c623ff] +5ea237439733a7c89273824de37055784032dee5 = "358bfad2edc9b6eded3aedff7964e1d4136c8deb" + +[a15396b6-48d5-5d58-9928-6d29437db91e] +00a8b226f92ac650640eb9b2a9d0043512b740d0 = "65fb28077aea36110d8975a386075a8e6f06b121" +03aaf530eff350024a96ec7fbeecb5c537877d8d = "dfcb9e8601f24b6bd0d2765378a77e41cd5ca2b9" +20b0909c550c3f9fbc0b7679d355e9e5ff9702b1 = "ec9e3fea8316c018965aa2fc9f7ba77b329238c1" +260dcce588fbd0f58eb313cedde819ae67ce7f3b = "04a48e423ed1272b9f227f7fa46a07f2f856e62d" +2efe94f2c82f951c115f853669daf05cea41908b = "7a23b1a9556552acdf8b157e5d6c22aa1d46b9c1" +3232322cae4b7b5291a7493c9782762c5bffb6b6 = "2a4f1f2472146a235da4e6f78e76408c72884f6c" +3cfb0d63c3647bae7a97dae273b4246bcd52dfb4 = "6c8e47af3d7fc405fea4d4bbded83778d39ce536" +42e4119366b0f85ad54e2c349ec1dca10376e2e0 = "f0ab687eace7d94b01158be9f7906fcf3b09e470" +4b67a06ea5d8f5588d10cae3fc42e72dca1e5166 = "c0b86354d5698e557a989b1337f370e9186c2180" +4c498a992d6b54c842e63b7d5ae0af2e973f00d9 = "7e7bec97cf49df6ed0e6c8cbec67f752e9c505c2" +5dcebdba2fca01370fccefc53b7045fe89adaf3d = "5762a77c93403e56a54d5642692638a256bf2d1c" +6c8e5463ac71b416098e56a242fdd9448f2c76e3 = "591ba38a8991deb3d31863ac55eec4f0953f9efa" +743f216ffb816d248a4f68a9ffc3cb264662b03f = "704f517cdc4657c7cf03519e7b961a799aded606" +77ada53848a1d3c66923b124471622ff3b175987 = "fd6e9820bb1800913c01733a3446eda49eb42a81" +7b159a0b89e3ef7bdf6d4405048aeff283fb1f56 = "9d8e9ed0b4e9473c20641f4562d3435fd556c78b" +7f31ade7d0c555ecd201438592510ba289154faf = "609551342b7d46ca4ec64249654ca77be5ed35b6" +7fccfba53989a4d540992dfc612a7c57f3b76488 = "3384800cb1d4397abf07ac8b259200c994de1758" +8d038179835bb7bfa2217a6c4d3bc659f1d19a29 = "a87704252648c92d3f24dd4472c9853c0b551a0c" +9619b4aad89787db03865715bd4758bbdd95b398 = "18021778eaf4e341cc7562edad3a9390c50388d6" +980b34f861cc6f8b6766235239b0127c18325063 = "52e31acc833c81c4b6564616ef4c3866c3207bc3" +9b7c70a772a803b8d491126ba677c6e9e146b90f = "f9855b9dfad82b481129b3f139630b572a98fb4a" +9c952dc70ccb1ffd559155102659b9d6a6a62b99 = "7637002727a6b41d2a7290bd36605c2479d2c9eb" +a732ba7cddb3b65ac4e45a84c7634ca5b4a7352d = "c8b89557d13cac2bbd01d2c4868997ce938d9215" +aca71edc237df101ef3581363a8834cd68a86053 = "e80ac28f3c5e117a42b1e046ac0397b5e53d101a" +ad980232fbd8f2cf998895375fa83ab4e043ae1d = "bd9bfcec08e7569cdc7671001baee6df32d1d621" +b605197f544792c5e9aec1c4787d77a6775b997f = "848e18031e4e59a2ab00043c5c0e122f4d83c18b" +b994f83714321afbf7436f0ae3f23a7fa598c7d0 = "9abfe73896b36423ae7f732101b6202ee02cb571" +cd967eab38497e29f0af73097cbb5c88d4774953 = "412066c71e83b2f4b0728257d2d2ab55ac37c602" +d22ef46f4a6a33345cf644b5abec9ed9735229a8 = "63357c918520646585c61e0dfa344e01de90cca9" +ff57a1ef6189dce139d60f78ad799cb90b1b811a = "e98adcf45d0b0cd31d2a5ac074e4a5666a233137" + +[a1957575-6125-5dba-8f92-417d2d1f4a46] +693437c9acdc1cdc5071841fc555b19b53e51577 = "776cda2650f38339252c65a41223c3353f8231fd" + +[a1a74555-535a-5d6d-a4c3-4176040b5154] +cb2626c003ec0c59af21ecb576f36ca23665ca2e = "a8ab4d5a95ae59efe8c642a04291ac47f5ef0b08" +e58cf68517347a77e26c6846ef1306df1d5cdc6a = "955b7527d83c4fc7a57b962e142d429c3a19cf74" + +[a1b4810d-1bce-5fbd-ac56-80944d57a21f] +289b4a7c8cc839da1e4ee372d5780ab192715de5 = "ca24dc122ae9288f5107193587eb6d336a7e5892" +5fff24d4176dcf056da1421c3c01ae631da54df1 = "519aabcd1475fe76fe79706cd7b8f39654f42d4f" +75d0c84320017e5e0628f7fe358edafd1ba531f8 = "3e05eb6008bd019a430733d246f7ff0837c8c6ef" +c2c095fdacd8e51e3c7516088345ff499f73eb71 = "f795e9c166e2c947a97bb6dfea55ba666de24fae" +d183515906916a08a4f7efde9dfd33652582f043 = "c7277a919c2f262c4ca26e1583fcadca74339689" + +[a1b8beaa-0f25-52fa-b34f-c7db7ae101e8] +19a08d3bbe26a5f32eaa7c872520fe1bdb8db844 = "66a8a0a8977a4e3c59e9186473553e8fd32d5bfd" + +[a1e7a1ef-7a5d-5822-a38c-be74e1bb89f4] +6f5b0b604b685d13bab4c66ec4ff8e3f66431362 = "514139a6e8bdbeae858516236ed74eb929ca98e0" + +[a223df75-4e93-5b7c-acf9-bdd599c0f4de] +05eb3283fa9877ae62550d27c70e0918956f657e = "7e608ac82da035c48f3e9b1b9a27716e4078d27d" +13f97d121b3924ead1e5c7d73158db2b0f340312 = "29a9473fbe8052a0b62296debcc20a035398c736" +1b4e2c050ffa65238a6082117a99732d7a437ea0 = "7296cd2f69947dc69b1ee98bc0b24ab291e68fe3" +1ca8af6f0750d17b4a7332731a758d81ab12c0b2 = "8fb5c19f359d60b94a795ff78132e2e5ef78f1ca" +22278dcbb97503c640419194ada5c2b98875d426 = "9ede48122321c8687b409a7026ac6cf50b0f41df" +2abf20bc447119d43c444a81c449cf2d87696923 = "ebd97ee4e9bd96be66f01e29abd24e3c3d566d31" +30af92da5fb9d9fa1f70c8478edd71ec01370be9 = "53fc089ec44f476235afd651ea659cd07a7452dd" +393520a9ebd02402ca0609e1b1b95af7518f8b00 = "c78fa0c39860395f7e4b73a6d0fd2c19d9e218dd" +397b12196d869192a669194f1919c95cd898a1a3 = "37fa1756a51602fe2fef1c50c19e104e0e7bcc47" +4303fdecb001095b0515d44e8e303edca8dbc133 = "f8489344cc2341a14d4d247e88ecf87e8e840d18" +4d4417fd437dd5e11c5c00c0c38e2920f42d1ab5 = "75a6c7145fa452f467ee55e9d195905f504abfab" +5e6cc0f0c7ee000126f629bf0b02fe1668dfdeb6 = "5994f5598fe5d5784dbab3e00ec15b3f04c406c3" +6c016c65117140df4b5cf56074375616ee40094a = "685ebd8186aa072661495716d12ead43d0363b7b" +7ec2c249bb2ee360a9ed0c3f3ecb3e14ca7993b1 = "605b25b5640ab79b5a273f1958b4b4797c2283f8" +9696f272dad0e3a9e972c790bc8b70899df2b141 = "6853090768c72c1914645d715d0a2e4e442c4400" +ad369f3cb0ac22f7e62f9af92493fa3e94cea228 = "4b91638bb5def723d4819b31219f70da9619326f" +dfa72bc7675a47b83d5eb0cb8ecfa8fd0c0e3082 = "3d5093abb1b6a1dbe76f00027e91ddbb9d353a44" +e478ecbd879f30e21ab0033f10c70fedbdae2050 = "541b43f7587586b3a76354024446ded13728e56f" +f62b8b676fd19d6d89cb17214a4cc8e195758158 = "5860388e17d909815812b93e2754b5c58d36bb27" +f79056a35b679215d097936a4d781d97ba0df5b8 = "27da2a12bec7467f132aeb87c0fb25b7cffa07b1" +f8f5208f76c208a059de9107ca3e292b832a3847 = "fe4d7f47d676768ca2aa9fc7a94de79d128d6b72" +fd9fd2155c495d3ce83ad3edd0e217fea1adc60b = "3b205ecf34731ef8817fb18597cee519a723ae30" + +[a237f610-4214-5ca7-a9c6-385896804134] +07e9c433c31c67ba98079746ae10ecea57bfd7b7 = "5c03c4b098c1e8bade8371180a95755684448cf9" +4499f26063e607d5b831d59f34d8fd7f92e80b93 = "18ea275c3f878700936cb4e7605f4fc109037583" +50fb74fd838e1c07f1048ff2341c0a0d21a57a24 = "0985a38a059d993003ff5177a83ec2b32cd265c0" +befb676df29fa6e07b0079aedf0ff0449865c31d = "bb8c4f76e4c1f7c668f97ed1a5ee59a1bc187f2b" + +[a2441757-f6aa-5fb2-8edb-039e3f45d037] +08f64bcc43ccac1b10382383db40942997c6669f = "f84a51f12422e0f1dd60392af5af80aeac60a6f9" +1825a8b2b5e03ef5ad7b4ad55546aad7793f0437 = "9398e881334cbaf645cc9cff905954dcf44888d4" +18ae966154118060341c297c3185a86db87bb928 = "6ce753a14e16e414626d052e625c4be8aa656732" +213dccc70f372bf55009faf032624ec5a20afece = "88e4e359a3fae11c47fa64667aacf1b0c0ef28f4" +248bb9cbf7e0c0e04248580631f3caa49ee1b044 = "0157e91b034a15afe4c03cea3df1759b6255518e" +2ae73f646a8302651e17cdeb13bd1d241334d597 = "fc89c492747fbabc17fb4306326d59650a86014f" +2c3f797bf81ebf66e8b8f01860d32b4c13add99f = "d9daf0617a754794eb0ab2ce019ff258aaf0fd56" +301d5ae6fffb2e5fffcc0dee107489c6e5ae820c = "7dab933c99e01f7b8fb5beb09cd0692e5526bb18" +4057b79cc56b74c0d7415072816197e02096f04c = "4ec7796ca6b8ca5e87e37b62ca7035ec96fdc39f" +42717d813ec977d7e6008e2156f52102a01eead1 = "5cfe10074df26d98fc4afcf4ef57f310660863d3" +473386e5281a1179c24578e674891d0bd8a1578c = "e5e3fd0f2f4fb6c00132d726c4bf74dc7531494b" +55660276c717e335ee46874eaf73c3b8c50189bc = "b1f3a83c55772e8aad2c26dcf3e517ab550cf41f" +56011df34141cd8bdcba570ac05a65a72c9d2614 = "f4b81c5d1b4435697e92dc95c0eb4da49ee23980" +586c3c1a1936d336c359b4c586b40f1ddd992676 = "a29e776d0c4adafe753bba5a452c3cd15002d5cc" +8074660593ac535e260a31c766996f2199698c1d = "164c0453cd9e2a06504d5645defaec25ef96df8e" +91013c528f2c0ac6414936c385d2cb710119453b = "1c5b0366857ecf6cd48aee8231593bd2ada900a6" +9b1037c21c8a0f382a0e694a1ebe538b70866511 = "5e1af12db841cba0baef5e955d08dedae3144565" +c79db3a61d4cb3f699e673a52d55d31de4cc4491 = "1364a70067f9a86323b3a712ffd5e27bd0b7ee34" +c7e9934e3f6f7a76338d0e4b7325ee1223fba457 = "c7919bba4c9dd30b489ccd1eb73b851ea5ec383b" +cc82e0d742386cc6624e9150007f44707d646add = "d3b1ba2b885b90ed702c3d6fe8e1cde7de6608fb" +d047768f91ac5053244ad38fadfa78579b16096c = "1f7f493552253ed092646224f892070a3b40a9c6" +fb2155d85b0510af580723690376d81de6ff027e = "e06dbd26c1c8e4ffdef520f9ad8a71c69775711f" + +[a25079ff-bef4-5fe2-9193-832aa4475556] +0199b0ad37ec539b05b1400560a3d61e0c8ff698 = "ed86cb30e780c9cb842a35e0141795fc3b89fc23" +162368c3ae695f10732ebcb5d899bdd8818ccf55 = "9f4db4d3a97bcb432bcd3db7a7182acb9310ddb9" +27768836ab3eb27155c24e89bdb3498b9219a392 = "7d63f2817d2602a20d8b05f2230807c3cb00f091" +38f933e3eb8f83d3817f3cc392687b210690d4d2 = "8b3e800bddce48b1e201e5f9dd7196b86b758a0b" +467784e848c7d8e7c2c990e72ad157da70405242 = "ccc68b9fda9305b38b09289b3a1df1d8182560c8" +69a66dbc4f1195fc3c3224c7878efc87334cf142 = "59ce0ed69c700563e054a2c3de77d3cd6525d1d3" +76ed7f1f11acce91f86aa25e634f59066fece6b2 = "5175eda8902a69ad704f646e7fb04b6b37a52c0e" +d0796788b12bde1eedefe1e4e711bbed0db3e91a = "0e10a187002c12c52ef9d03991b7dcbffda6e93a" +e2bb8e46012de7a87489b9c7adfdd01949dc1d4d = "de55cefb316ab44d3565d12ac9cd48d79a049e5e" + +[a26e6606-dd52-5f6a-a97f-4f611373d757] +0fd850777ccf0c2c1f12644ac1a6eceb2a7e86f4 = "014e6f31c55947e9179e0d19aa3a309bc7fba4ef" + +[a2af1166-a08f-5f64-846c-94a0d3cef48c] +058c98b6d84c001e0b638eeac49cb8e21492285b = "ff7612124fad017b9e9ee35c0d2da458aba8aaeb" +089bac6693ebae82ada460b76ceb82c088c3e29f = "51bf3e8dbc1e2baa9b1cd5c595f55941d683621a" +3e666ecbc2d835a2f2d9ac80b93edb538ef7e907 = "608c0174aadc8f92c6bffd66e87265ca9d5822f9" +43fc48346355cc61f7ff550625edfe5a7a5cdf00 = "f76b3ffdcd5d9693552e754c75dd3a46a71a7068" +593642f67948bc6daec17c55cf6480e64e67800a = "f359e8a86e2e160901417317d4015925275b7e72" +bf1e0f40b7581bff75223dbf45a89a32a8064eaf = "d3dbad9b287fe2f612200ac06212702d66db11e8" +daf91266f9219402e4d4a026d624d3ab445711b9 = "e67a760e9e4d42f743c71708e5cbc7105054bc69" +ef81d90faa962b756624df33ff736fca120dc8c8 = "54daadddfab6a0c6db0a4838bbcbd7deb6f5164c" +f1d03f88da605d1f820ff47dda0b7fc5485e21c2 = "36cb395062e11241767daad4f750a3c6ee91a0ae" + +[a2bd30eb-e257-5431-a919-1863eab51364] +208d433662b07065e929ca94d4a896bb96021827 = "12ad1b97d62caff11a67851d649e9cbe40e53e51" +2993c7b9a8a777fa4973d920807f8a74a45e60ee = "ac0d7642776eb98a377f6dddc47a0b30a82330c8" +3183be960f53f7782c7ae6134ea25bb5905d7f77 = "35260b8bd67e57d583c82cfb5850b292a1d322b3" +6d58b9f19ab2d0b551c0b77a251fb6ce1d9b5aae = "de0e0ba2325f55cd90bcd57a98855de50657642a" +792878d7640fbbb3929a757119baff0663cb70ac = "890128f2f855b8585bb64eb5036991bfbd707541" +9c22ed2cd0e82d0f4af46c49fc85a30d2968a2d4 = "e64e150fefc4d8d9d42a36980e09b5af6281f46d" +9df73461782241f89f2a93edb507290743c5a340 = "bb3297d50338b4272dba9981b5324a165fe7acf4" + +[a2cac450-b92f-5266-8821-25eda20663c8] +220b57b558b1086da747e5b8cd1c5b7c628b365a = "7fcb72ca682d8b45699ac148bcb59f620f3e3274" +519d0fd18068e2cd24c952696501580e54ce7be7 = "3c8a7ef1272c0dd3336d787e19c0278e5f4e051b" +6ae86654fcb648faf1fdd84551b6075730bb3190 = "78b38feea1780da7a8da38e50fdce8cd15fc89a4" +91ea1e9db60d6e3f2dd45384afd5cfb279841bb2 = "6ec29c4e6515bf203848073ef1abc3f57d0ca649" +ad1245fff8568b6a8c8b7b71172f9425e1c407cb = "c922a877edca51069b0312177d64f34bb45b7aef" +cd4da2ef7f173bac73d7d461fd5509c6e0b602da = "290b34e77c704a6854486aecc97016a609cc2c70" + +[a2cc645c-3eea-5389-862e-a155d0052231] +35520bad8e2528cfee5a42bc6e3ae800fe3997d5 = "e4e2060551318e1901bce201c60496be88ccdf04" +b3cee81b4f088a2f6821fa2d8e7012d8f4c1ac81 = "348f57d4037ef839d6c0e74bfc92e334098218ae" + +[a2db99b7-8b79-58f8-94bf-bbc811eef33d] +0a1c2b1a5d62b715ae3e919f39a10b316fc8e631 = "4b15d3e799fb4a4c26f1e3731d9cb686c43011c8" +172f50377c1dbcb1ac85eece62dc7a719ddfdef5 = "c6db11429cb9553c3af32f97d47b73e477f6ce93" +17ce58c18958ff73f52ec4641bae3f4e3000b2f5 = "1099d2f094e04cf9126e79bd7846a2d8e5ebca0b" +9724c7e55f40bc450d3b60721d0df2adc1bfe0e8 = "a47045a7318da0d21058d6c3881b450399820edb" +c8852342945ca1762646e6f324d692631ef87e9d = "8ccadaa10f5b820926be2d82de95b7d9a78c14d2" +d40a74e48fc1822d22b128af0bd76e0c27ec10c1 = "89b7c4e9aed1e73673e7e02cebc4ac6621e482dd" +f022c37fbf1be8b5414a962ece186d6971e53b10 = "8cd2c180ad36cb455508f90aacb4e12714ce9665" +f90253139d31d9665140eb9a2600c868058c1424 = "8a6347b52a1100f1dbfc941a4ee2a39f57e436b1" + +[a3219271-55cc-59b6-9a1f-6f3111928ce1] +88d9b36682c1395fe31aa208ad2b94e3f5eec7e4 = "f984810d82a4686afbedeb714583dcf00908eaa6" +ca94080a7ddd5459835d20cba5d0324c84f29652 = "f9cb1a4be71d17e84f2edd119d35de9a23f0db2a" + +[a3a9e032-41b5-5fc4-967a-a6b7a19844d3] +24b87cca77240cfeaf1cfc8c671daf3299c452bc = "cd0d1edf5567f78d1cdd987423ebe10fceec291c" +2f217aac10d0e48e77eeb437e82a11c203dc2255 = "0ca3d3e47d9bb14f32b8719afc593428fb7b387c" +78f761b0655b3e2150ce156dae3c75058615d36a = "dd3ff64fa900194a1d615c4ceb482d6875a2624d" +98910e59f5f3d752b54132ee90fa7972ccbb7fda = "609eae31812f79216f62fe5ea3b6152e9586201d" +9a298654d93762af5071f97ea9dda82e2b2446fc = "178cd3caa3d0fadb7ed8880e6516a538f4039310" +af8c3cdfd84c886c12ed3e6d7d6d0862d3a91293 = "d22572372437dd0833ea16546dca9c28475f8845" +ef10a0fe197c02bc589819c3fbac8162e058b049 = "b864a5caae0480089de9c30a092f429bb873c24f" +f2f9652eb882fa475d9182c85febc5261a5370cf = "c7e4c4a2665b02d2d555d6f0fd085b065928d695" + +[a3bbaea7-e63e-5c7b-8fd7-5c7a8d0e2637] +4ea05a847bca0ae00a113bd50ac5c92e9e684a2f = "b9f9091f666f6287601b749b594a09317b672d6b" +9df7ad86763b23a5083e92ff7c0821e41370d9e6 = "d837ad06509f0bf631d9f28fa6a811577d3041be" +b1300d0f86fd19c61aa86a6a5b9c6a7e54b8aed1 = "8f32d716061ec7865610b68deb35630d1c3e7e5e" +e58692ea8e53e660ec67d18eb0f3d17feb780c1a = "bd63cf6387c61d9e71a740b819fe0c6bd8110f3e" +f8e628861229f2ea5d0f6aa0bc005c3819c936b9 = "dc041b6535f405e229893851386a797f5e072f3c" + +[a3c098f2-3b6f-5d4a-8bee-41cfa5bd51aa] +84812da312e2c8689344496237048ec261b73ad8 = "1061784ba580ab2c6195e5295822d4d189685c05" + +[a3e2863e-c0ee-5ff6-a523-307a4cdc8724] +164374dcc161cc1e607ce5e2b37ff6cf56d6f6b9 = "0978a937db45cde960b7d9f9ca17d394ce4c4e0b" +ab1629f801ef9af3915c14b20279cada5324aff0 = "c2b68eab47724a88a89446c855dd551dadd88b07" +b8c865d332052fc95e556dc52cbce2a29e6f173f = "cd28edfe2c6c381532c988a5cad49d623786feb1" + +[a4542142-977a-5521-9bf5-9624df8e6430] +67dab5cf345eaf6aa6a3b3292ee87bde776087bd = "303d5ab5d4b5c23523ecc5a9b2679cbc9baacda6" + +[a4795742-8479-5a88-8948-cc11e1c8c1a6] +21a599b0ba9fb8cbe31c3efbb7779bdbcf43bc13 = "5d41c509e0e52ad504d5aff8b14d58dbe2941463" +2afe2ef7fce406571ab8196ea33ed9a54400a4ea = "515c8f7425e03b2dc8c9c2cba29fcd4a68b931d8" +69e2e57f208896c49efeeb1eaf3638bd21f1d92d = "59d54679b75091773cfd0e5f73be705e897c4906" +fd51b951df1b5d35de3cfe1c87342192d12b6298 = "d58b00f8ebf926afe22be24f998aa755dddccb3e" + +[a48d5fe2-965b-541b-8ad8-ab19b69f3f25] +05d8906cc17b8953f7d54c8801da8c0cb235135d = "6d480b8d91ac231090a13a8c796c0feac3d60441" +2fd623b5b6a3b7a1a768b7ccafa9ae751dd0bac6 = "67f14f22f62a02f3d9cf1e288a3b09bd023f696b" +9a06c2529aaf75228005dfaee162d87d24ab51d4 = "f46aa51ba3573a25a49ac25b93e3c052786efa35" +a769e68e00153e42b2ffa6e140a5c8fd06c40a76 = "a02036d2512ce903f0cb0ee3174674307322991c" +b51606029579c96a805d74069f59dc23e273d88f = "28e8cdd98da3e0c575f02e096d172894d8a9c6ce" +d8ee095eaee727ed1ac35a9e56b00fa320d4d6ac = "5700aab8037164494c03975f39e91e1803c9891b" + +[a4bce56a-f44e-563f-a45f-5312daf41243] +1296ee251cc0c7bf4884415b7b0a3a217933ba19 = "7a400b3bd93e6ea81a762a70422f215008592fbc" +171aa9952e0588948393abbf43ea52b8d8537550 = "6b5a31f893d8453ce65da5e8c25b9e125d1cdfa5" +2619fdba12f90bd2d41f7ba452ce38070749b2ee = "f5de182d3e2815093d311e69926c039af98bd312" +2d5bea238d86fdadcdcabba1d87810ccfd9f0e00 = "5120ba0fe4024b30575514c64148fb69f7c50656" +37ecf44e620f35762e94cdc84a0fb4906b8f4b1e = "a233f115cb95d3900a6bf98e650e3ea02f064e08" +49d33c6d6177f7f326673ff948757f2ca5b9f449 = "cd19d1e156082bda63d0f5d73bc51770923ace5b" +4a8f4a33bd43a46d22f2dcfb0074b3fa82aea033 = "c71285aeb152d0d0091b9afa1c4c315cb739f3a9" +678cfa505ca99b0321c5682b72cc240453d9dd56 = "d321d7acc25d7567ab7abe70be9de251c679a273" +a79830e27f0f741493a65df3e62ae17fc5588b81 = "d71132501a8094f50f55849ef14f6db5cafb9487" +abcfe60fbefc1fb6bdb8b3c6f66ab66e371cd43f = "df0f58298ede3acb7955dd5efff05cba56a28a36" +b332f5627a67d96d21744408952e34b3c2301215 = "a558511e8a994bcf2bb0d3509c5f5e5e6870da13" +dd9024cb2ecd269df10a85f547742adc0f45863c = "3c1f43c83a4c5e59b2e2ed41b7066e21589568f2" +e302a0de98da0ffa878edb359777370a0d94b49a = "b071205bef4c5c33a58526036bb36352ef9bed6a" +e86ae3a230b7d6977eeba6782f318033f0bba695 = "f36cf5b90d49f035540236489f19665b4419b678" + +[a51835be-59a7-5a76-9cf5-dd3bc1292177] +792daa6d6a95316f5e1057ea92374fc19b3d2d9a = "103270b7359a275b827f9e08a99a23c1bd9928c7" +da371f844a0df9c5c5d57fe22762c79bce2e03c8 = "c91597e99a88913a479ce574bb5495f0a524a3ca" +f0d80aed0b899436d149d1c12883b0734e8894df = "3fde760b1d3f839a32f53927de2d686688cc7aab" +fdd3cc0ed1a7c8deac82a55438996a54bdda840f = "f0adbd780ab9a9b9dbbf11e3b43d61fbbb93a9a5" + +[a5390f91-8eb1-5f08-bee0-b1d1ffed6cea] +017a6f50b4c46967a359c09c42bcbba9a93a02d6 = "71798f7549602798f69b39a08886db32b9a90d49" +0fd319efb060da0187c8d7add07df10fdd92c831 = "13152b2674532a69b4adde4fef1a110182ccea0f" +1dd2d433bdbe9520cba2dbafdbef46badac1ca57 = "a27c298b9c2530ff6106c1c524c895ddabe3adc8" +2811b56c0a8f2e676c7f5ed52fbfefdd1344bef8 = "c4aa5016280b29d113e87b7bcdfaee59aaed1acb" +46542e4d9b6e859ac8f2c68bc21318bfcbf2e9a9 = "7b35edad431df9c1aa7a786e6e519be844283942" +83278d3c84efd42262d7dbd494c1869e7823e724 = "fa38a93bee8396d889d8ead08e816d574a64ab5c" +ce19aaa3cb2ee96b3be164c12734c44d161972e6 = "d09fc310bb26ad12453a4d602b9e3cab2ba396c5" +d341159861d3ff015a19bbda2c11059cb619feb2 = "382da0aecba11289049f3665de7226fc4030666b" +e34b753a58f76eb48a430060afaa5bcf66fb66b1 = "57303f0e12d1fbf8c73f4ec4b187b03160e354e3" +e3e4b128f826803204a876717143323f26c0df7a = "0bd72c0121436b5ad3ae99fa0228b3a71613441f" +fed167557aa93ab0d815c09fa2cdb442659e4f69 = "b458672aebea24a9d24007ee974dfa3c45215264" + +[a56d74ad-8193-5df7-a216-96cccc48f97a] +06ba29dd6bad583101ff5e830985c7d96bf861c6 = "a4446cc4a7b68631c236210bede75ed08ee84bb4" +f8da5a5365593ca877b73f241b38ce45641a26f0 = "388ed95c04748a4fe8b06ada08f55c5446fed3cb" + +[a5944310-3432-5d93-8bb2-e3b5eb62a58f] +66373d90ed37fb5cf345a22b2a6cfdd983109ca6 = "bd6e96b0a14d7b2d69c957bf1e2887a453554d7c" + +[a5aa80cc-faec-50cc-96c6-a95fd318f3bd] +2b4c7e5c783295dcf90e5c3ea6dbaeef5a5cae27 = "493eda1d8c0fa0bd7f017a9ef769164113c26864" +bc4db1234b3c48067c9db41ea856fd5bdd15c29f = "6bbd72f908eb309203e816d22658400e0365c13c" + +[a5c3d3bf-5697-5ba7-841a-c26aed266c5b] +0249f3f33895780f1f1664d1feb1dc158eca7020 = "0ec5ede0a38a21ed1b7625026c0829074153ed88" +05763b8b634349fd9858279d1f7ad1d5e365e8a6 = "970324d7cdc33d2c76f78c9e89efd402f1236441" +0c05fee16e628c1955ef9bf1fb4e48a657253c5e = "c4ebd94c322184a9fee70850d9c13a7c20be1c67" +1f0e31ec5a6c5d4a348a5e977d38099a6660df69 = "5fbd179fd7edd883414030138ff7f59b063a71c1" +1f7453eced491217ae382e786621574ac75576f2 = "12a36084340011a7dc32790da4c7ae89771d559d" +2430425bc4e798da2415e656c190ccb5951871eb = "c1b0a9b9c63a2f89770f8dab7142394723bbb82b" +27c9e3fc45f1c3197148b53e5bce08235980cee9 = "d4a71dd7f0bff819865a5d0db04962673aaaa949" +365b1aa71d65ed518d52d0da11b30a1f37e86200 = "2612a212b0197ec524d3ae6804e903d72708a80f" +3721a1d5ed4a90275b5c15e2bc0c4f2df6255a94 = "f5b07aa6f518cf71089b2dfb02e55a3cad7cc5cd" +40439daf99155b751d53c6403a5bd35fa0340f7a = "2dd02ad3991d7b144593f461219b927d43fd2ef7" +4243d668777540d620e019616e6f9a3d8522bfba = "c707e0bde5656d90adf48624ee67c77fcd391fc1" +580c2cde91917ad9901439cc11fc7f745871b16f = "d4a71dd7f0bff819865a5d0db04962673aaaa949" +5e895f6b46327c94959c5b1662cabafc9288ddc3 = "20b5b8af06a1097a7068b8c2698e7d68becc6c2d" +715d637fbdd0f6dca6a03d1f2d7c8d248b4abde8 = "1ed811d8036b3f9ef5be132a932bb4c2845252a5" +7403112a62051b86ca426e33839515a717cfb3fd = "7f88bb6d93b8b559a624c8cf34ec0ea7f6fc8e1b" +7422f392a99407e4733b318c4670e7a259537b86 = "a2719d90b61752e94700faf5192e761d216dd32b" +7d478e4933306d0d30cdd04294a00f769ace940b = "192cce49e4c52d1c4c91bbc50097c7df5444e32a" +99e5ea51d5449ec27891cbf9a9d100b5843cc32b = "68b3a54c4cc99c29cb95bcd58eaf9f9310a1f22a" +9f935fdc1a5ba618a22c463b9f25564ff892a549 = "7c09f3c021725eda203a9cfb3f6910da264d8681" +bd9ab7ec3a63ebfec7355e3bc15f0eef77388f00 = "f2d71e74bce493a98f22cacb8f7d6c4c8dc5e7a3" +c6c2ca4d4856d225ce1ab6f75aeb83cd91091e20 = "dfababa51127c9628b7e73993b5c3e6dbc74369b" +d3d2537903d8fe8ff3a0cd55d2c4c8d548d4182d = "8c53d40ceb5078de607dfecff972cd1448db8d5c" +dc1e7bbb20af31d35e98697349867fc9a059a06d = "872a1a202b0507711d09fbcf72033392fcf6904f" +e172b5da6b90dfa0d44471a3ff3df19b487d7f30 = "d62ca7023831650d2f3b00159d50be8ad4ff7d2d" +f2edc40ffdf27c0936f2682afa1191604f7c0583 = "7aefe8f2d3192ebbf11e6ef2f45db904d9b98899" +f34516d5538abafb5f7456a0eba91fdba4ad3ff9 = "c5cf6a66c2b15afda65aa9eb7ee1baff96294440" +f724d4baa517bc9d8ae7378dfc463ff5ac532337 = "8b53cbdae332263963528edcc706fec34e217f26" +f9e48f07ae27942559fccb52d06f24d542cd6564 = "15f866f46c56f95b4a3f5c696825cb6e5dc5c4a6" + +[a64fb144-f7fb-5565-a479-9329a0587007] +99e7f136de5aa01b7af2e89b95adaf4919babf0c = "8fa6b7ea31e578716bfb2c9bbc2b4e612d831916" +b8939d203ac30edeb00fb5425db8671655bf891b = "fe05dbbafd8b12b948b6b9f86fc46a42c6317064" +c38fb2eebbde787bf0646dbaab03ed007f42fb56 = "fe9b2387d201e465172896775db248760e571dcc" + +[a6aca261-61b0-5b33-a99a-e9c977ffa089] +b7136e33c6fbe8a2110c259648cf8f11d91ecdd5 = "995810187f9ec0a2272914537f3000fdedd610cf" +b74077a22efa0e6b65812456ccd25ec500c71bd0 = "343dd2f4ad2a7feb2bb81807bdedcdfcf1a38ef8" +e53af89b5a4fa79a4623ea659414f2abe424c853 = "dae0b063f7984b30d5f5298987927b46c5d25a53" + +[a6c510a4-1742-563a-9b70-2e3db6ca4e08] +59ac29847cbd5e8b2e21bcd1b4f7877661f9e868 = "497259b9d84647e988254396649d0c956d8c1bb0" + +[a6e380b2-a6ca-5380-bf3e-84a91bcd477e] +036e3b498bc34668eadc62e6fa15c01aa85540f5 = "bc17fce767579d8c484d35f0485bac8f4b1b229d" +302dfc240f3648b642620df393b58374f24e1bd2 = "7d5448caa4da3c6ce4a14506b1a100a071e18e20" +5b1043c1023f4c85ee194c6138637b6c6be574d0 = "194e6a61cd984b7954962c5ad4f1d5986d02cdbb" +5d2ac70297efd1b056a2eb280c14bf4b5f8568fe = "5dc36bd697d0f9fa24514006c0b04b71cd1fd8f9" +792524a13a5f9bf7afee2a1a1d8782f6c611adf2 = "5f33af375f9dcc4aa2490f693787ed9de2065530" +b7afcaead991748ec7009dc57f0d79aaa0358e3c = "ffa9e0009ca79b36f156506e3b1d490ce3f23e1c" + +[a710fa0b-f7e1-5400-819b-039bf0891bbd] +46aa05a105653dfc127887aefffe41b3c571868d = "7866faa3bd8c9d958ec2ba3535a1b58b488a7477" +7b1bb59d4acabe72bc21977d5434215ab424eb16 = "4d798d26285d2e665bf5b8070f7cb64a124201ed" +a516c6cfa500c5c63240235e64e66346ddab0e79 = "b5ab833ba7d1ef2e62413c4c46993fa13017d6fb" +c9dee266f1f732b2118b7cf26c42cd49d4fbf831 = "5980a0ed97a5a4d8f143516675931b7780ba84a4" + +[a725b495-10eb-56fe-b38b-717eba820537] +07df4b3b391d5dac71cfde61470e8919f090baec = "7258f80a9e66246a3c2c11d3fe1e82b7e3604906" +0a0583fd95c48a33db14af6ef4d1c626dde153ea = "301c89d82351a93fc506456a48458749482acab3" +309b34b918607e1a8e925a533a2952a7c7d0fa17 = "144ec830a6467e95c8ed1f4fc37ed635ea097118" +41568e7141932dd9cf827101451dba292f4c3ec1 = "bdd85726aa6cbe0ebb2ec111e78c05af69acb84c" +6d98bd8bda1bda05133a22c7c777a6ef58c5600b = "c01e48960bbd405aca8003bcc76c337b81c999d5" +c739f4313d07463fb62b984beae979988a66c3bd = "7b10d580aa46a5f7e25df1773cc94ca2628640d2" +dd326efbb73b0d10d5ec9500403ae85a642eb04f = "8eb5c1a2cd98691f07b8a4ce22910ea55104df2b" +f3fee322d766477c6ce3e6aa2ad30dd100b986d6 = "073a061ad2f2f9c7dfac1c518c43c5eec7acf1ad" + +[a74b3585-a348-5f62-a45c-50e91977d574] +056a657e465818a5b892d815ab048afa029d038e = "d236ab7d7245abbd55b7f1d07fd0b80e4c895821" +0bc115597bc55785a52bf9b4bce6dafc4af383c3 = "3ead65d801ac2e28ecceedae26ae6329212f53b3" +0fdded9b19d8737138ba386ce742876270f8e351 = "4bc9b47568d53bc86fbe5d2f4732d435f5e95fa1" +16b3289c38776b84264504146ec03516c82c0ec8 = "a663b5ef731ca9440556cdaf875e522b569840bb" +1fe01baf125ec2d3a15d039ab60b305d2134f3af = "ab3ae804e12f7bf3553c17d580aa381937b98db1" +227836af29b853c9e9e42a95396230bb3b0b11dd = "42ccbdaf7373cc8557e9819ecd74dc27fd3bf056" +43ed1e35d557148e8a32782afa42b294fd6484ca = "9bb3145e20066bfca7e42542b7036ffc3115bb17" +59838218f6e857df3bdf046141180cb06b18af90 = "67b8aabf2c8cc395123fb91189a8b1e54c8c35f4" +612685e33ca18798ff06412015069bac3a7f16fd = "1c178fa31a2b70ebcf5a3917b7e9f9838b0eb441" +8633a9c9cfd380ddbdee3ecbe87961571c08d9a6 = "0a1165055b3a63e8fc84c65283ca16f59e8b0b8f" +897ea349bb0e2835f3cfc568edcf195a50383f68 = "235d84f811373d2b3393b41a26c1a73d698a14d4" +c8b1dadef38c61c75e1e5b3c0f96b9cabe808a81 = "a0eb291074236c331ac629a4971fcf7365c90758" +cb9b2a1521e005f8263990080bdfa7b1ffa2eeae = "5a84ec0ab8aab9a9bcbcf74040749460c473c85c" +dead74de58df3b42e115f91205deddfa288cc022 = "dee9da28bf2455ec320eef061209a184959efe55" +e39a74dd73ad1c44b0bae94a4695eb35b8865374 = "892744612b034f3ffb874cd0c35745757634dc35" +e6cb19221ad5d67d40ed7c39db445550936a3ce9 = "736dfef874aad64bbab9e6339cf9cd21331cd35b" +efc09983e46af2a0a1821c3c85f37fe0987e5396 = "bccd68a803c3a8f3c465b763faf958093671f17e" + +[a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f] +02c4f0d8a29bc21df042c846915fa7bdd3a3369f = "8344bddfb5e03781217bcb164ba52af70ff69c1c" +06195b4a32e27efe807811b92414367001d2d4b0 = "d1920d9582a2f533cc44e3b07bc76b26fb5e0ae9" +4798a4b415bcda2085193b0bc7d2062718aaa49b = "a4b96378eb34c5de0b824518caaeaabf0f6a622f" +5aa57b22dc377b59b887d7c1364e42c6d2aece15 = "715b8bf823ea4385678c4cba93c08598c3b8b255" +64d0501da0de4bba62b7d60b9b67122ec62f3e51 = "ed1d5a134b70c391e7307d5053e2a97d6370c6a0" +b7a7be93a22ba874ba446edcd0f68a6a312dab90 = "d918a740c855cc41f9830a6eee3ef49fa922a040" +c4b51d87d58b2325291dd336f04ab0bd7c0568b2 = "f8edc53a491c65f990ad5bca5ebc608a2e09b66a" +d140c94d370e850f1085ddfe9d5271d5522b3da7 = "7f601dbad1c617c50019ed0082903fd745c2f9f0" +d36fa9316195bbec933b9579b86a0cb7cdb1b0d0 = "b11fc45ce69d76949cef0e92f73588e8165a851d" +ff6cb54fb8502e23191f031f8633d4e179443721 = "5e4fcb55952782baffdf9ce823f05bfd39a6cab6" + +[a75dfa10-1339-53f3-8748-4d618c3d76af] +09ecba9eaee4519df5a2386c0b0368cf464183ec = "4042bb23aa4bf9ff2e81fd2afef299dbb59b51fe" +0b15124fe4efe66f39c4d0caa5ff215517be12b3 = "b3e7b5dda73e7f4cd86f96003a1c4329d74b642d" +7b4895f65ac772b21c36ece001843d6d3f6fafdf = "14c9323e43547eaa95a52ceb8ff619c69184cea0" +aa3d017ed9718d14176e2a4b5845a90672c18ea9 = "6e9231cfeeaeb152ae2680befdc7c9888d36314c" +aa45504c8a4478112f2a0e6ecb88957e04fda643 = "b6d63bc3690b39d321b743d81825f6aa5bbfa2cc" +d1384f0cf990e5c14acc49c46c9c06d3fb919cad = "1c01fa1088a715c00bdd2fd89fb15b2187eec6d7" + +[a7949054-b901-59c6-b8e3-7238c29bf7f0] +0619b55751d6580b153424a7b97166137fbdb262 = "f13c00bdb0cb7a6eb1c32d58f8bd34e6669be425" +189e755b0ba537d4f81e10d30579931ea727992a = "17727afb17f8394e6e6eec1e34f0b2b21aecd808" +1fdcb31e626ec914ccb0f22761ffe23ce4f52b4c = "b89b70dda2682a921381a9b164e489417f8a4dd3" +48f423017989d720ed8af3d88b3eb08a9a3272a6 = "6c66a1f3169047a7fad96224267ceba1b3a16ba7" +54e621e79b309d0c0c185858948e7f920a67782a = "dcfac7f7d753370360a121d14e5f1db0b2fcbdd6" +643b8d4647b62e5379e05291e9c472b423c3828e = "8588ba57ba36b8ebdfdef37b7121cf787efc0a93" +67c8bb2d6e319d7a95fc574a76736e5c20d05523 = "f63b20bed76cfad2a8e20519774805870638dcef" +7934f672e2449a6c221bb3088ed40c2c6256a134 = "0280178b637e51289ea520952861404b1b596c70" +828e4c41b275507744e66d60500bfb996f263d02 = "b0c400bfd21eb0526d22177343fcd66b35fbe4a8" +8edb94be2a4c6250ef4bb26e58ca5fb0b9fee6ff = "db1e1f6eca66e5db3cc7d47c06ceddcd1b11fe1b" +ac709d12662484705c409911db00868509c6c9f4 = "1e11f44a76090b8584483540e14f9d0540acae9f" +e599d51d4a5b2045ec6b7a6c4ef1c87659a61930 = "2402f3cdee8e475a5b9df49e1d7f6b48360ff2ea" +f099670c9d83c0b60d9dac9f41753dd1490e7eba = "a584601ae57a9a3c57034dcdb43c1d76e912e41a" +f89abd528d7d525112efab3a02b588bf05f9e832 = "24154f8d5bd6f9c09f729e22daf129a2d4e80df4" + +[a7ad6987-1890-5ef6-8a61-d9efb0cf65c8] +25b6118c6b95b6b1254786ed5ace381a03e999ed = "5bad5c0515f93d9ce31d8e9e1c3aab5ff3f8bedd" +7ce60f8ec63591fe07071419bc49835404c9c042 = "4baea7f7486fff8d370cf261a2fec6a33a1f66e8" +890c94f37c2553555b7ee435988a42132d662599 = "4136bd1489c36c1f17d8393b9a38cc27da884b00" +b62222d10494770fd4da5faa43dda05f001849cd = "7d4cffce020e80bcbb00da3afe02d0b15606b626" +b8460a78c04d46e7899d466bae1879402f720f97 = "7c446d39256e53fe628deb93c0193d950915c744" + +[a8002f64-6652-5b53-92ba-d4864fedfa0a] +0bc7ce93ae3d4eef3b3925e1d6bc2dbc2c54573f = "1b1dd79415ec857c1786400fe3b80e51296b97f8" +2e3ff715eb025bcbe3bcd7e105d7811a6debf7c7 = "cad39457c36d281c3eed4083faf9021d6b671275" +2ecf6363ba511ee221e22610c65c9ff15fdf7ea1 = "f92b94807311c23ae1e4b228a65578ff487119a2" +33c484cf8fb1109081ae094c153108485e1f877d = "52805ac8f9f28b62f39830cd2c6f46c3789f742b" +52c2ba7d59fc4705f8bf5804cd389b145681b331 = "28cbd13050cfa8b8501a86271e38952536ba3278" +6fda68e4163996742e8087f7af2f5f9c4ae5863f = "82b98b609f96b9f46067a479fd60e2b3f287c4fa" +9971a53607b0b86dfba4b11d30a76fdf20ba33d5 = "88b11630662570a871ea90e8df78367242685482" +abfc1aa4eb543653affd5e1f51500c0ffb3afc9c = "259b7c25609cd5b4b145c2ef83a095e7d07d67fa" +b24b46e595d51ca16c9803e182c0667a55b87ddd = "6ba4af92fbcd36cec5548c1a046a1f1e065e4faf" +c226beab86b81f8ed960255489a1c045338c0ddd = "711a9883115a96a80c63e22c9b7ff6ac5bfc4d5c" +cc91031f4bdc56d720f8dc62e5bb20b4286b269f = "8443f148273f5fbc4560eed9936aa36e44355de9" +ed9b74336bfeadd5425cb3ecd101656af0c253e6 = "2499c4195204b34604947d978e15babfac3019e1" + +[a81c6b42-2e10-5240-aca2-a61377ecd94b] +016556b5feb03bd5735bc28f554487b3d89d4ba8 = "fb31748333b20cd00fb85e5e76dd543850e88349" +027d53e7e38229d4dada0ff2b9942f37bb46c45f = "9e78369afe8cead097c958e201ce0aa0ab4842b5" +042da5dffc3fd1ae9a5673340329b00ffc0bcc0a = "85499c420cab8a0c6e29c3fcc06970fd9bec9b77" +0836fd2a7af11c2d9d8dc36d209c6c304aa37414 = "384b8d8e9b7f76370d3d7e8bbf19d847835a72a7" +0f3f6bbc787d16478b1e57d044e89329da505d6c = "337b824ce7d28576fefb6ac1722f8eb0f7bd0581" +165cd40378dac1fc91dc78a065bf74dae1d6662a = "f30a2be1f82cbcb706a5c2d8f68a87964a34b272" +1a2c4ea0b5f8696b380596af280e36d1b1140ebf = "f4d5ec34894909a3e82aba8191394ad1846cb706" +2337062a2cb8ebfef95d0e566de10b2ace271942 = "28595cd064f7e7316b51d7ddc180e40927cb2035" +23591b5b5056a5c531111f0a72071ccc09007c4a = "e893639b683016fcb91ab21db46282509b00a8f3" +290c419089016ce7f7250c90c6f226c816cd176a = "4a6c0b49480a55b1e76d673fd201b9c75106eb21" +2b99f69c6d43acc8b6b81b50ec014a0cf04cf0d5 = "e97d08ea5a6e0d7e9c7ed946e79e9272d97210c9" +307e3c886ff8742e04f39b0b2f2a2888d77ef0dd = "95abe025e1de2d38e0c3d8071046893a8d8d0117" +30aca832135e3ecc7a2784cced85ac5dbbce749f = "ea6d1055e53ecd2f83db1cc53273630450c15a97" +38e94662044a59a846b63a01a60afd2254c62c22 = "a468a7355476bc5ba6bc0a707449349bc73358c6" +3962f9929edb14d9b54b6a1c40a9c9ec601f59de = "05ee1d46596fa66562e03fc73de4caf3c7e75749" +3c74acd30def073c11ef7e2e0be2b0e2657a5da4 = "aaf50047e66afc64d3a684a14521705aa21fcb2e" +440bb591ae275afe516a23bd6a4beb47e813852b = "f70f86cd48bf9624fbff06eddfc5c9dc8673daf3" +5036f905488a1b3c3eb8999fbede6a5080f9d7c8 = "7ff6c447eb3159e88d4c62ba85c496d9431aabdf" +56a7b59d15cbbe7dff1f16d3e47064ae7a9130ed = "e1c81f9ae747ec985bcd0857a6450d9487a5e9bb" +595c8f1218a8eb2aeb8ddbfa54de4e55292b8170 = "84ca3a0bfc0bc0288e98eda7da1cf8bd4189a3ae" +5b098a33c3bcf63bd9473bd5a151cc63f1a14f4d = "afb9dbca5a405583a660a1aefcbfce794e205de5" +5c52239467128e818e21e616e9c704623e4868b8 = "31b2c7cbf941a5cac312f75af8b889ae89abcdd6" +5ddfae2eae52966b3aa73e659b8170e8aed4c50b = "8a03ef08cf0439df4942d5615443088c015e16f9" +612a12d7be19c250cb22d5bdcd5364efb2686588 = "794e875dd965550d52b0aa55cb7dd7742ea7604e" +6172c19df0a016b9a20157ff7d72ac8322623219 = "9484e84697148d129cca73d2176d550eb4291145" +699eecd31bef8f733458529cb26f23ff8ac05067 = "83e5ef24e80cb38aab23194e03aa9414c8cdfb30" +69aed7b4653dbab98507fe7cee770be9c4ee66dc = "7e0b4d14347af1032f4b7fdfb01a3500a66bcf4a" +6b886741a5d7beef8a9917dd1f7622c6922bbae6 = "5e0a964fab30a1a30a958f2ee76ee3b42fd7d7fd" +6f12f8a398a89462eb25762c6aef28e5abdc304c = "c1deb5fcc0b6dae12e60958f4740fac8a8b4d206" +743bc4191167322591f638caf7d7b875b2da4694 = "ae803089ef95b9dc6ec7deb2ff83fb839e607639" +7543419ad4d545c7268b101ad2b954cda6a5d320 = "5661b6042ef6f27c3eb85c82c56d0a67aeabf38c" +755fd0ed2506ddfd593f60daa1440d917e7916e9 = "ffc720a57161e02cb0593fcd66f8bf3c57051c43" +7786bccfe9be94783727c041437c676014b1eedc = "5fdc14d09f4d7df386c87cec9bec456f27f56239" +7861bc86bcaf7e255b55aa3b4e7fa7c8d097b442 = "1d86ff3d06d6723e1e74700974543f2280aeede3" +85ac45936b72c22d0ac6fe4df4d589f246b42e05 = "9b5984eeef7e4ed308633ce816455cbcfcdec9e3" +85b3f1fe9cf99d6f7c138194a7c4fc165341c9a1 = "ca022c2699f9d1eb7fcca1524b1e1161a4457d9f" +91230838fba4240392c495aee7cf5d782d08bc9e = "58a08773c8ca4e916ebdd816a11e4a5bf9aafd8e" +91fa5ea723477df7c02dd1273507ebb49156d212 = "8ca0f428060c404ef43b65d662a90f71734711af" +9a0a84a8fed2c4db2d57ebc4e129ea16075132d4 = "fee1b14779c6b88c7ba4b8b8e662bd719a961549" +a1eed124ef4e350cb890357bdb593cb4d62933fb = "bc22083b71875e9fe4b5923ec3515243d8d522ca" +a4efa5347ad6fd9f653d71d4eff174d9b5604eb5 = "bafa96ad332bc518a62a88dc983990083226b199" +ab17ac6643cd5486baff2048f64845d45ce625b9 = "4cf2eb40bf81999162aeaba9474eb0f682b669cc" +b643024333821662186abaa25760305441aca959 = "2dfc2223851b88f2e4805f340aae940a650a98a3" +b6ee18655bcf4dff73869fdb809b8b0f004849b7 = "1bcf0e135b5153d1da3d8a225c5184558e715ef3" +be3711695fd57ff6437a1303d498fb747901338d = "e28af47605a81ffa6c238953d25a7d4d0644b940" +be3aee597994be49a1cdecb6b9c68bb47894bf01 = "433c39bde4ade19cbd7ab7c89bec7cdad2e213f4" +be878143ded0fd5433a38e08f737d1d891c4d88c = "56510e753ba8cfca7857b7b081ebb2b161b5637c" +c380ae4e7fc0d8fefc75726bd9830f9d6aebb8df = "b2c9a2e88353a9f6b8a13db4e1d22a8510d99a29" +c7d6ed97952c68698808866628b0e2d379d58f07 = "f2266eb691991621cef2bff2ab217649ae94e30c" +c8d6889b04e34ce64befca55d38ea7328e956d79 = "6e1bb697da78bcea57f8e19e0cc55da249df5a0c" +d39e0d188b05c83c77e8d6182ac81d5de30fc994 = "810f59141c31cde9328bb831a4509d4b0041297e" +d42de3bb74e0d8a46b375a6c3ea43da7fd95311a = "15bf3b4aed76451063e179e43cac6fb02bfd6b2f" +d87968b025980c3a299f619282a94a728f1869db = "1a97fa50e549d4328c7e0c06b83464058c01a1cc" +e048b4cfa4c6b0929fbf15b8e8cb98224c68d9ca = "74ec945963b55cb597c7f311587eb999d771530e" +e08949150b6830d7773ca894c6cb172bdc3ef0ed = "64c3387a7d494b55d1021a8c2272a9ca8e2e1770" +eae07a5f366a97cbfc3342e165905a59fe7f4795 = "1ab3982909bf5ebda4808c1f31f9f92ec60d6812" +f07b513a47c6c48397e1c314b1cfbef1d30036bf = "f31664bd5685d9709694793fe27ecfb100616d57" +f839808082a381e7a57733f9f10a547d64811572 = "f92ef2f4f4caf82f11cd3c5f4a411b5e0c567ab1" +fea42051fc9cf2139431e072fa55d117296ec8e0 = "53801bbdd21db348f98ed61002d45c81ef359e0b" +fffbd1f4326a43b099575cfa6c6769b3eca3295f = "88dab9db4b3be02a835c0ccda6b808840f83d88c" + +[a86b7e81-46c9-5b44-bea1-52f7a9b23450] +87e1e8a0b904e4d7d16f43baeca797a903a21e5a = "e064d194c25c6361f9de8c7b9c9302506961c6ed" +911fe56adc5c8768316fe6e39f01148a471a6842 = "4ed2a2601615809a27949f4699c3bac5b7c2dff5" +d004ac8e38e78432f1b3180e879d27b964a54640 = "823c661b4438570c0d3bfe28c7bc9523adc6c63b" + +[a89fc88f-fc1e-5208-8949-7a3f8ddd21cd] +159af1a5dd0cd3ec473db3950b6208c1c0261b5e = "a4f8d97112a19017d8f2f0501c0e4abb9334ea7a" +68fd334ef44ed2a532ce01c6f266c04cde8b2666 = "1e79d75e823c614775435ebf25625327768ddc95" +9bd8db28913b77c2e34dbb3eccc621ccdafab7a5 = "b10b2abe2dd1b349f6c6f23b051e408b79addaa4" +b16ec1a072f359c81af38b1a1a981170324f19e3 = "c63801502e87fef6c260c874254758ffe801068b" +bce8961e44c5a2864c2d9a43bead202092d405e7 = "d90fc4ff00233c30695cf65f65d293900d9424f5" +e859790c129c702fee6d9549fc1c8f23fbbded2f = "cee736ab1ec60d3d83300dedc165c7e901db5396" + +[a8a75453-ed82-57c9-9e16-4cd1196ecbf5] +57fe767dca0334e0bea6fb3a196ad1ebd1554815 = "ea43782e8d6342276d862176af946e4152264700" +625687f2b4563d0ea923613052055dad15330cc6 = "31741bd8ec77217da89deb4dc22df4c30d156d4e" +673ea80d4c8d59415d56fd8de7b5930874de98de = "f9bc7d0013ac134efe588241deae17858ccbe85e" + +[a8b11937-1041-50f2-9818-136bb7a8fb06] +3cc91a844dc459607820eaba405b202a0d60c1ef = "99194f78fe60cab689f4b75384d03c39561d5b6f" +52941685c4662e65d42f6d7df93da7cdfb8421b4 = "0d5f6c8b49f22cedf80e2b7e5ddb55aa52cfa1fc" +590a6df7cdaf83c2f9fad5bb9c8ad2c1ede39182 = "cde5f9f3d791ed77818d0f36d7041eec23d5b94a" +75ec31703fc44035d9f617775f21def2489a3a07 = "8dc5bb48d6b36bc45026d59bf7597fa576112edc" +8f92a5d2506529d8e6c2111fe946bf2c6f37e2a3 = "b814775b34bb0110961b55271a03c91ab9bf5088" +a99357c845fb65df48e58dede167801e2061b15e = "555669f3ad08445efaf99d3e44838a693b028f7a" + +[a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f] +0b67f4cb5e21ed9377a7a2fe9dbbdb421256396a = "906877cd6eb111eb1a8cfc9c3bbf32a7ff7c2160" +21e23e9c0cdfff0681fd8905eb735909d4c09392 = "cf38b5a460a1ab4f3345edf458b264da1326fbe0" +7bd4105a38304f2208c36b539d905ea5292de04e = "85c6b14118bd8e8fd6260fbeaafd05db4d83fe4f" +8a2f3be9dde57b97fff0b41b1ccef3e270067567 = "ea548a1ee4b83b34aa514f53e58e0718a13d7702" +9c105d55a8a782d87ec501d10c68bf4a90a93cb5 = "9b8dbd4f596edb26f363270050f7c6cc4b3ddba2" +bd63d2e25fcdf08f374d1d8b0343c3298088394e = "f5b1135d8517fdb77ed220ac2d26ab92f2c269ca" +c1e2ccff3b8ff0d50a0fd2c4dd94c4ff3ac5b340 = "985800d4b323323c91525858afcd87870dc7fa70" +c885a2760e7df87d3ebde793ed15a829f5c688c8 = "d3bd7b5b984c04b825f607a9c4ab0303e5fe5fbe" +f92cf4a0cf0abf1482bf66fd366e18a19d9ad5ed = "8d9a6043ef5a00c980fe5c06217747fe9fe03608" + +[a906b1d5-d016-55c4-aab3-8a20cba0db2a] +1a3c0b1b2a483a800f16c81b45195c91d94629a2 = "8d1ec2e3cc1acd3cee3c627a5ce955af4ef8d952" +1aa88387959d1f9b20b1305c3ad8fde412a72a82 = "3455dcb523050d0c4ccdaf9a14948873487e1006" +421c6e3decb292b10c3b0c16f399b70ded683df7 = "46d149543a7b6cbca1c67ba5ef67d048e014166a" +4733492517490198368e009445e6876b913f0af3 = "2273c6b5a27b5feddc02367b955f85ef70fa99ef" +558db2d8e0367c8e01dd48da208743da3f8f8bd5 = "2a84d798b5fb1a865479f9ef20dae4a529696f5f" +83daade1b25df920966cdf55f54f164126c9d909 = "99b5a079634b071ebd62a1c7a9ac1385659f21fc" +afcdadb09324def65ee1d1343b44739320ebff72 = "bb056ef421af20e5a8fc0bfe826ac32c700dcf71" + +[a90b1aa1-3769-5649-ba7e-abc5a9d163eb] +5011656e55cbbe56b0849d625ad83b074cb1fff9 = "fa68c38bbd9feb485112764d9327574fbaaa39d0" +549c6cbe0dfb3ff0ba432120385ce7a0446812b0 = "dab0e4bb5c1d976e836fb5d4e5dd5a9132f767a2" +59c3d3f2481de7431660f30e6e1df6d424f1b3ac = "5c63b3f87f7aeaec9b5727caf16840613e92c89e" +70ce28825c812e74251d55bfc9637f595221f845 = "818beffbdd7ed9bb0bf9041a35058f69d5edc0ba" +97cd383cf89d31bf1626395910114ca438fe1e71 = "24b5884fe054b21a98a6be5c925f4a08f6e48f2f" +b61876ce33a64fa19f5b5f68fa75847953087508 = "edb55f4a1c4c20148bbc4886805c17649ad7ac27" +b9c3494f208eee9d6ea8436b7dcaba09860ad488 = "e3f5ddc0d03738234560175a894c37c4ef80fb9b" +efe733d9b473d8b25fe7ddb4cd688464df7e8542 = "d67b5fedecc8b109d4f3ec90f244b2f51bfd8f9e" +f882a4b17d3995a599d3f8c12ceb2a318c758716 = "c762215ef3077a7ff359b29fa8b42e45e2ee2e4b" + +[a93385a2-3734-596a-9a66-3cfbb77141e6] +00238338701bc9da28c32846b3dac36fdab82b9a = "7f893f359893ea30740a4157003d3cfde44224d7" +0a777c5409af05ff660a3a52d3861ae961c2bc4c = "66daf414df1cffc790b3196c10f446663c1a9e3c" +0fa634c20bd2800b8bc492e7fbfbc8ef26438931 = "9f56f20014084c7d10d5ecdb4fa11f40f91b98d1" +1774522678be5f3b94744a76b50da38ed86eccff = "68f145996dd06fbb63f267aed1568add839aa29c" +1fc18d1f58c891eb19badfc734019337b1148f85 = "9d6757e9fd49f2e662df41270d0a4d39f2200511" +2961426c2d5e85e0273b72ef23f5cf8b8ab37e49 = "316b738117ce39553afc0d0a6f63c42ca966a75c" +43bcdbff8989e6f68a88002e4c6956b8ee136bd1 = "951d51dee5e9b781aa8c5f38ad508f6a2797a774" +726b09adbf6cc21571b3d58e6abfb10ef9a6d20a = "7e2ddaf02dc2ffaa165c337e880207f3e31b5d1e" +7725937798ce46dba630b7cb2f5188a95be8163e = "ec4b2813d08b23c94d1838b599cc67f0e7e7ed67" +799005b566f5cc7c85298af6d93ed386ab143aec = "e33fdcf1ff441137970447df13f15e47bd5759bf" +7f3ccbeb32622abbf2d6956fdc8aebd63678967e = "4c1ba1b6c8e3a25e8bd8157b4b884e2da0205896" +ad7cd0f529d20588876ca225757ed2c3a34cd4b1 = "c629424f5a07f74d156174ead1f0ba45186c1630" +bcd14df0e86d79a8f146e24ebe83cc013362f112 = "2c4ddc6e0fa7afad1de2b212356022d2f587eb2c" +c22c2c22793faf422cb57582557239939a4688c6 = "67fbf7b3e096b915f181da7f5219059dc7bba851" +cc59503e9dd1f417f76e0e338fc0dcd115fa14cf = "67044e8d5b696da4ba8d1ed26475e37396c6f4a0" +cc63236c7799b7e6fd5e5137c1ec776439eb6609 = "d5ebffd8c7d8a7b56a087bff39b0a9a2840e17d3" +d5a82f1de40bfcd1ea7885d3e14d2e0a848ec6a3 = "2033e30ded72a5147b9022b8e052d17d634d9880" +dc7a048083f4672a9861ebc3b822a8ab2d51dcc0 = "2ece3b1316551633ff67180b603af493120853e6" +e301faf0b0c45d2e9c4f6d6d808b3d6a53645003 = "746830156db8305ce196b52716fc1f4b81a7b03a" +e39ff72a5da023280bf0652fb17527d34088599c = "617bd02d7658c4913d81324fd7d1b34c77cce6d3" +e6cb1f30ad8a4b9988c44aae5a57d128813c8c09 = "4e99166917c3790c0015537e6d2a1c896ca5a9af" +e86f56866303e1452a971fd041004ffa3508f046 = "ebacf700d424f05a2ea2d4ec9baa6f258b09f12d" +eb9204729ac9f3fce5905d57ce1f25c3ac5642d4 = "a9802c1fdd5d417f39e3b6419e13ea425e140cfa" +f32c5a54dca43d14f04cd2c73ecb182bde0382fa = "7787946863b95b5138ce3aecac57b2dbcf356fc9" + +[a93abf59-7444-517b-a68a-c42f96afdd7d] +1bfecc9843d5e0ff8d809c68061d244f67890958 = "503f80fb9d3e80b5918ab705e1b53ff69119043b" +21a985d550257c9467831b66f8dd7c7a74ee8c29 = "7087a71ea7ff6c7d7eece2306fe329a77e692193" +22e53ff70a5953cef406fa5abd502e0ca985db54 = "45d1aa201b18d95889c3d464cc756711419e6b4b" +273c53f691ff86e45985496f4fda69d4acda0713 = "30aee6de0c7ef2010dbddf340e7a92c650ef1db8" +2b435566157cc4fd29547c6ade63b3b991e64429 = "a03b0cfc2c779e651598b41e563af0fd0a1c8aee" +2fc214ec87ddded5ccb0ecc8c9b16041dae94c3a = "0f45b308293342dd196d7fa229bca13c92c1e3cf" +41127099f495d23e661cb296a23741806289fc5a = "549adea957f098b0d01834b99f4994c383e1c2bf" +42df38414e54e28a48713dae399da778054177a4 = "18e2751c99f89f483f63745f4c54729e656482b5" +53a773dac3a819b15e6aee5a5e6c0aacc2131053 = "455c0e21992aa62a7870aeba0b9eb5687547d747" +5920f257b5b49c3808e7d4f8cf538d59d73e9b5b = "69dbf6a3ca863f311902bc36e7140e7a45970784" +5b41716b01985a6e6b83ba2b5a8c89febc4ea66b = "6c9aceeb2f454b10a59c2761114ac08cd78fc9b6" +748ef9d11ef4986874f3fdc39ed4e83d0df75e50 = "f9abc0ed7034416131aa17f1cef07a629dbb6235" +8d3f3c6ec23e774464d66d8611d2c5539a30b1eb = "f7590c1db2bd9d43f42406f9788f9a043c36888d" +9fffbdb1f016b62cf613d1ffae8eb4c5663ee669 = "ad80b4d66b9c108f17a617ee9b588d2270946b4c" +cc3307699ecf3f257c9eeaf14a38b2c8af609d2d = "2a6f65df30305fe3fa48ac885f06f64a16443e8a" +ccc969947bcb42cceab5f4ac43ceede62ce8dc7e = "82485b33677fa00e0afce5c417ccd6afaf8080ca" +cf2fc7ea5739319cc08fc0f98b3e1cde49295ab1 = "51ae9edca0b2804033c6a70687f64b8d94cd3973" +ea497223ec3aa8c1b28c1fdd51a789d51f259a81 = "4c2cc4eac7a9a9b9c2850cd5b5e45130d8505190" +ea9614d4bc21f5fe38111770e889e600cf548e7c = "ff93161db7c918d484a343f4520ce3c659a4e21a" + +[a93c6f00-e57d-5684-b7b6-d8193f3e46c0] +058c65bcb532da80ca9d9229d9ee75cbcf08ae78 = "be5267d973f82465ca4027af8cd0d1e7053bb786" +06c352352fde5e90d738959e54d43efb255bcc15 = "935f24d81a8ab30ba8974d582001192e47532121" +084bfa7bff89ac5f52b9f36c41f0adea1df0f1e5 = "e0af54398ddf392f6fbb89168b0afcdc956ff88f" +19503c12bc70adc269dfa2159bf5950c458ff20a = "810abf2fd0c3134e8198f043cb2711dbe5227fd9" +211cd659cb7f9035980697f7effa081e29b9bf3e = "80ae5fba5f05d78315885699c6bf56fb2188dfd8" +21c0f48180dce4368a7c6b17b0baecabb7199c38 = "7f3e964204037e60a85057ce8ef75978723c0b95" +2b8a2bd4e58384f9993ff3884ba04cdd68e3d0e3 = "d9e0308246b9cad4b0a254845a0f9d42215113a0" +2ddb48c70bbc3319cf1a247446a061d63e259aa1 = "aa72d757ac879761a8dd42d84fd08fac043bbb70" +2fcc122b603786041b330f64ccb839b403f0a250 = "3f23f627769257dbfbbba631c26fc56868355f10" +30aae2a643a7128d38d511e0c131226ce52f5db7 = "fec043d066cfa6c03be12a098216e4e64814585f" +33ef93abc928b137f5e02efb7fd5085bce31e7dd = "0aefdf67154097502fe2a96c5fe9cac0995699c3" +3b12acd5c50a511f9e2e010585254bc36ffda4bf = "c8d7459f845209f1711f60a576481e6fd900b238" +3baa3f8f82ca033008bb01270ce3b94880b44934 = "89e10c9e92d602025dcd17aaa81a22cc26b71f7b" +3cf97fffde38517783d41f431da12714766a51c9 = "1dc15a6067fd71af34a07a34cf10edfe5d912e82" +3d21f4049701dd0cfb875817d6bf723d3d0fef05 = "15eeca4367173c4ed5cd1b07c94799e7931c8d7f" +416795217df0eb77b149a205ef9cb1f3c23828a9 = "e6e20134ee06aed53db9a72ca23d06128266469b" +41ae997b1851707590cb4e4b4d5542eee4088e55 = "0e0b1773d2a95ce2853beb952d485d6c23587481" +4652000f0984157702b4c8e7a2bc054b90a4e7d3 = "4b975e4189f4745d5d5ce3313973bf661e38593d" +49da3ccc8ab7c7785e3b00e9dcb37d2055230300 = "3c98fd6e2d0dd0ae6a63cb3d73776232e91bd27d" +4c30453fc3068de8d83dd6aa5c52a78b62a0ab30 = "b2c2b625b27ae4470e050ebb7cc0045599212eae" +539574ddae8dfe3e841f6482f67d1cbab90e244c = "cb0cae30edc0ea6a0da60958a848e826eb22cfaf" +5a32b0bcda773476499654a635f9c9414134900d = "de36e4273b5cf2d66f7f304b39195644e0b16e00" +5d59c559f605219df655be1d750a2f96f7b1bac9 = "c0ee76a5e39d0d24ffd9d8b3dbe168da84b18c93" +6289a1604676871b109c3b57061cad99e5a2571f = "fa218bccb7338c4e891d646c33d2d11eaeebb064" +664f7928ab8a153e0dd57dda373d9d80f71e6b89 = "70ad63c02caeafba425bf923e2dd6405a0098d19" +668bec9acfb17f88f5856556bc5f44b4d0df93eb = "c0beb3370ef812afe42992295948b4d200753ce1" +670372b7496bda2ef82acf85a3619d1876de32d6 = "8a2e3b4f9f5f4009b47b1c69a5204ccc9bf7bc0b" +69eb3794a55e5fb0e5d2af27f8c44e09336d22f1 = "3725ea12134ce4ea918a5018b25d5175717f2950" +6ccf4839529010adc101534468335b442abaa14b = "27810ba8dc8ba980f54a459a980b19711d4dffd0" +712e3876507228552ec83a371a5d0e577c75c183 = "95da5253dcbd50963edbd9d750eb6f90247fb656" +7b1c6be6a7c4921bc66c445009dc2ea51ea11f1e = "269a18eea924644474f98fd2cb554ae4a0cf4a49" +7c8cd64eab5e263fb5f9d415cb24ebc9c694a651 = "f048c4910660997fa7fe023f9f85e035422d1f11" +7cc19d5bf44b603f1f6f3eedea1491ef36ff923f = "33a8d0d35a87b999f8b0e62306dfea7a442e3cdb" +7f3138923abc093f195f8803d167390dbc02d762 = "258174d51080ba54e33540cf5f21d7202d3492dd" +7f9884743cec05414db89aa4517139e3cc8f8baf = "9eb1f3914fc040c5a32f51d5ea77059b458c4403" +82a12d1e60a5e06d85435a0304b9475febca8849 = "cf46d0d6b33dc9233e2bb967ac3d1682f605bf50" +84523937447b336dfcbf1747b123e9d1da1308c6 = "f9d4a513c73127259a2a274769b37f81ee5b71cd" +8b0d0271dcf75a77c5bd4e42523e91a185015100 = "cc7000f8a66ac34d5170d51fe323759b10de438d" +8cd2db97dbb218cba9ba03bbf2568ab6dcd29370 = "0f4bc5551533749ff12dd2906e9e72f53963cf38" +8fa9163712796701f208530c6d0b1bc9ed290e59 = "fc22ab6cfc4623e619f389caef8a7b691237b8e7" +93e8d1d3d0e379dbc214f4ffa5830a562a0a500f = "0a6307614f5804a674596bcf9ef07dc494b2535f" +9b325f8d4d1bce75e627641df7f6fc9a3efa03bb = "cd089f764d506eed3ce33bcd3c5db1700b413bbf" +9c0b80234f007748f9cc1086660b51edebcdc756 = "2d6bdb1c8f55f0069843d6ca16eb4609dfd92644" +a47880541fa3918e150484a330be8f6963b950cd = "9ee610d988b2dfd7c72fa741b101f34c9010700d" +a6e63137b7ae08ca0958ee99eade7486acffab75 = "103d2dc4627cefffcc27c29e7690d75e342f9267" +a8ae618dac7d4e3908b1e1bd1bc4a1c3cab7773a = "5e59948812728d2bed8f9df731acec78be38698c" +b5f0fe945459e268939c653dfceafac5c13d393d = "5456cc14821d5db2df8860d296987c6f6adfb5c3" +b774e5ad6c02c9ec6ad7e3c04be143e5299e899a = "c333c9a89e9a1e1647878a4262bf07be58dfaed1" +b8121a5b2425f8d93c137efeb7cb4a7709eeaf25 = "b544024d968f8b9c35efe34ea4d0b4b2c2bfdb3a" +b938e7e9431ebb1c91b909e330b86ddeaf18b0db = "cf41008935a0fd8a4b3e68b7cbdd208b68f1eedf" +b940206b0832687251b888a52c52342d447fd916 = "c68c38b8b4b1d8fe599a7abbbb4065286c6492ea" +bda0dd20e17fa059991139cef3190946f27301af = "e1e863d9e27e749d4baa118bad0af07a29269a7a" +c180737d6ca77e5c9d5378b7382f94e79b38c8ab = "f7e1551b3eba4fe33ae1b9c2585aaec2617475aa" +c9973690d3e55e17944aa1176e28fe639e0079f2 = "c99ab70077dd90bff6586f0d18c027f9db3a681f" +ccf3ae6dea2b49715c969fb6f0a77292c7f1f310 = "7183197aa5d97a5d4a6ba1c8011cea63baaf101e" +cd827176818d5f164e6c2a8a12310b78f26d884c = "a6fbf7052a6bf6d72a30823b43ded4aeb1696a06" +d1fc34062eae0b2a899e44e596e20105d900a336 = "d0ed0c0eb1f8bd94ebddfbd26d413e195005fd4d" +d24a5e8b7c57ad947db52a7c399bdd9ba74726da = "640df8113136c8771682ddbf44b2d45c48bd3a3c" +d477e24005186e91d673e866a808df039647c181 = "387214d0f8ccb9c8c88727540be5d1771bd89f17" +dbdb59ac5f3ef428c7e7521e23d46452d340995d = "ad42ffbf3316c4e903ac035e7fffe4eca2d749da" +e286d986f9bcd6cb7e4f027994e3ccdbd9c663ed = "49c243ee29905ba96856ee1e5cb7ab5acb48b928" +e386ef15863eaebf4aaede29ddeaf1707ef64f6a = "25737e1c00ac8695e6b48b8e4c221268e093c350" +e7a157dd4651956117a15feb13c3f40a048ddcd4 = "2cafef7bc47e52eeda6768f6278aab238e5e4ae9" +e96635f883a1521308b0ab5832c6364b4d865bf3 = "5ba701e5d4e0301fa16d4ac64c655c2c0b05a0fd" +e975c42a65d376d25144dc33938d2e27c89dc02d = "07e9479c2c685e147aeaf7806b7a891cfb875295" +ea06921248d8f54e0815c4d3f1a273de45422cc6 = "df3764572a377aa1153e51f05821b05862a90d4c" +ea792afe3460d99244146e4af0a8d28d8d6669dd = "97579790ce65050df6bff3a79a4f4a8c9ed788cd" +eb391d42900d3a4bf48824efd4862e18e39f973b = "c580d6bf5c393f27db2ebda14c0820bc6a2b55e1" +ec56e4338e595ceca73f7b86837eba9e5f8dec69 = "17f4e0ba8204550dcf8fe155b42e475156882873" +ef36bd3941d3183d615294f42515cbd0b7f0bc64 = "c5a088ac0a9cee5890f3f0f0ce5ebf9ba4f0270e" +f031a3d482d8eb489d45b0d8f703b82a7e5b999e = "1771788c6a9b86f477d66563d43f65bae9126663" +f24817da5fa7b62aa7836b8ae839e7244449d7be = "182dce63eaa13d957312cd2d8662da3a44ba143c" +f972ae40d16eb9d49d2b06d14b98dcd3b88826b8 = "96797575ca45581f501cee5237bd8275d82f324e" +fa09067cdf8adec9170384b5883f57ae19ca1219 = "3a100dbe54e363929d7b2721140ffc943d5d8b21" +febaf87dbbb6474254f2fe6323b3116872ea63e4 = "7848052319c311109fc910352c39808357bdcda9" + +[a945a9ba-879e-550e-aa45-2a4d52798e91] +3f75a37fa29f1e5984a3d8685b359f1934d31a53 = "c115eea136ffa2deecde38cfa76fbdad4eed6bfa" +fffe1dacfe4252a5afc8e1fd52f63ac1f1998578 = "101240ecea97e69cb9257cada15edea34762a947" + +[a975b10e-0019-58db-a62f-e48ff68538c9] +0d146ca9f0c7374734d620a925ff09829648e081 = "5885a19dd726fcfb9787b85ae0b43fed4eed8c87" +2da77702131031adeaf564df973a81e8fadfe8e2 = "e477e3ad3b2f235005db33789c160c70173052ac" +c1476b200b90b694a82fa28c6c1b863c7a51e0cd = "444ef63720aab541e7a125f8d046b20e5213b9de" +c83c0572f1e0adcba20f7d46b6a9d48e96b60616 = "279bdc61c45536cf51f2836fcc88c147eea9e341" +f3880909e62bb8606873418e253968236a6cacb2 = "87e924b9dc0fd636715a9ff5ca0490e15eebfb8e" +fb96d9555ff9b3b02bbd4bcef6b2a17a626520a6 = "db69df5daab62e749c2d206c1cf9b447af58083c" + +[a98d9a8b-a2ab-59e6-89dd-64a1c18fca59] +03497189b35308a5b51fddf5c934e2644461aa80 = "332188128d27b0cb0690d9ddcf0c722db886596d" +0ecd53b6603bbf9bdc06a5ee9918821d5bf57a13 = "762aae2a60a8e7563e9fdf885deac0336e570a77" +37fee94f74764f8e02dc33c4cc6639ddcb29647f = "d5e952a213f44b3d2ed0be7b26f48cf9007ee74f" +3d433dff8058bf507ee27e4d395ac2f4cecfdaa5 = "0d6366b241c3cbe9b743961bcee5c060d06bdc30" +422a93473d6ad3dd738687970ba52169a176a84b = "6b0f2a50ca0e676b5501d90493e0da89ccdb3c42" +5511d40b2cc14296bf287ab4be070b0fe536657b = "78647ba33a233f7f69d10bfe01e3ccbac8b80e0a" +563d753bbf4ffbb1a93b7775303f23cf07686250 = "4ca374f361c4813d958851830702be89d13d8df9" +5b8c7c48a06b39386f6879b7dd604486dc766a23 = "86b70df1ea59e0ebea254429bb17408f9917e130" +614f7db7315da3d0cf9ac4d1c11d68dc9784a5ea = "0177bba09a205c2cd50f041d1f262707670eede4" +62dd04b892e9461a42e23d905a357f010a68f2ef = "12c92d836160c797ee75694b30c7090316d6dce7" +6e02f883872cf37af3f148cc61af5d6b09a92b24 = "fa31f43617ee128b683aa5a6e565270f7cbb0a0c" +70e41285473804cc5867c619682b81aeec5ca08e = "a64b85143c4084f01eaebee94e9d17eac586e90b" +716d9b494f63a3c31b6bc4a0262a5a2082eacd25 = "82023ef64ad34a8152b68552ad688547a042ad6b" +734f4aacee0d56ba6c74d84e98748e6851539a3d = "8c67447e2266c4b65857708b84cad9b1e0fc75b9" +7646fe923f4c9e04e23cff2f26222917cbe9b4cb = "ea92f9df0f1189ff27700cf429e284f986368794" +839c1d3f6aaa855b4e384c40bd36adf2a72dcf93 = "430c639cdd802f625904023880ea4b2760df9e10" +8c12116117c5687c5609f46ed3362dbad794703c = "0020dca7645f3a194a3d2422af3ad77bf34733af" +906bac2bc3b18c31e92a93376b15b47f2c826da0 = "2945068861bf7a682e10db3e4ded73be9c66960d" +b11bdd50b45e3722a1b96bb15ae625c9cc400d2a = "e1387ad8577d4ced75653d9c994399fa861bdd86" +b67c920f10c27c90fe54183385ea18f27cb37bb4 = "c1d0f3cb28c569961ffb24f0598a0eedd1136f35" +b8bfd6ed17d81f17d2b8cb81d0ebfb5b6c2f1460 = "b3883a3172b253f51cd9343acc425ac65ccdd280" +ba4b34d242a77de0f52be559226301821acb52a3 = "a61897710f42d01f272f7d0d036bb7eb0913c5ac" +e2a0380a8423af2c4dca9abfe2c6a2db4b9f416f = "8516ca27a2ba5d0f5443ec49a1165e4270034f7d" +e8464501689ac1fbdd53c42abde3bbab50196aa2 = "4a158adf1a12e2a8614060c8c53d31cee43b9045" + +[a9a6dfa9-9169-53da-bb41-f6858f5c0cd9] +6d0807781af4085440677c3033eb10b7c6ef6aea = "86fe386294f2b486d4ebbaa1c98cbb4bf21b9012" +97dea1d4c03adcbbf771d5b9143cecbdb5db5b54 = "4822e703091e4a20b89671f4119fc873468be6af" + +[a9b2a840-c9d5-5181-a245-8df664c2d6e7] +039d5a20786aa55f04418b0ee42a8f8043245db0 = "b91dbb329cf8a236915a3b2d7f926fe8a58876eb" +1b4191994c134ee26766c9d8a17be679c337b089 = "08719b0d261f9510e8b59cb6c67d2892839b15a7" +5ee09f3749658267cbb24b9f21dba5ca81e56db3 = "00cab0b9073cacbeaef715a0d1b488782899677d" +6a44d5bec978480ad9ff9370ee658e5d6d2b921f = "c4c1587fe86dac5eab1c7c35dcef4515b0aedf3d" +6a9bb215477aad5eff80c33c52db1bf1e5f91834 = "33b65e64711899cd98b7201d48cf7553ad2594c8" +9481b6f30af1d4b66c865d483ecf38bd486dcd82 = "e8d11ed7b8add9f8dd1b666f767688fb024fb6cd" +a4cadbeb8a65bbd0953cb4878975f49ace4e029b = "4b8ac192cfcab0cfdfa19b19c8226b3e56bbbafa" +c15d8bf4a9337b939f71fb83032fe1f4af1be507 = "5c6b77194d102eb641e9bea82421f6d57e8d1406" +e033434309201941f0d2baf9d719980c8b80bd32 = "ae36e6d957311c0b6c71aec090900894255741fa" +eb1e5008aba4f8b18dfefc4b662dd31481a174c1 = "15a59524b1bd26dce8ef53b7d35018dc9c4bff7f" + +[a9c8d775-2e2e-55fc-8582-045d282d599e] +6b03efc663737d7033191cbdbc61f1852e84c203 = "809471563e9ecb06deda615d209c893e21340c3a" +7932f253e557d3203c8d427381681b7586ef37c2 = "b0e3109465c9dbacfa2aa7e50c83f643ba5fbb03" +90ae564fb35a58c9c12321b50c1aefc58ec3b0c7 = "4ddb17a45e97bfa6b2504ee79b9d5d99e4f2abb6" +d7989d67faac2a82536fb04672866ca49265032d = "18c2b6615c4853400691f52530b8fb3292c90013" +f067a33af5cb1f214d2c77332305bf3fed66eeed = "39fb7b181c5fa7a1d6242ba4a055f12227ad3318" + +[a9d5a852-de8e-53e6-9395-5f1b3e4552ea] +12fd81796a9d37165970427eec9b62d8f1df90a4 = "c463e52fc8fcbc5b3e906532247793a86cf8b74c" +c41e080ddb1f45746724e9267c616c175c0e7cac = "78a434ca85c5e8d93b0337fb21f282e5d5ff898a" +f83fb7e66f5dcb2529e85b6efcf52bb1b8078924 = "9d39826ba4efc82278a0ba204dddd90df20aa122" + +[a9e4a3a0-3b51-51f6-8ce2-a898b8c5b12e] +02c11bb977797b587eb51cebd0a44fef892029d4 = "ce7dfbc8687606ebf4a82f675ae6984ad18f3736" +293191b84c12b5509e9c8d42a3e25ffb12de6869 = "3658e59ed2ea269b30abad86ff8fc2fac6ea4956" +31205e66adb8763e71496a4439d469cdb35e4cd1 = "1145e8dd3badc6552e1accc3fd7fa0c7e4a4fa7f" +4cba32e9179119a8b3e6318ec1ee7dfc237010c2 = "f29937baaeef40171c6cf2dfd6db6ce1dfa291b5" +a61772a7436421e7f94d8a29b670601e44c5c1d3 = "0ee5bd60ef2cf1b3fd8937f8119bf493798e8aaf" +dc37d19526ac577b450a87d3ee4de99c8dbb8ceb = "e7eb6537a7198927ea78373c013f52c34c062554" + +[aa1b3936-2fda-51b9-ab35-c553d3a640a2] +da4ef65290c072f8a8ee358cd264e325d35568d2 = "68eb5d223c5a1ea66f48f36955c37a242f379d05" +fcceba1f8db57f5ab6ac2135069de3e53358d8c7 = "284218b104c41c12a27e964a715a02dca71e879f" + +[aa370962-1862-5baa-a5c5-5b94a507aecd] +630b8bdc748dcf496693f9541f83fbcc3a178a6a = "1be396b9b0c9b8caff14219071557a62931b161f" + +[aa65fe97-06da-5843-b5b1-d5d13cad87d2] +0e245f3d79955a0ca1cc2d8b403da061a6d06f51 = "d21a7f9bea679d2120720c949b617488ebe7b9f9" +59f7506a43118469d07dbed1b715b59930fb02eb = "1da0d93c1326d20c75a4561a260ffbbcd2adc2ca" +88a912445617cbf06f4ac6ae2e5d72ac1f068130 = "efd1e55302ceed2930ec589bcc15084a4d400c93" +a0ef55d9b4793ea0b440b2d3290d52d05678b510 = "9b151bbc87f9a64985269e47bbc8566599bfb07b" +ed12a700893f650dab8c7f1cbeb991861d221029 = "085d56b2225ef7185e2820e4ffa3e9d370f8c136" + +[aaa38521-fa0a-5270-b933-2d2596b09448] +155a23a305918f603dfcd17013f9e43596b3bc94 = "f76104b50e04dbcccaef5f01dcf2bde02b6986d5" +37e6338c50e7aef60b7596e3c2576d32a3bbe012 = "5d4e8543e20cf0ab62427fc998ce8e76fa65e10c" +5885e7be9c56d377ec7d5b4b00fbe9fb490b39fa = "fbb6d6fba12d7e52f8deea47a06def5259491c16" +9710407e523a4b38b4e8940c14dbbe947f088257 = "ed02894c49f958635635763e236d84f33d00cf4c" +a2180d1d5c4c119671430475ebfd37a77e97b046 = "b881b6083c6c8a115ca2094d9646b62f1a96f440" +a5f00f221d07d9dff6f79d6f8de1c3e623de3ce6 = "6d9638f7a8999bd5ee629ce2351a4dc3c4d24a90" +b3bc85e70b92379240810289f806effd71122919 = "6269a93f14f25cf4b1e07577b5393c2ce9600030" + +[aaaa29a8-35af-508c-8bc3-b662a17a0fe5] +05d23c6c4d56f1177e1a0eecd1d629942b876a58 = "ed470d75b18f9d5ec0e0cd401bc64040313bc7cb" +11a709c24493c2d83279a77da425321f4bb7fc1c = "bc9e2a05aaba54e7cf3d3eba6bc65c20cf75ec5a" +3c4c28ec034931733735c8c49e60906f4b4bf989 = "cefe1554e10b25746863d9a8efbf4769b9d7b842" +3f1fd76d943cc8a4ab600f692cc6622d1b8fba76 = "e56267b4b627ca13358e0d87427f308247075228" +46f7ad51f365ac4a9e8219857296fb09b8ba0ac4 = "26c30db2effbb1c55900b55109112f5986a60b8e" +4e43f006f9d66f8a481417a14ce9d8d42a183ee3 = "2f21dbb29653c4cab0be64fcc9168790c95486b4" +538efbbcf6fef61a81b9a95bcb97eae01dc11282 = "d77480300abc9dc82b6db4498debc28b4442938e" +540a6122df714a3cffe3f8abf5ca3ff08abad326 = "2b91d058a611a98ed525717ea86eb44a7c8af532" +646cead756d755f0faee08d552daf7fd3cd0a64b = "163653fdeb22f778bf79e171fe15565dfe494d15" +7b740ed9d2c2092ebf922d5dc87b6dbe1731976e = "077a7b80d1e82b34592f5c90f8559c2ea7a815cf" +a496ea01536d8b363567178b6a4cd2a8186980e4 = "cf3c86f8ff6564f3e919ef188c0f82dd4702adfe" +a8ed856606a241d91d8c3755a066e7cad7e4d706 = "95d21553d0d167580ebd204ab401aad6dbf89f82" +b7dea1e783674c576eadbcc349a084285c794f6d = "07bd7724109effebf8709f679764bfb471464ed4" +bd084403ddb2348f9ae80eb98a46430fb8397684 = "17cb609579993571ee4eabd2c37e734d7e74057b" +c72d19cd64b047c39473974d4ff1b2c8268e279e = "9f705926d201c4321bc43129e9e279bd1672b63f" +d10b6e24abe07e25e490182af93cbefd2dc4f359 = "f4b5ce4e4341f7242c9fc570a6116c0606c44708" +ea03689a96f5a4601894959a028b390e9fbf7f73 = "12b903764f343c99a555bce39a8c705c6e87a691" +eae74fa9295565ae136772a02db6685cfb03cf88 = "41ad550d6b750b1f1d01dc2919c964ba3432e0c9" +f7c4e80923631626519633ffd8983dcb8bc67a3e = "c4433d6d10fce316196a80194929939329996c91" + +[aae01518-5342-5314-be14-df237901396f] +0b053a1510d89c84c8aea281d8029edc99c1236a = "c310197459e0d07f3a83d11cc8d4770f706a5160" +20c3f64af203ed7744ca98a9bd3a29508b79f0cd = "67bdc2ac5be33401416702c8a02c36d5e85f199e" +2effd518e6efcbdd21458fed32dd0c12eaf3c995 = "151c5b1048939936046084c7e856afde0ed169b2" +2ff93a71333a6966223735b5372a7a04862452ae = "fa81ec6693a8fba11ca88b863e9fa19c099c45e8" +3f6d82e4b342c5fd1d39c957e5ce00f36fd84aa5 = "ce2a79072b92b7be8bc5119acf7cf6c0c4ab8ab0" +3feae43e4b4418371ad1157397c7859779311d84 = "9722262d227e7040ea8361780a52793d3a0ecb5e" +49027d7a529435afed8caeaf7655dcf952d08af0 = "c1587597d843ec8d849fd1c373eecc54e89c1a0f" +4f9c640b44cce0c8f626053bd66ce5f8ba29d1f9 = "92ea9a5adc170f212a2e96e38c01fde36a1438d1" +6fcf7ecbc2e697afb3c693d5d0c673fa956ab543 = "37d2ad411a25bfdfe6202437b1b06616c617df08" +79d725823904dc1059e353a0b52dc5290f7551e1 = "be106bd43a0c8cd906cc6d07b16db85afcb3d93b" +9d31a8065a50e0ed652d95ff4464c24d0dbca573 = "520153df1efa7c590dd1ed5cae67df34983371c9" +a104686de271fd8002388b3e597063f5507484bd = "dfb51897e18bfab238fd74347de9ba79dd78f8bd" +adb5b4cce047d1e2145ac6d9698c8016840bfc2b = "316aa171f4a42f5f62cb2755ca49277d68e4a261" +b0b130b7e3500739f53b021c8105f0f2108d69fe = "c9061b476d42742bbd07fe8a145d143ac9dc6523" +c0adb5eb73037b1102cebd54034dba964d6a2f7d = "7fcdbe3e84c39140f04cfb523273ae155a295926" +e50f11c6e8904eb87e386652f69a25992ea988fb = "3e79dd5951c135467b486f1de0655ad69cef506a" +f7326fc6a87174280fc80ee609704a72454102c7 = "5125986c8f6a3585f5e22b6fc4cf74e315bc3802" +f956a8084ad01b573068a8cc292b99d3869cc468 = "801496392d6c07b2ca6bad80d4df78805c8554f3" + +[aaf54ef3-cdf8-58ed-94cc-d582ad619b94] +14575dff57e1d6e8125e4efd3a8cd434eab4f183 = "c6ae9e4673c2641ff0bc6eb0eeb6132468b2adaf" +345e8117b9275d565a7252eb664f4c87426e45ed = "5ed7461ed084b6bcda309cc6e4ba04e24711c6f0" +6a376d1e568e98b2efa501d1592a5eede585f727 = "d7e353727ec4fdcbdc35c5b86c84ef47c21c1ff9" +754b56774444e667c9b374ea56dfef21cce4e194 = "4d28db283b7c27495f3871e119c8347d37dfcfd5" +8e0e7233a5b21ba67f866eb5663f837ee073d5de = "eba7f72cdcc62b8f5efca4fa06208565701e4386" +9f1c5b397ed28de7bea2d1e3e5e70ace0144e3cc = "488f6c85eaada80b6f5e4531d0945db2179f381d" +bc79efc420552c29b66415c018540c75e884cb4b = "0d3d95dd227914067c5687eaaa937dd5132a75d9" +c57e5152d2d9ce4fb35d2fa3e2adea130f464ec1 = "509c2a106394532d75a6bebdab08a86a501cfe52" +d68911be5c661488e61524bee5815314306c29f9 = "ac2f5cbdb05bb3693cdc1bccdcd8bd35cc5a8b37" +fa44a138b65b72a584332d28d34f0f6744b835f7 = "1d6b88f65f0b3e0c1283f8bd66246903c7035807" + +[aafaddc9-749c-510e-ac4f-586e18779b91] +225b69924ca83818a6e2c28d55cfd46d50ddd532 = "823658eb1f4133cd1191bdcd0cb474008297e5f2" +e2077d5e20b8d362338745c3f4282a7f567767f6 = "397946ab8d59ebfdb225303117d6adfdcdc0f6d0" +f2ad24a647a0f97102ecb5f9b984e77ade205165 = "7bbe9892c2573491aec6897618fd881fd1b92568" + +[ab2f91bb-94b4-55e3-9ba0-7f65df51de79] +a2d741fe08318d3c7c3ac39bb6d935f5d17b8efc = "59cbdafc0992e22fe2288a226c3200870a617208" +ae25317516937f2f074aaaddc3ef598b9873755f = "915e8bd457a1f07f3845811a8936675f7389c85a" + +[ab62b9b5-e342-54a8-a765-a90f495de1a6] +1b166fef59e0a6ade055b353de209af95d2a35ef = "258426caab8c2a902747b111e83d85c25d0a1d05" +42631f914ce18e4fe17e909f317a859aeeadf76f = "6fce5aa3855ed8c3bab82e33a2dad928c5fc4ccc" +b1e273d496539f9dbbb8818d6447daf94d1cceda = "0d8cc90ad83fb4962033a62d8dfd309051f51b06" + +[abae6431-9fef-548a-acae-ed4840f45913] +8a378fc878f340e5c95930a763f6dcfe9fcbfccc = "6401a96e7e03365af5a52daff187470acaf10e6a" + +[abce61dc-4473-55a0-ba07-351d65e31d42] +61b23a4176b735cb95ce097ac89e5a3533a688a2 = "82438f396a959b07f1a016531c6697cf8d0e8d70" +672f8495069a00f05ac6dc023a8be69e2d8c0f55 = "ec953f03901d9485d03c455172a5ba6243b0d715" +b7bf489256efb0f06ec39c06b4cc0056f9f5548f = "a4ddf54194d236f5eb92cd4cd4ce0d0dbbea1cbc" +be5eaccbabeb36de76f7ac06547400c74ea82160 = "de3d7fe47c72552cb0ec4e6c6bc3e5b0881343b0" + +[ac4eac4a-97af-5557-9a41-b7bc20405a4a] +0f6b1d0c4b198f9267c4e56df2389bdb26ee7215 = "aa146905d9dff8679aaecd07931976cc6deb95bd" +2baa812f3ea765908e9b3d6e045764ab23488cd6 = "30e9fd3ce0890b770b19c3ef656b31a5df092108" +d390a6944949b0a68ef322fc98bf900e6f08192d = "39c1a105390772ce6c287308b5d61062a339cc49" + +[acd30bff-8734-59b1-86d1-c3ef2efb63d6] +169db94d89034120a5a6e5eb81b56e5f171acf2c = "d38722eb0d24dfac6262375c91156adee81839a0" +21f2def57f284e1fa659aefb1b5107c63c182380 = "4418fd1ca91524704c659f136ca3400078112cb7" +23e9b74d7a69b995acc7bfb0ef9708682860a7f2 = "54fe7121f64dfa67d1deaf06157013b7b0e45425" +6d7a4fb6cb23b73c71f7a34e9ecd7a7d30292fda = "86dd0ebf7268e5b30a810ef6b3c145a965e769ab" +779148e04a1735675a817e31d2c4fb77df5f3e83 = "5ce40e96cca0d874fb1c1d7632290b9e14978e59" +89e84f128bb342d93d991c34e7034be8e05a4213 = "2e184060ad7f3328294d24d3d70f01e56a5abd4b" +92bddf4eb34284a845c40e333b37bda2a711f99e = "f5f7343063b08d54078aca714797f35023e9c2c5" +9d43a55b11aac8f0beeaec0d3847b1f3b47ff741 = "ad41d781513cb67008bf892c92149d0316e018ab" +a1baaf6be8e54de4a0ddf27238a9bc7132d21f5a = "4d469803876602b02dce2cc66d4c678eaaa966ed" +b059d7988abfc525c8733dd511ac92a0c8e45b2f = "c3a1bf882d247e8656b1945852af6bdbfba5318b" +b1e43160148846b9271c3af44a63b8a2fab1193a = "8fa87776c0be988dae960cf1891ab849dd649e25" +c09122a71c22f04f444f71e8f84887ec4ccf355b = "c18201a5dc95c577a8db5f8dcd2eaca7b18f94d7" +d4957accc1b461d5b193c73a98ea1861b33a66e5 = "38e4be47e565fb93db90cbdc900b68e693ba1a70" +ed7f787bb165781c5241e60ecf964d60bc37cc1e = "5700345e102f0efbfc6238cc8ff9cbd082aebe68" + +[ace275c8-85fe-5afd-ab71-dcc95eab0b15] +b8a8acc8f6937ef31972f7e4af307b1d4b348623 = "9036fbbaa729c678e497f8c049f22f3fe831eca1" + +[ace4b8d5-fd3f-5fda-b564-522057a42c15] +175c7a5a78d1fcf7c601aeb633149256f6de5b2e = "e225fff2b7fc97be668bd4699552059ae5abc281" +36c92bb4f746ac45ae0ebee05c2454ea9be23ccf = "10f9e27a7be73a94b28958e55909e0343599db52" +3a5691ab4b3de285dd83e9275b0e40bbcb722514 = "d118b75848035ba5708557de9cf528573e3a26e2" +54379f35b24f11bc789a23cddeb764cae2d71019 = "4762a240babc41673583b276eb67515535d2be12" +5764707ee5ae4cd02ac136be6c2b26880bb38cbc = "28b6bf3b2d0469bcf414be1ac5db34da3511b5d2" +68ddce4897dc8fbe9797960b7a2c7be200ba2ff9 = "20341db693253ee50ce1a7b9e6194dabd630450f" +6fcb5ad9efd2a64b2fae29cfb862e11d5b8a7b4e = "4a35f71b469dd8db6cbe42da6a3370c4b08e1e52" +b8d257e9b7591c0cba6b5f86b92c07ff759c44ea = "e4f55ad7eeb5c55478b6c1f088ee49e332d7b70f" + +[acefaad2-17a4-5d8b-aa08-e18ef75dd0cf] +37dc501a4d80c1cb6e7ea95e3e9370c297c492f7 = "c64877ac327297eb75fb8e49ddbd25c6c5d98172" +8da8596a2ef43ce2e06f8c87118e726c09f0ade9 = "cd5bd10f7b6afa26ca2738bb00dd8f03c8c9420b" +dc0e9bef0d59b9110f22c0828a90a28a3c0b5926 = "6330a49c0d3133e3d563cca1b73e7599798c6777" +dcfff901664396ff8e3b82e2aa986e0793c820c7 = "f017af2be3a0340b25c4140f2b9d26e243cb3cd0" +f1cbef98ea6a95183af5cd71f3063435df3af345 = "d3d4c0a1b93a4c7d6f5fd6b1df84c6e0238ec571" + +[ad72c4b6-2990-538c-bd38-e122d63d24d9] +3c0c5351a40362d183ce318ba0c156b3ea3392eb = "ea4e6fa77830860db517869ab18bbfbc6707894b" +bb2045ed51c77c5b4cf0149f602abd803db9dbee = "8387647d1470a166ab6dbcfdacc7e3800032e74d" +e85b555f34ff55d72e842f0cc16c6fc6e8dc4a53 = "e0f26584f8283a16d87f6df935419514fa12ebd8" + +[ad839575-38b3-5650-b840-f874b8c74a25] +016b16dce73ffcf6650633c609619b944eedcaee = "d8485996c5ed17b0acd4841751abf3f8a70360dc" +054fb44e853b8fe4357a032cc61a5da7c6507942 = "5980fefece348ae92d81afddf0f811b68c95bf79" +0ca4bd334358e24ce506baa0540164d110cc36b6 = "06f994a7989529210e4609ff144a696e0454e13a" +1a3ff2bc32d3f8bf4627312058e1001540dcd682 = "d981100751919a0fcd3103405c1086a7d5b5fc67" +1c09bb5df09ab8cbae7e511a326008ea946f3d69 = "56895e96eaf762c0c31a68c1b9ad6403a3a8b05b" +23b655239cba80b7092d4d16829421dabccba920 = "67348da0356e3a022226b9f7f114c9a22f3ad26c" +2cf84d24c359af821a496f27debe052a6214d7aa = "a123a92fbc514747efc1c35bd3d28da424d7189b" +2f642c46e55556628841d1fdbbf9f0400d3c99f3 = "1c25428913e15f9cd8691d246b6bf8cc94970941" +3032a07850fc7ce9859c69fd6d1c2d44054b70fd = "731e5c94bbc3b8321e0bc72886bb37bd8500632a" +3f931c6db4d32ca44d24bcf01efd2d0a853d5709 = "bf9ca69ab22c6f3969701d9250102a311f9aec91" +408244b3f62b5d8f03615a1bb82fd3e312ade130 = "b981acfd8665a88549d05095633c83e61610ee4f" +56042381db4f18e92da1d7fbaf9939c5172c8714 = "7d4d2c0414f756f238e59b66683a6fca139e4629" +5d41efb08986ed48c555fb8ee1ba3e51617dda72 = "51c3fe2f8a3c8adc76861a8bb3135676318a6daa" +64115773117e53705df89fa4f3051f29c7547b6c = "b4d8860de4b916f533837bfe9ab5d96c23c6e625" +781b62ae3e75f58b5afd4a49f70ca389e1c2d491 = "2aac56fba14ae4bc74e92a4079f612c4c647a818" +a44b3bdf653fb7e050b927bf3ee56be476e22459 = "3482b3f1ee481f6f5b81d118fdb224a373599305" +a9ffa1d4d63f64172f9a601921425787b22af66a = "f5990548e91e3b79e714e50e5aeecb51e998d144" +b48b97b0a8b97532596f4e1727219b850f424dae = "17d0cd1eec2682595d4a9dfedd2d0b646886d0aa" +c66df0837ffd531c95b62ae26fa7efc07ed74265 = "50df0942279928a821a46bbaf9fde79047f0453c" +cd1741574154caa7fd77a5e9142b6d7f68ca6ce4 = "52dfd64449f6076c5557194933996d6397867d17" +d170465d2f01a48c74c2102e3a3c9ce75ac7edb0 = "7787d90d17a8d72b2a2f7a657a3e1e2158241023" +e25741d0634f5ab9c6f5052e829eb88d4b6837f6 = "54841fd9642e3eef1dc9bb170aa891988ab09934" +e6b64d71070eb391d0c44ea66d09389c241a2482 = "8201131ca75111387c24d9aa904c5735d6675506" +f2c88bf58f4ec7edbb7c6f0dd90dbc959d89696a = "3873ed786b5e0480f39326bb8993e6ac0bfa5883" + +[adaf3d07-42b2-577a-8487-f34ffa1a67e4] +95866c0b4b8495b5305f6f357c982f3dda809419 = "7bd3cd0d00763a9af6a3abd9d53e7b1b0eca6741" +d3cf086d73391788d142cff5ede91fa49f3298a1 = "13399e2d88a7aaa72d9f49506b01798c7b2455f7" + +[adafc99b-e345-5852-983c-f28acb93d879] +2514bad52449b099a1d0f05b683a6019c0ed4f0d = "0c548e80a26a30f86c2c243d1417ae253e44d3f1" +5c1eb0f85519749dd9a61bab56d38101f016784e = "aca22fccc5c2f6e4a3039e4f60256ae17c43413b" +bd17a9293b65100e94981a6529784c97ffe58501 = "b862df5a968646b84f99da7c5ce7b22fbf01b3aa" +bf13f35107d6df744ef8e903cdda467fcbb8068e = "6edeefb1aeda35c89d447bc20efba2097066701a" +e70e564a12c70255fbdafb9378c1ebfb63daf63f = "b517ac80ad3f3951998c602ea9bc31c261718969" + +[ade2ca70-3891-5945-98fb-dc099432e06a] +0c337ffcd773082bda1eb9dbcb444d8ae4d28920 = "aece5f9877c7c1caebe794e869a2df8e2907c713" +1764fc048a2186438be22dc7a3a34e87b333f296 = "7e18dee416430221ee92594cdc392e9f6de5fa7b" +333857d4166346beac830592dd0f407d6a44b6c6 = "bb74a3d7dbf6e5055386ea2c98961bec1af69136" +63cdbc768bed7a5df8a51f041ba497da3fb96cef = "d598ffba92bb82c242934e532084d73c46d4ac2c" +6483642ae6f657a1fdde50b7aba64ab77db990ef = "a34c300884616bc689ec2fa226333702cc9306ba" +81b9c82024ef3819b102254eb7ef81f1861d4c65 = "11c2d94594752c968f5eeab704e99d43b67b6577" +849320745c708826629f9a581ef8fb1e3435383e = "e12b58556e6b1cfab7b5b3b6144b418be8419f87" +9581c4a8347a466110359c52318ebce8684d94b3 = "df0ac8a666a59d85a7939446b41194d6ad6bb2f7" +b763f6e30135322399527c3183e852502645ce6b = "6705b513e1a0d0bd509fe6640dcf0472616eb561" +dc6ab248bc372424456782689e0c79ecbc4c1470 = "672f0b304cceee99a943eaab367c0d81ccb094e2" + +[ae029012-a4dd-5104-9daa-d747884805df] +4a473fe2aa4a52333bcaeddcdc3ad9619c09686f = "fc07f83ee89fdec5cf08886a61271fae8d964cf9" +53e021464b6a7eb324d28c28eddedc78ea6e0e01 = "ec6473ecb363c35dcccf51dc0f98c380e6ff6119" +5683745f03cbea41f6f053182461173e236fdd94 = "a237890333d7ca716a9aa15866f18035530b0a5c" +57b2746da78f15df7912a1af17dfe3045471f1c1 = "a96e21b02481d7a3deb29344f3b2421b3ee6e9c8" +709b1b6258b5d672e7c93b75539a96b93b517cb2 = "e3e0763059de19b4335ce32939d82ecf4a0f5b93" +71b627ac48be126a9a8eb7a5c2dec1d4368723e0 = "e7d5e0320a5f931af727ab13f85fe7852b7cf270" +94727fb1f8dd5192c36ff38372eef82120e73663 = "07eb7696023ac601e9ed0263560c9c6f4abcd1fa" +9b7fc1e94b31a9e6db27bbb0c8df844467f20114 = "53f178b897d4b56249d9e63d2383c785bfd754aa" +9bdae246b49439d7477f647fe61a0fd3f5ecf97c = "bea2370c9d71b6830509ede73516956197c40f23" +ae8a6b60e578706cbbe9b85613b03a88b23e46ca = "6511ceba7e05199631bcb87aabe5a61ca533d564" +b5169a6ec1b85804b13d4c29f948b288b3cebadc = "57dc6a296c612b902fc6dd3d6a538b92dd25d9ee" +f89031757bc0ebac8d052f3fd8b401006d1b17fb = "f2646699c3c2416763a257bddcc8cb321e950339" +fb6eda1be1a83c330c12801d6cf652ca7daf323d = "c05e1c8d0c32f34e51be549e50d5d3f92c3ecd3b" + +[ae04f764-fc8b-5ee0-af1c-aa760b5c9409] +4bc28b8405846b400fc68fb01e3c62ae1e716231 = "594401d411c6c399d35893aec44ddf69ffe148cf" +85a19975aca4f91328432b22fef83bffed41f832 = "6b7658e5cee0a3996e9c919243342393ab0b5910" +e7e4a4df881cdc9dfc8cd9a4ff312a79cdcc0081 = "015a8ead8eaf6e74fceac1eef93aedfcc3d41b1d" + +[ae2dfa86-617c-530c-b392-ef20fdad97bb] +15fb0eeaba4c15f9045a7f7b57060694e4c8d401 = "e69769766d8a96d8e17498f915798d9aa508aa62" +4c7eae1e937fe4751d4466bd3b9256ea22f60bdb = "3393fcb93ab0f74f3dcdc29f5ae5ef445b9af037" +6b4884c37faf5daadf97d51998c4b76cd37788db = "f33fb6bb528c3f7112784e249650d88ab3671e59" +70b76dc5a6bca736dabdc2139c3a610ada99cea3 = "073ed026738f461bd0f6cce957452a314f38cfff" +7286c9ac923ee927c86aab1c1f3844776e10764c = "a45fd25c17191257abbe3151b62b7bb5f0b14e64" +e70b9c44b19129692a520ab748ec5d0ec758fc84 = "42db48460cb4ce5e46ef1d7cc44658e0417c0fc5" +f973cc921f3bc2fcc0c717f9f04753dd043f18e7 = "ba9a4ebcb99cdf944a5bde669538e21ce873a924" + +[ae5879a3-cd67-5da8-be7f-38c6eb64a37b] +7957112385732861634c1cb127df4f45e6a6b711 = "20aea9ddc19f28895988c18e04a534faac64aaa4" +82b01b8cdd3f8ef44a7ab17b2d9014b5fb606e38 = "132ab91a65fcc6be6bf193920863d79bbc747bf0" +a736e8ed3794e6175ee3dfa44efb62ac9c395478 = "0cd5732f6f211993934028d08ab11515e1d6a5ba" +eb666dbd9f6354f07ae9e308ca96b7b1be3d1718 = "924b48016ea390c9b90dd36809ecf1531968cfca" +fd28e6a222ce0797c0af8b1c8abeef1ab091cf0f = "e59a4fe340cbc2b5909a594e667ba188ea717581" + +[ae67c156-61e5-5f29-8b53-c30e05e1ce0c] +16764c37f82e108cd0359374e270d1d3a0b62e08 = "e662f022df69589e1f78453abca82ec6a6f0c135" +1e63ac24fda2748429272a7e699ffe6fec3edd57 = "f37e0fbddca677aa87e62b197269e081d3bd3cc3" +380b5a3cb995800c08a8b060ea51f3c40779d7ec = "f80caa1878bc100ff00a6e023afad96a4fbb4f88" +5550184d986d57f7e819aa17f9755a8f6f4a3b65 = "cdba8f335274f57f3e79589400ef3e017eacc45e" +8d283e2dc831568fd503350503e8a4e9b0b0de50 = "5cd31d27dda00342ffa31150021453b007a7f3e7" +f811d5fca13579698ff99853eeb0b9bfc3a681f6 = "df69a426155e0358f5731e650ecd25c98d7a7720" + +[ae8d54c2-7ccd-5906-9d76-62fc9837b5bc] +0b8b3cd95ac57d7369e924ce8a1af9b71e4d5a18 = "ca64a1f22cb7081f26ccc4b9c66eadb8c60f342f" +13f5645f7048fa27d36f463fc6ad0f2deec7507e = "fff610822a38df581fdd0e71555bc5ea5d088d5e" +18f71b83cdbaeaf69755c67d657d48f15a8e2b1b = "8ad2ed7148075e54b0634be0d7182a79b2fc3834" +23927e60e1b70875f7d394bbc51056dc145a9a5a = "db65e6549641d2109e1c6066e1f4c3290421e333" +2aa223c688ceca31d9236406ce712f422a5a454a = "14737e6455d856043ee60274dbf2df125e1a97ee" +32aa4bb905107fbc3aec5529671775f6fb5c7d64 = "429b6c0218e60695e62b46cd98058d595fc2c630" +34785dc2f7d53c2fca23d6ca5773da66938f0601 = "c4c2384f90d8a3e1bea6e0edd5fcac5bf3417b53" +43997ffeb7cadd23b60c38b91dd5077d5d94d54a = "e118b304445cfec7611dc48ba0dcc1abe76c8516" +474c33c2022fcced634d8a3e5ee00f76d3f96e41 = "4d7ee5b9d19b08713967f0a54884e7b9d7871e6c" +4f23c7a79d4c6d835c4f5b3b1a74452812d9072c = "63a373eaabffa3afeab31731d414d29d338d5628" +4fe8c013eb0199bff06add6e34b7c37ef73c615e = "49715c3eba9e2a8b48db65ae4be1491361f43987" +57d0dab257d107491d02dd883ce551d0388a356b = "84351c23a88e091af25516853e728e3290ac686b" +60851707467dc7679a85a984b39d000ac77006e0 = "b81fb3e52ad9ce17adfa2feafed7a5b086b89de0" +7ae38f5445092423c78b23ed228380ac056788fe = "d229615d6da537ddd9899f2a18226e0d5a1a38ec" +8398d44aa9c48205ffdfa266b384f57130e30d11 = "c45071e3e8b1f5ee85902fbbc7563106a1e233fc" +87c0c978ad545113ab91d4367661e8b2f78d5b87 = "1c4265901b6366c2ac585f9ba225c2bc9105678d" +94700cb92bd103f7ff4cd3009a5b866ebb4402e3 = "77cfe3892ad19ddcead40f86984a8792975dc004" +985720a95b0626f541d171ea64c5fcf05e2c3e38 = "9c3d53ffcd0b648db14a373554116157473a6743" +a0e8a4c5cdb6856eafe3f27d214bbf64b9d1de4c = "342d1b6d0e98229bd19983aae995265f73a0642d" +a8c4e18c070b6b9484096b4b1646ac7554951367 = "2560d147b80a621f3750ab8bfd865361746b0575" +b74e64dc8b66d911e15d2742e9480f274fa2ad51 = "18a878796445c6eb24a6f473b5034e9b6678b662" +d2af73cdccf669607bbb208817cd261c8a63b923 = "4766b0cf633bca245ed2096e4ec5ab16b734e489" +f4a77f298285b6f4b84a7b9057ec1570c7dd5015 = "9365b7d64370dc136c3f2d6c42e43ca9ce8ac56b" + +[ae9b84b9-e24a-5537-afa9-212627cd7ad6] +0d87d2af7650fdbb49064fae93235b195f901847 = "cddb4c977156edd344e33ca3db118904783dee05" +1a4905599d1c20ea30024f4c103656bc9a789e6d = "697b8b87cc1aa21d49b7b0d5da867f292580a34b" + +[aea672f4-3940-5932-aa44-993d1c3ff149] +3593e96719ebdc071086d442eb0bc805c0ad6c0e = "f2b595e233b0cd04e1dcc1aa33689e0a11b64871" +36eb97102666db032b9a8df003f2798d0ab32187 = "9b68aea5aec8a4b6b17f744e1705b8e5295467a5" +62da8dd6f0a6e7f83fb6b157dc3e7feeb0fc1b9c = "15cfa9f09d806b6aa00925e8e9156c15587d1e0c" +b1ceaefc7add7279ce6b140bba181f5c7c2401db = "be61bb7c7a2dca5ccfe5fda5cfe54d3f893c09f3" +c81235a0f3cf19b5cc564c0f8489eb40031ac5cb = "36cd01866ccd0d762910cb378ab2b15fa34fa9c9" +ccd6d208ddb09c58cbc23164e0a9f81d0518d85d = "61d9518b4b218fe5259b1d3faa4ccf30f93de2e5" + +[aeb4490e-d914-5f40-aac0-ef8e9431dfb2] +67674eba7eceb65667787ba92b823d2fb471422d = "7833a48b7d64500e6963a279be40ce2348d2ece6" + +[af6aa194-2a4d-5dd5-88e1-52944c9af9b3] +73db5fbfcee03c9fc69ede78a56998dbbce314f0 = "4bbcfe53998a3185b33c4e65d369ee287dff2aa2" +860eaeb25e470fdf68360b771f1a4b0c94c4f024 = "c93aee6e96606ca1506c65d86331ec2486a8125a" +aa40f80ee6369fd6e485b646fc472b396705e0d0 = "0cc5febf2a58c9b1ea14744d1cafb7d8b6a20584" + +[af85af4c-bcd5-5d23-b03a-a909639aa875] +2f0e2bffa5a89a1c1ed88d48c7b62f0df8f64e69 = "281142ea3fb7199714577a23402a5552ed5097c3" +9f6f82fb4551588ef64191e3719bdf1cf3bab71b = "ab68a7ba17a4bcf338c948634b512211035aa85d" +9fba6cd08ba2a77292b3aee37cf4255fcbfe5903 = "6075e88d0052b02ca71c9d29f972292da4a3c3de" + +[afbf81f7-602f-5a4a-9a77-738a1b1188fe] +0ae5dfc83f0b1554123f206751e0232630009511 = "0c5169a280ce5eb17237e6a7a871e383fb33367a" +195ea15a8fc042f3a03f923ca9301e925b45261b = "8eff5c57108717fed86df9dfbad07787e00907fa" +1e3ccccc8948b49b2d7a8aa3b9a305c0b09141bd = "883606c1f670fb8bd7049e8ae3d655cd9f0f1c00" +251b15a450723acb5292027ae92171977b06df0f = "4d711f1a930354e74a5a33463d71c716890df809" +2fd83a2ce48ea3e0c436e8ccc2430f7d12d166f0 = "93143f0c4953e7f500e4086709d32028877f47b0" +3ad08ed67cd8d4b09a71346a10b4f82508791fd1 = "797fe53670dfd948adf10f95ce4553fbcb36299f" +3bb99645ae240a25071bad00867094403ea6fb6a = "ad8fa492b3198a67380f63bc68b3174dab6a32d8" +4e5fc3c98694bedb54564cfcc9b5be0240113458 = "5870475f37fec36782777029ef79e5da54dc0811" +4f93cfc3cbfdc974b5d6a387a269f8f69df06921 = "0062f326ff038901e1f8d46a9565be5f21891d50" +507dc26ec77724a9a49b2baa798b84a1f8f0d9e3 = "66589816cb3630231331aa820588f1460c643d08" +6a36e1b00a288cc965c0eaa608d9167bce6fa81d = "13753b1f30883f09794630d4a46628ea90b2f79d" +70f9b23b8593fd54441ff04c936165c6eb6e4bd9 = "71cb46bbd5675f29825148d2c8c84f1990653f29" +800938ac8f39e5339c62e5906bedb6f9008f8a07 = "9861bb3665f308189f1860c178b524626797764b" +841cba763cab9b7beeb4fed5066ef307e675dbb7 = "76f8ac0e9a029a18415d0c3786beffd62c34755f" +849a42da623063cb3624094b5ce49beef346dc2b = "48a4b53685e4a17566929e3cd8a60c31196ee16c" +a1c5d86ce3907a0e1328b2de4d6c08d763377267 = "160140cca1bb741ade4d57044f273100adabfae5" +a9225cd3bc8ddc53da14afb71afafe37f4fafd84 = "7141e8079533f3a23125964754a2ce5a99820ac5" +b0dfa0c5097d129e2ef55e208b279583f327c1dc = "c8ae6c910fcbe1a8277d3269fd78ded183550d4d" +b1fedbd003e45ef7ae090a8f49fde1f4d2a1b8ad = "e7658b8efd443880fa94b0f35256a29e7d30581d" +c4854cc0a056609cd314906d76fb45132dca16d3 = "cd47145beceeace87a21436ed50615bf5f773a2c" +cc259f13c5640702421fb490bd121f038b9ad3d2 = "36150f3e2b7e3ae34e3d1925f0e7433c4824ce0e" +d06ac62469c9297fc953197d4c8786684c88d0c2 = "bb5f24bb6c7b1885b80dd9aac023228ad8dad47b" +d7d5ee13b9ca1a2c8c4b0d8d3d04f458744b3808 = "b2f9ca20cda70b8fb5204ef163237379f9bf873b" +dadabf145070d0c400564a0c2be2f932e8fe49a6 = "b8ba3c27132fed19316e19bc417847567aa2c3c0" +eb26c3d7744c54d53d3af36e7d294e7bec1ff9d4 = "cbf2bf150e62c36272818e28f53fd89b86a43ac2" +f057b816fe3f6fa4e8ba18898663ad5a200006cb = "b6f539b1996acc1c6e3357ffc0bbe441f1dbe4d2" +fccb73f263490dd79bc923d5e490dbfd2d64557f = "af211aa83a9a0627c257e3467306424cc0709704" + +[affaf649-2f8e-5dd6-a1c5-c612f82136ef] +81ecf5b9bed19e64860d661d5d55ce40347747a8 = "88cf6f4e1f1b8679a28873c1b834e97d3c564c53" +fd2fe64d04c3f5ee8ca32f19238cc9179357bf7f = "316dff366e232fffb98a0cfc2716243b33db6806" + +[b0ded4b0-f9f9-5f4a-acf8-134ab82e33a0] +a5e3b701580761769696912b0e080d63d23e0b0f = "39392da23547ecbd35f0b917a4dae75117463fe2" + +[b0e4dd01-7b14-53d8-9b45-175a3e362653] +251de4058209e637f8efe0df5c2cd91ee4f66ad3 = "22e7cefe6556f31f1783c344847f543fa91e0f58" +3c48c1df639fca39d7d52d67a908f7a86180fdfb = "72a44a2f3bdf8b77c41688e5f48038073cb73dd0" +519e70b226715dcc65c5b0097d120f77aac498c1 = "cb20246adf4781067114929a7256ca5934fe4a98" +718bda7ad2e784f1079b69d60b787850552041f9 = "cef7512c343d7ba571ab510f2174ab2015173937" +ece12bcdfbb0a2010fb59ad045310f68e9ef774a = "706a083da4288ff92efdcbc4f34866d4101a4ae8" +f50d6c25e625a8fafec4af834e31ddbf0ee66278 = "48c4a7e6d7582042cd869fc3a1ec3df8f089d9ff" + +[b1092613-729b-527c-9001-14cc232d79bf] +0f75cfe65c955c468b2555bf3640caaebc642a5d = "d546c9de5b9786595a0e8270979007b86d500e1c" +319c68718f0f38cd7de3821bb851c0f2632de0a0 = "7fccfb7e5603733df42c85c4b64b6fc422a44f9f" +32d5a252e54e05d7cf9dbd8af7039e0d523237bf = "c8532d14045b10d1b82b7c5e0bf5ff8a9b173784" +4c7e008f9097d3b9a843b82918bb582e18950511 = "6e69030c2f060f55b2d5324098df6e04e63ed21b" +7712f67b12711d5976d8e0abcc321cf813c89070 = "7fcd0ca51336b5509b9a66f2268d48b23c96e68e" +790764d9c20e7729da4b6ee608474af9dec804c3 = "43f3d83822e401a2da49d67423dc902f63d42d2b" +7fcbc237eed6df480cea8d4752690bca2cffc7ab = "754fa60d6365100954e594e2b9d79fb6e7eaf095" +8bc8148a2d91cb9ca62ea2c28be3425f6c404756 = "1c5eb9ea49c4cc96cc9abf4211077ef1bb96362a" +a116f4861ffd403ee62f2c75875931de88d9f083 = "f81c500eecc2a5d12e84c6890668498e182a707c" +c0b1638d9f986ead4b3dac4649db76d6d901c177 = "8108ae3a1822312b8d77ac9ee4af667f7c8026dd" +ec4aca0eb76990abb9a7f294a0618830d2a93895 = "d11346f3778dbb1d9187c1861c89680ef060fd62" +f971b5b7a1fd2b621d4507c658f8eabdb25141ea = "c91e0f521d85e835dce20186f4e53a5440d052b4" + +[b13ce0c6-77b0-50c6-a2db-140568b8d1a5] +158ecab74c084a34571381392d99f6371c4aecd4 = "b1cf09ddf11815b87b1dff601e3ac579998dc893" +354ea6336705b0e453e91432992c2c979ca57081 = "ab36905f0da96c3a64029e9970e424d992ae8e92" +3cb09a0a909e1a757b368bec962119f1f94e297e = "1c80d6d36ccc9305bff98b178c1260e2c547572a" +8abfe8a5f62669f9d72b05ff1f7f9b91ce6ecfa2 = "c06697c3b4fee129d8e763e485a21b0170fdef1f" +c36a10f95d1db4169bf0af7d5f6fafffbf21c862 = "c0ff8d5abe596033fbac3522f5ff584d118285e0" +c96ba4924ac01ec433ad76eafa2e9e83eb8f9b1c = "ee930bbee2efee1c0783e8d00771c7b32a32a126" + +[b17e117f-f773-52d8-8fc7-11fded9104b6] +350e2a754e4b681a81f05c3812e4a15b8ae729c7 = "131d83a6debc258fc546931f312650885f6377e0" +64022ca37709824e310cc3071a34948a0bb24c9e = "52f64de40592ba34724a04ac76ddb9bdf30dcd5d" +d0507cba8b0e528bd09fa37ce0a8d383d0dbcaff = "eb6207bfe8ad7f9f33b760a705d44d0b150510d9" +e0daeb60fd1037855ba96015c8d64d7925bbe10f = "c3c5bac2f2f534e9ace538b263daec62b10a25e9" + +[b1909ce5-9a67-5ea4-ba1b-9d85528f5779] +1dc18410c8ea8a6b94b819152b5346bcf0c5366e = "6505b3a217697350691192129cfbd63fd37ad007" +413ed34ed78026d50508946d74b536d86710ebb9 = "455e5a5879e43365b1c9815f83be292e085043f2" +4c65efaab4fdd734f3ef23d15371fbbf11243cd3 = "d5688dbac8ece270653750722164a6f3bb6567f1" +5853e2b15ab9f9ffb14fbb39dfbf9c8627d9cf74 = "f6eef496f0d58664f446964ac5d8ee85b1004ecf" +6488c4e7175c241de584a41ef4642be3eac634fe = "b4ca32fdb8322e81a0932f773a02179897cfa8c7" +7e3746c3b4c8565d60c16e462fafc27916c8d84a = "971d66a7cbccd12766efbda166d90c386756647d" +917cd20799fa87a6818303396fba7e6e4204538c = "4ec3ada92c2011586011518ceaba81c3b68e34c7" +a67b92f96f9ef3ff2c3988e4a9ad91f437fcfb87 = "44457c7d6b39d8ed0a09c4e39027849e386ec83e" +e33fd54cb6cf1d2629530141add29ec0ee8091f6 = "7c32b00794d9528d2472e0ba2eb8d121862c8975" +f52f97925647940f436b0f9942c4f999f5fd7704 = "946b7db9464be49eba74cad3cfd7ebe6fe4e1b65" + +[b19378d9-d87a-599a-927f-45f220a2c452] +2ab8171b90b0c5c9d8d9fa7d15373c8d8c199558 = "94901f8ff9846251e2b5f4b88093c34fbd3f1a82" +78218c45e1e9c5bc06d2b4a5c9da8a0cf98df606 = "a7c8e51c0fa83fc6bbeb1b697deb9d7625f7f76d" +a4b2a3bd509554771e1b11cee7a494e11e2abc52 = "b58bb2103d4191d00ef31409f5debc3fb635e7ba" +c286d4ee1b4a5d36b4eb291ede945de099c36584 = "67c0b43bcce6b5dfeca1f8ffb152fc701adb3249" +e0f9648c8fe33deddf1ba9ca6ee9594e8edc5d51 = "af5e7e9db303b4bc6ed62ba0b499f2139cb846b9" + +[b1a4b0ec-3354-598b-9ba1-60d5189d7354] +36d9d3ad03d6e7b36085e7dceec55a1cfe4a0621 = "085e02a5a36834a9af27a9de2a072dd8426c9be9" +fc616a09f7af93d5131d92543f970023803d06b6 = "28ed2eae17167857dca046d4d6279d09028dea0c" + +[b1aadb49-3d58-572d-b8aa-4c3bc2b34839] +712c9cf2c5f4cab89311eef0b159b93f3d7f3739 = "1ed06122570cd842e1d7eb95e71f7bf38067fe63" +95918f9a7ddb5f7bd79493e31e92168e16f9daa1 = "be9f5a94a67b45edfb930e376c6623abe50274b7" +d412a3712b3a2ce6ec44da80ef81b1cf81d519b8 = "77c6934258b636822e40d733685c34e8e5d338ad" +f3f9681dac67f792f60f6874e5a033edae7e05f1 = "e05bc4dc45ed567bcc84d7c198e276fa5657230b" + +[b1bec4e5-fd48-53fe-b0cb-9723c09d164b] +68cf7c483c678417acb0eaa3bbc6ff7486228393 = "86c7b77544a7ce77c752ee70cfbc704a1bddc5f2" +79d51ec03a53cc0683620b64fec0b5ccb3be2999 = "d8a7331a7ad0a7df2b12c18c04a5eb54e2d5f987" +c99d4875190ab11676e5c440c856a0c6f02c61d1 = "5ef0c1ff114961f1957ac9ce5f09438e67f5fa35" + +[b1dd1ac2-3671-512a-91db-cff14b385d02] +269c93de4b48951ff423f393e63058a3dedc529b = "ee398a3ed0b53f9e32f83223f678388db03f1f28" +5f48dcf2076c1d8043bd0b8fcd4442a63a12231b = "d7897255122fba91395d516c585659797bff49f5" +ac2dda44e192c8a537d606f7b34f0a4ba84034b4 = "fa119aa25c7df1e426deddf1ba6fc458aa388599" +b4831b397273673f8de5a5d05cde0a9e38ce6c1c = "ac5398429ffa703ea2202f76f5bd30bca6c14bb8" +b75db1e1c64d7dec89613dd772da0f73c7779697 = "cfc17d9e8d3f2187bb7e851b50897833faba118d" + +[b1f22607-7830-5ceb-9a8e-05ab1ac77008] +010936e30f8374091b6df54791577f4125dafa61 = "269458995145a152c043cad20b0165c597ce4d41" +21f07ee37e68c3f50b4e365a3bc3d3dfc363807b = "85571abe0f15439de7029ded2bc71454e99a4f6f" +5edc1a5fa84ca61b89d2c3d49df4d245faafb92c = "61347da09e986935d5917daa1964460a3ae35350" +63dbdacca9fd79ce57b5cde06a1af3cb1c63835a = "e5c9bc4e0169aadeed68450396fb509d33f0b338" +859c66ce5bc6984068cc291a848c1555f7d63f8c = "a1777ce906cb5a4c6aef47ae5dd2a359d296f6e1" +9836c3555d8303375e3dfcbed44d720982841972 = "e445cbda6be35084359efe9a1efbf34741df4e93" +bff94d950aeb86a230d94d70600a7294c2243a4d = "eeca08d852e62ac03da813b20fdc879a82cf123b" +c03c19370cd3c791cff84bdeedf1fd81a128bc81 = "ab340893255fe1653c10008d2b4c0d8c957527ed" +c8a64c087fe39ddc0f0e7c425639403f89c8350b = "670335955ef0043f4fe1ca584525343f451cbc9e" +d0840d34cfaedcb1f7f6461e98fabb4d0066ec3f = "7a04302aab01cc4bcbee97dea1d6a0acfd97bed1" +d41245477df85153aab7103cf9b6e118d23e43e3 = "cedf760b999f0c49a58d424e61fccb4b446e79a1" +e4c5c329704f47596038b2f51018b2272e40190d = "7c908ca3f5b3b625f0733aca3e756bc6a10cb9b7" +fa159f56b8a6e8aad0221be32463deadba07148c = "f2f17a7e9a64b443fc98fd56fc1c89ff1208a6c5" + +[b2097dc8-3ef6-5718-ab14-7bca60434373] +1c0c4c61c9ba77a1957b1f9dc2d5db02dff2362f = "e5046415f2240a8ff31cb2205228bc5b713972c6" + +[b252259a-9f4f-569c-ae1c-bb8ff42e41ff] +07c73bfbd44021f097590685d85ef6eeb4ee5e03 = "6bb54fb63a69b1a37a85b2796d5958f7cb3aea18" +1464fc0ed0a53bf754ac9f845135133792f98c4e = "faa184def2b8ee9e3d434cb741646f3aa4a57bc9" +2b81a392ff5303d12b4c75cd34f36fb25c1be91b = "fa15c222212d706d3722ec953cb6d4ebf09bb6a8" +30572ef59a2ef2ea8a169ac3a126488e317d4db5 = "0738f04657465cd4d30a26eeac20263aa57b0c83" +42e1241d8aad1e65c93f8c7e1e5b4a4d3b31b933 = "74572719e90cd731ee25aad36e3c7bd184559300" +4acd2f67d870f4def25a0b641e3466dda74f3742 = "f29572a9cae692b8db61d4c0a17a89f4e64935bb" +4eb8eb50c68fc4cc82e69c08bcde171a10a70ba8 = "fbcb11f574ccb6ce890c42da99b4df2d706ea6ec" +564c92fbc96f1d6f0d4c8ada36557a6248346942 = "50ce17ec004d1fb86d481acbcaf1d313c8beb14d" +6558662c47384129ff5ef52d064b0bd3c712679d = "d7647a745b3acc8496eeeb5642efd26c43eb0469" +798e943b4fef801f4fd74d98122390f61c6e42fd = "da45f73d8c2bbe4f2d0249eef6a03a45c1c5b7f4" +a487f1b1603992da1279776f7896e158f042743b = "b88ce137643fc1de69e11c1a35a2b88351e698d2" +add7a180ac419e04e943b4cd92699cd7ca75a4e4 = "48984a21a396db82e69d9f9cc6fa8b7c2b1c26a2" +c19bded6df0a6a00540b0db112ff405266e29c81 = "54836cd0ea8a3bd1346f4a619c90ca67faf644c4" +c2d0f60b632fd981dafdd43f5a74238bbec6a930 = "ef06576dc08d0adba8647eb6d06265f12dc238ea" +d6f24aa341f37b2b392c9b2e2e119996ed6382d6 = "ea2147039317b2c150c161bd1d38b88cfc0dd66e" + +[b255c96a-a4ac-5b61-a2c4-3db36d36609d] +01d0b5253ab04e2935746c3648a99298b6e0191d = "9a05df5811ab45201413cc5aea72cd4c1b9bec35" + +[b27032c2-a3e7-50c8-80cd-2d36dbcbfd21] +0c78db1690ed586a0fd1ba9313333fd3fc76bb98 = "38b3489b897c4fa970223688139cb73e667eaef7" +1a61ce075450e52d9e602254f90325688a82827c = "cae5b25e760d552ef41756677e0d7d4d3379cf72" +48d3f229f292fed2eb8040a6bf5aae76be1575a1 = "577cc6e72078465841980686c534406bd2600af8" +4fbbd6bfa95e1f32888694184287c0ff63700039 = "b38cac7a533ab6ba02a20c9411a1234bb4d88da3" +641a027ef03795a87de91b36e270362993fcad0e = "2e3891e3493bfaeb4bb411d73507e4ba3f591b9e" +94c22f41aed053eb41ce6a4df4a602511781dc0e = "9b431bc66757ad5124f4d206c319996a2dfa2662" +9b9248611375a556f4ecd6dc9fda16fd415a5826 = "322505a94f83f8c66c0f0f75ff2afa481116d5d3" +a7224f03d38dc4b72acf8e114a1ea92b3dfbe8f8 = "5d158d15c3d2eb8b55aac33c3d9707206ce5b185" +b705034cd403bdb9ba76a291424e9b8c07aa7f9e = "6d76e4e5be9f313866eb09ba54df2341ebc8ef26" +e7ae4a13d4c224aed4ddf4929caf2dcbc8031739 = "f1b795558ad9b5c4c7e8a358eb3a5ff58bb1e94f" + +[b28563ba-f3de-538b-bd45-5b40df25bcd0] +1b0b7fd5248f2e58b4d8585c0459ba002704a95c = "7e0341d73a123f2792b1d3f89d99ddf4d2400af4" + +[b2c09c56-527e-5265-b132-e8372645a790] +0ebe2b33639cc19a024abac4de06d4696d3640de = "55ee424ede84a97a0d421d1ffb2f175c160064db" + +[b2cddf3f-0e89-58a7-933b-bbac06005fc4] +0c4f2351e6f39d80ebc2132c87437a3022d6f38f = "ac1da8e5511f98ea761b0a8a95e65c28a016aac0" +5704e0bc2719f59ed2159c3c2f4421345feabc33 = "48546ca2ca2e764a5823f9eecac7b1ce72d9809b" +7ff743e1cbb99b467e01fd42413017c815f1398b = "7af3239255c606928000ed18f3af7418773d866f" + +[b2f0850d-3d70-50d8-a937-775d793d9e35] +345a2ca5399a0d95d3ed35f3f2a2129e488e5324 = "21a4f77b03bc7961576c5f83ee34575992a34853" +5897b9959ec312781f0918c0f290d5757416496b = "62362e1189bcacd724c61877c14ba86db3dc7d1b" +e0d2b04a542bba5e26e7c15fe621397174021fb2 = "47e653dd6781288ccb5bcbc88873d77bbe1adcad" + +[b305315f-e792-5b7a-8f41-49f472929428] +3f39ac12e25a4a04a69b8203a0a5f34e94575d93 = "b176a2cf4ce5de9abeefc7cfc2db11f5fdd512ca" +8406d3920a5023c07af1e61d6cf6d2507755f4e2 = "65ed917ed846ddd6e7916c44a5ebb10387cadac5" +980c94266c78938b65764ec2c71b2ce1d602ff6f = "1ed8c0bbd279657583f16a855b9b45faf968172c" +9b903e261f4144424bcd6521c973318655d30b0e = "6bc0b41892e6ab3aa5386584a20888609841da79" +cdbb7ea57ffd6026a7385b98053b9aea91c040ca = "e5ee8514ed3e4271133e54f468e98602d1234e21" +d272f7c7da5be78ad4248478b6be5d8e4a1edd7d = "dd8991d1f78763f8c2d0be8490a91387d186a242" +ff9e2eb06304219ad3936e766b407b09fd64383d = "71bfd72818e9657ce46f71d9f710690ed7c53d06" + +[b3160c0d-270d-518c-9741-80a712e3ae19] +21373fca8518da55547d1b0492abfa6174ed32cf = "c3d9c3b72602b3e62af496ef5b65547363729125" +76632d2b688b7bcadeaa2ef639efdb53a4f359a5 = "9c540ccba3803c91902b280d7b97105cea1ff7eb" +ca9896ebaa8bcaffdab50f28c843ceb65db6a6bd = "9f5206e94dcae47873ac1ca380253961ed090b7d" +e0b371d1f7c16649b9fef441b479966f0c009af1 = "c9e09efa9ed79007d8e9c714a956d1dc6fc70ae9" + +[b36d76f3-e888-5fd0-8dd3-e39a55b413c6] +d881bc169f21bcb5e1fccc5b4fcd8432c353de63 = "c274aa4e62ef6fbcaabc99b25858500576231272" + +[b38be410-82b0-50bf-ab77-7b57e271db43] +1f6380c0efdb988db74ba3bce859a2b1b64445cd = "6eb0d203cb25224f9a7abac7d7accc6490de05c6" +3a143b19f509f75d9eaba1b367cd35912f566950 = "54d8f90d2f39b8bf875d2252a80f51b49e162b51" +4b31713bd42757fef5e8df3b5cb2a2100b715c36 = "cff93a1c7fee75bed163bae321299f2e5c05925c" +5e156dd9aabe85844c00a8be81efb76d0a767160 = "2d61cc249dfdbfa526865196d9a4f6d9c4ba7243" +7ddd4dc4a3aafefa098f7f8d75286815dcd67ad3 = "64bb23b74b2e224a760700dcb5b29b0133e92d9e" +a1af8514e71995dec1967b384a47eb786f68e695 = "1a996a582c2b430250cc6e5913142ea4764b7d30" +ae1ad856a4d0db5033e9f1bd6fa7b82854391848 = "95fbb9b75d7a278973436ec890b050aec1e838c1" +e5a046aae3b704b922807c0f3109dcebc721edc0 = "a50718c4d7fc510e97eb07b90497aa4ab61bdfb2" + +[b38e88e0-6e0b-5351-bce7-ec5fd20bf074] +f8d1969cf8ec51e2d4ed85ac0b4fed65aa4b4a9a = "15bf7f69334b7212687b1b7836d5f52d9dd0ea13" + +[b39da016-875d-5aaa-b6c6-44634eaa7fbd] +1b06125491cbdf96903bd271a2b3ce1021e3f427 = "776c88dc7bf939bcf1eedfc65b300741a6322f83" +3da54ee02bc332f02cba6550f5ea5eda38cda83a = "44bf28ad4944a205a29733cb550664691c3cee35" +669b9f8516e259c44b301dacca1561d4e9d7ffe0 = "90aa2aeaa019ed3ac57b13e7769bed80cc59158a" +88429ccb6719eb1e8245cd20081b67ecf631951c = "158a8313d2dcde462786745154b2aea99da880c1" +9d2e0ea179322db7d31fbb78f6eab7e9a66572a3 = "18e20fd296578ed9357fe9e64e21e7c852b76bf8" +d396e1c531e8ecfdfb51695a73ca8291736de628 = "5ea8bfc237fe2adfffeced2ff2f8803d67234e44" +dffc78de519d3a7fd8273fa4d252cb54f0cf4a4f = "833563e353238ff5377f40d3a7fb0bdd49fd71f7" +eaffc492088fb6059fc37b968d20d1c17e9934bc = "8c215cb23e960842a679a5a00b0276c27fb5675d" +fdf3a727a977a654eb750375188c0d83f01f6349 = "f400fed5ffd4ef2830e1b25f605a2a1909ddaf97" + +[b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d] +17d4525dac95eb05dd1ca77e6c881c7242601f5a = "6cb2be92278e39a0c21410f83eb73511eb5216c0" +2e225969e41becd9497502b92010c96a4a786f5e = "9d3e4853cdedaecb68ef66650cce78c4769e7aa9" +3a312a47d6ee3ba2d1971adc1eecffbf2fb0fbfa = "2a1b732926c4eb6ec7cb628a7fc900edebcae0db" +b0ee8f10d4362f9f2b2f77f6ca864bb33b59aad5 = "f714d9d354e2217ce0707c28daac42c44a12bad4" + +[b4275310-0d50-5c7c-9097-7fc07e87c7b3] +4dc3fb156305f8be245745eeda93d43670c278b8 = "ea31457be364d0a8d6b3d561b28fe9b2f2a9d2c3" +81e6652caf5c4982f12b9d4bfadc28e4bfabb8df = "58b27190506d8104ec38cc50c15804adacba607e" +b47ba4220baf71e9e4e2f428ce3ae881dcb68097 = "dc651ebe06d351c95ad59fb79a30c0ee1c96c0bc" + +[b445afb1-442e-5c68-b1e3-25f929a46de2] +4a2a2ca5a58b049691ce89bf56b606380e291a21 = "a772df13236deefcbf7918efd871393e458e0e3c" +689b5648de684700dcadda89afaa47ec4198fe5a = "18ba5af444eb9a15f133b71b4a36d1caaec06702" +9234e2f29b5ba617e107adcfb6493ca78e416746 = "7d8308f9ce1c233828d2f40b1081a0d205beac68" +b0a5c55cb3aac0a95cd344a7699406f490ad3fcb = "faa66520e8e15fcd84227fb7f37aef83de8c6b4e" +b1a555d119a7537abe6e8f57451c19f7caeece46 = "431ef370e9d5024d56050f78c6db1a575f06d997" +dd5c85728078e94d69f46121a7433e7fef273a60 = "321eeeb3629c0a86da67e39be3ef27857b9fc505" +e6b3163654788b806f49d2720a4df4880a6bc64c = "07eaf6290b225436a35a86c83dbd91e45113d18b" +f54c091e6d0c6312f31a82d530de7a1fc5f52abc = "e6d0800fa59b1d0638357173e9eb9cf4f13bd757" + +[b4f28e30-c73f-5eaf-a395-8a9db949a742] +22f7cfe50cc1848ae3309843319aa5629e381ab7 = "fe6dfd8542df63a45157ed666cdd72977bb32966" +25ba4446c06a66b7678f882fbc0f7ace6358249a = "07632d858133863b3a8eed082e5225b8c9a372d2" +4797788f9fb4ee6c7883e50b6be392bdadaa9fee = "56e0fd6e7d3d5be9b67fb574be758cb8ee7b59b7" +5c1d20970cae9c613276b6bce4536f8e30718310 = "bedda07be25f9b2a6dade8be21f536ae80fd4b83" +90521a479c2b0dfa828678c821adc353e6f8009b = "480364436e9d9281ef4e7d73dca634446df1452c" +b0e79a7be974f15cd9e5c8e8bce2d7bea0b3cb9a = "f9df0859d511f41677d7aa68260c9e12013644da" +b8c9ebf508f178bb91405244c28ce4cd8b85d571 = "06e3730f62f84ff9831954ff7a6570f11ea3e129" +bfb9e5cb73eb7c24399daae5cd371a116538b2f1 = "a3c799060646d87ff288b6531fc668cc8c85d5d6" +cfb8981349a7aafa75172293b6c4e5042bad33c6 = "916e27f59749ffcb83fb35d9ed709f74e722e739" + +[b4f34e82-e78d-54a5-968a-f98e89d6e8f7] +187257392096a88ff6c74d456e228ea6bcce0938 = "082ca69fc9bc6e50ee26e6484d91ce1b6c0bee18" +1fb4b0f46d352389882569f7545f91be66e4caf0 = "b7e7f056f0b671e69ebae44a0fed571fb1a5ad80" +3877ea49196fbc583b40353f45e506b13f42b860 = "85a94e53488481bdb0b2f2a6954fcb44b588d606" +387cfe55fc11658e4023dd4dd2e87016bdd386f8 = "a8fcd80759e92772ce8abc97621d2bd3a321a7f7" +3dec24cdd3d92892bc9b9abf9fe4570cae2aead4 = "f08311d035be372ff6a5b72b7a09c4f9898e65b3" +53ea6589568896d57e9f392e0d3596b8d0938941 = "3f4cd40a4d1d81d0357258de273fe55d922ae441" +777aca51c264b7c0ab788cd38abd28bafc4a2ca8 = "0c57a9db90c93c1c099e7e3f1f3aa7925f938d42" +80b6c0272f03f35b840a3cd6c24f38dd3a9ff010 = "9e116bfa418d17a162185b5fd25c3275ba57481a" +a6de2f8bcbaa6ab2298ecf620cd2025538cec148 = "9d92fc6d1bd41473aece165a3576e08fea6b6586" +b608c83906ad766d28b3b141d7fe6d6fb1772e3b = "3780686b7af7c98b5022f1b42822dfba1a5790b4" +c93e6f8f2605132dff9aa00a862f6cea44298dfc = "a7ce4cb0ac7b017fddd0722528ae2610283e34da" + +[b4fcebef-c861-5a0f-a7e2-ba9dc32b180a] +118aff2daa43ac54edc2d55fe69dd5f7602feec6 = "383bc4712df1fa769ab2f0a6b764fa9ac12932c6" +1435f112b01def833a57d995b0fc790b2e5fc4c6 = "f59964bba573b0fc4ba59d4a8d77479d4d3e231d" +178990ea058e2cea08469d5c6c4af286ddb23ee3 = "43600f44ceeea6b0be4e7a54237b5eda49ba6026" +74a3bcef8a0fd9f2cf8cf6d0128fba8e849d0144 = "485ec6fda57fdc732d0f270c73e16dc0aa49bf7c" +751bcda67d4d27deaf9d056a19c19c92c852a357 = "4728876361d22cf1c05cc1f1d22a58cd8fcf9e0c" + +[b50ed4e7-99c6-5337-9fdc-1bbc0431cb09] +49a5ed5fe27e044a87aa0b83d9c14c17c9cab427 = "5af63f6fbeaddf7f277bc1f23f71e1b69bd33bef" +9fa001d8812bfa03bc33355e920a75efd6ecec75 = "13f8ae6656e63f370ac0b2e32e8a19733c64c2d9" +aeeba38363b7c9c2c57ceae43cfb839af9e180dc = "23ad83525e1574fd8c2bef440502167e6d72f7e7" +c9624dccc34e1f39bc3c02bcd27bf1f585e794c3 = "e7638695055c38c88600a46e5e0bd8b71a10196d" + +[b51810bb-c9f3-55da-ae3c-350fc1fbce05] +0431b9c7ed682b77f311be97916a09a454550482 = "fa13795e82cf2e0c23bb1bc74dc7a3efb61e2875" +05767dbcdd7b99d2c269a293c2063a0187b20a7f = "6da8c5e4cac1e1cb17019eb93afd37b0c3968662" +079884c314b183becf2297c85245bde90b8509c7 = "8ad5cd528dd8b5bf11d6faf0ea813a66cf274799" +16f3d3d091f54d64f9b79121679f34dd48ce6cad = "19741333f3cce66539a1f837df2613ff405440da" +1c2fe16f5d7f4a015246cb3d423b5f84627ac541 = "4134fdaeca0314c504ddd3b47ba53571fb3de237" +262a4138945c166ec2c265cc20e6484140021e5a = "49af6164040f2ca837c1f601f60ae4613be3ce9c" +418fccc251c95219e76fca37230b6ecb7348b030 = "0caf0414127d2c1c233600c5b2ba4940cd4a0693" +51f7980c24c8a68b58f5d197334c1005034429c7 = "e3001b8947fe90eafc334f118f952f0dbef221c5" +5f200ce6ccd57c0859234c3564a17a4af65ce44a = "3068602ae70a261fa066640446e05454b430ab8d" +6480a337dd44024eed01c4b7a51604f575c41e6e = "485519bffa59d5dcd7e5e69d45565dd8f20f6c5b" +65ddac8022ec0c7905e3b54e770c4d65ecca4a78 = "841d8f40579335707da0c723d4702c367f208fdc" +65ed952bd0c73f6c1be097134dca78aa89b601c3 = "9336d6b8e57b7d2a83482398c0e802926b6420fa" +6d073680f21450e75575a19dcc72fd69ec4780b6 = "a4c131d701a55f0b0f7b139480bf9a3007db06ad" +6f4007fee5e4913728246cfc8440f83919c9df24 = "987cd02047f219a736d640bf6e37007639ba883e" +70bf5ca78b6ff8ca362681a477510068900e71d6 = "5924b7ca8bb6aff55fb4f358e50ca3a67e374b50" +7bb96b81966f58d18039bfb00135809877a5d208 = "bc8f303eeecfcc13ea8c6649193a0ca2cb37e4e7" +819ec552d48850ccb46c2d0bed6e63c8eba8dd3c = "fad80eb59bb229adfa1789bd3fc1337235972e23" +8405f60630b70f278ff004452db8dc517734a633 = "034e094a54b339f3cb0a54bc40a5cfc99c2be05e" +8662b9159f1af81adc13a8531733d01be758f2c4 = "065df10b146314eb8a215bf3ef17851039132bbf" +896645c7ab1d609fd3218fcd68f0f6af7a7e6717 = "e5354698a099563a28282bdfc4d71dd252b3a678" +89c48192e4feac33c47501927182b46882345789 = "53123b55a654ffb80ea344db97f2422ea41a33c8" +8adb26f2aae4bea5115120cbb333506d7d1cc854 = "bb5ed1bf81d01b581e7110954fee923c1f8309b3" +91f871600056dedd1c5daa3297785468dac2dbce = "909c88cc0dd057cd9a5a6875f9b90c218243f19d" +940f9b912f73dc08df4eb07e7fbc0bc17e274980 = "dba40c772ea36003b0b5a1c7c5d44893452804fe" +a26519005fa4d102d05fefeae28e8a8c35661588 = "bb7cecf163499160fc126efd4bab93784b710590" +aadacf8e12da2a9d368aa057f7a108167992654f = "86a53c21408cbcc2351a70821cce9e46b6d9f587" +acd9f84fb65ec0020b08c6fb77ef294035351bc0 = "c6740202d194bb70000c367f2dc876bcacdbce47" +ad0c3c9db8a809502d1c4396ccc3c6acb97b3d72 = "b9c04b48172f2981e606c48c110f82c1e996e060" +bc9d53d638987acbd479273dfacde6d9b7c79864 = "6e8a422b2b50be4bac815d9f9c98b849b89817c4" +cf9e690926ce2e855dd0217d725e6dbc57a1a62b = "054cf1397beeb4dae163d4acc424f85df9e26600" +dccb78bd62474a87184744b03da1fa6534249474 = "86e09a1a0817479d4b3b2558594bfef7c01586a9" +eff1006c413bebc32269000ce1cae089d7dc23c8 = "5959c732dfb5ffaddc8b3d0bdfbe95e4b04682cc" +f814e56011aeb5f1bed3c58c6386099eb9e6800d = "32adb0e99e84e4a6de6769a94965ea61e6883607" +f9428150b981cddd232a39eb10fa7c40095187a7 = "3ebbff857113cfc1335a296b9f66d695bdb6aa1a" + +[b552381f-0f71-53e8-a6f7-7453c63830df] +da8cf123089d9acb26e1879e27e68f786a25cf4a = "2ddb3e81d80ae7c27fac0af354814c98f69953e6" + +[b552c78f-8df3-52c6-915a-8e097449b14b] +01133b05720051bfb1656db7017ac203afd1926a = "2b4dff39cebbeb8eda44f56386b7efac4a8993fc" +672d1d0cb9050014334ea23914e138e769b3aeae = "072cecb88c96fe531ff789767c956c18934280e4" +fbc4850e219ea83b1832f38d001fe0bf9210a50a = "df8af2d013afe3d15bdf571417966d6b8bc50d36" + +[b5cb2838-5506-56c8-b038-21e3582abe5d] +26810a7602dcfbe183393c4f879ddd6397775dd6 = "f05cc9d529e4264ee1d526abb2554fffdf3cc89f" +30230d3a847a17a07ec799e42cdc610ac85a9166 = "4a636d0fa343faaf607c5e8911c9e1881ebdba81" +321ac1478fc1f0864d61927c0f664d260a676a5b = "4a1e42838f30acdb33890a1445c4d0acb9c6d415" +4334553ca107bb5c9a2f9eb51fc1dd799acfe7b5 = "0ffaa02cb30b73aa8cc596798c18e868f1d6fd9e" +4d265dc14e0e80c00195fba560e4b0282e27bb90 = "cc3227be3869639d5f15f7f89bf1dd2244428985" +551fd9b0511994196c721db714465120bfbb1c6f = "abc7bd3dd0bb00738129aaba55a90ea3b60e51d2" +56e384133cacbd04ca9ed55e0a33902f4ac4118d = "fccc80c7bd66aa664141a8ef21b49e83f04db683" +588282c1efc2fd267aacbe16a3a929c4b4b4d38d = "9ffb1f3b1afaa3e90840d5bf7a375def2d141816" +738bf2f5adbae99d0aed242583d732492aba3e68 = "aac8686875f75d9b5d7a55ee3ccbcd1504ab39e4" +8a72d6712b350ef4cfdc033a9bf13cb12079dd7e = "f645c86460130726f4e15e7989d3119f3d597cb7" +9cb897eb578756ea416331ef1992846d767d548c = "cbec043648adccae6d368af978c26c62e98505aa" +a386f5944681e09fce841fb70524b8114f3021d9 = "4ef3296953d6d51389b55178e99e801c32c8ae71" +b2063406d098ff196d9b8551ad43a59b674bbf0a = "e1b2f5585d5beb453ff55cfc66638258a8b0c775" +b4466e340188acc721e0ad4fc3594f3b1000cce5 = "f04a058dce055d2a0fc7a4020ad15d136fc3c65a" +b5fb2d0943a52e04f04a1054bc1043378560ce35 = "2a081c04c20d69fb86cf752e227ba40e91738aeb" +c1e5379d49ce58ce91f6c89937b2f7c4d2fe7006 = "b0537ad327dc6312b72299f89c024bd7ae6f8346" +c854c7df053533070c7d1e8f2f6e708410ab438c = "f74c8290c755a3141f1cd7860b0b7ea4504397de" +e229d5917c8a486360dff4208301d85e2a5e84ea = "d67fb5f32337bac37b0a0ee76a8dbe62bf56dc13" +e2be51ede2a139a3db087630c3ae1c7330e78462 = "fcaba886a4092895ad674fbee6c3cdf87e379031" +f3a98f426dd25a506885113940497dea87eb9b6a = "876d9ae3a5553a3cc9fe9df6179d3f9bcff789e1" + +[b675d258-116a-5741-b937-b79f054b0542] +8312610cc5859642c63c8c57d07cb90720e813a9 = "f12d6cdc8384a61885a4652590ec80fa6a8d4ee2" +9b385b64293ea6fbb781c975910ea8702a3bf4f3 = "e1416a20eb1d1eefd7eb63a24dcad3fc290cd5e9" +fd89a7e0b079e6879c99b23d476842ca7943c5be = "15396ff7754c00c3ccf6f2ffa4b572304371185e" + +[b6b21f68-93f8-5de0-b562-5493be1d77c9] +13e38c512469a9a68dd9892df210af23cada1e48 = "58429aa852aab868c6c52de4e6abefd8072ffa0a" +15d815092cc99a4a8c80db53c053c97b41648ec8 = "9f6368d8ea0f2abf6e5add8939e01008f1dce33a" +229fcae9db4594034788268f01ec62845fa44a81 = "695467f73c34548b6c92cd651e0b45c91c83963e" +319c12913b758fd5b966a22433819aa77bb4bccc = "352d46788c26cad55fc51722bb4f5d3a0d59079a" +323fb563e3333b6c23fc479d5ec98f533f5190c2 = "883580631b85882242b97b2dc96d4556b9659979" +3dff76985f44d137c16cd998888da6f15b7cbb9d = "74477531c64e8147ecb02abef1a3c718bd415509" +51c517b25b401d928ca322fca7c2e79130d9abb6 = "66aebd4e4b4e13b2e5b7b934143597e5ce87768d" +56c5846255df258a8605b58e148765bd190e45e8 = "22aaee5281e14c7c15678bb3dc83044085261c10" +67762c17361e5d865f43ed6348e141ada5ee6c94 = "7bdb3a40fc65260de8ddd037b67266840782e979" +6a5515460921c2fa27d00a668bb232a1ad95aa0c = "af6f5e2f3b28bcf0bc473ed8bf551c8e21659daa" +7d24f3ad0e3243ed6023815928270c4ebe0d3364 = "6ac9787f66d53379dfc8806b74f66d4767a30975" +8fbad354669d3ded34be7c502d830ca08af80add = "db69f0436859edaac7cdb9a6fc8acf3685c1662c" +911d68150970c17277296654e3a806431642a070 = "283f1801cdd6d6f06eed6118a0c26808c3cf1f6f" +940786dbd5a30e58f8bf9fc7462944e1bbb960fd = "659cc4ac09f062c90e8d9e8bfdd1adbc74dfa0c5" +959b9c67e396a6e2307fc022d26b0d95692ee6a4 = "56d99eac48ece2f4c8f87acf972d840c2cc8b939" +9fe3df223c5ef6bdfdadf86be3c65e1536f58458 = "047543b6ae97d149b3f62ad7dbd038c6b1c4a36e" +a52529e0dee3747775c6a88f77cebd3d26897a41 = "56ee54f2ae15eb994c77b09224675ec247bd09c6" +b2fb8a1f49d162c6a8d023d7cb35a2758c3350b8 = "48cf3c4dd759fd2dba30c56b21d44aea2ae5076e" +c1c400b7dbda108c3978f5ac7cd32beee724430c = "f50c526a0b5051e6ea397d60a279cfa7f455e06d" +c6665b3d74e307bc4e962ec22b1a68be70b1b826 = "fc348969ef1096b6e1a0cf5cf3a586c0f1fc0f48" +cc7aee5256bbafb16c74e80b9b03cd29ee12088a = "5d5970ba2c09d445308b5add85fdfdc38a277820" +d148dea7a31efd3cb5ff05c7d91a94c5acedbf3a = "ebcc1fbb53a2f6ebe29d6d985d421b46aebad163" +d818e8bb38991dc52e9bddb43b33c6304ec49ef6 = "b2547f1487289aed53015262c1f69cee5084cd5c" +e41b1e55fa5e6137f512d385662ced124befad5b = "6f6bd1d44fad19c435e452e4164c0d6b10d18f3a" +e9d2a249e17be5ec9e50d3c490451711cd74a108 = "21392333db4f1b40b4254a9746d0d4709056bde6" +f3f14fea3244af029aa5f39096b31404f6194b19 = "86a3eaaef42bfcbfd119bbcd54e3670373ad6d98" + +[b6bec47e-0844-5090-977a-5a6d1183f4f3] +b4998de6daf723978f017008b667160272036c5a = "b4af9344978cd3d219f00c3450ddd2885e19ae3d" + +[b718987f-49a8-5099-9789-dcd902bef87d] +5c05b2958d81c0653e142688f05d858678753763 = "d5fbf1c0efd4ef2b9fb7820f0776c4ef7622b5e7" +869810f7e24422c0b96b32efd209f1934a29b130 = "4434ae806a1339d36b82c057885c842052f93871" +bb63797032ce361db6118f1f46c72c49c162f231 = "25469d090366eb179f295382ba35e2c3defe3e05" +cd9a002c46aa7f351f1c61b329e4d0dcbd243039 = "d5fe8b5fe2ccd4802c4d0d3ce646be3232a60b4b" +ce11b13e1ac4c0a4c2c77716e464cacb6c57acfb = "f3d0d6c75682591f596fa92648b5d704bb6ce8b8" +efe90ca4520b0f5a8daa3fe70128af81118fab9b = "cff5fa45642efade1aaa018911d38a6dd2902b59" +fb405bec9778ed9c8746992c7716676793101b5d = "44ee91ce5500b576f32aa0224804d95085188356" + +[b7351bd1-99d9-5c5d-8786-f205a815c4d7] +00849573c8a5e35fb0dbd1ec9c42e4412d46a377 = "1d3621af743db34ef1fd191dfed0d443911c2f79" +be3eb0d66911a7887df81ed4eadf4dc6a5b0da78 = "658b8b06a01f8b1ee2e5525c09aecabd31cb0725" + +[b7aea54d-5cfd-50af-a711-b761a27d0bd8] +7b2aac77f362fee4043212056fd8d39861dcc25c = "c1d9a057e1ba58450606baef5c42ebfc3e7a2511" + +[b7af77f4-1885-55c4-8253-e0784dcab0aa] +05f9cdf16aa08f50843f08d89fc02f84350989e9 = "c8f0a5075126faf01ef7c5bf79fa62e9699f6739" +1920313a8315d3b95528dafe61b65ee18a8fb02b = "a7b839c30c12674394d6d4417b5270d1d698ea1f" +80c725fc9434b8c5668381436a3e7894324b5b33 = "467afa434c0274c222ceac97d39a854e180ebe10" +8dbae1073a4ac4d58f9a6b5bc99809020476601e = "7d70f2e4661589ef6d298562c04546a3be4d2b2b" +92220d67fd25b1b22ee8c0d2df5a99ced0eb0bfc = "0c8b78e1f79274b96ade77f2ad2e69f44350bab2" +cc9a9e8062196c6f0af148ab85bf05dfd5eddca1 = "71da133a19aee1af29dae7aa4834481f2e7eda7c" +e04acffdfca9c7d9bc0f4f7ec55cbafbcb7e3878 = "efce08f725bc48722e5c6bd2ca7bfa8bf96f20cd" + +[b7d42ee7-0b51-5a75-98ca-779d3107e4c0] +267f6900cf02fafe1d7dcfa538e56d5b859da1f2 = "50f9e2eca022cf1d6a349d22e959413f448dbfd7" +9190e4046f2bdba2a39670b6fe43895ad37b328d = "8958df78ddddf63955126c81c811186d97dcf45c" +edc0001e83e026380575445cf16b8e04f38c1443 = "63d938aac1a84396fb30b23667aa48ba85a909c1" +f38597615220789ec376cf412eced652976367fc = "1845fc9101deafde35a8cd09f7bd68d4ceed7974" + +[b7f77d8d-088d-5e02-8ac0-89aab2acc977] +7ceedd1b518f5056546e97171136b7c978dc9aa5 = "8afdf33b1b972bd406b9ebe7519921d9141666e7" + +[b85919ca-7d78-5d21-b9ac-5e42b33ec64d] +c783852d207fe1f16b3a2a279bf9b13b6570ade1 = "db9c3583c273a8aee0de73ef4e184030fbbf5b39" + +[b8865327-cd53-5732-bb35-84acbb429228] +0292cbb880a4641cf7c70fa798fc217d9433e3a4 = "9561b627a548b9b80637b01ca9eaaa837a59df3d" +2276718e3f32fd94a20ad104e72b6eaa7ac46274 = "438621b9965f177d23f943cdafd9b7f1e48ab022" +22b3b127cb4d8b697cbacb60f53dc0eb8927d6b7 = "c63ebb384a0ec83e593f73cfe4252dac2884edb2" +258148d4ab3a1cdb179714b25275c20aa22a9057 = "0d46a32e1f4d47499c5d2288676f6809d4bab44c" +32e156056dd12e71692c472a879341cd034a6b64 = "b325aefe49b70d4fac70ac00d8369a66295b1503" +388c81dd23eb23ee935c9ad36f1087bf7d8bce8a = "fb393762bb00c239ade2748c3a19944a8c8528cb" +46788a85344353f8223399ec6428dc1cfa34f9f5 = "4db8820d82e38a1e41b33d9ad99f5977b37c83da" +50805fcc20a64982e367d70061d92454fde220e2 = "4651771ba125adc9c9f8888d5c1abe8f43156748" +572d4ab22b4136e7ee74a2e13a9359d0ee0bb6cb = "4001aee91d97bc436710e7dc6056c0a00dbb684a" +768e26f45b4b44d691a28554026b1a545943961f = "6261097fcf385737cab9150356bc21e70a77bc9e" +8510779ae52d298692fd91a891bb459bfcb6c4ea = "ca93b5cb5338ea776b5b9947eff0fd01560afd3d" +9179362035657667608b1d6d6776c6e38c66c3ce = "9891b2c95f7875bf6d4b799d17cb70309ff5916d" +9a7b724c19c4a51b8a1456d85c0e277766516bea = "192a9976d967930a716e97dee6826135b8a628b3" +bbe44f2c8ac297a300dc0843ce4614ededdcf5bb = "526b74c5969522c5b1f332f85a55cc9bd7e91352" +e2033525f2dd2d290da185ead6712f6099270939 = "38c70ed92e5bd056736293893e6e38e4e72f6886" +ebd00cd0ea77351a2cf95548d48963622296642c = "c817b32bc64363eb602eab4d207ca836cb65f0dd" +fbd7d5bc3ac4084c4b71d3c5f13e73f41891ef32 = "9e38073c220355b6146ce3c592901f13a9e638d1" + +[b8a86587-4115-5ab1-83bc-aa920d37bbce] +432bf2b2eb48679e632a8e110d5cbd1666f429d3 = "f38fda4175ada183d04f0c646788030a4a3818d8" +4be6631978b589fe3a2befbb26a94126933c5416 = "e3c4d5977f2c44bca2741bb094b9021107b26b5f" +755cbf4f5b28bf5aa1924bdb43edf3f1c79abecd = "9c1445f2a3828b8c6c4c1afe4c57bae4392860e6" +79cbe1343dfd591b33af5209de729024b16cf99c = "d8fe6fbc7d2ee2b80f8f7b83922fdd683ae9f688" +7c6909d611530bee87fa0fe7bbd163e19e599795 = "513a874d5e281bdb6504ca252d4ad1fa382b9815" +815f96af1dc4021537d9ebf9237b60f56df10c7e = "f4e6bd4da891b8e560371e79574865d42c295855" +88368b584faed8850688767ed807882037d12963 = "f5d38c292bcf7eeb663589de6353c249a6fa2aec" +d8e718c0da4bf9c6ecd221d73dcb45e2ad177857 = "5be4b9288673e291e49f25ebba91fd012fdaf85a" +dcd3aac2070e293ba66ecafef0cc9c860e529dce = "bc32a036e8578fd7d2fb9a4a22362217ee86de79" + +[b964fa9f-0449-5b57-a5c2-d3ea65f4040f] +4116883a8ec408cf18613bab05efe917859c67f5 = "a4825ca08a1b64a9819c810abb20174d2f435ea2" +7ec8862852d24f5565f5f66bbe8496604b3cc8fd = "7a039176e5e244ca84ffa0692598d172c34b6315" +8cc93a15dc605d0603d846a72563f3973e7b8120 = "17631f4a5ff5187cf2d2071638e0b9f4eeecf272" +9a4b852484ebf9990fee61b47fd5031dca3a61e7 = "4e97087110ed0860860803492f8d48a10a54ffef" +a72f380981b68fb89f70155b3aa8c6e2df12f88e = "4b76dec74b20579356902a27f82da36dd81c46fd" +b31efa2acfc044f8a723de9879d2dbb280ad94bc = "65fad444a3702a27226275e30831270a2206e043" +bc33e18dfe249c54cccbbf81560ee18f19515803 = "a254ec3d09a7a909274a58366dbd1578f9d1a733" +bfedfdc93bb7e9b24944072f6015f8bd37ee53dd = "be2e2f67d82ef4f449a1c9cbfbe4bbbd849fc478" +c1fbbbf27395d2354c28c09751773667ca67bf69 = "3384a2a419e36eca35868f4e3ee62a831c830598" +dd125f94f9852219ac31e242f4f1a5998c7276df = "37c9811f267ed46b672a0d7a1f3d77697d92b91c" + +[b98c9c47-44ae-5843-9183-064241ee97a0] +145b85f0e19f2cb9eda5cb7d447002ff4a0acc0c = "aa468f058d1bdeca521f21af5978e4ca346f2762" +66a26bb5bebeabdd560ae6ba6f01ea5fbd1922f0 = "9b26bd8a0867d1a390b80af047c22e081fd9e067" +7be07cd60efa376b8e24943747949c4ad2ea1719 = "9f0724cd9b149c82d526539270f488184e14bac7" +a69a1cef18be8ab799681623fa53c1be2f471294 = "9294c44d94758c9f742fb18f9a27e2e4c58b6e41" + +[b9978a91-65ec-5957-9779-2ce67911a7bc] +07a2a38bd3d637be2d078fc586274d74f5eb0d71 = "b09ded9a3872a4062fd263d0e577d0ca069d0a8d" +2b8dc5efd98354951b1b189a22e1e90b2349274e = "449e21be7e0f0f3fda5a20720d5bc843a43bd33f" +9883e7a7888492412735a8a2c4fbbd3714602102 = "0f060b3b62fd252c45647d75d490440dcbec36e7" +a4b1cc52833d333b83639ff2107521e5db723202 = "de144ff7a7d0062179cadd25d789e3313c3e9412" + +[b99e7846-7c00-51b0-8f62-c81ae34c0232] +31bc6334c9bbb6f35b451978106a48c10f38d6ae = "4c900d924e3cd15e26cdda86d2265ffba83f1055" +472da6df89cb252b7076caa892575564364c8438 = "d2a58fe515dc18b1977cac1e6dfc8fe5095a7867" +57a0cdc1a71a17100e281a32c7c129c2189091fc = "81e8e2a4296944904c85b48bda799dfccb777c68" +79c9981db05676e9e8ef87423c0be42b01cdc0ca = "8420940b20c12c440e9cb2113325e9bbe11dbdf1" + +[b9d14576-938f-5430-9d4c-b7d7de1409d6] +39180e341abd412e8a0bc167164b7563c1b04c53 = "c9fc219b358fca1a979dfaf2316bb172b52cb56d" +b47f688fa0b4fc582b049fb018cf6e36896e8e38 = "ec86a0901f3e96be5a7166893983c101cc788813" +db77d381297e35c7906b65b1cf1e31635b438827 = "b213fddbc3b51799a54e9ac369aa3186d9edf1d8" +eee205095f2430d0d2879cf1050fe050819de6c4 = "5602adba5a4499431278949c320dae2d38a6e48d" + +[b9d7351b-c616-5ab5-9ced-54f189935774] +e589d07814ad5ebcdd54cdae689c0a63c6980f54 = "89cd29c1377ff9496174b0f1d6be4b3d0d1ad0a6" +f7e698858b3be0b20bd68f0e75b81181b01e34b0 = "78670795c8fc99519aebf329571486fd4d340e48" + +[b9d75638-96e3-5676-bdf0-e9c958f63a55] +05a6da23847dac082879496be7a22cad1d4db56d = "224d83b62711fe7e429454aace2c97eb2cf36031" +2f6dade57bff342c0cad17ebdc61119520c2b13c = "9922a684f7bc7cc7ce8e6ce2339c5754a26f0f00" +6be9e2a9853b4249b915838772f6f265dd47169f = "88c60212dcd5fd79b9b080e2cbceb91ac0cc120a" +98d5277c8fd66521127baed70a0ba955955d1e65 = "280a1a3587e91d6acda1d3e054d4e234cd603fe8" +9ce64b99c8c52b7665ea203c5de406527ee94b95 = "2f768b68447964a9391c4a7dc03c17d5948cb782" +a46067a2c8a17ee9ad3417441308d2f8ac74c6af = "d9992984793dce4852087c1ec81502bf24bed053" +d0a70614aa85fcfeb3ed8c84957e4fc9203d0d3b = "46e7565f755782a4de23b13a8af74e939a61e8de" + +[b9f7093f-33b8-56cc-b235-8e85c8fdf87d] +7923d6bbbe46801c7dea086687b971e68a75536b = "b6241f06d72e53e555ec2da7c47a3e6e25512fdf" + +[ba2bc401-841a-5809-9698-816d55b3f113] +43ad7c9f32a07828dfba37b86faeb7ba5db05732 = "fe4a39fe77081a90a04eadb6305b68324ee3ed50" +44d5de7c95227f2803b93fa018733274f328b716 = "073a025ca35b71d1824e6828f67a7738c2516eed" +7584341721f6d5e55a41d9b979554d4ea69745d9 = "f6a91221c1e83994721a950b768c030964cbb77f" +7f628586543995c037a9bd482510fc4c897c776d = "8d35faea4d871d627f1aca170932e1bd08d6e3d7" +a1f2a468e5927b7de5e375d2a72ccae2aaf15435 = "1918e7c6421544955f7b45675901af014c72f698" +b4928cc731f47a7506502c827540954881e52c10 = "d7da03f7e100be714013863ce1d94ea9608e10f2" +c0ba344482c39f6bd91d70b303e19999720d6906 = "cdd96448eb44d83821e7d6f46287596dd463264e" +c10bd012e7180ad80f3eac05a17aac1a33ee3595 = "1716c8e7458ea816027a3dba8b43a6bdbdf22fb9" +ef1f274497fb5500ade359fe7ccc38525a22e7a0 = "6a6b4b559f8dd9e08fdb450a996b32a4685bc8cd" + +[ba30903b-d9e8-5048-a5ec-d1f5b0d4b47b] +32c01b14596fd6619f9858d6d469294ed517cd3a = "02ce2d21379d9887e43638a1289e2898ddf4d5e5" +66c4173bbeee5d472cb250cbdf727259cf6e26fc = "710a5a5a0823aa77f52b8d7cf0b1071cedf4904c" +ce7f73b019ef9930f445349598f1e89edfd14495 = "abe6cc4c2cb65e0b54fb9b1e43285d3e1a88cdfc" +e89efb7510d6ed853dc4e19a62eb1a95c86ebf26 = "547021b19f40837cf8027cd1d90074e7d19e829a" + +[ba4760a4-c768-5bed-964b-cf806dc591cb] +112efe2e3d8b42b0ebf0eb91d625fd172f876525 = "b3646a36a8aaaa07d3915634da479c5f31e6a8f8" +12947f1eb7355776522c5048f314b816cc413e4e = "c3a16d1a6cbc3c48fe9f66b4a2944973bc45f2b2" +335d3ccf4919e0c0b0d5276f4b3ec6dadab284f5 = "b3b1f774569d594013f2f400c404d60d8757e0dd" +360e6b18a9bf62435cb4dcf6cfaeac78e97e8496 = "267681a8d7b5e824a8a8a7a55bc6ca16e6f190f6" +45a150e40267ba17ff535ea5f62cfc764fffe4e0 = "5374ad0e36be864df33dfd87e23764b5c16506ce" +4d154478fd0ebdc2c8af5d374ca68b58bd685d0f = "9a7e3c7f388543d9bbd5333044ea1afcf880f980" +5026724d029e17b564bd306cc7213650427ae8bb = "6ad9669e8c43899d6eba474c874ee6872a5a9deb" +5febf756d38194712cfb8c0c2294252931611afa = "810c3d2e5b428ebca9f5a0d56d05818d998ecbbb" +6508180a36249c6fa5e2c45ade463657020ca62d = "5ed7561a4d775dc85d0105f2f30f8344bed79c39" +6e4eabee4d839f006408adf62e18a98ea56e435a = "8cdafa1914ec341fa65c881504a7378c32d6959c" +71a93a61bf74d18f03d09712a4bb0e8c79fa2e35 = "868780282b52a585e6717fce2ffa6cb5c5ea89d9" +74da7b387784ef4856b9628ba25ea4aada80415c = "099a945c89cfd37e8e4a56872ffd0057f286ae8b" +789f33a04823f7e472a25fb599d1a97112b2eb0c = "3718e52688d6ee6f462a7a43479f875f999278ee" +7fe51df44fd867da8e3df32dcf22a07ddd7ea5fc = "e69f108d5852a5d3e7e6a58013c3d919ba9714f0" +892b9b3c0913272e738812a925ad814ec270feb7 = "cce27ab98e3e159a75dd148d14f45d7d57ad6dec" +89b9277d12596bbf2d29c6c0cf57da3f09c3a927 = "0e28e1297e6a87a5f46a1582521bd49ef75ab290" +8b7a1e3868f524a860b13fd33b86de68ef9f2638 = "60ec35c37caad990a73335fb6e36c9d0e94e4366" +906770b21daa9a0745e6274cf53d81ffedd33f6a = "6f68d76f87def34ccce15b1a8f8aec9f178c0200" +9aa44a56e44427f3a18f9e6dfd8ac193ffdc8b14 = "13e067ca260455d98289d4dc680fdb03404891b4" +af3aaeb8ab22a8629ce829517a3462b67c2de1d4 = "300bedb44c62c7f17ed7c526168fb2a98e1db710" +b90462e293d3c450a154364217bb36ef891db4bc = "7faa108fb91e827bfaad8cbb778af3ded8cc2ece" +bb0202818ab46d6b9a41333cb0a4632d0a684cca = "d5097f3bba381daf57f5606d721f8b74a5a2a2f3" +e629408f99f755314b0d68e97efb682553a3e26b = "80c4e2e18d8a70bc6c427e611c4e1fe22ce8c313" +fbc5761b882720e4b748c9b6bc8364cf4b9425ee = "6b9ecd4b649b2a0bc134ca217b03c8f07bbad3c2" +fc84a2cd0e6180afff8afd384c9d2a7b8291230b = "0a5931b63010191fb3ef9625a05338768c97d0f8" + +[ba70085b-a8a4-575c-9558-0e347d50824b] +ef65c5a69233620a58136d30037ebf723534c0ad = "62a8bee2aedc65071cabfd45e5ef58a961c46ba8" + +[ba912b2b-1bf4-5c4c-9eaf-7a81f9a4b354] +047ebdbcc62102a430f9ac0331d7dfbff1b79836 = "425047131cf3bf1bfe12c9884cbf4660952c12d4" +7862b4feb90aaba72d9953ec036a10673b16401f = "3a14315034df17b50017e8c092223b5fbe029838" + +[bafbe729-afc6-5148-bb4f-226bf3d46895] +2adf23c73473d068eda92b30d92b02df39123bb4 = "bb08cab40056616e34a551505c8093433c29c7dc" +4d82e68efda00cd5ad681260e9b702083fdd1b18 = "dbc478a18c4bf390cd493e83b8e2639c40720bb8" +cdbae3d2f1ed76165deb1a9efb5912355ddcb486 = "abc937753c0c8d359cd429551e078dbbf8004fb8" + +[bb4c363b-b914-514b-8517-4eb369bc008a] +55b2a523a5d3dcb934f49e34eaac8e44542a6d67 = "9339d23edba0fa0f161e8f8a35b875358071a49f" +652a3f788a5a8439aa18f2b127c05cdf353afa37 = "a93723787a414bb2d00865169034161282d2d7b4" +c1ce4c039ab6ce455b5b6297617da7281ad9d54d = "40f4011c61980cd2b14ba66998ed466ac9eb484a" + +[bb4ff4b1-d984-52da-b2e5-8efc6dd45549] +0ad36bd5696996e860a6273917bb383dfec20a93 = "b5e127b8929c928e31d84d38b48a05f26827138f" +0d34723d175ede905d8a7497148d3436befef605 = "c4dfc15a944f2f78014d97bae0b2fe2828bbd816" +10d27d37a8f06c44edbf1ff33b5b64b1792cb7b4 = "7e48c0e91d4ffa3bfbdf304192fe6ca644bc860c" +29e2444ac1af3a9afa8eee552cafcafa182d68cf = "ea89c785e1de82c533d7c3dc285395de319a265c" +6cc99119024ef64459076bf6b41e482931391832 = "2e7e4dd8f99449b5f80db68de330b7b2ee81bb23" +6dcc6577c224b5f6bbf621ce9dc1cdab88b21607 = "b9fd9c65b54c9bc23d0a737e009d71f8cf1aeb03" +71733e42852b04adbac627d1afb05cba2b4d2ba2 = "972859b5c6e0ebe0aeab9d0ceb8c2332af13c8ce" +9b9fa779127bba2b3a1409e8b4dd74382e77720a = "db802beed27eedc07e497be836716ee4d0ce3b3d" +a4603f8b7feb756f99df1514fca926074bc74308 = "e75aae55c4c0966c0930fdc06de7d1a39f194986" +b3383a5ef529862f3640374aac8ee14077c284f6 = "c29b691253bbef8780a78f2d96d3116eff9a36f0" +b6d3eeecb8a5fa672b513fe1d1ddff063f3411c1 = "351fb4b3d35c1b1590932a51b964d342cca2bbd1" +ba9c53b484b835846d7153528cc3b9ddd675d56f = "7edd9457692b11966935b529a7d53a3bbc6ea3b0" +ca67f2a63535feff2221b27b1a5b09bc2a6982c7 = "ea659612d34f562041a04efebb13801f9fc725d3" +d48396730aab8cb51628fb0ff998f665536da0f6 = "5bd8fa0b911fa58c8d804d5725e47635f3748a2c" +dbeb24e5818912cc7af0795e9a07409954cf1b09 = "2d4070c30391f0c62981957d046f3326ef7116b3" +e623a33356053ab1802c352bfc414bdc9bcb83c4 = "939800789d6919dbf7bb9b82aa8a1c26ea917b57" + +[bb55d02e-6178-5ea4-9358-168ed098a6a0] +63971bf745ce378dc36799b116f034172f538f89 = "2adf2d11bcc14c94074da6470beb6cc45444cbad" +af47db31c3ca21a4f562116cdd6a7c2dd594db54 = "6dc9ea94cd49b2d0138b9070412fbb085189f367" + +[bb8ccaf7-743e-5101-8e2e-68c8fb78077f] +f5aa0dfdaa60a2c9eba76c56101cdc13f5fd640f = "17cc0661d6be1a36930dbc6441760ab5fb574460" + +[bbac6d45-d8f3-5730-bfe4-7a449cd117ca] +711075b9bfcbf62e49ef32e037a438e215e6e791 = "69f99d730422c9e8175c2246d3ec214c45d0efb1" +79d37148dd0c163fb604a2817d1c34438299a3a5 = "c54d92827edad81348579050b0875287d82339f2" + +[bbb2afaa-4236-5b45-a0c2-54a75cfbee5c] +07b06bb0e5d9c22a5ab41787a75a252297c8dc78 = "a9169803094a0452648100a2367b907d5f76b2df" +2378122a52b5750312748a15c834416111bd9ead = "ca2f8409734a03db71baa171ba34d2fb7ee6114c" +37d49892cda492b98f5e1f64c033e57ec4eb95b2 = "e3718c5c637cd2a75a33a8cbe40559a283a8568e" +3fd16c59103d686361262ef997b9787dc840a54f = "b742bff0aa677d79c861496a1849d265ce5a939c" +701526d7a2a333ce4ce4e5b77359c88113f5478f = "9b56ca4d532b203f0d58086f4fa202f8525595b2" +f413cd14c618cd2692a3cef2243fee0cdc68153a = "0518d816561185ec939704e6aa4250df786cc57f" + +[bbccb21e-8428-5a0b-b2fc-db76a3f27396] +84f6fc774ef06c44ddb03df67636e68d4d53cb40 = "51596732f049f17cd0b76dc2f1379b381d83e036" + +[bbd82366-0c69-5eef-bed9-5a0dd17fc720] +3a94d4b13eb78de235ff42d51f9272c509c3cb49 = "58fa18cd8eb7f3a66eeec8cc6e3ac1a3ec029c84" +3e0c362b4bf0bbdb3f0092f8538764ba2f08f449 = "e66bef7b2dd90ec2c364a599b27477d0b0fe1bc5" +5366565f92fd4e2ceaf383fb3e97896dfb8703ab = "d8c2da78122bd3b5730ca050b60ab3d1d80f471b" +78295d9e33d8e1f17daaff761aabd0e1d45b511c = "77f4440827b1656cb482808e106f94a43a0a78a1" +8b4d3628146672d1178eb1fb0b2050b0a0e4ca4d = "349f044ac30eb9c701c24fca5adac1bf48c329d3" +bb3eeae00e3ea76bd3208be0eb9ab81509b17e28 = "41d918e614bca33ef5a203528a0a02b0b6cd67a9" +e18c69520e7c7ece521a15f84dfdda007df8f2df = "2f128eca524b58534e6618993d674784a5fdd682" + +[bbf7d656-a473-5ed7-a52c-81e309532950] +2b874443f15470ed904db679d7a5c5f16d0361dd = "bae246c718d0661fc674b788be1671b18371ea5a" + +[bbf84614-d4d2-53e7-99af-88c3f7462fb6] +98b95d3885f2cc9e1f3e5eebc46952f5a38e7140 = "3faee6216600222da4a4d7f5f53301eaab61ecd6" + +[bc367c6b-8a6b-528e-b4bd-a4b897500b49] +15a28f73ae074634d8aa02e49c69369da04d3aec = "79edc8255da6931d5d2fd7bee266e04e6ef262a3" +228fd883411d6c287bc28d3a08597d08ebcf6af1 = "e8924be3adec5fc8810671fbdf2a33b3e98600cc" +5025ff9e41980a8510e6bcb141ae1be0ef0fd3b3 = "d459a15b7672ae86019a9f249426301b850f911c" +659b0e5a122fc7c0a38ab56ebcf2266c67614135 = "6fcdf75b9c35340e4494ca7cebfb6b923d00c490" +714abbdd4dbd299c96b39bcc3cefa65199de9633 = "1f546cbff9403aad48dba45dbf57c97e2eda2382" +b8e5c162b71babe457b56669e4cb8530964407f3 = "b67b7cf901f3246f4a5efdc3a775bcf1ff0838d7" +c29b282cbf6a8e88b110bad8e6b64c427472d3ef = "74c6f2f8b6eed747770323d46e6a5e9bb245c6fd" +cf0faf8c42a7c25f99d9e4bd9321e64568991b0d = "88d1f75eb7ff947a17b8133fe8fa7c2533f97d1e" +f7c96fa8f7800d127324e3d9441c4228c218858e = "5f52451cb133c34515d12c064a1bfa3945f55258" + +[bc5e4493-9b4d-5f90-b8aa-2b2bcaad7a26] +05cf7719ab3946de1cf0a54a8a15ba977fe31ef6 = "0ec4b8cdba437aa5976e9f350fd83502651df435" +0d9f04ce4be061d3c2b12644316a232c8f889b44 = "e22fee36cb13d9a1850b242f79938458221a5d2e" +168393de5954fee006be6581a3dad2ccd1ca3d5e = "b27b4f9cf430475ce1719c0eb6326ba293533705" +21ef9c926af6217d6fe91638be22e7efe64608f5 = "339f46b90a78e043ba83772ae14d7c8458784c76" +42ef052e6f30db7f223a58f74f22e25268273810 = "eaa88a65cf4c28fcaee3af932d63aef714c529b0" +4aa574375ffa69528dfaa3ff31c060cda9d6c08c = "2b2ccaa90246c38c31c0deb2885c7508fcbe7863" +6a177bc3de9f1c4c0fe503d760c748be3b89efff = "a990603685e859bf53df150a6f884b5dd64785bf" +74aedaab2f0c1a64e396b6ff0442dbcfd0f037ab = "0b087d4b2bab83132e948578e3ee9a6934c0d93b" +80fbffea5653c0c61e8e14dbbb229d5d3b9d0548 = "ea731120232889b159b69e7a11fe04d8bb5cc6ee" +a0cc0edf8fa429b042ed451276ada626a517099e = "0b7aefed873ca3e714a1acde0339b0d49d69864b" +a615b9e31cd44bd75241f15f36bc3a62aab9b101 = "a82a8b5b4ca2007afc70e94bea3ce65e885c9d87" +adaa80b5b1115f2b420ed7e40f773feed2ad0688 = "64651434503be4b862cd59bd544dde450ead2feb" +b05bf0c503d74eccced10daf6a6c3919e607315f = "8a6dee95a8c1775c54f05f2f0df88567113acb38" +b36e91f84e68a21a052076661513bf4a01c64173 = "0447212bfeb32d6f98c1d67e5e65d41b40ce4d71" +b53fdcb02d1f86343f27974561f369eadb0560f3 = "3b49f5ce528eaee0c6d04d0f2eef699230501a3c" +bc4ac30c82ab6d82d9cdc9d4c85e21ba560b7e7c = "1ee8a7be02cc23527fc0c4ed573d129f46e69d9e" +cad4b096f71c666ef81e87fa894fcae105bcd3ed = "84746f4871ce8fc848ce0d0d7248784a17c86add" +d069993b320c57b2ba27336406f6ec3a9ae39375 = "d4e834ab2d444e932b8c07e58aa3ec2ef751edb5" +d2d5c0c2ff5ae9b2e813e25ab01cfe6cf515138e = "fc62527873655f8ca1a6b0dff02702abcc127d73" +eab14e1ab7b4de848ef6390101b6d40b489d5d08 = "afff1e24f571c3a75b68c7466528646c1fba0537" +ef182c0a235d3433f3d1414b2d9b886eee0e2636 = "96bb4bb800126fc00ce64282af440b45be23672e" + +[bc6b9049-e460-56d6-94b4-a597b2c0390d] +a9677c7ac4c5e1ba1d87feec7d57c74fd24e0aec = "34853b78de2e0012d795f61dd8c042d78daecf94" + +[bc724e2e-2423-57c2-8f10-788c81380fc8] +1e9392e4700e7169cefb9b4a4454c9fea20cbe60 = "1503e9fa54c867ddd706825f1f025ece4633e238" +213d6fd87f3e3f59c2ebb4c53f28c7791236bd05 = "aea51b5faeb77245473d775afbc9ddbfb4f6110b" +8fbf7026a6fb67dcc57d51f6c41a18975ce1a53f = "4fcac1a956ccfe66bb4e565575a2de00cfa805b2" +ad9c042ecb530af6715e12a2296b7d3229661251 = "effdcb2e39cd45970360f3ff7ec143bfa609ea22" +e3ab7d8fb11cfd1ecc6476f1b63727b322066876 = "12ea00636c0a3004385d95ba0d0e7c6df0c9968b" + +[bc7286fa-3078-5079-a241-9d8ba61a74a2] +6779880fdd8aa7f3ae96e896fd26912fb9bdbc32 = "1609498d2a99f0abe77c595e71e624001df6a99e" +f81ee0395fa01660b18afa99284a93aa385eb18a = "a2f54a03869c3e494205b425a953f01a510dc980" + +[bc77054a-dce0-569c-891d-74ad81f7e3a4] +dc0d083bd2f89b470933221b7162155f9ff9577f = "f8f351cfe9d49f233883ab45f0e4a9a86caba20d" +f9f296963446a8a1bde365b477bef57dbf0ed12c = "e9425422e927f0626660c76a24d05ca20ed8dccf" + +[bcd4f6db-9728-5f36-b5f7-82caef46ccdb] +0427380909b1eedde2e8f6caeea52a3633d753d9 = "f3876bceb4a67111cdbe9e54ac3ff98e6584b1c4" +085d714bf74174581634204620e4301902307fca = "009493269d6b30a264d9a946f2fc54fd400bd40f" +0e8708fcce6318bf23ef006935fd61cf41bb00a4 = "b99c53b32e36f20fb11ae2e5767ad50bf1e9a4ad" +118232270d498dac41ee022ec0b658cbffacbe8b = "eac0a078ec3ec97b9e641277d8df04260e814118" +32ab4b458c7a50348135c6f7cf1ffbcea1a80a82 = "be796f0a426e4fe491ab2ec36e0a6372c6de9752" +47342df9e537e6e3a044741a52a1e14ccccd0c12 = "b69c29c35ec3f965f6af87450df27b5642a461b7" +58e5bda57ebee024b291460770daa1216499e4fb = "353499e105398620fdfff559c38096061962d548" +66c1cf2771196a7c2757471e9e5204d7c19f1746 = "f32db00b5471c49448844af5a42aca977ebb5db4" +67bd41944754cb8c36c99dfdaf61216dc56305a1 = "50201b2712d3f27b24a64c1575285d5c4b4f3df5" +6bff360bf826467ffe6de2b44232b2c3405543d2 = "8f35e4bb9d7d67c5318bbad5bd14e8551f291b89" +70da868ca5e5802e5ba2cf459703e7c124ea620e = "096e81f8f75dd9a38b10e7995492d5a9ccad3a30" +746d81fec06f594ad4c069daa90de9cdad7d8849 = "b00063b7739d662a46b9ed00f34838e5455acee4" +765287bef6a43647aec0b4e95316853198825705 = "ac60367c634468f7443b5b81e0a9717b613ff4fc" +773873355acf8fcbc5035a4198fa58e8b0acc2d5 = "67fefb98d49abc0a8ed7e6bf7334d9d8a953172a" +7a5a15e6ec39f12a4911e0808a09d892ab5bd61d = "197b9a626b1149fb6026cc57a194b44185e1423b" +7edbbcfd7874ecf3779652dd06f91defa30a58b7 = "8db4ad3c1678562e5220516eb658075e81c17f47" +87cfee41d426c251f73a14024dc979ceb2aefd63 = "154d5014e743b27dab46d6f12b17cac3d85cd80b" +897ff29ff04918f1d2a62f4a0f29d335472887b6 = "2e364f6e0d487807b5bd1138deb874c238bc0f1b" +8dab499efec9e1a55a436ddfd75dfd6b09253e8b = "79af0247de46777d9a37564f7bf65710c4ebd06f" +9c5a0f2afef430c7d586148ded682cb986ffa1ac = "0daaf628042638e61cc83c9128c71c98411f00fb" +abf856482b49d794f77b4d8134f9daff9a735e6a = "b94d0a451d2d83c2954cc4c430c458c44cd743d3" +b0cfe42ffd9c1874270a1f24b2b17bbcafafbb7a = "70fb76d49e9711786a1a4a325544d2047a501b2c" +c3de652feb158ba818d9eb88f0d16cffcceece71 = "7de463d88b3d486e1a772bd553888ae0662d9430" +ca571ed0920965b31025ce4e87dff5b7d8baf0ed = "8adb945b4c53aea7bec046f9edd86ace68b0a8df" +ebac81e0b9dfb20aa9dddb05fe4e2049ab84bc0b = "021824105187f389f8708780460d860822050f08" +ec27c8dd3c4bc14a3c6534b3da5ee805e3dfc974 = "ca63d820801caeeaddfabdb32f4e8cd3ac0d8fb2" +f0e6bdeb7529b9097b3268fc8ec2f49abbd68666 = "7eb9154ecd23181a33ee3d1b6b1baba093aed0d8" +f6a73dcc78438022d5871b4fd3fc5d556792b46a = "a191ddfb4870c2fe12fedafd8df61f0cf3998bee" +f89db6c24198c71e5effdaf7fe73c94db390d223 = "6847bf230dda8338758b0e0143851fdc47342d59" +fabbcf0c4f907ef58014403e148e1a5befed7632 = "4637a0b4741be4647ac23fb4512d30480360f3ac" +fc7eadeded8835b5f182a6c98ccba695e97f77c9 = "cb18317019d37aa0ec7c5a650ab358a8ebb5c683" + +[bd07be1c-e76f-5ff0-9c0b-f51ef45303c6] +043edf213746914c1bdcf60409ee4d16cb71c741 = "9b3c6d8947d5ea7bf00782c9d7de43c5a4fb59df" +07a8f45803e1fce2d2b47cc11eba0c1bb3e3fbaa = "e50034685ab5b7656a5356e16049a73c770a41bc" +0b9ea91f8aece44563555b83e8a7a507e7b0e469 = "cbc99268d1649dd5f08aa1a483f69ea418f00603" +0db45c94c4635267a3a70139207193e20f1a6b9b = "c2b9fe07b15d8c85aed5af78af9774ee3960cdc9" +132c238feb36f6da789fbc01ffc9cd13ce0e4bb0 = "4b5f471128a172c3eb4518d03781158581bda710" +16e1051b1aa00ce6b91c1cb01427644c7c5b1b05 = "ab2864e9b73e273fff48ad1b3edbb223086fdfd1" +2bf6a5ecfa1d13a00f2bda3b2e95627870af7558 = "bad933a599e288960dcbe6af492b0d40a9acf54d" +2f4d4cb872991156edcb2b0d60def80befb5a8ec = "0d4bef1ba524bad9cd125934131cc9ffeb8c8eff" +32ac7082fef72a5401e3945b0ee0572dba628e2d = "9080b7c2b314de8d39817533655f6e1ae0e1000d" +51c21a98d31dfad710a22e3e0c57668119a43ee6 = "3e4a6eed68208b0f9d20806c87ec0bb52432d513" +572017617e700f7fb242410e7fd207612d1cf143 = "6392c5fcc0c423146ffa3935c52d8071b214eac6" +6aa60212e4209bc0746d4ed733918476b87d7a98 = "e8670f00fc9b4b48a7ec902573209fefb62bc8a3" +6dd2496be7c770137fd38d74c3a17b2079e1749d = "8d98592865118fe53e9986690e76deedf1b962ff" +76c00126cce4a293fcc0616cde0f7f926146d09f = "3a16845a0fea267bae595d9b44a5f5b4f63989a8" +7a267e651a23d16f37222c697c6380a03e0a56ec = "d5384a09e29b48883564bd15841cd8b9af799adc" +7b4fe854a8241252298119e401be1f9dcb2f875d = "5a75b2e5e9017ae453079e6d8b22264f7442078f" +7c86677118ef621c9ab72194bc9a5273c713d19a = "1137271781cd4f92b9ffacfa63c65bb70af91300" +8232b19a54ee925e0d027db588bdf242e16ccd5e = "d25747132dd115e7908cacd3f31ee61d2239f403" +85877c496d746b9a8826a47e251a1d08a6914b0f = "0454c71b5492140b1f12fe773c0443e3a870c0d8" +8917b3b9a1f59a807497c0ffbbe2c3ac0deaba8b = "8cfdbc5dd7353ad4ce7da9c83c6c965eec97596b" +8b5e10e1a5916d603dd1c8e50ece9e2897d82a30 = "fee1c5d37a7d4b503a744c2c859f3897a8e1003c" +8dde9d702898a4c21d7362190048c23186de6524 = "651371e6e8c09881f897a6d9abd5e27aba3f872b" +9cf4756de04a3936df04b3b35f4a476d4922b9db = "7944919d849abce5453ea13c8f737dad35cc927e" +a64465befd8eb87aab3bf615c9423ebb46a7b0d0 = "365c6be3515ddace1eb577d67e725beef89b5ce2" +a8039a59c25102f3c1b835f907aa8067a26cc407 = "6589dde70272b301cb45f90f7c103a8e722c6110" +a9dc7c0040948fb355b15e920ad337185fc2969b = "7cd9bb50bd9ef6d20e40ef2e19d028cd7b339e0f" +ae419c392ed22e9d25e31e6bbfff63e0ec4ee268 = "e7bc8e4b603e8bece876b945f6ba4037b3a35cda" +b45558bb513c449c561e3cd24d42cde09cbb02c1 = "0a86272e531435510697da0b904b68c4258906ee" +c6c42da8f2d0a870c2b1516a075d848a138c7ef0 = "e16f7107423daed7151f7446d80ddf3e2e2eb4a4" +c76c81d01d6735201662fb0e7edaa7b06db0d894 = "f95a51055e7e7179de2385a5f286b6f9071bf9e5" +c78c37cec15434ec6c172465afcfa19f5265475d = "187acf5edee9218d45a17a989913b7a0501ccf4e" +c8f0e26f11f92ad17f292ee03a1e287d57cb67d6 = "eac904d400d5b34c1b3b3331983bf3c73dae34f6" +ca7145a277d23f22be59e082cac9dc66d1b10320 = "6b847ef6d4e0e683c42948054434777700d12d61" +d5744dbded37188f2fb8b927091becdbc906b3d5 = "1cc5529aad12e69678e314c3bf97956bcf904975" +d5a04e7060981159f8b98acdf36bc40ea7f01d86 = "e9f782e7b04517e153b79fede4895bbba20bc4c4" +e50d116881b9901bda6306365e73f8988fb91922 = "2ec08ccd55791c2fbee9fea480c6244421593a20" +e7558fa46977e5fbf128ac3f7c2b73f1807dde9c = "51d708064ceeefdf20070eaac2575b977fc71a3f" +eea9cee1a5987985d57a337640d855c71ec8b08b = "557ef176b69a8089f861ebfc1da843c6f53f5f20" +ef8c1cb1e45a5d3e7879ad546de2c53a2ef0812e = "5c34d93814f2bbd0488c5793292d1509330f210d" + +[bd1ec220-6eb4-527a-9b49-e79c3db6233b] +ae36a6bbea084dbb0299f193f7cc0b30bf95c8e7 = "8f72d8c0cd1c14889e3bd4f5ec8a68c84048b1b8" + +[bd728e11-17d4-5679-9a00-f24958f87a1c] +35396cff0d5ddc7c7e482fe9fdd7b3d4e0f88fad = "39212d8179b3d87c89990db8143cbc76b7e06c71" +3743590ab9158d4f0cc80f3a27780973fea247e6 = "ad94131c3d7c1ebf77279307a05917cd6e81fb3a" + +[bd7594eb-a658-542f-9e75-4c4d8908c167] +045aaad4febb0f43fd62c66ebfbaa1e1491644cb = "6949aca16d23facff9d7df95297438a29c68105c" +405e2a5588737f902d18e742caceb5df5dddf74a = "1eb0986b8c79a2316be801a6d41aee94400246fb" +4281a2f56ea644c6632c83c5fb472011f74197a3 = "a9e0e81192cd2b8f056a58fa465ee3d56997f6d3" +5ce80a836d2b70093566937bcacd18a04a21a3fe = "36654e91fff4fcc2dee92d311ba59d8836b5be28" +62b13b455d16cb540f0f3d7bf913f875c884d350 = "31efe05fabb77b6be729a1a7f88f15cff5e96dda" +7f24006d83dfd990e1913b2a48019398989a1134 = "55c5165870dd93cbc83f474ffa9695ca2ffb5315" +b6043cd9bab7e5996b1bf128cb348bdac26e8a56 = "829d36d917cb28cb4b1a6db0bee03b0690487791" +f4c300d7280dcf83bdd38f9b930d5c8e7c610dd3 = "0a52ea29a36a3e6ceab5e40eb63e08030eb3c323" + +[bdb4541e-a990-5e30-b34f-5f04038aa20d] +a8191225799beaace0355bc97eca0c0cd1e9abef = "21d00f07d9918418e95ba4177653f47dd5c1bc31" +bec6386b5ae426414af8fd63d0fb2e03e760e1f7 = "92f352d88224612ef0d7003c70d33e4380011648" + +[bdc3b988-716f-514a-9703-6a7af59ca400] +754842961b781ef3a0db428ed53867ede198729d = "770010f8b5a109f1c45c280e9d60584007decf7b" +fa73dcd5e0993a875bf2fb442dad368026af50ce = "e56123e917516905a7c11392263c528932c91df2" + +[be33ccc6-a3ff-5ff2-a52e-74243cff1e17] +009039dbc03807324ba315e792ffcb76f8ec0a53 = "0286f71ee6a11b67f5d5daf72ffd7f8b7410e787" +0721783db9ac4cc2c2948cbf8cbff4aa5f7c4271 = "55d624bb438f123f5f7e2ba96126387cccc4f566" +1b25050c0dd239d1d8a55d86300a604a8b1743a0 = "5ab369c96878d66c52e3a5764744cc7a7ec95c7f" +1bb9162e2613dc2c7010bf66cf5973d0898839b8 = "46430591c0e7ce5bd66b55ae804e66afbadd3564" +1da524d321686e3f124bb2555914110c98bce646 = "e0ac60bea90573f02310a627bfaa3cd9406f3541" +20790dd9d8cfd358ac2499b7780e814f1b8dbfc9 = "0f34f8a450c751d2a35cf06ef7781930716867be" +25b395403b32c20e511ae8ade60119318560e0ec = "a6dc80a7627e165707352c0ab5bda7315d230a02" +3c06b092fc7baaa5691b555106f5506f03d6460c = "cf33d65f6137f077be623e5d191e6d6595eb4bf3" +4001bf0e03e569864d387ed488e15e9af826995c = "b89437b3f11e24c02e7b8f301543655eac77616b" +4bf38e7a0349ab85e8716815eb31a1dba1ba7a48 = "cf74a559146baba70af30ec00cd3688ce88f7d08" +a0f06b1a97eec1fa3f84f2dec1cfaa2da891c3b9 = "22b08f42a0025baef92e31e12407e3316ad716ab" +b04f4ea250744c720f7bad594f520d0cfa085fa7 = "c3e20d6429398fcf09ee379300bbeafc57841114" +d2d7e28acda43271551ebf7ceda3954b50b74d02 = "9b255ed70bd5922a94dbe43452f38fa48b053d49" +e16b4723ea6ecd72fad1e8951b7adfcc873afdd8 = "55172868422675b016cb06541a6c1d46cb4da168" +e53cb20cdfa4b0a1c6a8598a4a7ce56ee33fe500 = "f3cfb15374bd818b789ed10dc8dcf510a3507cbc" +efd50d8efd94dcf0c5e792cdd5b1dc878c65a5f3 = "507f31d4dcc50c48a6147eb20c98f915a7d3025b" +fe0214e942a347742da415565729a06efadd6595 = "826097fe3029e32351b6f2f21f15bd4b4d37fc38" + +[be414c8a-3a4b-5539-88f4-08bdb7198071] +59edd64d2a6b6a9c77ff449e6f931655ccd4c5e8 = "d10d90580eca9fd8ed47611b314fe6daca4c302b" + +[be69cb46-3af1-5a2c-8426-f7f9d5958b20] +6466716e95c5940355522d73b3cbd54fcdf6f725 = "b5f15387d734c58f6be3686f0ca89a6828723550" + +[be6f12e9-ca4f-5eb2-a339-a4f995cc0291] +0d2144638d34a8cd98022abbec89e29725285a0c = "28965d821925c2dfeaeab589b2fadedbff9cd7b6" +244a17944a29c2798d563751374d59d34f2db18d = "0476176f573239dbd29f3b2ab4cff511a9f955b4" +3dc859a49fcb89bdce160f77db5e8740f3944541 = "ea99d5b3063064d89d072f92f74db15354a82752" +65ed481c112a79f342fcf4618aa8a51b23bc095d = "e6ea91b5a1aff238f97010c466ba3908cde20fbf" +7ae7ebfac60ed3ffb1ccefd552993a3073f8b77b = "8b265ed18faa3f5b0a14d2e8f0fc2f8b19240832" +7bc22671adbc51660c99083ee7560d4c6ddb6d08 = "faff856d054b4f9262a67fc471d8bac5519e2305" +820d07d8d57c88c0cdfc9e33cbdda1018864155f = "f1556fcd81b6768de018c2464bc88a4ac2707ef7" +837c361c91564e6108df8f77861ee2ae1df91229 = "198a441f3e01ba1788424a007c6b4e062c863cd8" +83c4dd31d9dfdf76784420dbf83a9b1057d0a262 = "dc5630d4436d78570430661036a4dcc4aadcb909" +880d4b1a8120236df6cb7a02264226f92f76cb62 = "4eb79de0b6ff2625ec4ff629481ff87e069906ac" +8fb00af72d4357d64d2b6d68238d73031e63711b = "11b39c00a220df02854f685435370f457bc028de" +90d2f4392056dc22cb4053c18e5dd34a85f95281 = "5b848fd51285c6c2586841b1a13093e216fbf3c5" +9c4b67c31d7469c0587f6b6470411cea482a32cf = "72b62d1de7a18e01e34be9da13e9dc332bbca897" +c48347ff45bc7496e994eeb3cba81cc3d7af8510 = "639571e793f3c2d52a907a0b32eda0cc7d2fc123" +d79b72f8a951d6a19e96336f8c9ee83ab99b0467 = "276cedaa6ae43f5ba5b812c6804d2f7432621682" +e12d9edecfafb9f16d2e8ed144b128982a4980d3 = "ea4d6503674ef464a01c59769fc0c962f36ec2ad" +e194699064fad016ee2b6ace5780e59f85670701 = "539cae8472bd785d3125ca6c785a18d0379a48d1" +e30fa4c60d7e71b86facea775f71b9a7b447bd67 = "3f6e7462d957d2523d0d97bc7319b15b257b8846" +f0afedead6354c9ce69b264454e32d92adc62d98 = "bdc729d24bdf29bf2019eb39b5d753d8aa4b095a" +f450a51e6674c864be9e73530882d250d8e2264b = "10dbaf99f16074a12f4ee19ae08c1d8889fe58ce" +f614eb01596a5fc517c277e6460132eaccc49806 = "5321d4ec5d381425435d08236bafcb1153e9e36a" + +[be8ae513-ad44-5dbc-aa0f-d9cd1b2c73a9] +46830ea06c55b6ba570443c376735e9f81c7d82f = "239bcd774c4644f33e2cd680c9aad025f70d622d" +f04bcde831b1f7152cf91b378236f5a56499fff4 = "48634f81b73e3c0b5a657674583e07468dad03f3" + +[be8e8821-3f6f-54c2-987c-d2773c3a52cb] +44055b7db6e406c0472ee49de0cd3503e26def3c = "a3434ff73d99e2b2c4d054893b798c8c9e7728d0" + +[be9095b9-23e7-5432-9b9d-79c672ee5ffb] +eafbd17db92a1a1499abb3cec3440c7fc3b88298 = "778f60991168a84c3a0fdadfa305b80a5cbad0a3" + +[becb17da-46f6-5d3c-ad1b-1c5fe96bc73c] +05a768c10e2ffce7bd3750ba569ed03806057148 = "e1cf3ee29fd79e1c948df63bd41f1cd1856443a0" +18b7c297c331d6cd960af082d772e4c35834f796 = "192f4ddd9f35e2ed95cf46388f3935a18b36b040" +1b36d435f4ee9b0bc4fbf9b830d1335629668863 = "15ba296edf7070a308b428bccff1525c007d5027" +22975d921a91148aa99c7aa86795309cc1156ef3 = "661cf2d14e2fd422cc518db64e0241882d78d1b9" +3d275a07c8a8584f83c6d4191f2dfa1d41d8db45 = "92a0a7d3586f7cb28ab9be6b1e64311f40ade3cb" +3d8a1f9d3d00ea7e05729434f075d55f9f299bd6 = "fe76bb68e9916edfa53eb8f8f0307cda1bf6dbaf" +703485656607a7ceeff9c88ec385a943c37847c0 = "9b70741852e85a7820f943c2836fd70d9cbab0a5" +97bc8ca9da87dad8264b6df18a97dcfcccebd2b6 = "5dec79bce430e0b6fadc06344357a2d51f8a2d26" +9c96901e0e09a490a94badfdc432de1302a93bac = "574937fd3c7c524634c3d2100791f66bb7ab0b70" +b14fef74e8372a9062be7ab90fbd1637fc48f92c = "532427189b5d6bc82744f5d478e58f3975dd2a54" +d2f2e9b9f212c12a96807ab3359ae749e734da7b = "ab20610d76b004f1b64366727de5f6106288653b" + +[bedefb8d-ef00-5401-aa81-ae9c3f6f84cc] +090fa0c2f25637cbb13d46e00ab3d2ec17b46ef7 = "8ee5cd2901f6a058a494efef06dcc1004d2d29be" +4929e84b0a22f0038bc8f8b7e7b3b4f2d9aa719a = "e77706986b438059653e8e043f00b19786fd3ca8" + +[bf6389e2-cca1-5e17-ac22-36425c4ccbb4] +169381d2e41d45ada4018e7f9c965fe2731a1aeb = "fccdf7c64e1a8d618b9e128446347b2e241bcf75" +d48515f39eed744eb4feb9f6b6e839a576310a30 = "46cba21a0cb648cbe289c9e312d806f14beb51d7" + +[bf752c2e-6b1c-53e3-a22f-e5bb209bd3f1] +28a33905a56bc2996882dc9e83c9f89016e2ca76 = "fc5f888f1d720a32cb218a0d1d5d1c299a5e1f3e" +43cf3b143b7d2758f003c555b040aca04ad989c3 = "430f41271c1902d4427f9609f1f881d780d03c4a" + +[c00ed354-b9be-54b8-8a23-c5ac771bc43a] +72f6b724b0bd56c988b240aa22c0a4889c005290 = "7b5b4af3d560472cf8d480f951f1a36e2cc784b7" + +[c020b1a1-e9b0-503a-9c33-f039bfc54a85] +a38980898c2b537b846291c44ab83b47f8cbc894 = "b16766e342badace3a773bd797a6e8023f540232" + +[c02b4b8f-ca3f-58d1-821b-46dd0e8d4d5b] +00775862bce641790ae4c4525ad27a318e4e20e4 = "298623a4ba0755b7d43ae0ed3b3f643ae1f97543" +051f6ee3e7d413c8a5fab0f4a78375aa76883f7c = "e0b7419cea1bdecb4c5f830a99d895e1718d6084" +132ecae007fcf5f586255118da27daf43ba51f63 = "4c153e3ed091cd09d0e603debd4d0647d673b4ae" +202c366bd1ec1d367289689410ce12aa9fc040e0 = "9d041b603455484b23fb583e6fdbc478f7dc8a81" +270dca026dd7e0302c0dec3edfc477f4bc5e6a13 = "dbaba8bfc82d3ae830c20d2cfd0a185e2db412c8" +2c87ff8dfdc36a78a7b74ec97115f55959da0927 = "b79a9bea3552634e5080861322586bf1e4b8735c" +2d9e40431fa3e622a9e0c8649b24e13c25469a5f = "54607e07bc71496c2b1d05dbeceeb74a81cfbf0a" +3036189560ed68e301103a68b96d5ab02ade5328 = "989601ee3425b24ba3780da6db52750b27cf1f14" +32c9779cd52def30309f61eea9b32b2e6f7b4444 = "1816675a31d7ef54a6e6d2a621ff5d5a4fd5a914" +3451d378ccd6bb879306c52ea6f9cb892c9e5091 = "8465fd5ec4d177d457648f5a5475dbb0ef42709f" +377620d34d80f9876e84d32a38e57456d7252804 = "dd5b1b0b4b1fcaa23ed4d650b3afa49825da3a67" +4b886a8197cf8202707fac01b1ec556086c3a76c = "73fe7542636ea73b81206b493a0140977519ad56" +5879fdf97811d339072913d77d652319b43bd671 = "78ea82a29bb4301adf356600f8c409cebd044f6e" +61b9021075a63e1d74ac35156db8ca0c671523bf = "1f6b2002d911a432f8c67f8cc51726ada1ef40b0" +6845ebe36b7b9d1a0526a5c8318badf80f933c1d = "85be2ff5e857ec09916af160371e6503c2ae9cff" +6af71f145a4c4104279be043202b0563214c35ac = "6137e909cd7ce55ef14d73d3a147354614cb9468" +7d7121220a58711f0bb55f073812c09d398027d2 = "29d098e09241a2e99616139f0ac60f6821aef981" +7f45a3ad9e15a8c41d9ea20049f67b202a682d5c = "db4b9a076554fcbe6fba8c6f24306d68b960f194" +8e3e68ae4bccb1c88c91a3e0ffa67ec1597dc105 = "d37929ad438ecc218e7430515ce28e7bb153dde2" +944deeabd52f37d35c5bb8e37d9128a2e3824ab5 = "ddf2a6994c9f6c2e73501dbafa551ad10e57669f" +96140bc72063aaa60214a979f84407a21a4b0370 = "4ee1de52d7c0c15af5a03502d59a0b352e757627" +961634ba254d35c3b9ae6f851f1cd9ab28aca515 = "8e17b5b155fda38f5e29dcdf099921bb12e47644" +96e6e0087ac4045bd2ca8f3d105d89e2d8ea576e = "8bb6a5492c0f42204097f40cf1fee7fd37238aad" +9da86819d83c89ea504fda9eb1d9e76aedf5147a = "a14797750b69b4181a2396dd50cdfdad44e86bec" +c332537fc628d5d8601c1295299b2cfbd86f2400 = "41a5a368615ec1cef64ef87e704dc209c6ad8abe" +c6f6082c30a9c508e6d8e17a3b89a48e13074aa5 = "458fe959871a80a751364b9b9a8ac24398761a31" +cb7c4a3d317e86db4bc6318fdf6791cc7040f46d = "2704324d9a8c6824988107009834571999a1e5f5" + +[c030b06c-0b6d-57c2-b091-7029874bd033] +054769c185c65fea4f42acd2dd337e249cbf1641 = "33b1ee6f56db38e5497ad1bbc79cf61f84a0dcc8" +162c881430f51797fb91607770f55df554a4df5f = "b8fefb856fcab2213539e6d4bd32baf6f06506c4" +37e5d7a1fe6c468aa1a12e26b46578e4ddf9d599 = "99e370d6b374f4a4e20a118fe9daccf6d1174f31" +3ae921db7ca50a8044b886cc402897e1bdf2e13f = "13d710603ac8666d7753f725f6bd3abb828d8c47" +4294ed18c0f7a7a113e1bb15afc0b89b4e39bfac = "d2e716edb3719f7458e214630cae9833cff9751b" +8d4827b93609118633478acf09a74247f47cd97e = "edec19eaa629bba5645cf96407d2113676712fa9" +913a3a5e0cf227edf2a2331deca5d3bb4943d7a9 = "b1f4e89f36692e9bc39164ba1b64d198adbea5f6" +9865c128fad90b9705c5aac5729bf456a93dc762 = "912201201b01329f53dbeef677d318e99b99ec8f" +bd3b236acc36c24e53731796d6e644e89c04385e = "3e54c5d37f37840619e2e90bf69b48638062c694" +ec52c9422b2ca7f1bd6a5d13e425370fbdbafa58 = "8bbde27c518071281a13827026d1cbad19ab2a72" + +[c03570c3-d221-55d1-a50c-7939bbd78826] +1c920e002b7a203eefdc0096306c9320a6fc5289 = "71069692238e16ec8c700704b6b7ff4a87acc802" +2a103a7942a557eeaa026ecd25bd697f1457af18 = "40d95c0b8a1665ad5fa968ac1e7d0c07e0da57ac" +aafc92f0d8e5441fc850cba0993875724f3d8550 = "717c9d79c73d8b7d2224002fadcabc4035eab099" + +[c04bee98-12a5-510c-87df-2a230cb6e075] +398738ccdf5111b05782f0f523197b2fd950d429 = "e9f666d05cb792d8d8ac6bc09b8aed82cbd284eb" +3a1c133b9af691d4f2679b504e70e89e3b055843 = "5afee79d82f482568c1feca73c88eaf615c83357" +3e55cdb38d265f707773c51c08f23f2c103641d3 = "7cf2ef500c8d36c9adf70573a003dd46363f8ab6" +5be5a99eee42c905a67e10a956e912eb6b40ee1b = "057475306b28e45f64ad23ef597f9ac08b980245" +664bd6aabc4e6d80bf0caa3dc59cd585b9cd586e = "401798653fd30c02abed99c4e467080992f784e6" +81fdd918a4c77e45fb9fd054c5bac005635e6b19 = "0bf4890c700ea62638cde1d92a9611af49a01afc" +89b76f938d9f3c14ce48c3cd617066472736813b = "1f81ff2be02a9b78a1ec4876d8c5fd561d26ad51" +8aea18cde0a31551013904ea105d44334ef59850 = "260eb71f345eb74b2cb2109ce3a6c30490fd8fea" +a1336ef08b964bd493d7fd00bc4aff39ea9c964c = "a165eae76e1a7472a2ecb17bf60c94329aca8874" +b5b29a04be142454e2d2e4ed2743c16fed1f296d = "6bc46e3b64a105a77a53c17446732706d39fb5f6" +e8cfbe66649a0ae8dea5538ebf755dae341e3ea0 = "4e97df6cce7346e2091934750e697231be8034e6" +f09fc99145143a5a1a816bc18531f8b57f37b937 = "a632cdf5b92c3121e6061e706a2ce9c9081ebf55" + +[c05f3a35-1ef6-5ef8-a85a-d2e61fcf9436] +93849df1adb1e6744d537d799b1a6fc838b89b16 = "af66ce7c1d8a99a703bdd635e9b4366ce33777a4" +94f4bc137ab3e5828c078a4fca945114c897eda8 = "77ddce6fac7bb21dc76f3dde836aaa789cfbe4c6" + +[c08c26e9-7d88-5404-9cd5-c0fa6a8b90ba] +58c7fcf04bcddc1d13839391794cc95369d94a2f = "a6fdb8d1a2e6b116c8abe2329b153ef0f4403056" +fba1e15ca7e314d45269d5afbe3e85c386caa35a = "984b81686fcd0f8ef9db56eac3c0b351f9c53257" + +[c1403bd2-e34a-5715-b454-1ca6f7e8d33a] +74bb6ff20985cb300961d72896f6c2e77880fe39 = "a5a603050992241490f2965537f77433e57ac0e5" + +[c17dfb99-b4f7-5aad-8812-456da1ad7187] +0312fb0873701d761e0946e6d3066bd70e962d42 = "be736c0ea3e1bcf28bf216aee05370ff9aaa8d8e" +046300a042afca8c6e08aa4c485273e0074e38d0 = "a812b613d062440e992f856eaf75d798b2f7ae16" +38d778689678e457480869f2300a1070b6408636 = "eeb1e41bad3681cbc1b84d1c19d7772440d6b4c3" +3be5791e036ab5b307ab68adc7c00d3bd467ab4f = "de456aaa3c48d6f14003fa99ed9d89650186c9af" +447e8fb8d0d923e2877df9265c1f41614533f93c = "8453105411f76ca9a1d40782681932198378aa0c" +59c5084acab6189c73606eb81e32d86c288b8d52 = "868d2b1aab6f97aaa80e2e9286c89d722cf5887e" +622b69ac7c57ce815c31431529a1184e175c230c = "6ddc06497ab8f4b1efa2dc7a2874f0572de31e60" +68c386fbcc537dda5d700adef8e482cdfd59fdc0 = "7351627a12b9ccd3220c0a8f7bfba70842435045" +7d6b190d9a264d68458810645a3d02f5e81d2238 = "89929f23c45ff32daa8532c816dc60d9f63503e8" +869acba3f92e2721430500426f07084f94b85120 = "0c1842ebb6c8c3c5c85794392bace2798388dd01" +8b606a793ef519687cf4bbda029a1bb2c4744ee2 = "28eb691acf636edff14bb9f20637b6e3dff0d897" +93d52a3ddda49f95355086e61ea1e7b03e093da9 = "16f8583dfda9da2b0895cde4f7418867976b5c9d" +a0d80507c46ef4ce0f1a5636425ff8559c048673 = "e9183d13d794a336bb3d6e36b47718ecacb9cf1d" +add6224eb4e263c77e8f12f810f4a663da26806e = "4d9acd0ee122ba169d0022ca9c39ab8c65bddc4f" +cb12a4136e9afb2a158ff888bc8ea81d3e72e619 = "c7396326ab74f2dd1d9c1e60ac665a8f27504f98" +cb22544d3186b98f99445cc10e989432ade61fb7 = "4a425ab3cef48dc0450d663dcd5de7f33b39226e" +d376c613c14f513f66338104919f7a95b8e74794 = "85a81b542015537466b0b5fd1634038be5406ce9" +d788882b4a71cd77e85f0d3a61aacb98028881b2 = "f25390f5f981a7a4984068c76911c28922a41a2a" +d7c9262c5bfe346fe9005112e1ef7ea95b97bc3d = "aaebc047aa6470ebb1b7621d562ca89fc6caddc9" +e51cd3710b476232f4d540c41f989cbdb2c3c80b = "a35171ef6566928281d43bdb539f9781b87d9fbc" +fa7667122c9fd4c1e7d59bc5c9fce46020eea4c4 = "a0beaed0da6d647604c56c6ffca6091436451fdd" + +[c1862a82-0df5-52a7-b029-46f549b981ee] +e8425940807d4f842edf0fc74b7d1a9d8c3cdce1 = "733564546c9b712242ebabcfe2a804877829050e" + +[c1bbb6c3-4cce-5b9f-9408-89c7ea97d7e6] +eab138fb329aed85fd63e4ce373043ac809abee6 = "13c50c8d7449bb397341d2ecb3b8b19d3b0aff88" + +[c2297ded-f4af-51ae-bb23-16f91089e4e1] +02e4afb2aa4d18d6ea896597bb4c01b792b2cba4 = "d20057e22243d0c62e818761112b639a61b336d7" +1a88142d253bff6598ea45aca26fc74e65f13716 = "6c5f74a051b6bcbe4e0ed19c162478d53b0ad8e4" +2081ee27fe40d51640919d404468043888b375ae = "b94d79346c29d1f086a8cd73a315b423c80b5aad" +2208dc360adbdc22c3dde8e70a60f0a0e1aaaf3b = "f4705b173dc7ed8bc2d918c41c812c71037ee971" +239381009d8127d621724b3fa6c4734ce660f979 = "2e37d87021699680ffdf9bae4a42e472dec125b4" +296c644e182c8fc5a0a362688d482903d0cec356 = "04bf779dd09c415e8e243728f732b4b6de19f397" +2e3f9aa52a560cdbdad8584c77062dbb39cd3b52 = "c4c166fd88ced5a276f82610cbc1aba50bb75e2a" +336450e8fa40e96c92c2ac694c10a40f1a80bdfd = "7bb301798089fb86ebb5ac24b889551d4d76e8f0" +373a5692536164d67462be65492bbbe5d83b404f = "c6c21fe1db430cffbab26a69a65cfa8d187074ac" +57786eaac5641bd56ca52b3806e4dd766c892409 = "fd200f834f784bb4175513c4c03d975c6f4c4ef2" +581a9d6f1890973c168af89d87ebeeebc0d2881b = "23f5b4e4470ccfc2099dac5b893df4586252c60f" +5b8457f865dbcc1dbf523d0b14132a75375b701d = "0e40aa5b82ceb649a3bfa1bec8ebbc5eba3e6d4c" +5bfcf106e579c52f2be6d91c1bfaee1e198504d7 = "1eec60182b895e2bc9224a4186ffb74db4ac14fd" +5e57d36f7f34e948c7ea2f37ad7a769baaee4e10 = "7795017ec9e6e193756bb5825cc79a25c218af47" +62a2a810cbe627be7492f1de9d60ddd1f7ca7524 = "387702a9fa8ab0b8a3dbb727bf082dc7e407e070" +681a0c3eeb0496a900c270136a8acd8735911903 = "e71e3e27de0007103315beac61cd8d73793dac67" +68a67ea517d2cd238dfb7cbe68c4b10db44d8345 = "a8f20ecc532e817c74b31bbb166a82725c506be0" +89f9a65a38cb565b6c938a0eac760bb9ea458043 = "bb6660f6cac8f02b6ca4f507983e2be59d916156" +89f9e3f62fe990f33d5e38d3202e6466a2fe258b = "c0ce38bbd1848ed9c5107079b6810a73b64166f1" +8a780fbc23ccd512a8b4ac1b24b2e0aa2a0a4581 = "0219c0e12591e468469a33312120b37b2150cfd1" +8f1eddbfa8a044513776953d702efb6b9c122beb = "9f71d95891ed3857179de303b1cfb91e566e39fc" +94e5c9cc756f78ee87446593d5b1b7896067247d = "9202183e9efd44f89066afc87f0c50c751908ef8" +99835b54fdd8b62f65edf50c7656fcee5ee78357 = "a15e26e9423fa4cb37691fe9272beabe2377a9b2" +9dea26f54f5bd6cb842ad7026a0569d78173c41c = "0f4269c47b175c81586bcd5b7ae8858cca50202d" +a6fd94879ad11f3024ab499e7d67f7c8752ce545 = "7b68e123a3d579a374e9fa0af666d40c16e26b33" +b40123265706f10548ad97b74a46fd7c3602e0e2 = "8e610945623aede81a16e4c5b9356de46e04fb22" +c36c48bf467835676189be1bdd8f2c363d85b6d0 = "23568c4f25119f47eb0b485355d2c07e8fdf6b05" +e5038a7bdb9fdbd336a4dca0492cc4f52b88fda5 = "7dca500ffe3c2a22bc336a730154ab13e94ecfe5" +eacc2e1916b4be9fe8a7645d456ba77b5a4ec77a = "97f86e295392ed75e8b6ad774a9daed2d86cb47d" +f8a5e6efb4a34ef91846b21982b50fb686899d8e = "e815b945af4da013816429c2bb73e57afa1c469b" +fab71ed84101f4bc99906cec71882450c622cb91 = "39b1dea99d2a6aa3c05d95606519843a56f88062" +fe01d0643966828726f31068fecc5c286a97c12a = "6f493d1b5435caebe1770a4d369a866cf5b4be0c" + +[c27321d9-0574-5035-807b-f59d2c89b15c] +052cb180101830a023df5c7e8e68e4f7d1155086 = "ba7a4a37b347a97d8080b7d8a50c27b152b4af74" +527b069a55489afec1187ece9517020c53c57902 = "3463a2044f671d9c57970f6bb738d077fa54f41c" +80692c0f9bd981e668ff3f10284b46e46c7ef96e = "2819d6357c88a17e53e67303337b7f996acdf431" +885dafe2f374ed3bfa502e893e0388390d6a61e3 = "ad851943915cdc4050e00c4cfbb191dd6c9c2ae6" +f13ac1ec27a8514188c4a607aae7d6f7cb2d738f = "d5781a1b069ead9b2989f70ee9194f02ec106844" + +[c2a8506f-1b35-5b08-8aa1-bb4a7b47a05e] +2ef05ab66a83cdae539a9c3a233b5a6ad123a96b = "03acc56cafe001ef4a13c3b2a170953e83b0f3f2" +76f03435effb83dc94ae6bdd4b0ef7f99d4af610 = "587d5346b772fe6f8c574c2d44d364832211ef17" +a6344ebf578c27f29946af1581c0bd2a71f77b98 = "a4e7a152dde1ae8363d8e3d57de1d499f9df45c8" +dbb9d520a9753d6f7905d04dc0076b1d54cff511 = "c3d407600198a7edd99472a4822babc16e252b09" + +[c322f5cd-569c-58de-86a2-19d2b72e86c6] +082dcc49a4f11f6e12ef985ef34f1265b76efc11 = "8bb990ae75073ed114c938fbf34005701a6655b2" +0b0185e294622ee2fea8e71a139adad30dc48023 = "64d2bbc22b3c3a6d267388881290093df157c15a" +1a8059804d2282e809508e294d241be8df17dac8 = "09d817993266bd6eac2bd19ea54c81061d91ba2d" +21a90964b8a3ca1f8a6c360ca9a011b7801d5658 = "912a22a54a6ff3d18d67648f3f8d985878b54063" +407cd076a36cb6a175bfa2d9d8d6dabeb096d489 = "4009b8a6c370c8a528207d0235bc5f9d7566a93f" +4a982b2dab508219cdd57eb01a8b48baef5590d7 = "238222e4932c533699ca23bbe0353ea6282e4109" +544e4d7d371c906ebbfb9943558209a00e4d5ec0 = "9c722c6e27edc594780486fd3fff71af80d8fcd1" +58a98305f38e487abc4d42109b5cb1712ddf1ce5 = "fc8f9c2d51b18cbf23dcb1b065a744781ffe2f22" +77ab38bc331932507be8e14221cbe3eed6afa839 = "d2feb228571c4bba84289f635bc1a42fac22eeec" +787d07a9efadb395725c7063c36bbb800b1f2ce6 = "91e9b4aa172b6c3a66a670b4852562fc1c887d61" +9078102a2cd13aa038ad2eaf5146e3eab5749f0b = "47472ada18129798fa57d5d3056f1012ea3fed56" +ab049c34f3581f7120113803f93cf4fddb910925 = "5dc9e10cf219f24dbf09eee923c450100483ec0a" +c213a9b8a826cde982afd3a7db0ead4ec0647a68 = "096417d0fda73784bb5ee387b0469386d9e99d24" +fd511268d1858b989dbf216f1d245e8fb663b90c = "44cc6b2e8a721b521989f91172ab3295a0567251" +fe2004f8916288c2025d969024107cec43757b90 = "b2bcf8061a32992033ed14acf3f020140308dc74" + +[c350da53-3175-51ac-badb-d4cd9f895652] +598fe5a8571f9c51c25f34d34277d4d5f95b00ad = "22ce37e0019f064f5151b5a7220d3d1a58b08cc8" +aba1f767449bc2c4d6f536765f0047808c965c03 = "81e43c6239e3fd19f7798be83f177564bff8d4ff" +b8339213682ac8ed88d0ae0e219abd2e0e263db8 = "280376b5d6dbf41cd6e06940ec96f6930d04d548" +bd491efc20c523b94441a31f2d883a5e520f1116 = "9f023d332e1bed52e6db9d0968a5dabd5adedd52" + +[c3572dad-4567-51f8-b174-8c6c989267f4] +11c4161418de3d9487d58dbab9cbbbf776985843 = "50f50c0ec59dae848f6cd18a5f15f7ea718a5195" +19caaf8c5025d65a9994dbab6fc21e3de7f93452 = "dee5ebd95994e19e5c80d7e9af0379a2936859c7" +1b2efaaa0a37e4373845c6ab0ac30ac8820cfb17 = "faa1d6cc4107e1decc5cab6d40b77a48844ef534" +1c6ac7466bb4b5bc3a9dbc50b52ac5a1f0cee772 = "1f311d392bb7936e5ff7577360e9da0ccf215a4d" +209b3b84a3f5e9e7455eac75d70ac220f4826c2c = "9df9ff8e1cba6461ad1bff265c99c8eb4b874726" +2aef28f1cafaf8210a39d191cf04bbd5bc5239b7 = "2d703f1ced7a9af0f24bb14d13a036401da4fc8d" +2d8718db9986ff5c12d50c3644c24825dd61bf59 = "611c834713ba19a4ece97267792c2b596dea0186" +2e6babf8f054cc43a9d5a1eed37fa615c1bb40d8 = "0576a5a122b97c43fa349e44967cb6be76a144fb" +374e37aed9557b2e840e5df0d4a109a29620f9c2 = "9c31043c9675d1397cc1cfc5bf4b593df5c7ef85" +38bef0da42b5eb14bd6730ec73b5d8a9f009b231 = "a5f05984c575b6783d60c82fbfed57c35dbcf10c" +4361454b9e2d2d33fd1f9a4b202fcbeb95e3b0aa = "8648bf8cfe1c73684e79e41516cfefd40b70b1fa" +4d5f2688d78c8bcce0441b4c930a8402891a1328 = "81d833f01e008d6627fb17cae9636fff8fde089b" +59a62ddd0432fede1de0e80c0d4129a6a60e2376 = "a318e581d24f088ffa3f21827804c0a5090c35be" +5c473d9678a3f73010ca8b9230df4fa4defd29fa = "debd0142424b01d2d2ce63d9a48774e4149ff3d9" +5e4b9ca24dfa00ddf34c931e17fde4386c39e166 = "60982b643d6d62e09ea672e7e77e5efb83660b32" +6d61a48ef5ca875300975b257d2515f478eb1122 = "61e6b9565c0051f65bf74d8dae38446b1a94ab76" +71fd9f959225a13e3a4efa163492bfe93610c357 = "6b641782ffaaabc1ee9f8eeb477ce25725b15484" +7a7f9d5803b2d2298a9c22f37778d70e3cb88030 = "378cebc2becbd28f3af848bf9dddf217fdae4cd2" +91f8f8e049ca2193e87b75d5efae7565684f83ff = "b1055f0e968ffb4abdc7577d8555da466ce73056" +935d886991e5d294d536a2d25989dc319fc3c3b9 = "70701428c3f24686d3258e9b2efd87bb15793c74" +9a3567d590835ef6021d37cff13fd63897704eb3 = "17f7b7663427a728a51f0ed456f7fd82cb290557" +9df2a780e69e6a73c34b0f2a164e933d717016e4 = "1c0204f88905e0821edef9b49f14b2bea5746658" +a7c40336ddfdfe95fcb66e6969e7a700ec1b3196 = "5a261644eef6ca1feb5af2609396e40359cbed0c" +af2196665ed99eec1fad1570423c98b7568a5189 = "0fe43903d4482dc923c2a9162c89f64d5d97b6b5" +b631cc385ed6614894478521acee5c11881a4d96 = "11f9fa3b1b5ce89aba4b194d00238443dc2fd59a" +c33c56e25c6682a99aca625fb79f2f07aec689bb = "28daf535719502d55eaa9aaf867253ecb898109a" +cf0634d867961c834872849a909c015d70fa59f3 = "fb9efcdf1d5b1c66a2bc6d79bdbcdfe45f041752" +d1422d9752777941575e2320a7afef9dbe30cb49 = "ee65c7ba9ff9d168b4ae054b09a9c4e7ed09bb28" +d1904858ce063ce49c39fdb8cabd1fdd17801825 = "e7b1341962d6e62fecbdec3f95c1d0343838f328" +d27c950a4060e6e86d82c5a95d54239880574ab3 = "770d79fdf78297039bb4f80df3b38cfe31af3e73" +db072ad08a897f73365f964db6282800d03d1770 = "31c4dd3709f6d670a789eee2c00b80ddaeb2256a" +e3cbb0969dd5783160f4cb0c1d090e10718b0e3d = "e219a258e36d579ea376eaf45371bba1f5849fad" +f474d7a00cc66071c2fef2aed502fb4a84404984 = "22c6387a75f5b62b880f19d84c3926d753d76edd" +f840e38aa662cef6bf889329179700164794f482 = "d66dc69780c8f3f6ff1bb693cba304975b48c534" + +[c35d69d1-b747-5018-a192-25bc5e63c83d] +8c27846a5eaaa3981d39116d1cf010a8e5a8e624 = "4f15e3db46b0370749e7163de11cbede8bfe20f8" +f14bfe77e9275b1f1bbb090b2d1b5cdd3e4d5ef3 = "dedd086e28721e2accf33e51adef76c262d5a5e9" + +[c3611d14-8923-5661-9e6a-0046d554d3a4] +009a4fc2a6ecbdcb3517ee8d7145798947a9b630 = "7da9b66cff519b0f96cf6401d425211f5783fdc2" +07e018a2d17721285a15e203887f09699d5f0c61 = "6ce7c5f7531ad7897e0fa347475cda32eb1d91ae" +101823d221339ee9e65f424ee775f54ab4f66fa3 = "8f7c31bc7f3b98ad2685705462b0421d39634d58" +1fa3fca158d7321e8366171abcb893ecb8847284 = "33f0d9e928f8b168370542e32034262118ce65c7" +303ca0f8da7af1be8aa8cdddcea95d8efa52fa98 = "6a953676be7497bdd2497ccda338c4ce9de49d0f" +3224e6795e4d69a59722bb3765defc0ab9071242 = "18bee3b5b5f4598a27d61def77a31e8cab9a1a4a" +32835c2fc51862845b214d38143e98a211f03d1e = "58b055ddb58b86ebec2b96bfe7dc4b23051f1bbc" +39cd6264adb85bbb14f70e09045d6da4d453d52d = "9f909ff00db7756378b67451040ab3be0cb9868f" +3e561ecd023aeecefb2a8f56691f0e8acc49ea7e = "3921aab9a38ead61e61c9079dfb06e8fff3b6192" +43e4d6621a612566b7eacd7986a96549c2fbfd14 = "0171896e9a878c1c8aa636bf0faee14f320f754a" +4b98a5d61e1e52af1befbecfa37a5239a7179128 = "328ed36c5f4513b2e707869a3e9a86cb5a39d871" +547aa84437765434e9168d798cafb85a7082c789 = "057697a4e2ed66a68d2afd9d6ced0f58f99a76c6" +550b26e28d4b0224b3d3ee1d97b9efd4a0f8e249 = "b45addeb0ca9b16b898103eb668da15279f2013c" +5a1788d8dee48336e405b65f11d8841930067aba = "102ba17b4ce3c2f2da88e25480b28970a1acc10b" +5a45895ef8f2b8460d4ccfa108579f577a79d2b1 = "6aab467991fa0272b7f1c4a96ff44d47c90b736e" +65b0c0db66596cc942a114c700b66f6ac969d9a3 = "9e5e4689c02f537dabdedc56713402de1dbbda4f" +6cf4eb0239888e72e6fe6173abffe93419de4534 = "21c4cf50092246b7a49551bfcda6284d8b8ad4d5" +74b9c816b2c3cad07fda49a3a1953c384b55ead0 = "c0fc2d3dfb76e23a3d3d5e0bcf09e24a7c5487ae" +7f5a67bc5c730560c8a4e4970ddb955bf2d9be03 = "e7543bbb83cc6e967463b4930d1aeffffa8f417d" +838cc3847e0b2856536c9f7de5e335db3a3429aa = "342975506ddbea716e5ba1cd3e7aab36f2832ed7" +87af6fbe4c9f9e96a53c0314f119cc7f3f369b5a = "723bbdd596af4b24f644160e664729fc6392b8e9" +91e3c10cc2c783ebb86e9c06e1b8dfcc31179208 = "4942453b775e7d3103e53f7e7f24c7f27a83cdd7" +9fc96bf5baf87d01e6f69bcb2300965400c28719 = "fbceeaf6a7003fdf0aa4ba9d3fcf3f50f65c7420" +a1821f2d24db092a8c324d1c35c8c2bb90a1d7a0 = "aae0f409f0996f16ce7d2203ce7eb10c19e7ff61" +e90b0e481a9a1b43a9884fd99d8bdef9f9652fa5 = "1e698f9d366b1bf5be1609e9cb6b5cd062518446" +e9b086d92ef6875bf4aaaae8dbc08c2ae4502333 = "5cf10f3b34822a0e9504fb548664be35d3c3bfc0" +eaaa67bb50004eff939d192bf5acf2895cc72b0c = "ac8e1b84e7e6c38abd24f50620a5bd4c95f10c36" +f6916b661e21254d51b550b4b4555d0d71f394c8 = "1304997eae424d77699e277e87911d296b9417b5" +ffae8f44001a5c8467e490cd5bd1a221772f88f0 = "310e0174fd2ce8bf192ec1fe6fce370b9ac402ef" + +[c36e90e8-916a-50a6-bd94-075b64ef4655] +0171f8baba821f27196a566365164fa5ab8c98a5 = "7c362d6feaccd19835770e6191a5ec43d7aa70d9" +0b267e326d749b77616386517b4653bff685b140 = "1112f6e266f0b3cd2a7b60ac8d1b265412869068" +115de853fd4103b712d051e902540e7fa2b627be = "030835d566c9bd1f31e67daa56e1d7064c691472" +16e2abc843b0cddd7e4326bed7de0cad7e92b6fb = "a067999f5307da129cfc6e2efb60b1101c5d3084" +180d82d5e254e00de20b1cc61dd44e6621562066 = "15bbb56c0cf4c537297cbe5610acb3214ccbb7e1" +2682fa539065f3351b2b3f43f0817924412ba5c7 = "9ae2fbda165363f9218a83e0bd24a71d43455d88" +4488d66ae45c2ad523c1514a384ae4cb15242e2b = "dc0d7f7953e446cc839855293b31f2346ccd1d30" +9428c5e49ae8c846d583eded635eb7fe552ce781 = "7c77519962ae85c5edfce483893483acfa6045c8" +95db77c55488bdd077acf872046ba1bb6b53bbd0 = "80406ceb7d0c841950deef1bd79813e6014936f5" +a1a6f3530d02bbb8b65fb14fac09ba3e04544567 = "94fd3cab0dfba9bd2454b14c9afb15a3f2c629b4" +fed98621f96a7373efc665dc2df63749059c3a20 = "a244ee88ce9e3e1aeca64000d71c5327600521a1" +ff95e40fa62c59de8ddc73017db6f8e6cea0c95d = "853f8603e8f34026c8849d327bbc614bc8c5fe0b" + +[c3fee2e9-8015-57de-85e5-c840d3ed97ec] +3a74fab646935555b0c55eba186282233a53a20a = "6566492657c454e774d48245ceaca28741c57a36" +ad128ff9abf88cf5285fe4e6e380e1911d9329bd = "2e178b9b1be4b84774d606b5e95cb205e41b4583" +e91b758a2dc4180de15f5b873e76d42458f0edfc = "47cf84d2348968180d138773a0aa947517b43bd5" + +[c43967c8-f634-5d24-8eab-2867546b366b] +94b0ee57f475d52238620ea2fd346d66db4a7292 = "546601639c1f9f520b82468989543ebca3c9c4ba" + +[c4541016-4bc8-5661-83c1-830810448607] +05ec7a5ea0c5b6c906cfd6a0e0a8dd23fa33389b = "5a9084fe5771052e87ce5be50ec5fb37f1539593" +0e733093cd71c67bd40ac1295e54153c3db0c751 = "6b2fe85e1aa3e05af9d3cd75fc9efe6710f6c651" +141fbb10e0fb78b4f03bde763ecadc3534797ea7 = "c4d746815c5f40ae548aea00704fbc427afd8ce2" +153a4e8c70d1f702293bdd7a2215b47c4dfd734a = "9c702b0d798ae718daf8754aafa62c9c19bc7e4d" +41d1061bf19dc28de802e4a10e34efea8b96c762 = "2e452b4c4e7c080f2b2c839375b90632a67d973b" +64641900d8fb9d1fa1e46a468ffe494c5e23f20e = "713126a64ddffa9aa96116258f9286656429b307" +8c4801a6ca6368c6b5175c18a9d666a5694c1c3b = "47a1864fc72d2609dc877cccb3d4344de752613d" +96bbccf046af93f7d76fca9e1f1b87bca5d239e5 = "3d07d053c04366ae4cd48ad944a623531ba89c9e" +a8e5946cf8608550c597a2f0c2cab99599eea206 = "3b439fa1d2334f82d85e27ffc8601fc255c5a080" +be6f119b962ea18a149eddb480e254572576117c = "f28933e973591bd848a8d139e4bcdbc50ebd1372" +dc4b4824329aef4ad251f1c4a98d721612127f9c = "e135a2b1783a88b783a35d03f5c9322ed34ea18c" +ebb4cc043ac95e1635eac8f6a2db095ced67bb19 = "30c48f9e6ac6f5f566f5adfb7a8397f8c9674e8d" +f9ef7c9ce6321458bb47cd45fb1c728e0c9568f1 = "c570e6ce06388d7086a7a214a75edd2ab1f12049" + +[c465b395-4abe-5789-807f-2446d20775eb] +60d7bf43b70b255706ee3798bee8161fac18ca16 = "9f43f65ff3a9c0c4d9a5ea2504443a3365c29c39" +a53641cf45fd40cf05786097842d923bb9d7cd53 = "1d0a1199081c77e335f0409a3bcb1a06f31f6826" + +[c46f51b8-102a-5cf2-8d2c-8597cb0e0da7] +006f1195dad0823050e7dc7e6af86dfbf65eb555 = "1680ea8ce33412b98ae6e440a53aa829e41c07e9" +0694a8f2a6805490da2be458187da692ab8a07d9 = "75871f72a6c7fda7585c290d680578ab30d6d16c" +0a677d983b2409a8640a39c5156914dc5ec2e349 = "ad4d452657a421a30f019f9bbf231df4a6033f5c" +151c2b3722eaa9d222bbf6910b905c5e5101bdbc = "33e62ae53236b02a4a34da4309406e338b45b5bb" +17e28de71e909a30a31b64750bd57bbfa36b6f15 = "29fdde423b05700db77c6efb474ff2ca52f587fe" +39d88a5e0acbd893648dd0036e4906d19eba8a28 = "d6e4892c27b3c9563711059a5bf55b7a447ac7ff" +6052b422cabf7c2e8fa7e479faee5a220049dc0b = "8ac239bfbf0da5e3c5c2e4d75777bb18a32187c8" +67cb0ce0cbab2f37721f421791a274f7faa18d34 = "e6d3103846e96fea9c20ca00db1c9931315440fc" +7271e6648f7483c792a1965d95498f484ae0d902 = "d05ea93e177f4786abe0bf47ae552e2f764e0415" +8bf5312fda0f7137c2abe30a67581ba1b1b3669a = "f57f3a919a67b866b2f6fd5395fa8efef179f72b" +8f62cd44cf8736e04c44f7c7de4494ce43b0632f = "da1479c7903fc07645a7bc1d0fd8dfba302b9f80" +9edea568b22c9b0a66b18636c170df932197248a = "9512a15c2e8ebfa690420583e0966b37243cb8e8" +a350901b0f9a2463d802d7abb7b8a34bfa02bfea = "d3d36311c2308afe8ae77915056088e5b1df3b2e" +ad1e782ae687eced4d689681f519f6b961c69130 = "e8fd1b83328228b236aa78a352f8ec505bb1b038" +b74d77c22387d58ec6ac90659ca4cb4e81006a35 = "810a4b5924119d316642f161808a8ee547a3e9ba" +c5fb51a2c90597a7046f52f059d53ebdcafc54f8 = "e68dd798129a143f2409096a8c7c46611bc87c1c" +ccb4439631fb031b4d8c6bf69e1f5eb7a2877840 = "e4558f902826efe85a4a4af41cf7a3bcf0a0ae0d" +cfb1440413ea544b1d003a7db6e1dec18335712b = "82090bfb66c4caefb3d4f6e465cf9d352dcb2eef" +df4969a97a28cdff61279c8d2bf01bd62c4e6b7f = "ac0eb27e35299178fba26cc0603e3508b3a6684b" +ea4da7d48ac934011337ae277324ae5bd2b9e15c = "bb86651bc85949a882c07c749839c205c63b59c7" +eb400d66f8de08bf4979812f1f92fe88e470b5f6 = "80655b2995214c7ec386e6f418cf054fe1aa12af" + +[c48004fe-d13f-5df9-98d5-0c1ab8e45fa0] +9693ea6147a8495112d75054dacc2bb8017c30c2 = "66b416a6d1cb670cb327d9b41e0d77a5179e82ba" + +[c4c386cf-5103-5370-be45-f3a111cca3b8] +6a6f61cc9716b0dd6eeb03b78aefde5d5f04c333 = "55e09164cb248346477ee86fa1d5cbaac9f1b997" +734501df1453acd9f66c602813b73de764a321d5 = "0037b454f26fe49144d3d3c194a8c7ef461c6ab1" +cbf20744d8cd8fbdd2f8e4dfd40b355f848b703d = "5b222ebe4d3567575fdc446143cc9cb5e03954d5" +d8374212dc7cd006a490ac596ce7a53f3fa77308 = "423771cbb669693ef0e482a42a067463228b1a9c" + +[c513aa4d-7626-5656-a882-4604be010eff] +07f3d094bab070cb3bbe35901b46395021d1e846 = "f420369d4eaad33f550a1461d8d1b1ba10716f58" +4e05fe330584c440a5798e2da4893c3ccc24f3c7 = "ba05c12c1fa2496f78760a62da0d67d29035d9e2" + +[c5292f4c-5179-55e1-98c5-05642aab7184] +0ca36ae085e742904655bb0454c029dc0a5a2446 = "03a240f349af7521019e984de83f3e24d644981d" +519ff71062ee72dcc6992434cde4a1a57f13abbb = "f18043849f47e8b481a4f635c2da73d8cc383b6d" +6e128e808208973657b2c0afff06e941547b35b2 = "dc0472875fb8f87a7799b25d9fc8fe70415b40ec" +730944df8bd0ea8724a6e01f464c56e540f97d41 = "f6b662d4780309ec959219c728fe99209dd79576" +874ffba49f79993f064e10dd45e441e2f47469fc = "b3ca811750732f59dc7a0db913e29d22dabdfff0" +89ae5389516a271a69de982bd447215e355d20f5 = "d12d57a11ccb05534c181a7d9f4a7daabf264a89" +8f2ec1977f30361d10fff90f32c9a86f8e41791d = "044e9f99455ee0a9bd3d12a3e91aa52b122e2179" +8fab4fae752b3e73963a51d6419d25b173d29adf = "34aa6bcdf7c49f9ea4410241be5b6aab3fa81440" +944a554855b3adda2a75b637066e929bc2644fa0 = "64ab11232796ef4d7405198a01c33566ee6b7abf" +c551c6844fa2a0391ad12810895e32cf339c8020 = "7e94a12032574925a2ca602f231eb304768adf86" +ec55bcf9bc1cd24ba84b28743e10953795f1d90d = "ad8944884da9012e37a6402462b34e060dc8a307" + +[c52e3926-4ff0-5f6e-af25-54175e0327b1] +0a537836f5b7e1206b1befa56d7bf3b55fc7fe29 = "372721f59a69be0ee7897f39461e710c7fc1d4a2" +0e40e57997aba23623515402ae8a9f7695deb310 = "8f9264dc7b21893449a63fe6409d38132c97aaaf" +1465f3cbde68dd34fb0cafe7ed086d369fab9168 = "5cdea7842d7040b0990ca2f22bb85f81ee8fc9a9" +19e3cd8682b823eb95c239196128dba3abd987ec = "53d177393a696d17db1ec9524056200ce287da86" +1d4513b031191124e2b15f5f95c1a54be5436570 = "bc39033d01c19cff76c90f8ac6ee1a8cf4f68a88" +1f5735fc6c89ba3dc000a0b8b08ad0e7cae2302e = "dc1b7c1fb114b34f787d2377128f14db98d5913b" +31eb7bb67f322a00a84b11344d53ebb3fba8feae = "1d69b55028d394a8818b7b87968240bcb22d5d27" +350752a779da8a5cfe0d59bd19d03ba1c0153a00 = "82cecc181f7629f9493b317e2fa2fe8e589813de" +5ab09d3e875cdfbacc9f5469f276abafe91a2dc0 = "ef0fcefa09eed8101500e1655dac4f14276a7f3a" +6637adbfa87f7dadb4f0a01fc3253b0b6b34fa58 = "15f20c659d221891bccdc1da63e624fc4480a36c" +70b004c2ed2d6066c89d967af12dcf9378c9f047 = "6917eb8ea7853832fc207edb75d93f66544cee2f" +787e684583f84e9d70c1eb0f70019a68aa557fc6 = "30302c3bb332624eec1e71240191d01be872b5c1" +79c8c8a6bc465f41ed4ed1f7cc94e6ab4f37b301 = "e9cd8cb7b4619dfc717eb1bb549886e25203fc99" +7a55deda388658fdafa875746cce3dbe71089054 = "4a85a87bff3ead7bf1cc0d9527bc7a90363f6e5a" +80576fae22a41c5dffb33f71874d17337d0fd89d = "ec7ead5f4945b5caa459dc4476c9a74a937b9750" +8439d85a44d687d9c4cda449f84e22e93f1e9991 = "44d22686c94c1f9dac4c6b4a47d55bc2bcaf75aa" +8b07d256e79ea8025d3ef2bf5a1d6cc09c340348 = "62aafdef34165a36eef3f958042c7990a2a6d42a" +8d58ffcb1402d8871e3dea6198f939d5a93876e0 = "a8ec499779a0627e56584e00f9d3a9915f21f319" +98a7c2e751852c6517cc0c22ced97da972e8a07d = "529ab59fb494deed32a2cec46b62ab231f09ef4d" +a2ace2b148eb40b2845a0bbc7501dd32f4e278c7 = "f26282b39ea813726a9e58a5c98fa6e1090df937" +ac68cd9e7c728def3d0337c28a31bb3e64a9e593 = "9d21d8bade9cf6b6b726b18db18e248cc8d7bb10" +b0b8d589dd5bac4bb584a4da4fc2d2d047ee54a0 = "add112fe380ac6071e3fd710c7a60d8780cf5525" +c45d7622da1c5b7afb33cd78370924320fe8ea18 = "fe921c637b09466986684e0b060a552ddf00d1aa" +cbbe3a718d64b209f8caa83e0729f4a3072afef8 = "9c08bf078690c646391eb829aca5b4964f45ac57" +e7bbd02dccdddadffdd7727d03bf0d5ddc968553 = "9595d80f10f25eb165513912cb09eafba3de641b" +ea49f246e0f32f815a9700635fecf41333ec78da = "51c5d44e13c8211d100031c0056b92b994488e96" +f13924faddfff4efd25fe60b1188e2c45ae6e76a = "66617df6a5007fad75d4f0c1b6bfcf3c814cbbea" +fcafda674675ca61120d7293ee10cb5c5c59e908 = "1e6eaafdb599bf2332756cec6729cfe3d63a6485" +fcce9769d4d094b87ced980879decf337cb56bcd = "0be2d35bcce4cc76a712163a24e90f2228f7f9d4" +fd3b0787ebc43cd9d1e0ce0fb31f1f74fceca92e = "2cc8016e12374e4919d53a56f0807c81ffe516a6" + +[c53a927b-41ad-50f1-b668-0f657eff4b0d] +312becf024084f2b92fc3f61b99be21d41a097e7 = "7dc74123ce28b5ff086083c7222ada0acb3a7f4a" +929b21acee69c3f845d96fefd6da36cccf237a31 = "7b06497f46026e01ba9415272773fa7518765c31" + +[c544e3c2-d3e5-5802-ac44-44683f340e4a] +1028680291cad8fdb7c34d0472831c2a8207ab7a = "0591ef51ad411fb3a9c3e37af6ae52a3358a1200" +20d7911a6ea91a8c09a893f1549a5e638e21b4af = "fc35a16c1e4ff9d39df231658851f085413d9906" +3b5d9dd7e8bbdaaa44b3a282ed1c8a77bc861593 = "2103855d5490f7223c79b948e0d437dfe56fcda9" +40b76abe81ee50d0eca8bbcedc6fd64ef4e78d9e = "d1327e9e8c65ad7e5f3cc9ad6e7a4727067689fd" +be5d27fc46a335b9aab4235f4e13c365822d8047 = "54c4f3e37e5d52ef080437aa2de65670f0150b2d" + +[c58ffaec-ab22-586d-bfc5-781a99fd0b10] +00c3e80af57f15a3d84762fa92e9356d5b74cae6 = "19fc3b7e9932325613d8619472a36ae8a9120e90" +05cb57110cc9c6495c34bd890c8e925388ea9089 = "c341fb4e2083256398fd8f39f5ca5f4821313ba1" +424bd6a21db81f43fcd0db1417bed24e46b2448a = "d8308a34c29c7fd0a94f1e59fb34ab904d92e0fd" +94960d3443f80fcb1d364acb67bcf1551ae675c4 = "5dcbe9ebdbd6240660f1cf5e0bd4a9970a9e3edb" +e89431bd49b54770cbd5dd5d5b44e97fd1db5758 = "e60378fc7d95ba1458cc531088af18aec498c8a7" + +[c59b8745-e483-5070-b3d6-2d5cbfcaf4fe] +50e1d445989f80d479ec09c1ecf2910284544ad3 = "bbdf51dfab0e1b1d1c29b3f8fb170eef61386e61" +51988081f7fa3d44c7f5970fe0c6781cf63ccabf = "fea38a7d1b0e6e97c73fa52706c17515dcfd90ba" +58c728fdc3af8e333f5c9012d25f2d4f45d61da8 = "bf6ed60b4943e5bc7830aedf7be0d4167e98a747" +5962712ccba894a59f87c9cb672b5caa11a5c107 = "12b78aa9c26eea5d3db8da6debae9e476a345ca7" +71bc2bd2a513cc231fb75eb9ce3422051f52805f = "39f1f6c2f5764687f7ed15cb6a933a19eff48813" +a315b3c27edd54a839fb083f9e74b3cabd708ae2 = "5e8ba422cb6d3d9478ef64b6fb8242a18471e68a" +f727b8ef19a4f4eb401a650384ddff41737d7a49 = "2de315491477873855ea6741bae6a8c56b4490aa" +fce6beabe6364673cfe004f3b5784e4253c05791 = "b08d72b72a70e40d35a0a71d950dc62a1d0f0d80" + +[c5cfe0b6-c10a-51a5-87e3-fd79235949f0] +1b1de01ea1a59f77a9d5581df305ef1f75d12905 = "52c84dd82858d79c92569803db93c6b412b490d9" +4ccf0baa8644f738e0df68596fdabca9e45cc58a = "9747bfe86001716d1da6f7316286f079d38ba420" +690001d65519f08560a6d76ea0bfc9ee28bba4cc = "381dc2b7bb5bceb0b4578d81187ebb1ce8614a02" +a1baea65c7b814a42d2c9ed6fd0bf75277c15860 = "dc52cbbac43d911d53667a0b0e58d4ce4300c9c2" +a84a2be263ab5ec4b5261946a17f01fda358b9ac = "51f6f40ed6c27bb378fcc05a8aa969373ca26364" +c987aed2639ae24f0a031d27d159baa62d06c6db = "834cfcfe9fa8b5ccbdb71c1eb6704b3aa7ae51fc" +eda2f78bbb494a965adc4a7582bbba21ec623673 = "e95c7518876eecee50400ef82c80a2a0cc420b3c" +efdb887e57ebd84d418de160552b9d73a7d16f40 = "5448af02ad3e565add50b0677067f42a5edacb19" +f4e8031f1bacc5584a73fd993241fd0e633ace11 = "6392a5626482f96061aa4b2f7198d7b1b7d77d09" +fa19c5ad6fea210b6fdafc8845ec4b1650c69d94 = "38522d70e417cf9ace93848f17eb9fff20d486d2" + +[c5f51814-7f29-56b8-a69c-e4d8f6be1fde] +106d60df96fc9e53209022f0343229ae593c4ae4 = "15b7ce372f36ffd6fc47db00846d9459ac1b35d3" +123bafd6f0c4edb97cc08d7c749b871b4f056c69 = "6553df1a2ee11f6877408a839660b8df0be53c86" +1e3b110b06eb0d92633689b2b9a88964a0efc157 = "492e5286bae0f533d59a8530c38d689c0edb68e9" +22f4799cdbb038fdabbbf12fe2d92a3cabfc2ab1 = "fb6b701cda3f463465d5923389e832d2949dd4c7" +3c374d3bceb1d06ebbd67e5d00f2fc533efca53e = "df3b2865b708ac3c91e525a9e0caa7dbc60d809e" +51728b1f85eba01b6bb3537d31e4b67fd0dc852f = "931d5242c70acb0ae012b94f3744cfa13b246830" +5ab568e18ff324887f05b0c12fbd4783e09a0eb2 = "2dac23823ef1b252945cbc88ac52a61d862255c3" +72c0744d18128ae9bd00829b3575586243afe6fa = "7cecf02b3866e2af9712578a322432fd737d5076" +78a8d13044b19e41efd0424554a26ab8dd8983cf = "6fd7acd2ecfe459d31adcff4c93fa3f537d603b5" +8ad446335847fe73babd8bdc35b49723388ce32e = "6a4d9f9f6332144d700af481c276532b96d0f67a" +9560b480c4642183b17d3f5d5a751a1dd502d07e = "dccf2fe248df01e1386c29b98e4825cbac8b7c23" +959a9ff344d2da7db8c5445ffd3f82b9ba3c084b = "6bcf7c91f04e9cecd0df536d9b585d8bfad4989a" +9dc229600e70223b4ab4cfab7bc23e4b36da7bf0 = "79f34112d5c4f2089fd2c849724284370fc087c0" +a047eb2425bbd724356521a23593b686d612a12e = "43b9dd2ed18151417a6c9870f4ef9dce94ed5a72" +a1a36a4a0f337736ad2407f864d14fbf02888dfb = "ced08fd7669194b1a6fac8ef3dbaf2d78cb5b473" +a34087c1a208debe17a3f0bd87b41045357578dd = "a44e604aa33096453b79e5467fcc102712ea8096" +a8b2e3ca93a3a2be5b525f3bdf09425363b823c9 = "c9ec705ae4a5e88f9deb49ec15883ef5819fc964" +bbb3ae7005d8cb0af21341ca9d3590e7309c5f23 = "ccf6b24e31b69b34ad4ad9622a2c7b42d16b350c" +bd343e50fc2c2a830ed2baf1387fa8f43295f0fe = "49b7612830275387a7ea29892ce6aef3896fb32a" +c0cb8c0ea447ab4c9943e2a3653b0cebf8feb216 = "d298033b5e86346ee3e5c2073711a34d59541f7f" +c8badc7cb74a293563dda87dc0990843300e91ce = "818f479397a7ef77e7a2f092dc45c3e34429a0c0" +d56a6187219807329b8a37a291a1a0d166fec7fb = "2528f8a3e1176a293238e1c2578f3b6a39044792" +dccdaa0f39477e9570b5c24d0b15ac849e93582f = "494adc64bb5506d9a2a5d07023309934a4248243" +e9586eec095cef76f69273278e25e3cb2058bfe0 = "9f59ddfe5e1427213d68c6937db3d86bc121fdae" +eddd27ac3b6a28fb1e78e94ab868082f9db80a99 = "2af4419e1a7e148c1bce4033e2781be2f0d8de81" +fc18bbad0c2286cbd42b2bc8b101663b18df38c5 = "367f59f9f336531eac4d24f1d8579690adcadc1d" +fd6bcf0ce096e19ab4317d0b412b3f1244eb509f = "f53c4251a23a32c9e9b1b84575ffc0b7f910ff68" + +[c601a237-2ae4-5e1e-952c-7a85b0c7eef1] +045f0ea17b0bbe46b0f82c9cc25cabbddcd3f788 = "feca95543b84f382828261661c21c79d717ad55d" +0946aef82974c5881f5c7f3ccb942a52992275bc = "4143d60a0dea5cc8a098d2726fe8dab501f9a249" +28717c4125dd79c5f14f472b25efae625ce1bf55 = "5db4738b89debe0066ba06a34a88c8f576773df7" +2e247ede6ddf9f389474212127ef5d8a5bc355bb = "c3bbb225bbd7492ebd758cc2de85b38e8bcc4a9e" +3c35c203b0f0b9ad391ce9061d5ca706c2b983d0 = "7049d6c42e932fc689df64a3d58dfe4b6294d085" +455660698fbcabb169fd4a161ca1dc07e6564a9d = "8646a4f3e9589167f4140f53600368e6a2ed44b8" +522151c7405ef3a52ab64ccbb228411bd240d240 = "e3c447bafebd214e451b38aecc9f8b152b153d98" +548174c7c833fcc67e00cc7349144f25e431f8c2 = "600e502317d3b732b143aa49f038f651b046fb41" +54a4088e84fd7ac2198709952f69dc687255c63a = "35b9a9be11aa9dc9d7b00f81812e1fb1632b39bc" +636db076771912e27bc522230c021c5c33efae0b = "d3934e20c66870395c3dd50653bac279b511926c" +67a0ec1284e12cdfc7c6394df8fae3a70f69c72c = "5c0ac5304d204116f13e9aa358459c7aff3e2c9d" +738d42d398534ebd1630a380fd4ad969080b1732 = "a1856a6101a64b42f2d39b8ed5422a0e2bf9290a" +74b4922869b3400cf5fcd2ebd316db0fa60f1b64 = "677eae3d22f7f5428711fe9533eaf9290e2e9236" +7d1b529f54479a3a08f7041027bd09a43c900975 = "767027ab722d7cba60b3c22b4389dfa27be68eb8" +849ea79f5489ec824f9c6beb8ab3f3f1512830a5 = "2b1844b6b86918b042842e9ff93133cecb10a7b3" +a1d2f9782a9a91c50699fceb94284eb0f8758075 = "1813226874a6a0dd10ba9380ef2f1ab3ad7ae2c5" +a3e048fcc283ee4bbdcb6792d480428e982fa8b6 = "bcc0f09c0b02cf0966943ce86e3204e40c932584" +a4239a755bfffe982aff0c998aaed7db91261005 = "3d00e77c03128dd19f1504a0cf71149b691ab95b" +a9468e286029023e6595a55323d9c9e8246ab439 = "d634ca5d6c5db525f47d61da651e5811cf619126" +ad03087abaa803302a0f6888d7c7a15764b4420c = "d38850144177258f69db35da1d3034d1ccd1f37f" +ba477da307fbf9d0573f61554e22ac79e520fa8b = "485320592557342f9580581abed1a2dd498af5ea" +c6e872b1291e2ac156f6b2ad5cbed932e9f20f02 = "ba61432249f314862f7a3feec52b59040448ffb8" +cc5f4cfd34687000bc6bc70f0513eaded1a7c950 = "729bd725f39b15c5a77be65b15fc2d59b10ff037" +d3a2ba7fcd9f52bec307a04c45f0ad1394075982 = "29a5458f3aa79a80cc6475495e65e98eed487cf8" +e02fd0346e0886e95178cdf40f8cd11cd83ff6c5 = "08486055e1ab042c613ae7541a5f0ff8e8d00927" +e049a832398f71a15f5f0fd8f691efdcd9c87018 = "6a9b073543b531a558f5c5ae438e5d849b36eb44" + +[c614d7ff-2012-5f15-acdd-86d383a40c25] +4a858fdc9a5194b0d85d562fb7b1417b6b11b19a = "f83c462459c30a90295ba66defde276b793f8ba7" +54d216782d3c724350b1e3ed97b557e7729de2cf = "1cab51715d50a67ca5ffce89761fdd5e2665129d" + +[c619ae07-58cd-5f6d-b883-8f17bd6a98f9] +15a949a73863b705bf37173602d41ca06b1d8d2c = "6c4d0437311784cd0459302bc5124ef67ba27d53" +2690f737dbe86fa21e3bc463f1bfb6013f916cb0 = "5bf77d51d59776f5d98a295a216cf6091acca307" + +[c64b6f0f-98cd-51d1-af78-58ae84944834] +52b3aaeea1b66998f787cad6a389c3db9fd7e164 = "92b186fcb8ef0f19675f5191c8b58577c08c7f71" +90c03f89079273fc749e97fa25d294a3c4bb3879 = "f630badd1fb03551b1886d90d950884ecc60f3a4" +a286c0e04d58a9f338a5bee9f3fe93a5e1173a64 = "f0190eedacad7d6937a84a9eeba0d583e356298b" + +[c6a096e6-0dc3-5fbe-9087-cc874ec4a0d8] +15efaab415a58653fa89663a2f61b0a6328f6a75 = "f601c7c63cfddf85aec4468fa552c80d7c3a5295" + +[c6a3b8ac-c48a-53d6-aa6b-e7fb6d92f317] +20bdc2696b638f2b4617cce2bf90ea37de551285 = "c2cef343d36c4bbc12d9496706f9767ef3870663" +2b9493955b5aa285dab3daf2f938a473450bf714 = "0acd27d2f0cdfa340caa49d32ae76831b23a6e01" +4de7b71a4788c884e886356a370dbe46ea18ac6c = "1d51a8bda1a1fd479a61b674d1d4fe34631c75d0" +92bb7da758b34327d32b4285dc3114d6f52d5cab = "7e04018b2fb47d7db3037192f2ca0e2eb6dac14e" +a367107eeef79386e4810c1b50994bbea421868b = "3877a684c2f7d5a9ad77f262449aae0575326d38" +ac812f72a260aacd19f1785aa1eb39857b2d0647 = "1208e970d7b3b28c9c1fbf576410a74f015c8fd9" + +[c6c2c802-0684-5987-8731-4f4fbc620292] +27b26634678534d78a995f2428ccf84c09055794 = "bbaf767081af567f0256ad4246cfb736276d2140" +2a21b1667d66cbfd84f8ddc03a884519e9188789 = "cb4861edfaae90b684f2d72606283e81d0ee47ce" +2d16ec43756072851a327ac402279ab648dddf71 = "7a959f3b5ecc2ffc68062987bf812eeada1f1fff" +438f0d2bf836272fb96f6a11583edf36ef05becc = "c4198f1239b76171f92b7f82fe43f7e15b283b84" +534cc58111636ddd837669ca156c44c1eb24a8a4 = "04306957c87544a1a32af69de55033c32e4b52f8" +69ac3765ab247e9d07b0d27bf33f5c97ef90c8ac = "64e58d4282cf75db18689808a95b0bcb85ce567f" +adaaf324da1b5e2904cefd7fada66adcf6c21bbb = "d416253fac4bec251e2ec1fba32f8cb2c8a161c3" +afa011ccb6b338cacc3e1dc2f186c6d7370cb701 = "1814800763222b64c1f2436033515399d308728b" +bed89bc67254ba3ae57d7caa49cac242b21254e9 = "d8ba84337c9675688d7c91e4cb453e8e61b65618" +d336f25b101c7c9d27d9c5b08f2f6d110803412f = "07989e6b1f7d27ed49b417d55b14f86fc2f22ab0" +dc51058981ded32880907818e892f5a629f4b0c2 = "ac41abc4ba802e4df2ccbbacbaf58a9239749803" + +[c6d66e27-4cbe-5a53-9b6b-b93c61e0aec7] +066122a3c3e215c9b71142530ab6ef856d195f2c = "876d7259d4f8ee5aac83e692fe837badc4a392f3" +115ba357bc4811e1c4fe9dc303eeaef67e22f929 = "b4668974abb387ae2d44be5d4ed01322ad1b06a8" +1ed1a34865ba7ab8b26583e96325c65086311993 = "fa0c2809db29c241de1b3927c73a08350efda46a" +2032b1b541c3561ddfb443d2be694394419d4593 = "3a5e17fa16095637a43de42619566e436fa17cbe" +2536fb615053edb3abddd9eac4cd6045593017e2 = "8d6b1747fd909cdcb0cd60f68e0b8f3eb36c5882" +37bd5ee37490db3ef84bf48af23e3fcab9e3515e = "78e58628558d74134e94fcfd5b00b7973079abcc" +37d15dde1313da3ebf0da6d8c021414f11cea7c3 = "1964c8ee2dcc54a9dd6c6e7d3661211c1430d2c4" +56763b0d54a15747c8b322b4b9c63bb3ed4d1e13 = "18d9b2b85ef157126f98122f8701c7e3f640bc56" +5ff4694f3d30ddd4471ac2a74f74512e6096fca5 = "b69bcff8c0597cfbd321d96dd394ff79f5a0928f" +73b92ef49eef5983602acc78efcfbb18000e4d9a = "d008a01a2c5bd71b69ab714c58b7b74ea23e78ff" +7935ec77f6d33da1213e967e237d9df2d3549035 = "9712c25d215c0a12d40bdbeb601c0caa04ceedf2" +7fb66f169ada4c803e8fc557f0dbbf69bcd96b64 = "9f40107e38f577376137b3cf1015679369e0f82d" +804e82493d4ceee5d315571c9043e8c3384e77cd = "30832472e09d07d39f5ed56391ff34e056c2da42" +84a7e56bade1e2511ef90f700ce3e51c451c4dff = "b7349fa07b64e3bf1092a741ff8a46bf3dfb5125" +8fdbd6da636afb9f2bf96a6e38f8ceb97dfc2a17 = "a4e5dd9f0a2f5e542aec94640ed0dffce1604694" +96beda4c3a33369ced681474e360d95c0851da77 = "946aae152adfcb9ea7abb5872f97680bb47d607f" +b7cc6c6b434accbcf9f666da7bad0f149fb194d0 = "2025a97a8c8c68445067eea7973e4a3d39dbc8c8" +b9e2473bcf3389c46ff1bff91bc69c0fd69b3890 = "bc0417c257b5a2ca208a6ffb38bfc3349e36f009" +dfdd631446c3aebadf478de10fe750fc3b3aa025 = "0a95f8fd93328492cdf70e8569578a4ab19786a3" +f719e86c77a6b5312367bf0d200cd3ecb4250b05 = "5228ac6ec65802c93099ea21dc66f3a28315a686" + +[c71e192f-9a20-52ab-b911-a56bc4938f19] +df58e63351df841365dac581bec1ed6507a97c2d = "a15b866340a53f333e9543c78a5c0e73c58ac1e6" + +[c7373597-e383-5c77-8af0-81dadaae005e] +9280c4948d8f2c19cfcee8fb188e54e85d8becc3 = "903fc7bde63ffdaec3477c2b9ccba5bf9b648f5d" + +[c74b26e8-f247-5d24-b013-c11a2bbd97c6] +f9a000995eb005a83b03e630d353510dcb4d97df = "5e636ca509fab296ca000238fe37fefbf74a9e93" + +[c74db56a-226d-5e98-8bb0-a6049094aeea] +38e4958ee97144837692ac5b2a62859fc4af5683 = "503a89b0f2e6d487ed0c69f1befbd54cd46acabe" +8d9ddb7a0b4b37828a9eaba4cafe1115d53b909c = "97fd81375852973e509785b4a12b1132eed284e0" +ac2c176f992b3cfac7f523e27cb5e4a80340a90e = "7588afba3bf20f2cb2ee2f3f177b87b3924c99fa" +b5d79b0148e612788dc568b602d14b64038b9310 = "e9c6a2e142dd04d3a736b8a71b073b30ca5e1d67" +c48e9cc88b01eccd42268148561a79daf678accd = "5a0287ffeb94a662b0444d9e0132220277e3a90a" +f11e014a18dba2b1b9dbce5dbecf75c1e402fe82 = "3ca39e8076b01d13351baca3cea539319ded47f7" + +[c751599d-da0a-543b-9d20-d0a503d91d24] +0cad9e47e24ec699c3a490faf6a346d3d09d98ef = "34e0277d39fa9d0b2ac06f708a662dbca3dae7f1" +7c2b2e963caa5c1feccd7a711a9d8b4f4f735411 = "5286ea992861b3ce965be40613329a64d92ed3db" +a6c839ae3415c4083ad22de65cdfd8acbf8a3209 = "5346a0dde6c2937dba288df753373222734be39b" +aa27df9559d16f6f52e5a351134d64a273d5ead3 = "3b330eedb958ddb62786adc1a7b705918136685a" + +[c765c253-8ac6-5331-95fb-8a7ccfdcfec5] +942c6131a5c9d19808546a55e778b4be9bec585d = "2f0562047a4744407eec3ca3dddaca39e045d544" + +[c76953f5-bc6e-5ec6-b76f-2f5f8bccf586] +05b2fa629c6bf622157e512520664725ab8d5c36 = "d64827e7a33ae3ba83302632ac1a57c3e5f081e6" +d783c388b6aa3ee14eb210151d2d821f14808fa3 = "e9506ddb151f389182a25b538c4da872e34f6f13" + +[c7932e45-9af1-51e7-9da9-f004cd3a462b] +0bd8f0c24a94128f32951611aa0379e3c3d5bdbc = "0ddbf6e5d573ce9cb005e3961aed5d568a07fbdb" +3634204d78e5b42747926808b9fddbcc96b73db2 = "d8339e4b0caffb7cd6e9d5936c2a99a8e362d508" +4fd7a35f3936620b0c6a8a19ec0b688aa1a27968 = "3330703353edd8f2fcb5578c164cd693662f9261" +692255a109e5219ef9baaf5179730c151676c96c = "656b422e73ea3b120b7f64d2f7787de2925de6a9" +7044ea5978c0e6f0782c4b747e23e775091b91dd = "fc2e5bf0086bc77c9bc59d7de1b3274d0133daec" +73621b179b818464e72e942fd3a691ee79f14243 = "c09b4d5f4796698ff239cf5ebf9cf63ebcccc4cc" +ad524aff42fc0a305fa80cf9223376ca03300b96 = "2cc49d79c9012a886b396733eeec2e0be511ceea" +b14c418b91604b92cb2ca9ba0b1c5da2b4a24776 = "550b139026568ed285e486f8a5630d64903e6670" +b6c64079a99df10569e414862921cd766457cc84 = "ec4e81c5df2127eb282c79c762b8b4b6fa0e92e8" +f1dea9a9cb2e2961cbba15ba06ca148e43913a77 = "9cd3b69c13d7803496f65050faf1fc82bc4b7768" +ff2f34182481ec71652a638c5dedf103bd0e8048 = "cfa72babbcc5288126feeca91cbc438294e60707" + +[c7c68f13-a4a2-5b9a-b424-07d005f8d9d2] +e695b6ba59477e4007528d211ddd5e38aacd54d5 = "d1e768c845320a513b997cee2d92440a5c2bad12" + +[c7e460c6-2fb9-53a9-8c5b-16f535851c63] +08dd98f7891d8738b9cbccad3cab15cf338239d9 = "a11c35aadd5f1b4a46af081aaf6a61250e580265" +12181a8eab0a19da7d813f4a04b787cb22329c0b = "939c5124253156553681ae4bf35116e825dff54a" +22f6672041f4285e7805bf67778dc4dc9050dc48 = "026993da6688e5fa61e2917a7f2eb0da2547297e" +2b7e1eb91169f945a6fc314e11c99268bb006f21 = "f891fe7299e3542acbbf1304fddc92b8d28a9c57" +7e0f30e78a51e577aa34817d2f2a63e9d44197c2 = "1a80df0cdf46bd70a00b25d2e13b904515eb3ee0" +810240fb748eda19fee13b61b781c4374d882afc = "cdc4d39c68e2c0cadd8479d3b52de51ccae37f68" +8eed412324cd9829dbf53bc3fba19d9300309e7c = "6a882fff49aa5dcfdaab3defd0e00de72443e948" +996d7be91142731edc07ab10eead324201cf936f = "c84efbbf2a483dcd7bc3a838de33081ff43e9954" +9c908a6451ed813a425c859bec7c13591de54bfb = "ebc0f036fc06571bf6f9fae38868a326a20c1957" +afd2a6c265bd8fb68c456ea2759d93c31a56cc2b = "e0bec0842c9ee26a1d7f52038f0c08beb3dc6618" +bcc7e460a4c68ade78b88a7d73f25aa77e25dad6 = "951cb898cf70b5325254611e5d993a4896992d4e" +c43fddb0885ffd59ba19b1db3449d7761f447151 = "f6f8a28d79be4192351f8fc05e8f1390f388d1c6" +e6d48b8539a793a77fdef67a41e8b234a9add2ff = "11568e35a217666f754ead674aeb52deff65a14c" + +[c82e23ac-8953-5e38-97de-d58954ae44d4] +a5f77ea747c6add27109f007ecea1a9d64760954 = "9100fcc146bb27230ae4ac7d0ecc6f286699a34c" +c8a07f5f9789cf24dcb0d02df55fe2e4054fcd9e = "3806f8e0ca039f66dc9a9a59df629367731d117a" + +[c83cd129-c60f-5714-ba88-614b701ed5a6] +0d1d4a7cb1b19468946b1974445df98d8870723a = "83e2b1441ea2bddac2beab561db9703a841d7d8e" +3b280a3e9b78c7d45ac5692231124a2cbec14590 = "47fd89168aac97f2e37d73aedca318f25b9c5360" +551c45d4876e3f655a5e8e7a2a2556226fc8e1ac = "7bd42c881541f3a78fdfe0831c7d5a40e6cc049d" +5a7d8f0f56a0c4669692168ebea584beb2090afe = "9c0a63b52bcd442a4354a153acd11b5f49f81263" +5afa47629e963c4d1594cca13538ce33f9393df8 = "a4af90c0ee8913abd01acab551b652fecc42480e" +7bd5d7f8a877d52f50471c92ef21010ad16d9ae1 = "d787109ca069bbc95654a23c260aaad747a3bcc5" +c7b58cc903b6032251d76b1a5da796d32bccb988 = "e89cdd4d1cff32b1ec321a25867260bfbfb5fe28" +d3cf5061441d249cc16ed428e4501b3b22454b13 = "71a5b49ae2b4277eb245e94d8ff0ae8fcb1e8751" + +[c84ed2f1-dad5-54f0-aa8e-dbefe2724439] +00dbd68ae16359ceb23b90b9a96ef65a0bccd1fc = "de2d97196671bd68cf99224b7f85e0ecb0159dd4" +0e56159aaccd61164c106d75e3b8e9627c9373e5 = "24f2d5c255fc031d7b557446843cfd1c6a1b49e0" +2f80fa8b0ab9e0fc8c358fc97be2f9c50ec66a37 = "68d922178459eeb99a54fef8aad69fc76cc6682f" +45349f59e5d54819b55b8caa13a59f859ad6dee1 = "51804127898a9713616405fd8e9173565df00f54" +66ef11807612ab8cbfd9a375f8449d52966615a7 = "541e643014648109ce1e91c6dbc26c3796ee0ab3" +d7264b6ac3b049b6c2b95899cfca2da0605865c3 = "3811d1121ee90f0dfccf7462a15656e8714770e3" + +[c894b116-72e5-5b58-be3c-e6d8d4ac2b12] +60338f381c5dbfe325f7aa8d40c49cb65a47b4b3 = "d35ad2d27e3025c2e2b5b98d7455c2126636a117" +61973124ea88348bea5b1dbf915fd8413196dbcc = "f2170a4482f0f5d220bd97883bc75e3b9eed9eb6" +62761478ab7dfe86636358bbbc3b65a08fcf13b1 = "8ad02c6adac14dacc4ea4a57fe37108d69639aa6" +73023099601997d1d2fea8891819feaaf3f50ca5 = "eb8d6cce83b7a9bf6c63db3a5488eab29bc85751" +b0a1df798379a35eada5ea55dd71c9ecc7e0edc5 = "ad8c2f80ea43bd2f81a94dc10a28b733c42972a6" +bfe85584fab5841100708fa573e3d71afcb6da64 = "fdfcbcaf33ca3b52cdd7b9fd16484c9769e24067" +cbd35d0f4351c327c920f980fe4f4ed7bf27e7f5 = "08deb7d0e45c8d4b429651cbd346276c7664b421" +d19a85b1e0b2d725b7aa6c8f6ba2db1039401e5b = "48f8ed3960ffd79c3059693ba8cb9661d15ca198" +d2b370cfb4bf449d9d5447f322be7bfe569232a4 = "8956e04ac982faa60cf60dd4bea8fdac5aa9cf08" +e211ba50a43e04865ef679c7173a695328cc58cd = "ab33bc0e5bc2851cf44847b45956834ff369e57b" +ed7eba602a7778d01d80f9aefd43771f9f9efc76 = "d5d72c7eb8793cdd9966b3d24c3fb666ebabb879" + +[c8b314e2-9260-5cf8-ae76-3be7461ca6d0] +21385e94f81a910d2c2b2bc481e43650a4e07b9f = "2f1d97258c8fe82f25014ad1e4693b3a3c2d1788" +693fd211e3d481386ad883057a01b8963468d0a1 = "0284d0f7f756f171e2ea49cfd4595bef3616b315" +b3865c87e450871b834a515a81ec58b0c118112c = "8c06f733577a745af3f8b90de92773c47b7811b1" +b791db4efc73d79c842562f5b224a3e21afe3bf4 = "211b121a97b194cc55121cdeb7f0c557bf250097" +f526b040b2a0a6d206bb64c6824dbb104999442b = "ad0dee85b67823ae85cfb325c17a6ae50669a836" + +[c8ce9da6-5d36-5c03-b118-5a70151be7bc] +b0fd34b4eb94a51afbde3b98d2aaadb9b3e97cf1 = "15f51a189127607118ee12c2ca573fc892a7df2c" +b389cade5b31c51245fb0278817900685658e486 = "f1c2569237e8c9fa266d6be0016c8cbc41ce527a" + +[c8e1da08-722c-5040-9ed9-7db0dc04731e] +6b847ab8e23c37f0ed1c6d7007ec01dc41328381 = "f2e012530bce7c25524cf9fca163d8b3d7afa5cb" +747400bc1f3307e79b490175854aef42d7a65235 = "cb07901dddc272fbee90b72d77cd965618c37ded" +f7dbe509d201098e65c6fc2be18547047d10eeb2 = "430d59abaa3bffa1ba45bafba3837972946f5084" + +[c8ed2632-8d42-5af4-9089-7afd55769a28] +9fe68f39dcd046205b9efb6077ef7e7529749a99 = "95ea36c8cb255144a71fd9f8cb5c07738b2fbfb1" + +[c8f6d549-b3ab-5508-a0d1-48fe138e8cc1] +757f6563493048cc6b1c1d9aba1b18fd804f0715 = "d6a6cb0df6659a2601c92b624591397148e9d968" +8996838f9a3794d55be566f4b4ed4001312a9675 = "4992715e11c9f5940b5efa32abad6a47fb2651ce" +a3e41688429bdbd4b160b13d72a1799ae2e90626 = "85b0206d76dc39f020efe257d88e395c38367f4b" +a7b50375d9e377d51f539099920c96f57ebe15e3 = "8a8de0c7f176f80285d5a09a53abec401111cfb9" +da195a4fbca3678b6ea3fb0b9ef6d0d609ee38d6 = "227b51c64b379c98fe07e03545fff633c648d0bc" +f02c3beec3b009fc84738ddd992d59d91340d1f6 = "1fdbfbf4e411d189b8be6719d040d575d92a0cf5" +f45bd4ab3a389215baac0e3c9f5f569179371e75 = "6adb5854714d4a6632101de4058df506cdd15d47" + +[c91e804a-d5a3-530f-b6f0-dfbca275c004] +039c73caf7f50f25026c5fd3e536f33633f8619e = "ddc9ec38c1b64a2a3c2af3c4cd37733b99c78635" +05dc73d618c2b9fa91df6717224d01f74e30d26f = "e277df19bcd35e179911768320fa63ab3441a1d1" +05f4df1d6ac01eacdab415ea20e874be3623f6a4 = "7d0e7476bf0e3339523b7c80ec54afe8bd8881eb" +0882f3a3e8080c764d32ae32281c7caa0fab19ba = "0b58605dd5ad12136229fb4cd284c8ea18d4977f" +0c106acab7bb248af1f6f9a5e862718d42349d78 = "2368fc963b19971bd4aa23624ac675616f54c098" +0e3c249a60c106323d235af9e7a1d8ec3281ecd4 = "845aba80b25ccc0a546db9344823ff0b9fb34a29" +11387c1b1cf54f3d48c3f031a34c8fc2761e10ea = "e4d28f5a30970ca41166a3412e9825423829a5e0" +11b9dc156a8a641825f8a2798fe301f70a70510b = "f56815913f43a4a9ca62df06714177adce0df97f" +1221aa1d952c8391056b563762fb0c56f3f1174d = "eae98d69b47851dd8642b6c589ffad304afd6cc3" +134233ad6fda7af296033369839b8e9633ed9adb = "3fd4403c541d7b31e03335981de9aeac82dc685c" +16018ad198d50d5a951faa46ad5e444a80df5a49 = "703e8be90f52a51e497713b4df8e16d7daf98519" +1862cf841a4445ab6660dece976dc3062698387a = "535e3280330d9988c5168f71d03b66cd7d03f6d6" +192014081c853e8899f7836e07340153a3904096 = "1e2dd97f9950006390ad66943fe70f85b6725dd2" +277ad138272202bbee1ccd903100c8843000a94b = "7441a00f85ce93d433bde9b451e5e57b5d7718fc" +2adf6702482c65f1346050e0034c32e3eecbf80b = "c125761c499aeb0eb4e9ed80f7ad69e9fe21fb26" +3d142a2964b0d06eead2602f93bf01487e348c3b = "7decc59f4bf7fda5c8ad20335da55d15e354b3d5" +3f615eb1d3282370e429fbb1e15f8326ca83ca74 = "c792739640810f11ab55c1351071cdc04e700efc" +4097c0dccc176351b4d706f6d40aed4a9dc9e1d1 = "df28ab340c34c91a847cf3475a73e6c6b44072af" +43844a680c333551737c4f4be04d58332c407fdc = "e317e54d470e9f53cc75b377f77f7ee9d823f359" +485010e26be134d114278db1e568f7db3041208e = "99aa1d1171c4586c0d4431226f5d91aac5be3a8b" +4d54f99a21df443c1398e93fd3e3dd9f89034f7f = "4859ff57163d0bb7ae092a00ae57adc29b51d4f3" +4ea6a230337d6d6324c03d1083ad530d9eb694f1 = "d8c429e18d4db406d85688cd5de31b2eaac8ed5f" +4fc7532e4d212a537480cc76f6d194164579aab5 = "bd5f27743e6d95ad6f77e818df9c3c9d1b8b8eb0" +51e245da67aa97e8a3cc3ae5731ac1e8e6d8bc95 = "ce25ed0ed4ce5e0a62d8a4e6cddb5938f6f702d3" +57b6f5ef20cc7c11dc5d6896f1c39a2fe509711c = "ead790ee7ca229ca18ef82d524b9d2d2ffeb7141" +587d40faf782189696437236a0dc00bb73b76e0b = "7bf4f957a2f33b081b289db870938c49b547483c" +62573a371edbfb79a55284d3e40ed0137fa3b7f8 = "4e5bf93108d2661a3b1c9270bc6c1f0fb9879e66" +630b8b3681f0d026c0ab5f6282573272e630f413 = "b371d66846b4991a0f618c7b2e75b7a7150cb98e" +672a6d8263f04d19c8b723e5711ef95b00c896bf = "0422ec3711c25a7bbc8478566a85107cf409d8e3" +6e472bcf771766a2d02bf625360c8867d4d6e430 = "563887358899d1dd54b47ea98d15e2f5e87032c6" +70997209fc6182be3b041d39b3d6d9b3aa35c138 = "39504307a151383ee7f47b52ce87371bee073fec" +72fd77ad12ef80c520cc9212c014cf0c60b1cd53 = "fbd20a4458a72ca402a7f4c861f60710f91841ce" +7a1c01177a5bb6f5c06d83e94b1b573addbf507b = "7280f1f99689d1050a7db23c0d6524cc1c7b00ce" +81391222cc0990a1b2b226f9a1c0349c9e6780fe = "3ac4603e22cf50118133eded144c2a4acee46469" +81db97259631ac6fd341284812ee6882d0d02c0d = "baced505d5a9e1c328e49a789e77f10976ab81c5" +8270cff69f74a633b390877c8dd516c6a428a945 = "186c6158ec172e40e6d342e9225f2223c9f451c9" +8aed28a5fef1de126fb35cca84c53d2c38c50a69 = "e1990a6e63670f3406d53169b16a1b4faa1ce12d" +8cc09b11a879726cf54ce7e54577474ba4ee8421 = "ac1583ecd806f4a71446fb00b09faddb49d050a9" +8dda4921711d5b2f7769affc9f55851b87497842 = "27931eae4f03ff666a2185e04278272a01ea3a99" +8e38bfa66b38e924a3c80345b74799222e937c3f = "a85310f127d0a38c4daef310860f9d4f54a0aa01" +8ee0f7a7b5da9a220cdec66c46b0d00915ccefc0 = "1e55dea6b1f720d59eff77649081d6c4eaa7c40d" +93b8a302450a5d48c2974a2f2c71351d79540a8c = "54cb10994fabbfb372620cbcfaf7c9f6c7bb5e5c" +9498e6122ca5be69eddcbcd8707e3dd7d8687390 = "ae65f747d92e76a317418a8174aa0b08479a6042" +94c56ce1b96e0ef4b8837339b4ffa7278cf61822 = "c33ad9f13451e719f4f69f57af37c0db65ccc7da" +99aaa7693f9dffb7d4e4ffd8ced43c3f2ee37cf5 = "a84d7f6a9c53f68fbe25f776bd8c99b910995d69" +9af4d641d6096c7f9cd7d16aa76607bd0ca9f716 = "036af3f50a52012963813cfa9a1633f0f28c8ab7" +9c614a74a78db3cf3cb9031e37cf78a1d169f89b = "c7da4a43dcf416fdf3ec186c7f48081c57114bc4" +9f32e324f2ee28e4d8181d592830715e8d687e9f = "9bf22a7b1dc01c29cc66a637656cf42c43f319dd" +a0ac4e092947e7a1a3bca85a88665104fe358fd5 = "0ea91184b5ace33d436c1d373f49259e1817674d" +a84c1f5839bcd2ba49258bc053f43927e24cf634 = "85796a327b7df88db55813b6d14f661fa18c7b21" +a8507277d6ffca779a7679db4dec8b860337fd86 = "348d40f4d9319bc47093374242047c27cb87ccc1" +aa6a1ad45e701a5af5a7761721dd617af8ee5c42 = "4245045653925d947995e4857c131cd7e85dfa69" +b294abaa7a9198fbe204150e1dc4fb42f3cbf5d5 = "2771bd112c089cd35ccc163b72db0ab5062d9928" +b585b3d7390f0c993b5aa4ca8c7f4142962e17aa = "807a5b4d0db65398bf127f1d2b33879aee86faf8" +b7591c00db79c348bccabd5dc4ccd58b1b6260ea = "48f32352bab9dd036d794088ea6c96c1f63ec6b8" +b7d5057809f3cdcb56a556bb4ae71553a3aff663 = "f0c6d2352b906cc0466794b75e41782a9af43f29" +bbd8e459e2754c760fc1c81dc0df55e992dbb683 = "2e2b7a3866bc75fa1991905b9a6ccfeec67389da" +bc5d4e136fe093addfe3e6497d10f9d1ff260fec = "6a5b280b39917fccf0210b4400d54d36c58bb784" +bd382ef04ecdcc855a90e025b56c63dc8deb0885 = "a8b1749cf99e6015851fd924061ca8fa88f8705f" +bffe3077f96bd56d8799bc33b1c9bad5e0e8f849 = "05f5308a2b17f59b1e70718f96a5bba188d07367" +c440ed253dd3d59df25c62c5f277b2c60a82f607 = "d24f48a6a9f01c4e1bd4c94f91e77a9b0e094447" +c70029fad8e0882e9f5e3245734f9e7d06aeea75 = "fd03f41c7f2d23d170f3542d4a67401f2e05006a" +ca84b4b51ad5bca4a798e83ca343135864d4ea1c = "1bd6b4c5c93a745a85f17bdd5067074c43eaf27c" +cf73ba6e0e6709c3beccb5536ff1613d4af8d130 = "7edc278093419f1436fda76a95eac63768a8bb34" +da1669b8b17707265289a68bcf863ea7f8ef9f61 = "6c24b031ffc28fb58d86de85508980cd364be5b1" +e18352da94eda637118bfcf3a9545d9e39bebb9e = "10fa4fe167c4e5a4b202d8e12dd3d500988f651d" +ee8470a34c4b68b8a18fd71ef1c0d6a7f5c91e4a = "175a4260f7c5017db1fb9afc8dbda6f11ccb592e" +f0148cac14894fb88df0be999e0f79351938a8a4 = "d7bbffe30364707845d52873a5f5bf54b0cc0c08" +f2f7778d8d4c30835862c81063171dc65c8adfa3 = "0b2a0a2802afa57459ef55d98bee41b27996ff39" +f386d313ca6eb9fc39f5f5fd10a3780f4853da47 = "0e0c75cac46f964c3bbbb06e14f636220fc5104a" +fa0cd4616d4622fd5085bc62f6a36120a8aa1664 = "5c2e78f51974691113a2c81b99f98de68b97595f" +fa116311f2b11a8be20903e7f0d2229291af2f81 = "90c3ca823464fa9bcc7d29d72b28209d61ffd355" +fcb249691700cdfde56184049060258ca8758c6d = "9a24edee1dcc22fb9dace4051938fa5214f2ddcb" +fdb02ed4d5a8579d46a9d65ea9edac2b757c839e = "6a5df9fa4efa79efc5dacf0f775595bfbd63ed0d" +ff9b7a92f0f2ff1848e4948ece24bca2cd64c48e = "f49b9e2763cf05d43c0306e1eeb642679d5c309e" + +[c921f425-b9f6-5fd7-9923-0c96f4b35ee9] +7f57fffe0a6078a789ad4968629f3bf3585a267f = "146ace157d76267fd236aa56d3ca81eaab18d1b3" +9daaf243a3f21d3d6730400572c5c182751f4556 = "127224673c2b57dbef81ffba8d16dfe2cc78514e" +b9c0b03ae996ba63b97841edd9a31c77f16809c8 = "0be9f8ef4c7c999a17d95d55360081460b47ef26" + +[c928f85b-ad91-5714-a68c-509590f6e021] +274fcf2a8a61b2157edd6e5164e6bb2fce5dcb8b = "b4800d261af4dc289d74f1b2167a0d36e79c36b3" +37d52f072f7e82a15b86e32f3722c5d95f0d98b0 = "eeb9acab99683ad13d0b87f699439bdfe88782b6" + +[c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13] +00c4bf4b87ce9235ec462303ff6f3e3c8da14ff1 = "2da3e6c1629dd0593f4a1b2109dcc3c95a9a2546" +0be16a91ea654cf3155957baa8ba75c61fee78b5 = "4db8afb1c6d26245a0f8c2945fd6c1dacd645943" +141a80287abcfca62f2cbe1eecd4c83c65f84855 = "e5f77c68c3fb7487c9ce51fe1770c447f8044bc1" +1bf584719be5f495bca243e57a7e892dbfd26fdd = "1337de2c4f60247a0b5942df88251ed10cba883f" +215152263a6eb7aa5232054c6710760f291e22d9 = "79723fd1a757684413b09a028acbcbc178224eab" +227eb636039a68b1d888cf57e9f49a55409e7637 = "e98d171fa09b94ccd07e9a800b42d9c012f30b9f" +2ba4b944682578f54796e87644b88f08a1a7cdf8 = "2f4317441e9006492eb058bd0186d3e2cb57e60e" +476e1d7c60f99468d24d1344d298daf7a5c9e0f3 = "0f412c16d2cdf7e96af88dafb709d0b6c4e3aae3" +5a16bb1dc2297e5e369f8375ab85685746011a6e = "93837d77ebcd90e8683ace8681021a09dead3c97" +5a60bd7852e0f6a3fd7bf14d7d6b2d445038eab5 = "daa177461f1cbc6fb588a71472d96c6838bc1c80" +6223de6002c18bac284e09b4a1b02f5598045b0f = "283efb89b360bd82ec2021e4c9b958e4d0a29b68" +6affbb7535b3f763dbb8307456daa9976412ded7 = "763ad9a0c4ec5a1a8b8896c46e884e4d107d3c0f" +6cd9ffd67a22631aa294842ae4c68c346fd38828 = "721b49033fd2873b5ff1174c8d7ae47971350bc6" +8cade0a414cc0131e28d54864aadb36bab732c4c = "2088cd8601dd40c70e538e43463a8db6fb37ab47" +94ee319f0f04e1a8b7e334a4d400a6146b235599 = "2ca50db07cbf767bf9d4fbe59239d09cba43f8ae" +aa1ee95eb6bde721195808b8ff9ef8820fa9ed19 = "fc55703111fdbf13e78a08c1c912239a2d09695e" +aaed5685886d3c1b15ee3df70bf259363a1c9167 = "06d52b01369af4bc154346d927d41e5f4171b28b" +b1aae45aa8dbb2c84bf073ef2b4c19a43bc95ccd = "248f62c580645ed77e6d196fb393f2ad46e7e47e" +d2ad83d0dead18c852e8d2968fc7a87ed822b147 = "42847b595dc914fb97804b8960114430fdfc8e0d" +da189d88f8af70417337351c969861adb42cf75d = "39eea9e6b5df5bbd2ecd8845e0dd90b068263e75" +db6e87a2c151bb3d23edaae809148307255c0259 = "878d3b91d70d45bd38388caeb841cca6a1efa4ea" +e883e020d86ea8faea60e7a22b387f3297961337 = "dc6b4d7af016b73fc1501a85c4d92a28d5d1f7f7" +ebc8157363d0566288e48471029002f24958d614 = "997bfc1bab3a293814471e306ec4f5959901304a" +ecac0a80ae0e1e2560766df5c7963158d7ff8690 = "8dbdcec179e0d579078bbef4b8a8150abd7067a9" +fe5e5d790548a23a222cf0451ede8630464af1e3 = "3108d8ffb28199680058b20adab4e5f5ccb44180" + +[c947b005-6f94-5690-8353-b90d48bfe02f] +3a725a24702336a6d36eb2c7e4bddfcd5d6c461f = "6f471ceca47594583fbc12269a32f752412fe34a" +5e71d04e04d9045983f4dc602905fa3a4d3e6b2c = "bb52f9758b1055b375d45b4e21712d02fc428246" + +[c9763a09-61f1-541e-992e-141da33f6ebe] +1d228faf0933da771a15bcedaa62dca5a1a5f49a = "9533cbc404820e86a00f964c304be3197adb3827" +2ce9834e5b07c552920ca43936dd6bb9f0a5cda9 = "a4942185ec445e313b0d49def6f5e7181c82f8e0" +52020727cee28b7750d26ce778c6f221ba9a7875 = "bca9186427298d755e5a588320d8eba3c695b61d" +6cbb7f6110f784de7532f73511d52e11c66329d2 = "1577f11364bebfc3becca23dcc2656dfda2c99d3" +813e8021ffdb6dc5aec2970ded5becb1ab710726 = "997aa56f46d046e9d64694866a9363c119c775a2" +8c1fc795e194f41f2156d97d7327cd1eebd5f756 = "f4aa4f2846dae6d8f7f2c08b1cddbb0e944f5684" +96d78f1ff4fa11c69a6fdec347cd402fd66b9844 = "2c2bd6fa490a06d6dd1a5cee56692b730b982c30" +ac8b3fba5b87e990888b2c2b7d6ce98624cddba7 = "175be917252f5a75f5fb780567162ade986ef761" +ff36eafb5a5b71b84edbda5d8ea6ddbb739356e7 = "10cda9cd6d15430725e8f673d130e6cc0e66e918" + +[c9a035f4-d403-5e6b-8649-6be755bc4798] +436520d133148ddb4264acd732db50ac086ab4f8 = "0c1f7010633d4caa470d0c78effe070f2e733e87" +645084951386b33670bb07e1e76992ce299dd6e0 = "0b068ac061bca852e718fe2c80c7e16f14ed8a37" +8be356f52d7809e8178a9df54ae5f16adc663126 = "02a523fab01e9837e726d936829312d46ccbeef3" +b3b39da497155eabb1d06213536dfe36c919af81 = "3dd42a6c6014a6c1dd5c208de7470949abc7b624" +e2bbb9b5672f76f21cca003f0126b2936d62ef5a = "77d19f52912083b85a03791949679a0791c941ed" +f4dd784101e4b57341540b20e2195d259c3e8fea = "348dd7635cfaf68b390baf3dae75e64fe36e5a16" + +[c9a1755d-84d0-58e0-8f48-2f3129b1cb7a] +4dc900be03d3a29ea2aaf5277e52352333cb8b8e = "cd8acc9a19144f3335dc896863da7c88651db48c" +80ee969f6bec0dd219f9769b10e392e498369ef1 = "7132bfc6fc79cc5ec8417217a2e2265ae306c03e" + +[c9c60de3-17f1-5915-80ae-85ba1dbe6bff] +2ad3a80cf199340e0d306fa1dae63f1e2fd8b25f = "011d06de64205e717933213a2e59443220280add" + +[ca2212eb-e997-5e02-8188-6a86c81ae544] +3829534fc5bb6ffe95ed2009be4965a0f6c0e04f = "1205f5b04962eefd09dc594ec2856ce33dc26dbd" + +[ca3a4cc8-04f0-57c9-bf08-34988ed92438] +367a2e9ada4b47bed0b7cb845d29cc75e5b2f6ce = "9261e69505faaa52d3bccb02172199ad920f50bd" +8421805a65b60b7fefb0686ee0a14e743c477c97 = "cdab497203d200c181884b8ad5b7d588e9386145" + +[ca6142a6-a6a7-57f5-b674-4a8484b22e92] +a2885a0e2e91f60db32d3b1207c3318dfbdc2a92 = "44a72c1846e346ec191ac3c9591b10e4f0f4173b" + +[ca6e7d0a-b0c9-59ca-8aba-aebf11497e1c] +05f9525ae8871a9e432433444103bff341446c8c = "74ac9ec8577c70671a60e175d3d963cb564d32a8" +0ffca8d72de751185a853882e7b00013269830ca = "7b90e2ecfebf8413647d55a374a60d97cbfa1e03" +1569d30a5ec939707fd87e52c09ec51b7832e145 = "a5898f8bcfbcc9ca3ddd8aab14a1993518ec1a9c" +16db97877dcf34f9ed774cf1d51940b69e5b61d6 = "744bb0b71f1b31561d60400ee262e6022c343f25" +1eced64d986eb7f3be77b354a0ad6430fc267e1d = "13fdd35ebf95df73b372d8a194ed1c4e6a2f6e73" +310668b5fb861cfaa9a9a035eecd33d0d62a7ff7 = "d1f1f267fc5b4ae33804165ef5b55b9bd53589bd" +39049c753790829342c3b8449449da9fa0ea96e7 = "2dbbe2169649f5597b870d4b4d08bb4fbcdeaa70" +6804a8f6882a424772123f9acca1c1d35274a058 = "ed283ca07b4c1d3b695e1c60328f6781c5c9c01f" +6ac0160f0c4a6a7cb394dd8453eb1c437a8ed520 = "52c0af15737891c78c30cc14bf61a5f8ebde68b2" +7f20d624abac28c333ca22922803b03138c293e6 = "3d42159d2ac46f8d294b88478a2ec29ce36791fd" +90d70833b8c24c66efe8c4a6556cbf36c0536318 = "512f9e90ce97c314393fcc44430b5778862fe4ae" +98cafb4aae3abe36b6d474d8dcb511c2fb2caf97 = "3dfd587c6308e62a47990119b2835e557a62f0fd" +a88532d45c41c8b47e83a8bdf2ba2975a2aa56b2 = "8d3aadc7a3d8835a74107a4e494278dd0ea62b79" +aa686b8e1bcab8ddd5a1f73667d3d1367603f741 = "447c09c064a5870e00d4141481e54f5df428b508" +b05f2fd16fdca3563b61914706432ee18313ada9 = "bbccdff75e0e1265d741844058812a4fd6c354de" +b3e576bf94dbd919df49f78aca91a23ff1bd5568 = "c68862dce8813548f67524bb4031943a04497a47" +bc2d411f66792be12556c7153fabda3d41aa3b68 = "a6ee5827f6d41a46f13a596423befc7e7f59184a" +be433da068307a55ebf30ea13e095003b9c7fee5 = "af16df0433a191455ec32d688df2a029b1a442f1" +be5de503c3db59d8918b33c6ca4520dbee73d8e4 = "4f251608d2aab2bd3f0ffab247a8559ab56da3ca" +cc51a9b11674c0540709512e9e63c0edd215ad71 = "267befc54a18a39f1725363ae3f92c72309b578e" +e5491224c856395926739a7a19dcefb5bce1e4fb = "727ea9f2f48f6d64f62afc74583786202e913ae3" +e702821c3bf51ef23af1580a6269f24a7d3f27ab = "392003d3ef5ea97d093f137235e81e8c6a591ced" +fb559abd9ddaafa1bbdd8ce6910029c116fb5470 = "b1da8de41d7496efa8c79477e9be266bb9cb0d2a" + +[ca7b5df7-6146-5dcc-89ec-36256279a339] +0b7cbdd56a10987f62e6e1f8e2864824f98e9ec8 = "f6671afd82a98e52ceb8a80a4c2c29b8c373af24" +3b6ebbea7d062fb4fb3abca24a65f353af06e6dc = "eb0e4708b621e79b522f967db21cade245b27558" +3d77cf74cf5e480a6a70db7e912c7ae8656017f7 = "2ada9add12af604f0f876300a6f768a4f5c86fec" +983c90e95af0dc4df06e2e108d9d421fab58f35b = "70f7ee3c844be8e2a6ccd16cb7c6abd197d3177f" +e1adfaa57a730f9efa5c9245ada3e863ff2f702a = "79e24fe5d01c2228e16c007041191ec576cd8548" + +[ca8b7239-ccd3-5cce-807f-2072f3f0d108] +4af4956f223b68ec1e4fab1118a54b2955ef8da0 = "e9e4800f777976e177c5b1290a31dd27ff96bcf0" +551a1023142d1cb196e2e3d6244735938b85a4bf = "2ddf04328f1fcea08db45a1ba20a4c2083897eb6" +5ca1a70852f8150a95905170a980d928463826b2 = "5b487ea74063d3b27fb076c0b02cfa4764f57167" +600e721d09787bc578f426fcbc3dca5acb39b2a4 = "23a572c708c8dc0b99f601dadf9546878686b8af" +607a1fd3a5f0a92f7963781b73c227e0cc8d79e3 = "b7d0374a85d88bc60a8126682dbaecb2da4eab81" +60fab6e39bed0fe3dc6b966da6f6c086686ce438 = "e2497d4c59dca97c2ad6cfec4ec089e32dd6d77f" +a7487cf4306f55ee4d36ed3f6a86a79f706f65cf = "91c09e285718a502efc4914cd9d55fd40e3bb706" +ac5e269dde43edad43241313f5593c90aa5d7bd2 = "3ccaca0fbde730deea81666d39a4d93576f94bb3" +b8ead02de7adb49a04d53b2b15a6481eb77d23ac = "36240642104b52c714a0ba702e0b74c6d68d6e95" +bd831384dcb4435367bb1370c47d89b2f604a15a = "2911121dd776ef82f646c42a154cb903f48b5faa" +ddb81600545c5a5c32442827ad2478433b3b286f = "c7fa7f3227658fec146edf01cf4bc8274d4ace80" +faf4ba7aab8adf635e574ecf5ebcd4bd04c71eb1 = "6ef87afe1375a9552a68cbec432d147d6cd20869" +fb4bec52ab47e1d1abdb56a1b190762c0826c546 = "d499346590c4727ef44be6d82e75c4d82c4a8102" + +[cae8e8ee-2945-58eb-bb0d-8aa7cb85bad1] +92690d8bfbcd9b761706200a9926c69c6d043f5d = "aef082eaf63d63173a0a63a90dd90fa0d0ff6135" + +[cb002d51-b850-5775-a4f8-1db47be676b8] +33d41ff5985e1c8c9861c1fb44d3b56814422c15 = "5268355253f5e79f87985fd0d340de032a097429" +9bacbcad311cb6048e96c6addfb5087d5aefb03b = "409a082b7123a29d9344587b5c5dc866a12a7953" + +[cb1a753d-6b7b-52e3-9bfe-57d99d445c39] +70f0c4b33b737c1b80f5864055f6c027a9b2a199 = "0459e943d398ccc0a72bc144b2407c842877a411" + +[cb793064-ffdb-5a23-a3d6-f6108cdaca31] +5e5535167bc517447b31a4d85845ac930722adbf = "8e079eaeeec8c90b356abe3ac8c585938c4f8adb" +778d8cccaf9156e74b9c06d59d74e531343dd5bd = "7eb10ff550ac69c7f91b62d8965f6fb07df0aed1" +7f7d36fc51dedd72ce4dcc795f8f6a92aa166e50 = "7ecc5d50364d749323cc9ac6197e63526e7e8910" +a51f180c5fdf5f06a26cbf6bd61090052c98a2c6 = "0bc7ee8caa2245c9045b6913b3adb095e14e63c5" +a5f7e641a19b63c3a8284e5e85f940e5102501fa = "41dffb449565c81cc2924861f7ff5dfd9fb3d518" +a8f0e944d2df0b7d9f0a6e0ed41f95e5f0c394ee = "2aecaa0ed18c647c6ba28cb45ebe3ccbb2ff9052" +ab6aa11f9a426c47e2d998162887dd5285790f83 = "5f7307c589861c858a63f86abe17fda1217d485d" +c7ae053448c582f30131fb123e080926c87809b5 = "26ea49e9cc5465d8f5b532eb99e88959a00275dc" +eec30cce613f6b8d80aa4247ba5d0776b09ed1fb = "06232df9b742eaaafe0e88fde126fd910866a5bf" +f4be87cf1ff3d7f154c128cd827b19b92c33f9f9 = "3a8110b22bfd77b3039af90bb3fb87d08676445f" +fb5b06c1c8fb1ce2451a7d2b0f03a7ef4e5924bd = "1681fbf7f7d53cb62a638e214ae4b6fd3c8ef667" + +[cb9003f9-0146-5467-9f28-cb882016150d] +091f03fa529ebf91a758abb964a4fdce337d3667 = "082f3b2c6035f0abeab8880bba11b095e2f31bef" +284c21d715785da9d4e5394a11bfb4f78c63f06c = "bacc28b14c3e32b3b0e50695bae9fc5c4953da9c" +8c1b4692fed14093688e58d39f7dd07787dd92db = "e3eba927ca2265b37e51ffff35a2a22d0d1ede24" + +[cb912096-b518-5389-8790-85f0e02849dc] +764c518502c2b803d82da8d0628075ea70d6d8d2 = "5b46ba726cdc1e287bcf9701fe19c6d964e2905e" +c53509759991ad7d5cffc3ee8cb3758d8db9a54d = "ca040544151e199ce0c75b2ec8c1f717185931bb" +d8202ba6760e000c30a7341c677cdc0f23fb4a23 = "046351231079bcd8be35685b00123d5d4a10976a" + +[cbe49d4c-5af1-5b60-bb70-0a60aa018e1b] +4a07537af2eee828494e1d415aef3dac3952c576 = "d05a3a43b4bdbc4aec4f2fbdaa292a3a4d205bae" + +[cbff2730-442d-58d7-89d1-8e530c41eb02] +0cedf72778db0f13e35cced1c489012c46ff0663 = "19b0932e05f44736b439a8981ef3ec05415ecbf1" +4c138f08e382461ded0484034acafba03bc90abe = "ec20e3720b63304a29998f507b76822e2b53d206" +8f895e7ca046a63e3c0167483169ba2f7efff9f1 = "af9598f398bc0ba26c00de57f845fff7568ed227" +c03f4ab7a843440f4e7a9202eb15917f6a3f028b = "af9598f398bc0ba26c00de57f845fff7568ed227" + +[cc18c42c-b769-54ff-9e2a-b28141a64aae] +00cd53d0928a0d694d40cf6c05071f8eca64d529 = "b845e993987c46da05cc8818fbbd2bc3ca0b6642" +162134519d895ff8131995ee2712ced185362346 = "e665f857f9730278a613e145cb3cdfa7be487ce2" +38534107c43308e298cbe79781be91acb54b2c86 = "911535ff967a6a91d1d10f4c9c9f1ee2f6f124e7" +39af323ec9138bb656af10499834f38c641f10f4 = "8341de32d8959eadcec1b149f08799c32e6ff063" +68564fbd7a162fd44b947940428eed06f7920ed6 = "29d53658d6efa9bed9581fd2f5538c4c81c7042a" +98f172cb6b1e710c0e15a1653aa351fb1a7e636c = "9b1317edadc473267c6453fb62aed9af36d7d3f3" +9b49c4a4e173e72375817182332f2c6dab95bce8 = "79aa66143186ab59427c45b21f2cd70be6b3bab4" +9b9fdd310b694d2bc50c9cb7178ff9fa5046edb0 = "040384d853b84c43b9eb114325d823d171cae2bf" +aa602b4a3572d788d0b81dbc67a9a4e9c46da4ab = "8448837a2594b5291a433f86efe214322815402c" +e44f45a6b0cd6684375349d6bfe87c4a302436a5 = "b5cfa05ca5de25630c90871494c6c00dfa62e9cb" +f67c984fc2d40961b52492a1486fbec8373417d9 = "9bd65dcc665c905733859c6ef11f1b7c0c6b0ccf" +f7bcaa15278b2f71d2e75543d174f7ad5daaf610 = "8007f3cc3358f361d8319a1841b0e829339ae090" +ffe897af46fac9d21d9a1c92855fce004ad53488 = "5247f630e2b8605c04deda8bd0a5c3ad570352b4" + +[cc2ba9b6-d476-5e6d-8eaf-a92d5412d41d] +2334536c3f67c18cf9791fdbf1c95e91f979f33b = "35223fda60f807d21bf8dc363c0a3650511fdefa" +b0b9a2eb698fda4ee84a3409d9902e572a363d7d = "925269da8dbdb529414592ea6bb99f5b5946770c" +c172cc5c847da046bbd041aa68f128e8cb9eb713 = "090a7cc39bef302d70b6f2e8958e656cb4b28a66" +f652ede8df29d344afb1df8b2b9fe58c2a9036a3 = "1de9b89ed8522bde70a4aaa5d3b7736109e2a5ac" + +[cc78a3dd-804f-52f0-8d12-0c5273493045] +00760d1eb9302de5d3bc6f3d9e79865b8953e3c4 = "48a8fc7e1e7a686c2e90397cfc3ba289c474b76d" +0f0f4ef7a800caf68a7da2c392ae0096740c0b4e = "5bf44b013d7de3e107ec461e7973d5242f696d8e" +33dc3f73b130176b27921b186f59a1bf07bc3e7e = "2e07238c0453ed4c247bf9ad1eaebca2732d88d8" +36dfb54fb3764af58041ea5862730475e89bfb3c = "302e8951832d4104121855d5af72741da9ea60d7" +434ba16e21c3cbb83365bc144a352b6716d78ef4 = "360ae68bde832d6c7cd62c7fd032bd7b65fb46fa" +47a63c372208dfdf11c1547fc30bd343e2bb918b = "12e19ee5434ea2296c730f8037fccaf9442bc111" +86372a3da1f18e9b54aabdb39ca76de92b6dc891 = "6e749c1ee0f579eb91b2f83586a0ff931543a58f" +88a3f43eaf743cdac58fe855219a3d13cd3affd6 = "27b1bbfe82858095be95c49dcb9a55fa1101a892" +dae9c9549910bc71f3b80d2fabb2a4b1830764be = "d1abae0a9420e9a41f7b889e9cd69f3bbdd07c15" +df1211cafaa99ddac9d05be6b910d0565c53392a = "7e09f966fbc99bcc6b2070be0062747bfdd4f322" +ea85a37be262d9304a715a8dec1d26e15f5000ad = "ab477360fcca6d0d3e32788770615e7b9a1cff9f" + +[cca4922a-eeba-5ef2-956c-35affdce983e] +91801eff6c6a8016609f7a566d6089443fed7764 = "1dec563804f3931fd72a7ab195e8915a10620106" +9ff7b3f80c7759d11fac0f87941218bfe71ecefc = "7b738737f1796fa2e287a815289183bee0d4fb33" +ac871dfc9e5347b42269834b4cae9a8691c17f65 = "f2d753258b368d8cd314e7f89936ec6cf41046f8" + +[ccd5ae15-cd25-53ab-b4f2-e0ae14ef09d4] +23fa29450de7267fab49d6f02071ed7bc2f3f3cb = "1cbb88c7de08e91b9c91599900231e17b682042e" +bea29377d0b4fe9d3ba898e5837190f4033f187f = "c03ebcdf75cfa675ed957572a65c71898461954d" + +[ccf2f8ad-2431-5c83-bf29-c5338b663b6a] +0c5bd8ef70a586b7418be32c9de8774e0ba1eafa = "03a59688c1828bb4bdc7e600d86d12285f12aec9" +495e3671750e68009aa0db13a77687d0d5984f5d = "90621753de17b72106695aca74c08a92a6247b54" +4e7225fd52690398b6cb5d31d41a9dd2c4b1ecc7 = "52da79ae140ad9fe7a5c6727067b0c4ff861b9d4" +6b9ddc8db734d1e868419aca12cc673f4f6094c6 = "af580e3b977710c4c859a322b2d433413657121b" +953b2a27121594febd532c624c70d577a80de1c7 = "ddaa46f663b3ec6faf607e5ded7537fd8b7a0c21" +c5cd2aacaf8551e3f7bd8b0469f7fddab71970a1 = "877a3e21286ffd53332d137252e90e2bc68bb764" + +[ccf9b6e2-7ea7-596a-9d65-09863b18e8cc] +e7139c643eaace42556ef27078e0bf286d20d699 = "36410e9a00b9b87d17b2ebd5e16401a7d36684f2" + +[cd0106a6-6d98-567f-99b2-156dd1635c57] +7d036d70656fa2cc611e8a84e5cd3eebe504fe5b = "b9857bd22b0ab442ccf2550bf34625029370aad3" +b8aa50ae2dc7accb1d95db54ff2ead1cb5e38bcb = "af46bc65a5d7aab6829de5bae6550ff7114e0c35" + +[cd3eb016-35fb-5094-929b-558a96fad6f3] +014d9f56363429568e12545f8d74fca93cc664cc = "a3e8f09977d53692362220e06fc0edd35af54ee1" +09b15ac0463c72d2265811738664b03625ea3e9e = "68825410d3a30bc7dda67348e60c8c0580630e97" +15f33bc518902b29fdb132f4bcc696fe3aa37ecc = "ae91218b01b35442c4acafd76f5ffc07f71eb259" +7c80b6ff5f6a688d2637c381009284f5a3d0d33b = "00cb17d64b59b2c3f93f72ae6bb73a6a00e97079" +83655a0abf090ec6d8ddd85307ac3d223800ce10 = "4d6b1baef9b9f5134d4b92038d5091f81e7c2857" +8768b45b6e8cc97d38eb0ea4f9ded3059b1af04d = "66bbe52d0bf1938e770c54fd6560e139d6106b01" +b1fffb3c3352ced36f7b69ea86e10c0a9fd33f2d = "be6d7f51bdf51a804149e878c7a31dbb44c1021a" +d6d42bc0bc096498c2c52a7c3c9feac2611275ec = "e88de9e846ec67cd2f82f04285ee075ce1d87132" +e915ff29eb8e93437864be325e9be10e3b9a8dd7 = "fa8bd1c71b1761a5ca7bc4744bb91aae56ccd3cc" +efe9f9939ee593ec75135d266392d5777c8d8160 = "bb26187443f2d004ef9ecef45fbc59253cbdf3a0" +f4316604096119522963d04eaefa63d82ac00997 = "d7d00f357c8027228fd5ab8b40bea23401b24c5a" +f8771109aceefe9f28ce24a6a3f435a58befcf62 = "2f5199f80efb659c6ecb272d91f29d900a4569d4" + +[cde04a67-da5f-5e53-93c0-2a9e1e7feaac] +a27da6bd8a3ed00cd77d1e6cb2eceeb564d8b03a = "6208e5d967fa38b831fd36627f000f5c90ec9486" + +[cde1d518-eb00-549d-b2cb-837b5957db43] +135ccb376d57eb6c80239da88b7bcfb963901468 = "e280a4393510587001793b72c75d0cdac9b470f3" +5846dbf30c0e874c21b4fe3c914522f960bab0a0 = "68177327d11937131cb27f3f6a0cff0b5787c4aa" +aaae22351911f1c7dd33eacacaedce4831a55cae = "ca9cbbd8ec3d7dd2380616d994d9252d5e7d1e88" +e2da0bb9a5d15c1b0a87bb8a0b001c08d6be8abd = "7812a398c7b55488bab43172a4bd8dab033dcc88" + +[ce139433-ee8c-55ca-82ca-af437e33ffbc] +58ae7e552af55f9dac6ff3180e1c489f2b2a20a4 = "a5ea1bf206f088fce8fe59ec0d35df14f8fa7e4d" +8430bfc5ca4915be14b19dacf8dfd88f22826b2e = "3e5c075d105bc944043d18b503cac3f0e6ef456c" +888626bc13c672e1789f1e1a1a473b2d05360939 = "2652d8fa9b90b44347711886b0b95c32b8ed19f3" +bb795f20ec207d2c14936af17b22c604af5d52b1 = "35e0602d2724711fc8578063089bcebed1038aaa" + +[ce2a0656-6bed-5c64-9e01-e7b1ac833b80] +a6a8a5fd2ad336d7b932e20d493b0c35f6016664 = "211a88d54f698f1e008c6622d5879114f59b8fc0" + +[ce388394-9b3f-5993-a911-eb95552e4f2e] +9a23a549ed8b28551a750fee873db42a1cc662cb = "8f4adff179c7002f590e163271572124edee96aa" + +[ce6b1742-4840-55fa-b093-852dadbb1d8b] +1868811618c5461eba8a5eceb0ef80366a97ce64 = "eacfb8c1d4d9f74f4028ffea2782bec58bbc8795" +46458c72f18c38a51b05e8688b3b8025c28e9182 = "e030021a096e29e5bc8700b42d2c5c1abd902d7c" +604e6a848f91f53617f2a59c7f669e51c82bb7de = "7a40b12bef1df191fc607e8b74d61e2af68b1cef" +698985c749265f09b1197c04b7113e0001abb35c = "5c5db58a85b69b22e312952983d317b92a85e76c" +75fb2ce8580feda6971593f2124a19564b5d9379 = "715667364c5f4a2c419078b5149a37ff8c1f430e" +7e205149d54fc5d86e888f06f7e6d4942baa913f = "11867a56fc0ab3816afb1a6dd9ba32eead2250e9" +895369038b359c42702d514d0bccdedf3b6d791d = "7dfacd34dbca4644f441f18fea08498f45ee7129" +a4b9dffdee5d76d079dcdbc6f6d0e488ef989f2f = "b026ccec0e11e63e77e0f0c9efef30b211551b83" +c8d30866028d777c55ea3f1846605bb579e810dd = "ee0ff635403ed285f1b721d43d4be9ef64303155" + +[cea106d9-e007-5e6c-ad93-58fe2094e9c4] +a115045c7f23d1cec23fd99647b50ba3b9089b27 = "b61e47b1f121fc295dcceb94f45b070bce831943" + +[cea2fc95-2ef8-5908-991d-d86c75f38453] +35720c44c05304fb3455c2978dbc21803ce98eb0 = "5147291dfe06ed22426a620f5208f8b21a3490eb" + +[cead932d-4c71-518b-b238-3d6b730c17f5] +277136c67374bd74f54dc29a435d7722bcbf278a = "61559f5cce8b360e1a1cd4d9835d3ca2b0f38ee2" +35118f1470b43efc3fddb6c6280ba3b935186e2e = "91112ee826d20f5cb7d5a1dcdaf2dd222c3c2c18" +5a18e703f40476ae80e3eadc2fd214915cd1807a = "59d635ff5a0ad66f792a56867898337335b20f35" +5a3a58fc90144790b5ed9eb7970086056b08b05b = "fe81ec9ed0a48e85cfa32e6d8e55f3e049a839ba" +b367e86255b36db76459a197205d68332e6eebef = "3c59cdc37eaaee28d5a72b703ec13c0e35d5489c" +c162941b134c75bbca1cf84e2eebcef67cf9f3dc = "312f6d89b7ee365082b4f17e3d288f55d6a2ddb7" +c91b58ec8927f6af116bfd7a99cc4185b24bfaa4 = "03de2e5910dc0c62f0e19fb650efb7f3ff1c8d0e" +e6c68600cddaca859e0f341d63b2e48dad272ba4 = "f8e804f9cdb8b200510fe402822e05455f13ab18" +f4406462a64b892ad5ee8847a8849fb12c6cebb8 = "4240e0a0f776a8d405fc515f07501495dd860c9c" +f7f4745b4865487483655c7c708c3254ed42d90d = "157a1190b51785782ee7ec713221a0ca6c94cf72" +f9433f11de2f9ec67c65fc03f72fe5226bc6e490 = "e0ce6f37af9825c16a7f824b09d7bbc5ad7a0a27" +fb2f7dc9c2948d8c0678b48c07d4305284a0b944 = "37a865a929b7d01a9f4f264838dcbd79373c4f53" +fc3e477e6fcf7e94d1cc95856e4853c73250d53c = "236f5d1653cf0c5b4c518a959cfda9532993ff8e" + +[cec144fc-5a64-5bc6-99fb-dde8f63e154c] +21c69be8ec68510496caa148a7b6f26227871c74 = "314493e085fdc2e3df5ad5b03f097abadd42defa" +3024c558c0d1b3f2fa448928a14ae446133bb2a9 = "049dae317a9fbdd619740285d155406a37ebd6f3" +b55c4034786f061ad284ccc2860660159a056f33 = "15e8335ed9231d34a3d94388be838b9c263fc3c8" + +[cecf6091-0e4e-54ba-8cba-f0e96a51f282] +6a2f79e9bba88e10f06dcaae2ed6d5a2bf58e7d1 = "53ef724928b9c23c30694ce9e490c478ce8724cf" +f8d43d1bc7e26d22e18d42c66d2e973f7e7022e5 = "f7e552521a78951fd2c23548fe4504d9bf83d970" + +[cf35fbd7-0cd7-5166-be24-54bfbe79505f] +5107b71bdb56bab2eb98c49800fe4419bd898fd4 = "dfecc18d39d102b7e0ccb8464be410c9a532fe42" +6d901cdc5f159afa635db122515b39c80cbf76c1 = "3cb88488e89bfa6651b54bb251ebc3c67b5f55df" +964d7cf5790130a83cd267180df609ec377e2f34 = "47b48eb1b5847e6857c9ee64fb5a37d3e7471d5f" +de85338afedc8df759483cbab11d7843e27c41fd = "44e289c9f6f1e79633796a2c2b1de3f0e2a8e873" +e3b883b5d66b47b4ddcd64592b16825edcff0637 = "11b69f334663e09848175430a744790a539872b0" + +[cf87cc76-4620-5dad-9f0a-7411b2d39d18] +29fb52e662bab470c0c7f812baad6e6c92280f7c = "49d17c734fc03e8a0bee575d8653da676dd25313" +2c06f5678350681c49506cd9f1708d455c1ddd7c = "15273dff2f3d8b992ff78319480e5debc35a4cbf" +9e0279a92b508ceff56c821aa56e3d0137d9208b = "e51ee32af827399e4d80368dbe1d50a8ed480997" + +[cf8b7ac2-edfd-5d52-b105-178bb1715a45] +e1cb6d9d0fba718b1e496907971381c183148328 = "fabfbd4bccff5606db6e97e8ccdf4cc1e0fc1a03" + +[cfe6cdec-d1c0-55f3-be07-3edbc1168b6f] +24a76afe7339c93b5871eee3237b4f3b13ba41b9 = "2c21ab7ab87b3d736645e1c05b66e6fc67f79ba3" +3fc060ac0780614793488e064ad51b7bf54551ef = "9e6dbc30f152bc68acb84fd1d1cdadc98b4b859b" +e7a7382114b0315a63952cf80ea87181d2a2420e = "1935f77cc4bc0726f12f6924d3cd8ce349233014" + +[d014d5ac-0f4d-54d5-9198-0ab2ca96d67f] +182dd45419880607fabaf1896fb16d1c1a4ca733 = "fedf1aee0e2a06c10230234c09f01b2bd946535a" +c78cabea0197d62e032e5a8dc4606a37cf247cee = "b208ba831f5e5a65a102d56dd9f342d1cb062a2c" +db8a709b1bc907c2aaa59b54ef53913bf774fb13 = "6d80e14ff9c166754634ae5942d9a90cad4b1074" + +[d0351b0e-4b05-5898-87b3-e2a8edfddd1d] +08e12da6d0721ab0847c0db38273c78f21bef4ad = "7a7657ffd9d105c1eb9048a98c625e0b9fc56668" +0b7803b4abaaefe31877961ebd48eec1f43817c9 = "cb63e8609d42426b48c2e9e3f2ef33ffb2d9caa4" +1ec1c4fd9ef6aeba62088957fb8cfc6165ae24ee = "dcade9c967f00ec92c8db1085fc27a78d1862954" +20d36b300dc4c744821bde42885d238476a93fbd = "5151678d3a400146b3d25b89fa99ceb7cd8eb85b" +31bc0b1389a3e3cccf98fc6d4031e1ff6ad31acd = "a66fc2b37bebdea89ea584572421b26d87f1822e" +50c35d17cefdd265dd2293f9ff8b783ae51a6ee9 = "9f75bb3bf7ddd4f6920c9b00cfb8c145df25c016" +54d942cef7e4c5b136d356170c344aad73d02f1c = "3a4d991b4b916c30a21cc2bcd72115f641de4d28" +6205596359ca3f10d2431578179d8729364a17a5 = "a4fb8bcb7475cd087840f74593fc4c5c857bfb55" +85b03fbdd733e3fcfed447960c88e048b6e52309 = "b925387623569c6878b0a29cb1c5247df8b7e501" +9591633664477d336e8a8c45c8ed2185d6630152 = "4cb7b4a8efff77deb0d31d2717e156ef22713fc4" +9711305cb46ff73f74aca6c4c5a6879329924de4 = "c5bb931d39e3a313636c216ec0c7b87d2d140801" +9d35ffa916e5ee83fe0dfe9bcaa02c0a331ff287 = "ed62532128a30646ad555b28af3139fbb1bc8c63" +a67cee7296001c2432de7e62e7bcfaee6f680ed3 = "d47e57b1a94e07f3c42d1397517821b1182e12b5" +bf5418e283ed2811c8553e8526f7db58d53f2675 = "552f95017b00b9b4d0928e6743f3d0e7724d6843" +cd40fb2ae06c32644ff8abc318659512100161b2 = "573fc3d2283b2f79bdb7eb3f81901a27ea30cf47" +e50c621bec0ab63e32075035bcb2a6efdb8673fb = "ee04dba467765a4255c2a983da7fe2d85eb78c6e" +e59b5812519eca157f6432cb4f3f7166b9dee81a = "0c6d5bc8a1ff1bb9ecc08dfd9ba5ef9a1a9cc18a" +e62d82256d6c37c03e0196ce466aa9635bbd2e20 = "873299bf803c36054a746857ab8ba2693f06c9c0" +e6cbb264a136bae1506301c08c73d421a625faee = "c30b8f75553617824484f686595136bef0389a09" + +[d0551c8d-3c54-58b6-a75a-e266c30cc699] +e09f8e3c84dbe190efd01e364759d9bc13733b9a = "cdf9a85459d1b30209b7a82cf8daeb4f932c1307" + +[d06db476-e078-5895-9e0e-615f11c7dd03] +034d67fb6e440bdf4db77b7d3d9818a65a505ea1 = "f2326e298c03d081e22a515006f1d8f27178d595" +0a1e241a9ed52250553644c5261945f1b452c997 = "814db844e3e76b9e8aeea26e24595266092f5c81" +10ecd55722f5af75c2a276fc68acf19466ba3ef1 = "2da3e03491120cd1ae89a2dfc0ecbe5d882b8160" +13b7f8b96799244f71e3b9107c46e6e465ebd3b8 = "626ac6db5068d465198a2c44d99b751ca6bb7a37" +197da2310a4b7c2eedb9c941f9800a49febe4d1d = "726a9b7cb0fdeddcbb2d2183d46d4195dad2167e" +1bf44a8842330b40756c5d2a606754cdb5c31c55 = "650590a1887042084cbcf9a8eb4577272daa1387" +1e6a63998643b68069e1eae661bd851019a56bcc = "f6aa43f39861ffd0697e94031ca638a86702e796" +24f9be97dadf7a72fe1cbd3bfdc03a8f287e7bf4 = "1cf69b7bb6e11f418b3c8d94135f31088c25a2a7" +2b9dc0ab3443a18020c9e8ab33a8a1c733e4e50a = "db80dccdbbc6fb38cea4e7abab96086faebdc605" +3d09ddd7494216546d6bf49de6f90f8b5e94c010 = "11d66212b6a9f0fee02584cc6232f20015a3edb4" +48225c3460d2b5aab8ff565a0ba0b0b21ddc41e1 = "c25e8ff7c4ca5857c170dcf34139b02f07dc5edb" +4ee6df781e8a5ab79ef26c3080b19e02e6084a59 = "374d777e6242076676860c73fb2198d910b893d3" +4f6fcad6bf4b03c2b6aff335a677a9b95326ea18 = "a934b009c5f00db032fe5e59915e8f6e3236b7e7" +53a0725d48f8b67cb49a3ace9fc7606004e786fd = "924321af3f70410687590e2303f0c4f1dc58c909" +59eabcfd8f2111f8515dad859f41ce2173820fa5 = "bc62aa1372a3b508a48c69a86b6a5b6d335a4dc2" +5c3a87d4934f1f49d12070c8d102d5fddeb53afc = "b9415e5aa16ccbd5efd798982ada4586232112ee" +623d44be85ebb95286789f40b6d5c67abe45a5e9 = "5e11aa485a73d78f89cf6ca7243792ac5e372149" +790e039ede72538fd44a5e64454697c600f6dee7 = "5087ae0a4f382b066852def4d22f4879f2762fc9" +7f05c23e45f491b8b860a4c60e35efa97646f5ae = "b924e6af553569717ee90009e4835fd0f47b4544" +804adabf875608cb7e369a1df20b1ba69afbc145 = "d6fc54c5abc2981c6e06391011e0c1a19f788f3f" +8f36ba17bd5b7b0576ab2990dd20f51f4d93d3d7 = "71358571f18f6c608bd30f38c7593be5749fa051" +8f6dfee0a728a4d78948c29499b9e02074e2f7f1 = "e39a55ce1319e801b81eda5594c73245992001d7" +95f042e6b09e6b6720ff93a675fc0f5f1a30afba = "66e84a93f3226b8cabb3f575e2fac9fd38915f2d" +9b50c814f0a810ee4db53b8842a3f44876caea23 = "0684022beb9309ecd806683b91a17074f3ad9eed" +a130c59a24847e0afad77b2c9c879c65bd975904 = "8f1be40b4a9cdeee8856bb42aa46dc37b6aaf17a" +a6d3aa089cbc8a14c5439dd152750c9ef6536b6b = "42b04ca45eb17f18139852522c464cc141cf11ab" +a8b3443ab6abe3429ad457d82e9d728c0d6a3716 = "61af115ca5c0b0745829d4e1404a53efb81feecb" +acd0659e7caf71cbc9e439c05bce3b6ceec369c4 = "97690fa4382bfa2b15f4216e10d619ef126de71a" +c2dceb9ff214ef776e6dae18c33f23dff7aa4a18 = "097b80dcd5afea29dcebf0c67affd4d485b1f6c2" +d7cde18fd66337ce230ecb0258a05a37b2c11d2e = "12eaa198134671fd0cff266bdb8c1dea0be78eaa" +f145ae9f55a52bfde0d906da7378efad2689f14c = "7b599a0956f4d6b721152a2c06004d65b7b000c8" + +[d0e0cb2e-0bde-5aa9-a60d-c850a24c57ee] +092991f540a7bc0817319e96f0d079b12e87c0fc = "af59e6bb81d713509d26e6c48efe99c81c83c6d0" +1d2bc8adec866d44cf662717bf314ac54d0489da = "5fbab3008112ab4edbcb7559df1f55c61673e302" +22317e39b4357ec77a17024b3ba61e48fe11fa31 = "f256abb0537acf8e97143d79b98a3d79b65efc0b" +22ec99ea91f452e18723f6867acccdf5df990b76 = "ce747c89103b2e65960cc03c306f58a834767791" +26322c5a51f4b2c0302014c384acf876474c21e0 = "b09fb9d6840f9b62f96e30e124a89203f3a8d733" +2fd36703debd87a5293336a87125c713ffa06f67 = "35f76af53421b87c350433eca7fb6baa6e88579d" +366d9bd77bfb1b4ab06ebaf190f3ffa9b046fe7d = "ae3309698e980529e2740cecfb726fa4e295e0f1" +3da0f041b2cfc8a37ed0ffc6d39c3df0fec2a11b = "046c3ca49c9042c99164696ead9e0495491787fd" +3ed88b12b7b0e8bbd57e335da70f31b9c953454f = "5526542b116bee8625d4b878e784de7abb0b3b9a" +409bd7a4efdd7fff9664e6d72b24c11554e0c857 = "94c39709455cb3ad346c240b2a3610013114aad0" +44c93658a62226b162235fb9b76c59f1a72daa59 = "541ecb0326c57123fb81fd855535ad9fa2d5e3ac" +4e85369bf06b9ac664dfb53d23c90a4a41256637 = "74a14b0d0accd99a89261968ee1ece17566e2a70" +56191b3f9666cda2f828228b6ff5673cb26a2aae = "ef08e06d168ae728f80abef2b4b0d65c00b06496" +56d73a27ff42ea5fc7fa89bddde068110c3d5c71 = "00f21449d5f2a3351fcd0f77d54f148bb803e651" +5ce3577b15d683f718ed08deba95f8ef49b52845 = "ddb22dfea933018627df67d757bb7a574cf36a70" +5ef44b459de279fe68b9bb5115e4a7c6a9c0fc61 = "5479849a705eca42e5fcedd1f3d2423755ea24ef" +69f36d37be9dddf2d6dc0e3e4b61ddebd6265e87 = "6236a558f042bfcbd7c6c96b34646f312f26f94e" +6a6df43e757016ccd07cc662068d1f7d57230019 = "9afcb5d2c881b8c428f77f2d544192114deed0d7" +77eaa6c413b6fd2d850f60513a04ee6ea855f795 = "63d0b7b820def7663b43bc787ebec172170b84e6" +795fa5370064a9390c4c33691e177b4414f4f0cf = "e6838f86cf30841ce1b62e7081a0c4ec600020ae" +89b148933fab59667c68c36ec5d43289cd81c0d2 = "2be73554f1bfdc57d27ca7ab7bb55113e6088e6b" +94304e98b8fd3ca9617232634b804fadd4330739 = "539727b5ed71783ad82dbb149abfdfe23b9e140e" +9aa3265a9bb239a152be4fa6ed37c7d903ec8bd2 = "0ac7370d8b0a3bc170577bcbc33c934594bb2144" +9ce88e93771f47b3be5a873af04dd4f3dda75554 = "6420d08bbf3680b5b4c472ddf6df53c5c3957816" +9d7f70abc084253143de6474b1231638fff21bda = "a1ce267ebecf0716e82d5e1a1f16d7431efe7c8c" +a6bbc6133b5cfe8b7479d5541294ce8c12826978 = "5453bdc12b863b43f8532f817a3a3b8811e8d58a" +be824cd659e3a9126bbea6101ae65f76c709c480 = "8e0fb9303e855f4bb0a74e132214d817899e91c2" +d2e2e82c9324944b952a10e2f02c1828b488c59f = "e48705669c6e1c3d13645d5fa4ce519c6b4312ea" +e3ed5f618b914213e2f1c2b409df641692bb834d = "8426f143f0901455a6a3a612ad421e13aa01c24d" +e7556950e45c79f03e76f96143be9eaf4c9ea658 = "1d3125cef6a5142a31a9e90e871965c06a4b2504" +e7d0e1daf564900ca2d58ef317906979627c3436 = "cf98ec090fa6bbe8bbccf93e2f35a5ba84e82990" +ea8429346f9f972b2bb12cb6ddd61dc809b2ba64 = "e26ac9a057c0998fcf8a4ae985eb2fad1078ed89" +eac6d84aabc48f9620d9f668f79ae1a6fd2bc874 = "5db6ac62025396e26ebd5e26b2112299fdead8b9" +eb4c8aad13745db70734b0668e3ff6b216851b82 = "33a90c2105451b580dc90c31a511bd80f3d163bf" +f8a5721e23a36042d45203dd166cd8c253fcb600 = "efbe1173743caacda18cb740bc9af2462929ee7b" +f9391a0584de5a34c64d94197078b35aa725ec8c = "310b8ad4f9c504c53b5f3687f0bb0865b23977d4" + +[d1acc4aa-44c8-5952-acd4-ba5d80a2a253] +28fde2fad77ba513dc4ffa17a7c91be794d995bd = "6c0ffc06f86e0f3b395d23b0de40ffb0cabc5512" +64f72c729b6a4243cfdbcf8da9b5e126d116cd12 = "8ab4f7db30802c2a02cb44c4b053811e1c01cb20" +a0bff5584de46b10e72b9e96bec1005901bda96d = "74edfc07cf8ed182a369799a5d78b63211abf57e" +f4be4b6b831dee83ca3e1f683110d8043dd3ab47 = "8b63b4383bb736cc7ed44fff0abf03e7a7f0e58c" + +[d2185075-3040-5c42-a634-a12f38dbd79b] +2540a46cb4878ec3718fabb4940c13e532c9c371 = "b9673f4f302216cfef9460730d79d5cefe6836ef" +2a36c0ddc881b37711d7a6bee834c801f26d00c4 = "6995ce1cbf4b8ed0449ce9cf30d2505235c12b67" +6542fc7b35ade0d281011425ee0843f374e5a728 = "e2031422af22f8ee10cd82b6f1c4028ae8d9ada0" +66442297d421fa67e908077f5d0560746502bc99 = "bb38342918c4ee3f0ab08a03a20f09e94b77be3d" +9b85a8041eb53c77c0796fdcf29de1fc5e991b0e = "ddb076477135eb34d724336e1651e360ced5caf4" + +[d274f558-d366-508a-a164-2611506323a4] +746d5cc110bf13d6c4c8bff2ca0069879c290d38 = "72727f43f183b9ddc4ced9b8fadc03e931bb2e94" +db197803e48daf3fa12695320d4bfe94372d0d47 = "0510abf7abd2cc4fb10c19d8c07b3e1fe4d56fa4" +f5b0f8464c086fa7cbe1f44f9b37bc8270f3b921 = "2c31ae01ea46f02524a22a18f6c303bdbe6fe0bd" + +[d2772ebe-fee8-5277-ba6e-705bb5633645] +04a5e7f68f8db9a71198c31d5516c7ecc4a954e3 = "983e8467770e23009329280a7306dce2b471730f" +2a90487b9612117486bbf6ab2f4d2c8eaa8866a3 = "1d5d8c1dd22cc354cc9fbc8b06faf9ca779cdb08" +3f96c73aefb5965836c0ab6dd9a3e2e3135226ae = "cdf4ed168f3048fcd815c50b7a87738305aeacfa" +881f6358acc1a86ac6677b6260bf361829589d2c = "39dc162a4b62926c57372695bf426c3fa5e50965" +9fbc758ebc263074771def414feaf7932f8635c4 = "1f0bbc3e1c9b53706614d35d0745d893aa72777d" +d2bbd45ffe59191abbc3ded5fdc74c0f2ea80c1d = "b650b87c413591f0e8791d9c8822570888dcc776" + +[d27d45ae-66f1-5d53-80d2-11744f5c9556] +878a5e6146ac84ee9bfeaa0952f4ffa5cc2805a0 = "7667f3a9f6ba377484aab4b0d09657b668c30fe4" + +[d2adbeaf-5838-5367-8a2f-e46d570981db] +7c07cb8058312ba00cc97ad0ea94078930953eaa = "4341c9f99ab86231bf4676f5d86ca645f735a0ec" + +[d2bf35a9-74e0-55ec-b149-d360ff49b807] +60813ab471ebdb423106d6cea1d825bbefdabc06 = "0a34232baf8263bc86fdcf40aee77dab97dba07e" +9635b27723de05930f7777812e1460479889bd59 = "e7986301df8552167723e96e182c0d7e560a4464" + +[d2ef9438-c967-53ab-8060-373fdd9e13eb] +2f22bd1fe4cc2e0b32e297bd42c11ca1d5f4e4cc = "c571526dd3e9ff2a16332f06d076504d29358051" +8fe241b88068b2d5b4fa38591f02ba906c00385f = "ce2d445f4ebbbc778c7237837420e6e1422b697d" + +[d32f81f0-000d-5c7c-8375-24efa40f8589] +31be87d0cc74bf6a08513379e87d55876ac58d53 = "480652ace47b6dcbe1828aa3138d7360d8c89ab0" +32ed3c64f12304b3c18a481cfdc8b92bec6bf719 = "6d2430a882fc931d640b448bf50e5af86bb72c36" +c5de9471905cd0a9f1378490264b9cd4a6e9f810 = "ee3258b5b6fe76fb37db1826ffccd7e40b300bd2" +c8ab4f451be90684af109ee9b32283be754d5a7e = "eb584aeacd8e8dcdcd0a712f5a49dc2c410cd1d6" +e25b226bcaeb5a88271f9bd822533efac486b48c = "6d79e7c12afd4bd46ed6635f1bd17b41af15583f" + +[d330b81b-6aea-500a-939a-2ce795aea3ee] +006190cc52eb56bf5cf55dd1860ecbefd218be25 = "af42dfe3b66bebd1d7be156cb481d8a753f3dccf" +069b985c6e153c197b14bb3fcd98057cfc1d4176 = "a7dbfbb8a7c4123b4099bbafef3e6bb6608af270" +06e25e04fcd3869f3ae11e328a37e7345fc59c58 = "cd2b29a60cc354abca24e070f76d3345350e26fb" +06e800c4458279a17fc957a80988bb3d0fddd7e5 = "55848ee1068aa361e00e2337340ee4a5f9796a6c" +083f6f340f2638761f2dbcbed9e6a362eff5de7e = "258ad70b5ac610c38c81a56c1917d00633fa59d7" +096780721c8efb6ffb899379ff614de96ecdc600 = "e3f5f15a8cc04c783e0b72679e98bf36dee6c897" +0ae0d4cbc150207ec0863f7b6127b1bd14ce8716 = "e4e88de60cefd1f2a8e4efb2ce4bbee04bef8726" +1290142188fb6702fe16a6b4db7230b16bec0b7c = "c46376382eeed6db211d3f5105b05571d1ddaf67" +1414ebd03a03e10a20c3dee48c97865c4d27d1d2 = "5ef01990c40f3fa1a2fb102d649a0153a9ac1197" +1c2d22e06257969841270711b7add18698833324 = "04e09fbae31598bfaf48752bffcedf3ff2ca53c1" +1f763b11f9e71348bc051954d83c856d1517bd65 = "7b940da83f2b2603c060d3452d1a0a583419213f" +27f62251e62cea431a955bafc4444472f4e96fe5 = "634f4704d5ba7824d9a6b83c3c737622cec385bd" +2b75fab0aa968aab471c8b1936c106868f44b127 = "7eb84ce0179a7d7d276386e19d4bdc3fb5cf5cc1" +3217abec982ebd687e1e6678288eb6f4f76619a5 = "00ef4185144414450d6b02f0fcef1adfefb86535" +3b7839fe2d30cd6c4d6c9c1cd0e3d4d12b898460 = "2b89516f5a27457f26aee1d6bb476c785f209b44" +3cbfe1a2b6c7ce87946522459bab0d5408db3f94 = "bf5184c8bd24d3ece958ed00b55d06cabd3b90e2" +3e6e18c746ef7d94008906d99a8abd577a419169 = "446814aacfe0c319cfa9fcf171af8a57838a30c3" +40632c7270c767fdfd527c2afa4ed7bf5a1ecb01 = "6e836c4d333548704010648ec88bc54eb6673415" +44e5589ab8f0915a3075ac1450d797ab6ce713aa = "36c5b581c10616e5a09eaeb70f9954985e429967" +48a6d7f83eb52a65ea00d66f35a870779063f57e = "79750eb412c6991abc53b9cfeb6f918cc7958f9c" +4a5195ad158af5d8be9d97e9a7b792b63bafe56e = "3f465b112c8accd6630316f6f119ae561ae9e3d8" +511a2adcd0d05a7949b7ac58475e3aaff9b12a39 = "2ceff83a02ecc49ac2012614410d72d1845cfac4" +521caa1bce869d766d4638942abfc9099163ac8e = "75cf1e9fea3e492dfd66e7120aeef0cf56b02e36" +536b17d0ed596be7adb5a33c0ceeb9c75de62919 = "78402bf505439da36e2ea3403cc3661365dd4f46" +53bdbdcef3e8f5bac7593179bf338492d9762ac0 = "61c9a64f2eece96482fb37486a70e0c0fee23693" +59c19c7078985dd98e97d99a0fc4abda2f2f0ec7 = "794d3609450d1aa9ad03f1dca3f51de58fc8ea4d" +6e177529690ecdb82c87437ffa40ec74a5407af4 = "2fce057cda25a449b656e9cf897730de1cb92298" +7c59b3eda67b74d6b6e3008888cd2206266b24c1 = "3df79b61be821603d8015b80824a740ca5f5ba89" +7f3ac329b352c924412823c010f9d2e539a2bdb2 = "fa34f91e4153cbf502da9f0a32dadf34a8d55eaf" +82b51f88b50f92866b3abbfd655d32ae92c06b41 = "8b19684f18ec7c6046ac41606f2168f3a7f012a1" +8932adec8f7329a66e41922348425b98a86981a4 = "84ca57d863e1b458749aa844c5327e2e9d8291f6" +8d75daac81eb5d1352c4f26637cfd66c0e48a0f7 = "fe3db67793082ee3d40e643f90d1d2792de96c10" +a3a983256013c5dc69d36c07c67433a8ea11bfc4 = "6fb6bd0567b1998e9c90619bfcec638807b0b011" +a4e224a427aa997304d9a6da9a889c8bbfc681da = "5a17d276144f45835812e9438954b5d49d1f1958" +b37dcd8df1617d08ea5d9e80441434d8f6c588b2 = "56fcdd676bcae8f60368e988379e3f3120753fbf" +b81674b17f6e901aa2d95d44e7b5c498ab684904 = "60c37759a71022bd33a47be6dc0a8d8aa2f1b027" +bb24ff8b8f716845094a0622a46c57960b392a45 = "cbb2ca2b1cd974b8d93690387f9f819c06218aed" +c1d78e91b46ad53d8a6c04f8af2204b357d474e9 = "54f6529abd337754edce40383a5466102c8203f3" +c6b7ac95a00c89e5f8b4921a217c0c43ce804cd5 = "f997a9e11230a481dc9b9a3fd2ed6f4d05915ac9" +cb15651466f78a9301dba67d67fc45b8df66fd9b = "8e79149d9ab3b0269b36e26cb452efd088e4bfb9" +cb92b020bbe5fb72d1acbda169c6c7ce46a07303 = "94c9012b6a395d924900cbe3972c745a4d7e8bbd" +d209dd2f793cab37ab08822cb046395c82192824 = "31f9d904db6529017157a114c5626a7902e57cbf" +d8288819a6119e3b8ec92af4c7395e2a8bb9182a = "f29b51dd724387df447d524cc3a2828029e15df3" +dc7905bf38fa968e8dd9669c0294931e5df02775 = "6a2eeaf8c255540c43bfa23542205f39c1314dea" +e72310cdc1aaa037ade8aaafb117dd85144b7962 = "d23b37b42bddd6cd461f04946425859a9755b1d1" +e8640e367636bd5afc7ce0e47687dc4957326b64 = "af3d62f2a2648c0d7d7e491837f31b6509f72937" +eab4c673d75db1c3dc441917b39a95ec25bc2476 = "dbbb7a8a9abe6d854849f7adce5bc59b889bd026" +ecc8a4083f2d58894c405047db8cda74b6e8f82d = "3df79b61be821603d8015b80824a740ca5f5ba89" +f4decf17ddf5bb029f41a404ac5c27b559d3f1a7 = "0429e8749dfa9c10720b2c85d0c35407c877a614" +fb8686f4afd95c86b47213e9fcc5a5820c042cfe = "a9b9382f70743cd595efe9ec61d3f8b50bd9e54d" + +[d366530f-4af1-5ff1-9928-73bf22b88830] +0268ff4ca8547039f975b8f6c74e2144c7518851 = "9da51fbc92193b89d6a60962092bd52c873daf15" +0d05d5b9851b73ab40ceac85074c13630334583c = "d6d4a333c8d1240dbb851df914f0b5086cda6fc4" +1f9008ecaeb8ef91ee7da94c04136ce24972fcd6 = "c0f722ed5168f6035e77a358bd978b65e660de35" +277f99b1f962b83ed9efb56f86cf2eece7702bab = "9cfaab04e967ceeae145c1413e557faebb3bbf1d" +3b4322cc6614d9ff6d2f4309aa1e4c1d9f3d9dcf = "f3ccde9f0b058397b823e1e6ad9ba73e3f8e4e6f" +56df258cafccbb92f3f7a38699dacddfeba38f57 = "05f59c523f51be8230ce619367deb7a3417e8158" +58378f8aff6f87800c58be31090c543cbbfc8fc2 = "12e8558fd1859af87f83ec830f05346cfb9f595e" +5fa1ca71898f46b89a7fa0af309b901d90479225 = "29ccf8ff758fbe2b588508abfabc654d7331a766" +603be7e159d37d25e4459343d7e859d9ccaa21f0 = "2a59ddfe3d5804e7e8d27e382725eb03bba873a5" +66abe1814cda84ce5daf17953e1376a533e61326 = "a34ee8c016b88193c19997c50a1a6455be529d66" +6eebfa856446153668df9d9e0af9c8e88a0d77fa = "10c40dfadfb5d57f6850264477decce6f54ac7a8" +7275c0c7badf1a7ef2c7f356ba5a104603380563 = "076b76f0c8b8e3f66b2b02a05047c3784a961d9b" +813ec58f6814916e06c792b748f01de60fa2ef4a = "3d93123aaeac39ea50dfc407ed22562b5c9f55d3" +98e298f7a29169ceb4a5ca74db672f7b0c12adb8 = "9eb90d935b2fd3e9516faa8360db6723cbbd14e0" +9cf16fd4baf5832814793d11e2c1e7520bf6a816 = "1549500235d71618ce9f02319d5c5c002a3b211e" +c1211b74211fcd3d14ac2321bfa86fd62727e171 = "dee2538f4983d283ad89d3f20b9c4b42694e6e78" +d4888813b5c12624818937298e55cbcc704c8d55 = "9985739ebc7f7b67edff4a51b8fe2905496c166f" +dadbcc4d6ebe7489bf68240aeb1295f89f739006 = "87c3fb7571e26c361227e27bbea0b5008376fa86" +fbebfb1543b175c056977a336861e6c55776aa4f = "88322ed888b5d6b074da9c8d16ca93dc264e6ee2" + +[d38c429a-6771-53c6-b99e-75d170b6e991] +1705a9ce1ba5d54d9d15ef6b76b0fe8abf73c706 = "a4a3ba5bd4019ee0e04cd772f9372f760eb3fd94" +3a47822df995024d72daab1a26df820c47985cc3 = "bc36f0cc527f7c8e82814775cdf5bb7a9af30750" +434feba19ab11a66ce5353913c1b01a27b548628 = "30165239e418780edaad7b7a06319fc6e2bf6fe6" +486965df1243f7e6fa999b0840a7b28f5b766199 = "814d18d61b1b2065fc1bd5b4bb58f2c4868d6120" +7bded64ef5e1fc62110def6e13e8973d5adb7953 = "79aeb28ecd9dbb69ad491d686f15edb278cb7b4e" +8b59af7312eb61ea5c7fe297bd811696656a096d = "114505344dee19f88e21a6cb9ec56656c2edbb3a" +92ac9f9e6fa590b239ca9ba4aef81c1e5146337f = "ede3e735c469c2c5aaafc229c993160325aa6124" +a84f3dbf93758275c1ca49933b9d39c9b2831b41 = "e7583db19ebd0e1e8a116bdd201049415d940b25" +daad6eb0b1464dbc7e824bf8384cad54a3b76445 = "7362b76e9939964a94fd39430bc901092c371d21" +db84d92922cf82ca5f422bc3ebfeb11444972042 = "dc1af89fb4ac6edc51761a1677bf24cefbc76816" +de1338502afa05f2686d93972e5813a466542daf = "e3d862963ad499fd38d1d145425fde884a8485c9" +eb004be4d82f77e3eff7e47d4dda50843e4da04e = "e873f729398bb74c9e1f1cc5af8f45807c224a9a" +f1b6713b9c359590c57d9fe267276323681acd28 = "096d23897d00dcd0b36284d9856aab9f4a76eb01" + +[d3a6a179-465e-5219-bd3e-0137f7fd17c7] +08f1107efaa568bca1b4b1f0560930ce4fdcbf5d = "b6e66b8f1342cf0adbb2c3e5823241a400761841" +140294719fb4b03bf83a969157d198193987ecba = "b277afe1c55e180aa2d72c7ed9117a5f0cb30558" +3b942d4b7a7a54139bd89b890d3acf01ef16136a = "cad3cfd0ac6be3a5a7dfbc625ca7091cad52ebe2" +4221eae10fe4bba7a8da5184106643c5900f83c7 = "05aeddb8b71af0d9f48f0f32837e234625570ffd" +54f19cf5b6d6c591ea09767aab75c22701cf8d8e = "1d77c18e21bac76ca70bc8c445f660b2d2dc6d07" +cadae855fa3c3e7f5536989a83e653c6287cc005 = "96411a9a0976b78c71a630884fce55143741b618" + +[d3d335b2-f152-507c-820e-958e337efb65] +23ccb4a0f27fb161cc47cb8d83589b2f43e64804 = "64fdf3fc5c56d5dbff6435555a666aa735ad7186" +c854cdaf846d94703dd220c375f2bef1e9e52296 = "5274a926338c4329a92dd51fbffe49553bb56bb5" + +[d3d5718d-52de-57ab-b67a-eca7fd6175a4] +01e4a28171079ad10dce860652ed0a086860d6e9 = "2cf91b9c880fced22808374581a8efac7c663d60" +156f18e601fc47a3fc0c3f8c820990736aa84e16 = "ff018b41672f13b4adcaf07b8298dea3e051fca9" +2341256788762ea82fb7b064ad2db74d56e709a1 = "6e1bcfd0b3ca1fd55b52af11ea73017e03c63520" +48abb39279e8ad14b94ed08d8740319bba6258ca = "c3f5045667f15a7abd6e4a6e4dcc6570b4907a9b" +79cecfc9992c2ef65e4f40bd230fa7fa99b464e0 = "36124edde4026b9b170c3900a3baeeee2ee07972" +8ccd5c140ec4c782fb916731d7764836e4958a80 = "6032ee9180288bad5f31bf5e56fb7cf254379a56" +ac92b9b25249f84027be7f1acde6c12fa086e976 = "b194a20f6076681f94e558ca071d9876c6b3b9cf" +b4167069a1de3e0a3a7a637782002ac983080f33 = "cdddeb5b9cbf82122b7c596f08e47362e161faa3" +bd30b42febc51e032ae206135dd1015ad89ec315 = "b07a77fe990f4a5430e926bbc182162c875bde9c" +c67d228cd0f388efdf1c3638c72319710355bcd7 = "67c89575ba6f40aeefbaded9eba041da4a287862" +d3b6cce1f3fdcb97504a5712caae1d04eae10ec4 = "5af04debf83e1c859fb2453a458f2ee6f58e1f82" +d5f32cd5992c7d430fc0dffeff633976bc08c872 = "fba91c9925a96c6d7e6178cd2a1a99cafcc46d6a" +e2b3ad68d52554056b935be7aab976cda099a4dd = "294265ab55505f1b3309ff9c33aab0dd25b13c46" +ed54f474a4bca619656403e2c537fd82a7221452 = "66bc30b52c575406de1f15d4ae96b025dfa6485e" +f0a356e135055b008cb6ffaf978997f1d471511c = "465df114319ee902ae84246fb99b37d2aec347bd" +faeec2f200120071ed02e833415e5e925bd68954 = "f7a35cd52b8616bfdfc2f787a4691ae6faccd49a" +fba84f771c82f67135bed21360e5b86ed7023bc8 = "11e08ec9963ec4f8de594ede26906c517b95a3f6" + +[d3d7f49f-8593-5289-ba71-9c4f4848f489] +26a4a3057df59854fc0d666ff3d5d61aa6c7b88d = "a8e0c02e51577d9aadb9cb99235b70b3c3e05825" +527d78f137a12e66ad496d622c2171cfa48efb94 = "e80edb50b7426a2854a6dbaf01f88da73e9756f0" +a62323c718fea2d3bd09a28e9838183bd070d7bb = "c994d94e95e89e1ad6c655f3a6c5588a0b8dad86" +c7ad97359f575eeb929bd52362dba95218e037f7 = "5f3ff78e7c7ca6fd210aeb63520641c63be083d4" + +[d3d80556-e9d4-5f37-9878-2ab0fcc64255] +007640e240e4e8a2a2d38636d2c6f22540c69b3c = "5a3f38060809e5501b0f601d803d106664d3b3b9" +0990b553e96f7ba0da51eea21cce78c083749606 = "2b80450f06b75cce2a8d4113ce92038d3f34c217" +28cc7d10983bcc093838db6e273fdd9fb57766a6 = "4718a420f597213ef62ebe6e4baa5732dd5cc196" +32f5337120338d7805e03f7f5eedcff2e96becad = "0c6e9cac4acd1095fd5aa5ac9111b514f3650f75" +33c9bd02eb7ce01c276724e0aa0df5c2d8678ae9 = "ce01f495aa21f3144221e3f689441aae3913d934" +35d523df9c22fdec6d93317e720ee5286017c725 = "46ef40484a78defd19457099ea11352b7e59e71c" +430ff8695553aac267f530748a9676ec54c4e60c = "299e76f04080ec6ab239aaf1e0210bb958b28e27" +56155bdb64d660452c1f014eac3d51e8e3608c71 = "709ef74e45c128814eb7a13b1ccbeafe6a88735d" +5979facd949db19a0e5b66d24aa142f703578880 = "fe17dc59afc44f1ff5b1725ee519ba407e09a1d0" +5cd79f4b48814ab39abdefbc81cb25dc6b83b4a4 = "0669f30346a961bfee51d7c487a004d3c16b68d6" +624820d99090648a37ee232c33fa2876c1973139 = "977a2ca04ff2db61fb823165e1a89d94dcf891cc" +628f019e3c33d4800fc79a9e5f934dbc69f5e2c0 = "4ae6ace0696dc93aa158c3247d1109e1d88c3ba4" +675f5b5a17d70ea9e68295fe4d065bbc5821e1ed = "b0573e70734531a998092701198472c0789c2de1" +7fb4d38446b046bd78dee3aa8a8011f44a33d14f = "5af896ca263a6da686c84bbd28ca340491f43a90" +88322990c6c3304e1471589ca34caef59ba8a8d3 = "60fe43fe3e184c8f8b0a31ddde5cbaef050ace4a" +90d99c3898de5b45ba10924862a968982d84432b = "928f7553d01134c2543bfa8209d6ab8809f677e7" +b9e51540a5632b0186c81bca163bcda6af86087f = "d91d6812485760880514fe998d064450a6a990d3" +c8caed81cbe0093134e042dacca8a72082e01bde = "243b9761ff2082e15bf625af93cb4771da292336" +deb45fbddfab3eac415e5a87a91fb1fd1872e23e = "7fdaecbedffd9ccc71dca216aa3cd0839daee7df" +e37e4f1cdd24424562712c0926ab6b0fe9e63085 = "90132760f416dce65c43a2086bf2e356497c26e2" +e6c85ef55b81ee194dd737539c08544bdd9681a6 = "4709d51e7767b4a8e9ae1f59c704bd359004014b" +f382f9c0f4ca18cbb205f61d41cc62342e784b1a = "9600c340726d2ca79b9efe949595da37d7648907" + +[d40d4617-1dd8-5232-bf05-d2d0ca0a4896] +5ff61be824011fecdee667eee4caf06292544114 = "bb0084e952e16999521b4568f59fac03f48afe76" +7a4e04d0a6657df13b66a11fc3987224754c7a7e = "7f66bb853aa78050cdabb120e09ce79348e448cf" +91ae97c43181daebf64360dbb753b68af4dce9ca = "43a7ae27c8d4fa01a7a7fa76fe039e1199ef570c" +eda235d4fe4aa538d4bf1d6c3a9b5843d2259bba = "59144f344541958e6851760e9b88bb1ecc19e309" + +[d41b3cee-bfd5-59f4-ae46-2d539e075afd] +a5ab256d71b6322e779c2a3bd062fafe011c4221 = "3ec319afb5e175ff873916047d7c6605a8c4da09" +dc1bb38a1aca40b1619265a79ce922b30e41fd53 = "13979db0b814a2a93f1447feeee9e23520f14f27" + +[d41bc354-129a-5804-8e4c-c37616107c6c] +0372693b174577ff940067c9076bfc79fdc4e9e8 = "6e5647128093b0821fb38dba375264d40362542d" +0e9eb36bf40a1502ed8acb1df09b58d09b1c1389 = "8d607582f4254798f5a70e2b95dc11d31451207a" +16b3ab37d65f9e7cff2990031a1e385c13515609 = "85d1fbf390f3979d33012dbb703df3cf75895f3e" +368feba0ae66d9e3d8f0a5015fb2e1e05962a8f4 = "053715ee9ffd841a040fb6d1fc1f789d587d40e8" +4b9b0221f1ad4dd8d92417bfa6eb91aa57611a2d = "ce73a340d3663a120e86fb3fb27ecf79383acae2" +514e083d4e44767dfca6c35072d35fe94333161e = "fc1ff152ed38d26f35fd6e0d5f39c00dea8d91ee" +6a8ee37d4326eb290f8e6f5ffd26f40326f00f46 = "8c1a389aab04841b3c955adaf459c1913c90a4f1" +9a5650177851b034d13a909a684d091fe6527b03 = "e35fe8e52522517ccb99c2523e02cf84511f792d" +a4dbd0d5b8f13b83773ae2c496778cc254b4aff0 = "e5499477a20ff1cf3693ce67738b3c5e211f9125" +a754b0d5e1532077a707208a95249df6f9c1bd29 = "e401430dfd16f8b843741dab1be10dec20d8c662" +bce3ec37684d503ba077ff57a41dd1a49510ce7f = "4abb61b3d56b8070d9e02d7db4958abf07232a8f" +d8ddb338042f54ddcc1f3ddb1a49d102909d69bc = "feae7bda6e055eae611961bc0d7000df891c88ad" + +[d427f087-d71a-5a1b-ace0-b93392eea9ff] +a5f466d6cdefdcb8ef621828f51e2fa0ec1e8de9 = "ab896840feaacf86f6ab1350056b9d4ec508fba4" + +[d4533929-f99c-5db4-a653-da41d2ba215b] +259b0f3a8677002b74779d881383dfb459653cf6 = "68376eb8aa93971f56d3e5ec11f03c3c9f0a4541" +79ad271aad1dd6752ac1d03c42a789d33d556890 = "a343e09040c3e1f5072e28c9a9afb82c0ec212c9" + +[d47e95ee-b316-5a26-aa50-c41fa0b627f1] +029421eec3b40eeac082ea4547c1e4d107bd6628 = "8b097ecd9c02a94d29fa41a18dd4cd460b69b4b2" +05d58ff0b1ec73e72c0bf9e69e67d89ca4f161cc = "6b1b22d8b0ae9477ef2fe91ba8e281184c501099" +08651736d0915ed28cf8ca436898616fc374a074 = "aa673b6e94871c7c3988fc1a71192c920fa88eff" +104ff5a2d897e8ecf30bfce7dcbbede50b0b3677 = "27033b5d1c95b7ca57360f493da706d1877e4be2" +14bb914611f63f317830766d70ae5c0ba137c3ad = "5d9e50c9428aa43c695f0372e5912829c80f5d8e" +1a87f6e72afc044d14ede50d84824f10c7303650 = "cf0f7e0842219bf6d4c332bd66060e2bfe3d9035" +1e0a8106a4a89cbcd1906180619e6e04e96a28a6 = "4aed06438a2b18bc63e8a5e83bc2293aca3042a5" +235f43c2bc0b2e7d2ff4527c551af748058f8453 = "bc4167b83eddffd61df22ff08a085207c750aded" +252d43707ff02debd835556b9a753cbaf90ef4d0 = "2e31ee7da09834c4b18fa193486ce8540e0a5198" +2541f2234bfd9d9757dddd2c49ffafaeb8782073 = "83a8fd1ae06f50de4948258bfb3ab34dae3976e2" +274d791957693e1711b67e6762cb6dff39854351 = "01af4f3957b912e856daf7e4dbea6a1f2e528e51" +2ed809cd57ea18496f57c79575b1eba5ebb2c0e8 = "733713aaf03e8de8ca0c96f76fb8adab003de957" +2f2b7b7f77451051bbd955e343f70f89654527eb = "ac6dab46d83fc5f50d88775d4bb76f790e9474b2" +3590139b84209df3902aff067a40ec3177c9f2c8 = "3beb19d71d7f62414c2fec75791584df454f2b62" +35f0ca97e38500f50a34c6b2e35a737fef50256d = "8312f0d6dfe39e83c124a6e3893b8c215c56dec2" +3708d517fe530c60c9a002b908af882e8697e67c = "4db1a8c4a944326f99435545091d9b905bc22750" +440c9bcdf2204d85e6dc31231eb0c8208756fd1b = "7f950f9c96821f2a3a2daca48866ad1dd62d6339" +4c00cb87594c62fa115a9c2f4c6bc4f005427c90 = "e64c5356cf195d35d765f308ce63b6e7b7077d73" +6e770ab3dda43906429fea1702c5218568bd7bd5 = "6b2b2ebf9a91e644818a4a650562b6b81179a5d8" +6f66a15a18c698f4be74eb304aa7f839c7026266 = "9c1f965e51db05df4ebd139cd80ec244d9a56e92" +74f587fcec9d914fd6dc526bd06f06a08fe55adf = "f2279eea4337b932a55d39f0bf428df0d4eb00dd" +971508c61f14eb2c9668047025ad7eedb07ed19e = "5ce34b0fb694b2d6fa5ac798276d1301a5b27a3e" +9727f696e4e69fdddbd65f12e093b8e9af9dbf0b = "4f7edc9c5bc002987b994c898feba1f75bb11fec" +996eda2d7ab2c0ab8e12b6b741c16d9e700a1707 = "a84655f612425fc881df2b9c0614bc57b14b0090" +9f2d6de2af2d812a023fcc78ce1c17a259f53f5b = "e63b04239ab313696fa811fd6c4fdf51d7aac86d" +a95837d5c22107a0cda9ad9914735e3210a364ef = "bfdceae6275063e90028ee50427f6ee27d6f66bb" +aa72b6eab2de59ebc456b79b8cd1eab548fd821e = "cb93c643ed26dc704afa52e9d0b29765af29edc9" +aa8ece51e8ed2196f4b05fdf7f249b0db2eacc83 = "32dc30119fc074ed914a3b9de4285461147ee75b" +b495bd91552d9bb4221266d455a9a112a57f3b3e = "d19a0f0d530057d1821da0706d494e901feae6a2" +b7283bfaa6370d4806906671d6d74e3dbd4e45d5 = "cd6665ef346bfea28c4687b7bf87f9e97cc725f2" +c698e5733fd346e0aaa3c210ff41148b119c4fd6 = "d31468297df33ad656ee35121a6b4072710e1169" +ce851c155daab0648432992d94120dd24d49b594 = "2297e39e9b44e9de08841618ca880f8bc4d54c54" +d66a9b2eea8a81af1c593de70fa4e6947580dbda = "af13edfee270793f633e526dc54ec4ce72050000" +d8b2eb77c64f2419238ade7d084a3e7719080542 = "1f86647ce768818832319ce7b79cd6a54a77bcdb" +d9b11712812af56afec5511cdfc24006360ed929 = "513ad27045a4fb76b108a4adc4cb6757fa97c6e1" +e2b31411241d5029171207fa2a6ab78d03d56caa = "6248edd636545c8f1c734ff309e406c8dd9694fb" +e465d3f83d896dde3010e249e6946606a39b8eb3 = "0868385e84d1d7a70bda38a315609b710b1bb492" +e5190b02fd609b2723f3305297f233406475f251 = "d876998272a301761514a696dd9ec90b81a1d11a" +ece8236cb32ca04fc6591b4b633f5310eb8ffbbb = "328ed4f8205d26f327d60d68a9626ddb681e0cd7" +fcee80b34e30f76af35938086a84a2366617147c = "7c12b9c8bc6e55978e5e119250e537aea313ed8f" +fe85c6e1d1bb01b952f5ee72996eab93b9e46bda = "22665973c24b89734589d5dfddd4a505722733ad" + +[d485f30e-9291-59d8-a5eb-38af4ff24c29] +1acfca84c5f93edc096aba58a7decb5ab2b388a6 = "49fd7cb6123e4fcc7f8308d95b2c7bdc2d2a06ff" + +[d4b2101a-7710-563d-8e49-77b01dd33fad] +00f12dbf406667074a8d7b2570fbc5810bcc4b07 = "845c3871014f2764a0d78c2399a0dda441df11a4" +05167ef046a3dae4844b42e2a87df26fad1f7f5c = "40aab5cde3b6fc8b1facdf20b887355f0a448880" +0995856a64b92b40841abc4cb3753a6abf4167fe = "280bb31c53ec52748db416599c6f6f4c96f0ecae" +0a29c0d789447dabfebd6e9e2e6915ffac152786 = "86cbe755efc43e8c7a4a5b3d3c60c8613e2925c4" +0c530910eb829c99fee17210501d093a882cbf31 = "0974c486a396a41eaf32dff769512a798d3daa78" +0f5bb25c934cc00e0b2b78de5a46615bad386234 = "31591bde97efa67105324c6c5fdea8ab107e53a3" +0fd60f17db202cf0489f12092d7e229464dcf3a6 = "e2d185dab0a223f97e750dd6540a15474a2025e3" +0feb70532b64d106980ae60190fded39f216ca13 = "c426326f4169b8d27842899104882d88a65b18ff" +0ff2cfdd971094d16a5ed7b83066850cb2d3c43f = "5a832b8a5d922daecdc5f0b455a07e86d884a591" +133f6abc6c315dd60cda9bc93fc55aa7fe4ba693 = "99dbce10c47cacb6873f1f6b60dedee87385923b" +14cb19d0b4348dfb5b5c0c1714b6d7a5c6639968 = "a066ada3d47ced8986fb80515d2d1f60ac16ebbf" +14da1fcfe3f079b77dec8a6e170586022f1e2e64 = "d2950b0d4769d0d787d2c8cbe88aec147da6a5ea" +19b3207716456333844b0e57a9a00c3f7db04636 = "14d5fd06641b5e568b6e337c10fab93cd8ef4c87" +204222ee5245c74f5ac02de35886a4b3cd07ef84 = "3539c41c8b6ac6ae80e8529eddea0350cb7e96cc" +2055a76835a9cbe7f2f75882796a84f8433aa3d0 = "73e51ea26824c65fb02289ba5cdff5a10a0e3c15" +2063c0e2237c98b7eb6ec13f74864c35bf04267f = "5d92cd9278351d2e17c7818a6f985ef9bda6d762" +249c2b460ce97a1fd8be8c3262992ded618ec704 = "d421afeb1fdca944f579833f9b2f643876a85087" +27f57d0b68dd2c2a9c8fed70821ed8874fb694f6 = "87fc14930855795c3f4c706d8c1ff8fbfc02c0ff" +2c23172a713b816f7fa992aef6ac0f88eed1a3d8 = "2053f0b64771a8883845e203f723cfab96f734d4" +2d1c5ec56fb95854db6e6777d51c04167d942409 = "c0946b39b9c64ff938df063ea681f19eb817db47" +2ff3d8ba7a14e4ca548192d94afad0110d7d0d42 = "93ad3af0c6be45312e74a7184d0e2ff3bb234e01" +3150eab30f7589fcc5ef9a231d1a746aaa3788f5 = "8f4ed1d13b59ddc2b863d1ac8c4e65412230884d" +3447388ca7dd037e9842650d78bbf21aa17fdf8b = "ab4f78f465d8e9e676eb4832b8a1697d7a6bd949" +3870bf1b1d3ce4b8d89e927e45943dfde23b2237 = "5a784b9976bae53c3d190e35780bf03211ea021d" +39633325f1d553b3973860b766e0690289280191 = "ffc08d7e3175d863db03ba131f8c67a3c8d8eb42" +3f023145a05551dca95003a43599b64a94bf3ae8 = "80a564a03eca051290fbc2b693d5497c9e8b764c" +42f08938de0caa6c7807e55825c2b4c8f8a62975 = "dab06de8ded0955fe2fb05deacf7cdd464b30462" +4512970af3fb8470fecc1f1e4df39459fc216c24 = "dd27d3ae872360e7540c263e89bb7c10a5ed3210" +479f257b16022a063cf1ba93538bba15e104c9db = "7227fcda85dd0ba7caf5caace2fce94f823999a9" +4a867fc474572fc7eb119af42fbaf59a016d2ded = "932a396f2cf8b7803872620471b7176500712ae4" +4ae660e0c414ac283fd2bfaa8154a8a9a5a4b3b8 = "4debd0edfdfd899d0a365ca4cc6a0241fea94b2c" +501cd52a902322dffa56e24f4812bb65ce3147f1 = "7af3b19ac459296d6201af2234433fb7769b18eb" +5b4debd38964080c9611f005c1625b0ec881c93e = "55e6d3e151fc4a5bc16207c5d0885c4ad9a2517a" +5bfbaa3173c871819b0977774ac7f0fc8c23b4fa = "f38724f964107f20da0d51490848f74038f6f86a" +5fab779742aeaedadc1e895b6af0de4db9e207c2 = "3957038ced3209d40498c7a8f3de6d9e5c06b0c6" +632c120e184f055fb62e1d29ca330a45739feb4f = "a7d144bf259931e67bc5e51018f6ca2bbbf893af" +64230dd31ee96531fbe9d3600cb230d6aceab137 = "705804d6776cf98182ef0230523c0c305ed08f25" +6698fcf6efcd7296d213c5dd1c2789d23a067f32 = "43256c6d430b6405fd4ed0186e8f69a492f854b4" +68302a40b8eb9f85509da3e6b4020ecdec50dfa3 = "5e9ce30813dd12f50a796637ff26609aba204a32" +6877b6fdf25dfc428804b4db44c1bcc76a4b2244 = "e342de0dc498bfb1a0073c29a799cd4c91e29601" +6904cd5dc715b712dac5d7e0e4b746af5bff956b = "16128cdec4e57733aec6b6214bb56d2f8c902fb3" +6c740ec8b7b642781a42a948ea517fd76757b57a = "af784bb553b0562ea6f57e1d434e2f8ffd3942e6" +6c9afe5cbe8458d679d9f57a507866d2791250fc = "5b6f2915a0f3adbd487a6f59aae288d3f0ae4813" +6d6fc881e8b763d3afca1f895c7fd3753d78a68f = "6d00188bd802c2810d7fd7660200409380cb3bba" +6f26a99a4f3339408f5b8c67e3861cc542584fea = "7404fcefdcf93b5ecabc9fd3e217fcba641c5763" +8a694b0944dff2abb1b0f584f8f3508e0c6f043d = "7cad8b4b05290d1d4dede47efe77ba95d1abcf76" +8e60bbae5bf4afe497f869623b2300b797e95727 = "18a590ceea822890c63c9e7f596ebe8a8df1d64a" +8ef144be5726964e6aa467892b86fc647eb882a2 = "c4bb1112f29be3367df653bdfca053dfad16e6e1" +8fc29bbee7feb8907e48d4ec7a554eb017fa1bda = "1229c54d1bd596466e94db3335a1b3b8babbb8e1" +906f3fee95a5ff2cd9a18a5e6fae953986051480 = "c81ff76d9b353e17e4b9bb8579dd34cfc5d409d4" +914126865e0f3e5dead5d0d01b1c01d8c6b9ec9e = "72f8bddaac5226e05b8aa5e366ea0e249b1cffd8" +94a1b1e75581804395ef953dc9018373bd02b7fd = "5e0266358e1a00918926b56fa97e59911fe74e89" +96a2b04c2e390fe1db18fecb2f017d6bf98deb09 = "4cc46d7e97d1ea88d8098c8e61cac4692901c491" +96ad1acee67bade8709ab857381791441a35ec66 = "9af80f0778589b95a812bf68e827e6d49eb616fa" +989a21745fb2e22fe28d914ffc65164b9349ce7e = "70aee3a7f6e642ccdc24eaa0e86cb6df8d4c87a3" +9aaa480e088acfb6c29f8ff036552a4ba437067d = "8912e7286b8da84904aaa1c0c7226c6f2cf9968f" +9cb750cac59b93a3090f265d09e95277906e563f = "314b96546fc6ed09afe383919f162218647df9f4" +9e76fa0cde0fbf64fcbb0667d3ed59045961ff61 = "5cc2ae86e4062a8f84ad5a7c209c673ae8277f74" +9efb3eebbaac24a6546982b1e9b9f8f9e41416ce = "8a58bc3d54c73d37b5b6b4748a340d1168089781" +a0b351c7170f0baf343c5b52c151a7d3d47d8c6e = "5d82b648e6644a04d50954219b0c66c29d602f54" +a16c6cb8d63fa3360dd9a72510c9e2be6f3c81da = "1d450fdc4d714e4dc798726af32fcfa9bfddcc1a" +a17a7cf9ec93f5b94d3305e25217965e478d1607 = "54a5988c97b2b427d3ae5a7481bc2673b27cd53c" +a3ebf2c295463e0b13246a432d8c579dbdcfda97 = "a80d4d296f6f55fd0f89149a2be2dac93a729d44" +a87e73c99519fa04cc4e29ff10769a940cb599f5 = "d584c9d1d0ee9e163ee9f91a586160723fdc32b4" +a93b577a43c48f8a37d235dc98ad9a4649d58dfa = "c66ecfcf084a183bf371838a1ff4897bcfcd6dee" +aacd67dc5208c09f61d45c2eaf6a486dcee4ec91 = "8acbf33ffc54603f6cc1499e0d347760edf708cc" +ab4562c0923e2ba2ae678845a38fcef0e654eb4d = "2677a0469ddd36e9b87004508c01834dbf6b4584" +acdf0fc473830c5582e9ebbdf6224a47e286fbd5 = "a0783829be83976d949918d8cd42351792a04217" +add0c62b4742defef960c304ec4f591bf66a8df2 = "86d121cd6c2b452cf1bad0fe8384566feb965e61" +b01f14c54d2b0c71fa1192d2d3acd88a04c556e6 = "3d9bf3ca1aaef9a2ce8f71e9612c76c252a8f743" +b8eb4edade8ce6606826c726ddc98c35bd9160b5 = "f30f53e1be74c6ebc09a366b5c89f1f3a8db899a" +ba6faef67425041b8c5184b2e30a3a9988a7c0f9 = "4273b8137b2d7343a80104f9570119a5ea9e15fc" +beaf2af7e57e5b14754aaa460254e578d2b74403 = "d35a1a2883de0aa8e5b4125c7d84d8894d83b8ea" +bfb736a4c69dd03b8ee642b934eac614517d7178 = "8a831f4873faea90b4157f80463ce8396cf0ca7e" +c0072ce871f40da9db11f3101e47f1a2b650ff98 = "d4e7aaf57185d58fbebfdec0281a0fc72e0f5d5b" +c12e393a8485e316ec105ed4bad198e1adc0ba33 = "accd10e4b19cbc4fe39fecdebcd01c434d0c853f" +c24fc48145663da081f0a4f63417d3bb5851e7db = "7fd6dd31492f4efb54a7c76aaa6c33837cdb870f" +c3aa6a0c084f00316f5819dbda1e02d5ecc641f7 = "4c8dae9b2494b29d29b270f818dd4e44cf4bdfb0" +c455c6a56a07b72967525b09d997987623c19428 = "e633d94637f0831911d44ca82c5a8a00aae4cb53" +c4b6925cc9414d22688fb2b18a389d4fd98928ed = "f94e7e92b2cc840bafb0140775fb8e0ab812af04" +c634c5ec12beda4661eb4ce5d0c1334e0a81cbca = "834a02a40126f79462bd05a9002f3010fdfc4c1d" +c6484896967ee2907f9ec28209ab74da3a1326f9 = "b732fd6dd694a85d83f525dadbbe81e93fba18cf" +c6b78123b0dda63261a8dcb36d810514b17387ff = "ed726a3b2d48c2ec6617a20128251439cf3dec6a" +c7c23b476c30fbb33c84d0e78fbaa27814db52d7 = "28da4d17604360677c07a8238ff5abaf15cac6d2" +c97622be5fbe1b81ba8120c162c59041dc4064d7 = "5ad945231748389e0e66180e9031d4b7bef5a063" +ceaf86b2d7a02554b670d65216eee42f3d3151bd = "a51edc17d541d4d51aa089c6705f92ecc255e0be" +d19a8bcf0ed8bfaaea447898c64f53b596d23565 = "aef959ebc4dc38234e16e3620abfbe282f41d81f" +d21e147b95c3b0d92bbcb8c7347a86c820b7e59f = "fa95e6ef4580e9e754e0874cef5cc4d5ed06e59f" +d2fc57c8a5e91212f7d62cf04d1361c82cc16582 = "78940b8a7dbf9d5f9db6c363d8b70cdfea30a983" +d334e0080d87d480a748fd51a7c392378d664dd6 = "78d8d58b1e5b47e8031d9094a02a628817ab47ce" +d6311fba3dda9f388552b1f14950e723debe32a0 = "001e59bd94c416a30862a4844385243bcb3156b5" +d8e3508d5fb4ece082de86cd1eab729ddde6be66 = "6683649f914642a583c8640aaa2148d669e2f77d" +e02e706bfa731685840946b0bde26aea05b19f19 = "86f69e86721eae0d2ffd8bda09a8115a2bb9d17b" +e0502230e4035ffea48f2721b7eb4056cbc61e9b = "c9392cd73918c023d0e8e98683fd68764d3863aa" +e53b41afda55f9fa2831ce0c763b3aa72912f6f5 = "ca380790ff76b367035385a4f62fba6a281e728c" +e7dbdbbc009008b61a79201f4606ebc8a42f461a = "80bd7262742c2a27ee02480b3cc024f76cd3beb8" +eb6407fa944217466fd9417ae29da3192b83dbf3 = "97f025d868d332b86acb2715470d843bf4cf6625" +ec35c2e39df980867915d984809272d611dbde8d = "0c3d57276bd3e49e47ccad8a4a9eea99a29fedad" +ed3db0dab6c2f1137919e16fe159fb1da5af9392 = "fe4aed9ea57a93bd7f8aa2f4df36e622369665d6" +f248d2f81afc9f9d1053ff837bfab3b784f5ae18 = "a1fb8ca9430e5a94fde5d296f75569d1e1e8cf06" +f4fcbead76570b980cdee5d19503b08889f32307 = "9724ea5fe2911efe0e57025ea0524e7cbee27fe0" +f819bd30eb57bd5eafbadd3f1c4794bc744bb0f3 = "aa4166263d4ac944df56d43f576ebe86f52f81d3" +f8604332a5a4c3f333cd69c4ecda613a1e08fc4a = "aa4b57b7cbbd757884914cd40edb4aa5efeedc9e" +fa37a6900fc9ee6a7d5324d6a622a814a0cc25bf = "df079dc5d7878d76635c821c9668fd32272524e2" +fec839aea2f7d7effa10b9798a675876f0109ca3 = "51c55e2cd2729d3e5661978c4ec12716b252f4e4" + +[d4b734c2-cabc-57bd-991d-11b386a60271] +29ece42fb6e0ac6677c40a0b6105962b5a6d73c8 = "c0777ef75ddc67b39bdd2a9ef857f7cfd06bd7b7" +c6056dea665a2822abc0a0645525b86fa45027fe = "1ef13483fecec7f66e508a8c98ab3c199c22b972" + +[d50d9232-525f-5d35-8703-6ae49672cafe] +2d4d3ced56eb345a890e8083c44b1b4ca3a2d724 = "72282e9d3cea974e0038a6734f8b7df6ceebf1cf" +38df34da5af0d341aee2495cd53a7701e448f9f0 = "0c198da47987118dcfa887c8b2c9aee76696377a" +54e9a90bd5b5737358a327fda70abc37809d7161 = "cd4feed805d7f7475a6193f61ea47d1c5225b690" +5f4188289d0aa6b782ad6ab94720198edaab0d46 = "d04b7d6c19caeef53b13e3c8310d86b14b01bf2e" +6a28cdb3757463f83d36fec5d01ec0cf1189d3e0 = "d3d07bfe798cbf130b2a3e78871849f6da6bb6f2" +957925524e3fb67d20a28277673ea95e7b62e731 = "a5be02a9e4bc0bf4770d7167e92cb5ed65976ca8" +9d1febd0ad911e25706ee728aa3e425b14feb816 = "c2c8630e659dfe00df4ffecceec51419fe11a33b" +9e37c18a03cb438729fbaaf3eedf564d4f84a2a6 = "5552c8dd73b7c465c6a0bedce97310fd146f2cdf" +a493c5470820e86a1ecec8cbfcb2298b733112f7 = "3cd14a8a8d8e2a75e9a9725d15c9c363d8419228" +e6ebe0b3ce77b6911b42714ad2dbd7ba14a40833 = "bb0d95739be4c92458c0ebbcb6fb90bdaa8e3a27" +f9eb111954459c7fafb337524c5aa8e30d1e56dc = "da43169827c825e2b05e4567ad8345028c3896db" + +[d519eb52-b820-54da-95a6-98e1306fdade] +1fcfa6e26904e200d96e49ae258f8ad8d2391baf = "3d492980f158d808e1e3c9db577e47271ad4c1f2" +452290d4151675a4b13ba1f0e0fde9b604dc3411 = "ae31582928b3c16a8ba3685825a596f8ea02f471" + +[d54b0c1a-921d-58e0-8e36-89d8069c0969] +1ddcb87152be26964183bb6db58886ad1303bed4 = "a8574184854ec2b22454d6075cc7e26ee0fb5615" +b7c046c4a41cdd09971d3a9aa7fedf400bf19c76 = "d48e0c194d407f2075819311ec120e7a217185cf" +b8941389afffa620db36563755e219d3d3903b70 = "3eb1a571139f6227693349f61d9d7ee06b73f3cc" +e9bb482fd8cc5032b6692d843f99d3de4c8e93d0 = "57fc4f5c7d084be2ec90177aaf8892ab686ef419" + +[d57b5e41-28aa-5897-8163-4bcd89186ad2] +003e380eeeaee57a2e84c950706fa4b5a646bf79 = "cc8082f741bd5b1c8b6ad256f08ab7b8da0fec94" +4f3eaeb50d7a23f41826695d8a0e3fd5bc1be72e = "fe67aaf96b51ef5a6e9a054738ef453e00dad288" +53a1a4558bb412c2793b736c0eb5cded8f743957 = "4bb7b151db0f039e72823abd64c7e17c31b4d94b" +5bb4c012a7efd6f24289d5591f55a844d74b336d = "e6a97a7ea7a1872c4525205ead759f8cf99927ff" +5be338cc71c39c3a5a9f202321c2fa9fbcc1767c = "6d38ad8079943c093a9443c3930a32fb3d1e591d" +727dc740d1fd1e99e62817ce2955ab15f9f3051d = "358da7770c7310a4c391191b9eba4fb1b9fff811" +7af0399aaeb46fabf1b7e8212edd78284e773be9 = "9e6a8f76e40510edfc50527603d0cd1a820fc069" +7e00292a889a374ad29b99e7470a9ed1a3c32f0d = "4d273c3159858bab64f8be1fffb724436eb25a18" +91c1e755ee1aa6f758b48716426d9f71dc9b2010 = "1ebcf88a5be0eb176a4247b7765d706a0c4d556a" +95cfdcf39c61b3d769c04a583443c44af971553d = "48b77733b33432877540f923173dcdb72240e9b1" +992909a784ea278aef15990cb103e9bbdfc8047a = "2a507dd604e64a492fcd0f154d2d75e065e7e932" +aa6265815b407f08f72aef9420932470ab21f410 = "d4c86fb09d870d6dbe4e9efe9d557c76154c99fc" +aba9243b11a21e7eb77b0eba2fd16f19414b62cc = "985d4be6323b34315321b043e44ab1ad1d1a4a8b" +acc648923bb9b044d3e75e85de5802f9f44aef3e = "1b5d92fe8fa21744bbc7d127ab991c0dab63fdd4" +af6d35afa7327ba89733b9b3841b842a37e1eec8 = "ebd4706a07d6984036e3d41f7f877645a5326398" +afac42751bb1ad67b722bf62b7eb013cb65beb58 = "79acf73e2e7325b4549407712dfbe657feeb1a0c" +c764d72be8dac01e4939715a9228a10de9970ef6 = "04d49c03240ce7e6c53d8ae733308b59f3b96cd0" +d60866373873cf23f22908902fa219f8936ad437 = "ec80ca0873d3ba116c172971fe030645eab5bbbd" +d94a6a2693e7dfbae9dc6f3f4f8785bae857745b = "5c4aa8910c0c347c8b60e3e1f6d1277611da7b57" +e5e263cdc04bc06cb6d1d4d75e1b8495794d8e4e = "9c8fc23a029095d1c60e772acda9f2ff4e7a171e" +e899213d35bd04e19c4c0d3dfc14307ccaf39074 = "17bd5a8520d6c779f612c65b57f001fcb06a7120" +ee74a552261c7a4c5d548dc07a0a2abbd6eb179a = "8497998b77fdf0bd0cbc2856541781e0ef1ef3ed" +f18fee9c2c76eb228d962747b2d9da83092e8ea3 = "dc1986e6c6fd49f67ff2a7a2b68555b32b82a16d" +fd2f466b0476fcbb417ee53e0983140e1258328c = "d66877baf18d802a3bbfc79854cd4b3437c54d28" + +[d58978e5-989f-55fb-8d15-ea34adc7bf54] +09f122b70450fdef4a6b9e40329b3570a8a37715 = "49d721c0457bde93ba05613f4dc6c4903450d81c" +29826cb29d42a1ff7457c18823266afe134d637e = "a17047a008fd17ff7d0c31985b380314cd555410" +5328a33d21dc70808aea66fe12a0a0f003b38aa3 = "3ae1f1219b45220312a7020fc63155cacf3bdd69" +6a9054bac7ced62525f0c48e6825cbf4391c45fe = "94f78692b60da14cab93bfd7e1f989614cd77e82" +8a55b5250c758caff1541089487072f11222ac2e = "962856c373f30490d2172a7ab6f0b7ebadd7755d" +8f7f2b199483b049bfb44c856eda2840cc108695 = "2396ac0b06865a6446b02c04b5f77df6d32ff769" +9ea33089b9659c38f6d4b6e32604f7fd4571d143 = "a58a6b7f1ef50301729f641438bb95a0e2b684fc" +a5c8fd1a73e7b4e830e57be968b55a960b7b419a = "20b25ab512494999413a87da3d695fa8c582ea74" +d27a967f647d3bb55289b99747ed9c83af912920 = "0fa9e30f49f98283f1b027d365b8e159820d4784" +e3251bce6b6c78292b9f170dc97f84e95e85711f = "7829b9d410b4db855877a5ab3fae3d1742f2a77d" +e7187cdd9567b21445672061c639f56b4610a2af = "560e4a00a28f579532eb25401bed129608e6e649" +e74a064884311679b1349ac15e222bf96a8d1321 = "c296fde6430f385ef219d9ac72fb8abdd563f062" +ef70d95edfce45f90ea07ab4065fa01eaae0d8a2 = "080a641e172e48b553b1c76eb7a435a8244a4ac5" +fbc47a945ee3c18ed1c1df44049c45d3541d1dd0 = "bfcfba86eb53cca9ff2539ca310b01f217fe4acd" +fc4f5bfe7f0f997b9e5e6fcea86bbda30933c443 = "b702f9c98be3cd7546ab8227920584a0fe16cddf" + +[d5c6182f-c531-58ad-a49f-b21bb0b0be5a] +5b835c88bec95057ff7083ab9b7658659a0311f5 = "b7cef58c3758614e8cada68b9b728b6ed7ed9280" +96b8c2346633079ab6fd3318ec4bafd9932c2ea1 = "8db757dc72aec3d0ce44fba5defffa6c831914ce" + +[d5d29a5e-d8a6-57c4-9e60-9d46bf32806b] +5f2f88916866521f0787b88f4a5ea28b5ffad07e = "6598023cf8bc992b0344c165d6f415fc9cc5caad" + +[d5f540fe-1c90-5db3-b776-2e2f362d9394] +5f383dd17709bd8e61324a5370c07e75639cb504 = "dc15ba120c750f1ef7210243794b7d3bcc03a7d0" +99faf1fe796796d06d9f0cb055c3b95d01efb7e7 = "13fa2f846e923bd28115504ad041d3a9c2bd04e2" +9f2fcc67cb817da80cae810e133afe42cf8a1592 = "b20dfee859219aadb5dc8f25190212a25d36173b" + +[d5fb7624-851a-54ee-a528-d3f3bac0b4a0] +07bd4de7d5c3b6e498229bf2288a922c1967ae89 = "0432c421ac2867f64c1af87a06d9a881f396cf2e" +177682192a03af0524774d07b11935bdd3bc18ca = "9c6689b7fb60b10a887d0aaee1abd2dc189591e6" +a221743dac513b1c852844af8d596458fa4d1bf4 = "6978cf6dcef0f272cd06d74da19eed9733719173" + +[d621b6e3-7715-5857-9c6f-c67000ef6083] +01eb85e5dd477dec93b50ee892c1dbaee272b997 = "988a830d3a29e69b1fa91a08fa88e7902f731f37" +159495d00650043511fc2d5c23fcced242780e2e = "fbb665e47ea5ae6c7f9e902182a375de58dc37ba" +1c0b48fda03132b02ef0550cd637785935d80eca = "193bf2924fa4c4dcb409fd8535eefb6af37212f7" +1fece61e7d9c97cc48e824156e9830201ec6bc8b = "4383d661142900e0c4f72ee5e8cf5e86932a8c8a" +2e2f492a8d7fbc03cf55473fe4ce8e377ff422a4 = "a1ba030325b53a7ff4d53f2aac34d00089ecff97" +3150bc695da375771ae235bc492df6916f5db61a = "71ea91f779cdb0447e353aa3855b11b45482c58f" +390c5e4bcd5e50762d30192ba7a9ec641b9b7ddc = "db0886c03d90a85166fb8e5664af7cf36ae19636" +3f722df01a93204d9d7990749227bd3520db2780 = "8fbcae033d2d108781b7be2d58e993073696dbbf" +45843133bd2e074be228e702a9a7c9b55e031efe = "a04cb554b9b850877a535c96be78066ad563afdd" +49ae22510c942f2e29ea0430ea9a919e4b2741fd = "c823406e16fb7d07070ca3983180aedbdaf3676a" +4a3a07c2c840c7a4e235bb1d2ae62f76a149aaaf = "fa6f8261e1f97190a2bd8f958c16d62756c95eab" +4ad8f411678c0b169e4cd6c6e0534eb4868092bb = "7aa4ce80388956e324176fd59f19171b279576b3" +4af546dc3f194e402f83517b299406701ad19592 = "a1998dbe1c964f98a648b39a80c3fb4dd75a3e1b" +50eb702310545f5e02e97e7a80b8d83774163396 = "feda6f6bab1df19fc92eca90e4e3dea467ca2a92" +67f3b9aa91d20743256bcd841d89bb8b6b5b4920 = "9d167da2b4a17423735eb76ef28c5757de04981e" +69c93553f6d0f613a22977ca2d7815bb3b4456b8 = "2b206761f32891d51efde0f28662e2d3c2d6a4cc" +a64e94873f0d812afaf8c7c71135a513783c7eb5 = "7194e6190001e50e002776f74c6bb2bfc86e41b2" +ad750daaed59d9fbca587bb0d4fae560d0f3131d = "eb62c84e4223281f1ff90200e351ebcece34969b" +b205150e3cfe591ba0794b35dc8ff055fd96d59c = "cef2fd736a552586b2f16f725559d361f54644c3" +b85d1550529839f8adb8f960d755e00f3f001dcd = "f78a3155b1cfd469c8d6354a95bc9b7b081deaa3" +b8809dcc0ce9e63219cfd8fdd357c39b1ad69efc = "033c35a5b0a0adb4c376e000fd6edeaf17783885" +e41f2b05eb04840b535d3848ff4bd6f058cb6b8c = "88497dea018c590daa59608aba85e6b7c10a6bf0" + +[d634bb24-9f65-5729-b08f-1d6346c21787] +b7d5db8f91d8b6bced1b23cc20f1932934a9b06a = "5f90a1c5e3273e701a9aebbd825f7a1853d2cccf" + +[d6bdc55b-bd94-5012-933c-1f73fc2ee992] +06f54d76a483d12543e97aba1a720b39c7f6a527 = "5800dcc6207c2798483d35c102d0cfb51a8bf658" +07739c8a35dc00e3c3c15e61ee23d21de6cd466a = "712d4133736c67c7369201c0dee4f67ca7e07a1a" +0bb2d82380f8efb0edebda1e3a40a9ec88166fde = "200fdfb4781595bad45e9099ed76396aa23604b5" +0ece093182627991004754b21799e99a6c7a352d = "ece9b83a51b43ea0cb6673157e1c0b2fba049790" +177d9fa01897ba77b775dd9e825de2dc45cd5d99 = "7c19324f1fb68f3c8b78b0f112acf0af42eda146" +18f8d4f13ab844c17f6b27544502a53cfab773e1 = "e9b2334c7e66d4eb0a6a4571d27ad5f2c540d3a5" +1fa56b992dfd186d2c154fb994365e93c1761292 = "d1ca00eb2564fb8e2db7467b579cb7be369cc711" +1ffe5a11fe62dd6e9a1c0bfb906d4f35efdef7cb = "a7d22ebe25da8f7d648b2c54fbf68bed713c1a44" +2299349e183594e916ced53e2e6f72e26cad09ad = "f66bd48dca4dceae14163922d6275ec2a1cac987" +284939efd1b90c343ce113cb14a8ccb069644dc3 = "a98f74d1eb610dc0d329861ab4dc8c76f57adc74" +2b348784049e976d7bfae22a3a370efcc14c2553 = "59f8b952c4729174a8e88c62636385757082d148" +2bbe89486d5f93865950c13077b47c7eebc78a5d = "9cb9f0277cbc5e1f23c8fca1d00f5fad94d644ea" +2d825dcb650301b57f3dd1cc03452a96a15ec8cc = "44f7a0abd94f6650821ffbe602e52216058bb772" +2f7d2758d2bbb9123daf390b23c228ef77135286 = "54aac00ea5ef498c80f4f0d437def94e572af8be" +30ebf018b309c8036ef9dfc8e1629d9669ff6d6d = "b86c3fb12a9304dd405815dbaec88c6f95389572" +318dbd4434cdcee188d3d52a95a727be611fb859 = "8009288ce721363fff78a0dc7f522ef7a8d12d44" +31f0460929e3b234ed7f8b8a1ba71a8e4921c944 = "8ef614719dc7a254b862b945a759b5760ee7cb50" +32bc98931003eacd5e49c0d04ed4886afce980bb = "0aeb4afdebd7bca6b6ceaef0ceead577b9651a40" +33972a533ee3d937047fc88ffb300b97e8e27db1 = "82cc02460766d4f41dd81e88efb8b1163200eaa6" +349b2665673e9c6522092a6b193f1c9a7ea9992a = "576893efc9a4daf0ce8d5b34563ce3cbff480aa2" +35595e42df586741ebd045b25288ccbfdcfc0755 = "3799e9e389baa3bb6bb365fa4aebfc9b9f8757d1" +3c2d38d2965d505a90e9f18b05518447250f9638 = "d1af310021215162c634520384d18d364973a657" +3d789ab8476da74e6d14d73dc7e7d433af1420b2 = "384712063c0c2e8700a498e45356e3e3ee5fae2a" +406a56f8eb3c73d78bce3c4cafdfa61a550c9fa6 = "e1b8e481f60f917ef588dcc6cf18640513655276" +4680ca7b42d1cdb8ab8e702dc30a2f52f0f22d48 = "f38aaa4782ae21962b3113d4ac7fbc39564c32de" +46ea00ed808b720ffdd422897d9681e7dbdf6205 = "3d3158db7d7f9b7e57c20f1122b6e721c80c9c79" +47584fe03fd235b4dfba2d2f9db64595ff05baff = "2d8865624297d2ba3af2b020eb602ff734f2ea79" +493b9eed78de6a9e10c3765b7bbc8ae9b5fd68be = "296a53251aa23d321f7a0c344f28b778c3e02bda" +5019998ad297292a60727e2bcf2550b7577aab0f = "a831a76b2adfdafd5fe324a2eea88b365fec3995" +58fcdea9092236f18fdcb15fe9ad14f75b302620 = "d7ca24bd03e5b832716a36860d41c698a9c12868" +5a46e13bbd1ebf78e83fe030236e42aa2d5fc05f = "6f870ec09964abaf19ba6f6faacac5c4e3da7d5f" +5b8facbb3535266d09e376ca3875220de7bcc821 = "8ee1b9bd17627ca0d47dac01d478648a9b73f56a" +5c083cef1ee3837e359195eefefead73e6a4019a = "bff0968c3903f7f82c5297c9744f8df90cb8e960" +5c78da0e190760e49b927d1f08d5f99cc84913ab = "eb7dfbe0ee28402d632a32d8b1263249f441a68c" +5eb243362efd668b56ae398d281f5ccf529a7c2a = "82ee2ab44984ddefeb2fbc5f684660bf4b366979" +67093eb101f9a83e3873ca95bd2ba1f1657bc736 = "40620dbecdca6fb39c43679c9b085904ca16206a" +679db41f0d044e304cb862cfaf50ade188c4dec7 = "4bbe16e2ce7d4dd40b2f12bafd589852b128d663" +684d42ffca8ac817f362c1083c1ca92b630f3eee = "346f01e0066b7a14deb5ec3c0934c51483fa4099" +69699c198934957647bff0abb2ed8d5910641987 = "84d57b47fae000e713beacd62153dccb28112731" +71d6f8caadceeecaf680719a816f3de3d445b5f1 = "6bcebe66eaa2248c0b9b698af8ddea5c2da03562" +7895518216d19cb3660ae65d0d4ed81cf18a2eed = "96fd23cbe2afbbc23d57d85f8a65bca36102d206" +7ec7356b1c709891eb36c15fa82c91f8d8a6ec21 = "9f3b6e05dbb8d2c983ba7ebb74428b39e01c7448" +809c73984cc4b7a65918264496feb478e041812b = "70300d79bac9b10f0174670e9f4fda0ff182ee7d" +870186bb8c73017707e8585cb9773bc486ad3490 = "fb89d0ab2132bb33fa14987361ca1ed42a03ffe9" +870ea0b070de51be633cf19f7979f77f5834760c = "b9aac8977f2891189f16223fa85a3e965ec8aa40" +8825bee8ea8c96406526c1b67345f42ff5be7f43 = "bc4ace39661ecf8cf82c7d27a4a81f252403f627" +89d7bd169891227560d74ac90da30eff85b198a5 = "cb34b790abb0ca60408d9a57921a05e8998996e2" +8b46867fec672360a62fc7e055929dff9103883e = "fb3cb2281ee7eed9fd6aa41ff70ebe302789aaa2" +8fe02bd9b4e51b6edafeccfcaee730be08bb97f8 = "260b633322835db4803b97570c541a7db19a00e7" +90760f55f08a253c7a05cdf9086d418c1c24b21e = "34ae301978fbba3c883ac431e9e1e47eedde6652" +9261d79e3091b06c51aab46d326b7d28633ef92b = "1c06dab1284f1b97474bc7feeaf05da4e1846679" +95643fb0a10e36fa76e8e51d0ca8a90d81d1d4ad = "09e64de3ef9cbc071c91ddb6fb8b0b61d151f090" +97845319c5032002f5a628cb4974b9c439a0c138 = "cb4e2080defa35f98acd8f193b49e3031052a4c1" +9aff5a9b5757090ec4034d2d248293940b948a9c = "14d11dfe16522e86c46995c0d10933c50254b9ec" +9b0e19c74e34232c2ed6f65b63639ae05d4eaf78 = "1ac26c845f10a93b71543379c999b7b9d4272295" +9c4f2a40272cb906533e82a1a6dda64fcfaaeb62 = "59ef05ddfdd9c604cd27fe2bad68cf557463750b" +9d599594a26e3a9e968e1542a7d1cde26065b998 = "117344bdd47308070d79efc44d02b427f96b0724" +a3edeff689514e298640a5740e823c0dac1d72a4 = "93c946834fa08ec2fce74978491c39f78ea10ed4" +a634b00244f8c58313f15d17abc378be15992cfb = "ccdb670545397e57e413e23ef5c4f1d026020a3a" +a6e33d857a1c25c06a85f49662560d5729347157 = "54f6ce76ef01a5fc421465bd47065698922e8f7c" +aa4087d85332e01feb51ae5b153aa31f81369c81 = "fd14ff00ee70f6f7f5b28887fa83c7805995a083" +ae5fac714124f314e5f867857d45f7dd8bdd3ebf = "26e6d96131994ae52f32de7300d31cf30be58333" +b1bd3a06ad17e38f00fe44ccdbe1b2f65c57cd2d = "e85cf370ce21b2bde93a5252de6e63b29656d17f" +b78bed5941ca35b9a1f6df7c149712b005a5574b = "a6d0a7d8eccc6a8c0ade6e7f4b45e6b755b43e51" +b7d05111cfb7979313981a572d421abc0599613b = "bab1475c325ab4caec3995b4e25fa8bec854e186" +ba31d323335994b5c9fd5b9c87624c5669428805 = "544ac1183f140e97c4d7e3c930a831b94a0d0872" +c1ba298187fba8b900b309e1399b2579e43f5896 = "f7a91d95ce62c2316eec9c2b8beeb6c7dc89c708" +c20eb3a4cb44371c8ab207da82dd1810c2e9b1ab = "7330f8fd1cf37031ad5c0df9ba9cc9c6c844a2f2" +c898a14d7cd3081904950c442f6890d94b18eab3 = "7ebd17cf220b703d4a589da62d5041ffd2188cd9" +caae69cd519007fbbae7389cff3613a7b4c016cd = "ad15cb17f4f27c92c06ed3352aed9588812ff334" +ced775fb2e9f76ec4cce1b379b5eed60bbdf8f93 = "474a3a6d578ffcbff503da4a3685ad5d97e1ce46" +d3913aa4e7324b09f2a133681141232c5272cec3 = "aede0508e993cc9f41637c705b6e196cb4e2cf59" +d3d58273ced974eb036ca9162edcfd75981e8fa9 = "3e4d2f37d720248a765695501b765b9f9ca73e21" +d6f0097ec4ebeb8d5e36d37ea2aceb741eff3b9c = "15f6374331c70ef14609bc3776c3fe13904f8c76" +e14a05de4b7b5a659cbef50dd78328ff69a47656 = "0ba2ab0cb01f83dbd044c3db0bec86468e6d292c" +e1f2aeabb2c90ed676ffa6736017a7aee1e9a896 = "53f092066a4f6de4276b0d578add1af3052a10eb" +e36e8746d1bb024450321b3a15d67043ac41a771 = "4c0a1c99b96c1f7d24d4e0c8d7ada673686dc556" +e65242c1e9d1d0992cffdad21bb5813ff904ac1a = "645584968647732117fb78dd6d0d26cec5c74f70" +ea09417ece0444628dc170dfb7612c50dc422481 = "c01b08d27d8a2471306a355cc4ed33542d360793" +eab0298d26b0a5ce46bac64b0707fef4e2e78b4b = "a70858b336001f9c55c76fd9ca771909ab35deed" +f125e1adc5432ba45f52829cd5aa5145b425b1cd = "ef80588abfa78a2a20f29fb8562095e8e881a3ac" +f4e76a02178ac8c6c88376200d2cf384076f6b85 = "bd243c8796c5a1b8081e8126ce686ddea814b19d" +f73e02cc4aeb5cad75187d850194b3f812a3db2e = "e3c2adf5670d4ce8e7224b756c59c5fa312c300d" +ff6c1c22e3e59cb85dee63ca1cbf83f6ea652c87 = "5767eb225316a436c273f038fabca3a56b267fb3" + +[d6d074c3-1acf-5d4c-9a43-ef38773959a2] +146fac93d32aa3a7c3c7e158ea731ef1b967708c = "ec0de9d946c81cfef3722b299b6b7f88f0c08515" +26b301cb9fc5bd7929e2d333ebc52bef7222fc6d = "8b6418e6d7459f440b7989421de266f79e634631" +27322321ae988a22e9e140a7ad1c7c4b9e721c7e = "4512654493bd03cfc4b287ed5b8cbb2a2468245c" +29f4aae488cd5d8fb194cefc98e431d1a17393c7 = "a03fff71ecf6aa73f10ec7926dcc16fc944f7e19" +2c3b2ba27d067842a4b8dc3da7f16ae695215f2e = "d2e8d30816e02a12365152b593df18a5b3891270" +2cd2cf5670ca75c13f92a3778c8c632438ff6060 = "c12e24c58bf1d848b1e2c57d33f1bf0a488a3b0b" +307be308c1724142799d93b63f3654ab7be12a1b = "4bc418221f63b45e00d9e0289502b795e75110f5" +42de0db1452f1b53c359f22d64f512f25e3b6616 = "16f0dd97466abe5566075b775e47eaf0fbd6190e" +4dd0287709762edcb1864b3fd23a3848e00a2860 = "80a2e7f1fcf6634cc3eda4dee26d0cbf82b58cf7" +5d4ac3745bba6859c15c761693ebbeadcedc6fd3 = "7b4bcc95ae6cdf9f4dc51732a63d9fe9e995f707" +8c5d40085aab36cd69be4f0772681f8409f11b87 = "53844a10eb3622b2510331f82bfd13f1fae3fadd" +9d085b209ceb67dd48b9414e1907a1035024455c = "25531c3442366cddc8c7b9649406eb66903bae9b" +b9008d8feb56bf3032ee8f48abcbf449e54b80e2 = "cb15a5bba87f864ed7ad25c46da1e170b3e010ea" +be4f4c6e24c75197588d64c8b94240178143d53f = "60962c97636bc09217acd0683277f0c8050b42dd" +c1e6b1a8a300fdffd782f733106d9fc563124f64 = "595d5010c7a4fbc15cd657abd8cee010e68b6eb4" +ce38d789e8bc305aaa363c3be2f93dba3b2a0ab1 = "9c72a34347f58c84169626a6e26de8f7f56e74a2" +d84b8208596d474c3c9fa26c3c0264a3ab0392e3 = "b608428f2bb440d027b13aee849da23769a07c95" +d9754da938c534e25430ebf0d8913cfdeb441b8c = "880519fc84dc42251570c02f0a742976c2d4ab8b" + +[d6f4376e-aef5-505a-96c1-9c027394607a] +02e48e287b73c2cdb150e63cbfa4b34e2743461f = "f40255dbe669bec450adc742e295275259d06b3b" +420fe4401ddfe08d8d341aaa8b82f9529731e7e2 = "919f1402cd7ee93db403177c3fffee7d74bc7574" +738cec2ef21210cdc0370673503f74678ba31e9e = "5b109b3b646a78edcc08e5f2009663d448a0a257" +b733232847212548ec7c09356f53eaeb2e59baf2 = "f34c4a85464c6e38ab6d40d3ab4569dbdde1d3c0" + +[d71aba96-b539-5138-91ee-935c3ee1374c] +0a03afeb0858277253db484cc1810899510fdd84 = "c475fca665723363fce2b9b8fad3ace0e9bf8c45" +429ddf8264da159d5cabdf412c9ddb96135cc19f = "f5e3c3b4e2c6f1d12b3b2d9972e04703f0189753" +dd32c71ea37401d46f497ab3f89d201216babb1b = "2c0a159fbbe961b9eaeacc9cd72566745fb03baa" + +[d76558cf-badf-52d4-a17e-381ab0b0d937] +93f16e107878f59f91a3cfdde3773c629def86db = "33332fafddcc8864f7d6c6ee31708b5cc0f97137" + +[d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2] +1473a64215b18a79d7e34d35036ec9a562c212c8 = "e3ad799bea351b09be745d395acb498a317c17bf" +2ffbf6eb79929e54deed706fd84ab8e3e74bf79c = "e97b231a02e5cc9b6cf2374784cf43cf0cbd1afc" + +[d80f1e47-7c1f-50ef-848d-735630893f00] +99551e8476094ca54ca5ce081255d8ac8acee80a = "9b6a0d80e9ddf3331a847ee7f096f1683631fabf" + +[d8164373-46bb-572c-9bed-61caa11c4d4e] +230759365f948763da9b9811318290c69b911aac = "8a8cf7fe66027003f54404bbbf82a904dce9b245" +9dc91d6cae1e6d97657160dde9fa8910e529f4d9 = "d45156c5961cba093e7910f6a88f07f439f9f020" +db3ab1e336e1c7cbcef39213a5b9fce48ce1609e = "d8220bdc13c3043a0ee58bbbd907a54054f0dc0b" + +[d826f7e1-9945-5890-a92a-4078320af7ac] +136b240c0082461b206b32c9f7943b91b1eafeda = "be430429dc6038c6eab0fc14d32f52cf79ddaacb" + +[d853e229-7c7c-56e9-b6be-9a1acc5f13d9] +7af359f7afe3ce0e7a54472a16dfa1da9cf7c53f = "e45b682945b70b7a4ac615c94f2f475f25848039" + +[d8793406-e978-5875-9003-1fc021f44a92] +24a24a41b367f9c9b62cf115716316e7d6b80b7b = "e6853f0b6eb584eb4fae21b63460fa63591c3309" +76b59ecd0b67464ca3055d0c0de49b3423b02e84 = "8f5c377e96f02186410b4eba2bf4633f4364d2aa" +98d7b327448456df024ab87243520f972c715e16 = "66e9c5eb3343d73a99cbef508268e9f2c99ad9c9" + +[d8c32880-2388-543b-8c61-d9f865259254] +230b8b4f9f16f305235a17414a4886f111c0030b = "704fafae8eab50ef7e022e619574e3c632c680b2" +bc696f5238273c08b46a13fd1655e900550c1fef = "55cc90bd6938d1800b9b8856a6b89750fe47f882" +d26fd688b677a362c95cdaf0012cb66fb2b606b6 = "d212d92e6df6ff98e50bb50e54eae44a4aaf9622" +f83d17d3acfc208f137e7bb9839f513c76394e89 = "11eb3cf8969abc98854c244dca40b20b2b852853" + +[d8da5c1c-6f31-57d0-a642-102aa94a823b] +06e58ea1332fa884deaf3813d2815889369e9876 = "593f152698c870719b4789aaf4c4b760e5a600df" +85cd17d312f6d5159554a10609332387cfc91e27 = "7cd15cd2aa75efa6eee87985a399f757cd175d1f" + +[d8ec76ca-cb75-56e0-bc18-de076f20404c] +445960421ad1742f1aefec76d4002cf50c42016b = "3300f58865a1dd6150af7cc33cc2ab5b65deaf90" +9d9279f0a0cf36d5a21196622323bc170281ab42 = "5ffc8f8e3a570b582b3efce7bb6e5eecddcbf2ac" + +[d96adeea-2b6b-53da-8516-10ed6ead399c] +9f9717e330fe49f5f913a08be89f291d1141e9a9 = "a6427df7b8d55f0b86fec57328ce942c4b4b3146" +b37d61b8f52ea07db50f5ea3d2ac3d380c1f7620 = "ff7da35aeb28f61c7224c2e24e8b9eb80e36b0a0" + +[d96c52c7-d281-5098-b696-bf3d449cf8dc] +81fbaf9f8a9634d447f1d6fb0abb1727df5a668d = "ba23c376d9153b100534a8b6fa895f7b27dc59b5" +893c7c958fe86f4dad0b9b85eda06c7965b08b94 = "1e548e906a9f077f522628dc9ba692920b933a1e" + +[d96e819e-fc66-5662-9728-84c9c7592b0a] +22f7409af45d2204a1b58e63ec346d5dec1e5edd = "199fef3e3d98dfb7fba1e2c7816d54024d5ccd97" +2cd9fe6f400fe0d3b9c39c29cb77c70951585080 = "975c0eedc7d52cb3a1db3edba3f6471df9f4a791" +3226946dea5d5d19878d6a8347bb46425533ce80 = "7dfa4afe9d156c64ad0f004ebe5bf3d32fb745db" +36d893413fbc5422415e99cbda34532848ea9433 = "f3badce41e966f36c6c721f17ff57f6e183b3877" +465c65eb7a16f2627018277d6ec8e02ad83258ba = "222c78c1884bfa852f2a03320efd9a2caaed67b1" +57c9960db1b56df3f6734bad7b238311e48e8236 = "e3ced6202d0339bf76d7db69c7c4f9c7ff9ffa58" +6cf741c60645d75a906fc12afc640942569eddf2 = "7a8c50fbf109725cd99213c02cffb1a4bb6e1a31" +70f435a92166dcc7a310919e4dd3665322ac5761 = "ef3951242a09566b1bf79145289234b69f0cdffe" +78727be19ef204a5dfaa8a2c177047a9903322f3 = "49cb165e7b417c94d139dc04be3a4a0475c3d096" +a1c8e301610db5cdb3d45a054f449ca69fe33d8b = "cd5c1c41b31aee03b5114e38a71d622894a671e6" +afc8843e1c4384e31b34fc699d7073575bc6bf40 = "ed941a989620b1738eb1b92eb06c5fe9e79781fc" +cb147097de1cad1dd5c089243743f21a576a4a32 = "3545ca1734ab438e72b83e604bf461e5ad1ef712" +cf955dfaba86912c7c9c132e34921fee733e6b90 = "b96f5093b071e7a1949386405422b7a47a8c9f6d" +e0a840d5356c2167bb7961f77883c764df2b4ebe = "4a54ef68828967a523a3344da4df078a4f536834" +eb0bcaab994bd65aedd815eaf53156e51848e35a = "ce29c6b2e68f2effdae63e019a36b0fffb253e35" +ebc9d4d6fd601c6743afa292b39d74a5ff5493a4 = "61a34809e648871c949768e6f81b1f9287184b9a" + +[d9b503ff-f00f-5839-a702-8ff19b1c98e5] +04827f61c17ebf5e8a8080d2b198109a288034b8 = "221b6e1c0ddd1edf9879fb55b65ae28e21d7d598" +20abe9c2cde10353fc3ca78b11f745b426aee5e1 = "18a0241959b6c6012cf086555eaeabee4d4284f7" +232e4bf22c3c831d640da60ba6d1d3d27c5661b0 = "e2fcf0700447d2b5818c5a799e1a90523aec2d9f" +28dcc56721aab661acf82ab5f900eec60ce516a3 = "c770b4b4c34fe0c1489a8214359ea208eb76f443" +75d6c981efead110c4adcf6a2eebe76ec94deb4a = "9a3f7d3bcaf48bc29e7649e7db02a13fc6c278af" +7ae77234ed2f5b37da48c07745eeb8c328212c74 = "01268b7f31d736c310742822a4156e8547d37da1" +83a6758b90777e7b6452951df0acbe8b9e11d9b7 = "4a6b8c478a00db3aeb5e36052298af25f876c0cf" +ab295333c5f236a2fdb43eadf8fd7b7dc54b3faf = "7ce18dee802697e0801080b13ebb8768d724616a" + +[d9be37ee-ecc9-5288-90f1-b9ca67657a75] +000352d5402fec3778458e305282d6c1465f7c01 = "cfe8f5efc15c11c79a51c672cb98b71265599073" +0532f50483367e108dd95d4be6b8a022ead408cb = "7c2c28520b8a75b7010dc50adbed722b904db911" +06e8b78d74d131ca54d45bf7d8a2757318980624 = "0a884059706385592047fec91c630a0c2e791a0e" +0b922233176272d8664aed29e4c86424f750a16f = "698bdf6fb7996d987b3dafe07d1a2a6e4b60bfea" +0bc7050f8878bcf99a5c602008cc37945b49c5fd = "3cf2fc4ec662a49fff7d6d600501f97887502e3c" +0fa6e7b2268e36234efeec647e4003eac1e905d7 = "679caa02645422136ac562d7c43db0430a3f7f47" +18917dc513ac8751c9305028da9df18f8a13cd0c = "8c0d3938744ded7c508cd287384407a61fe74c21" +1a73c46758f5758e8b24ec7c70bc9f9d4922748b = "b04764236db0335cfcc93557b5c2a96d3fe43070" +1b27f2a5d75cf83bea37a7ae719af545c388a445 = "db0d69fb97d9ba9b5f8fa98e3357aa0fd6a5a2af" +21860954a6253ed349e576ba3a87c3811eb05342 = "731966b13fd30cda8f419b420791fcc460e9f894" +2be7cb86cca7f83ca72c080ef3db19fa0607c699 = "4af7bc91c4838f28432a0c446437da40bdaad9d0" +3190e9ac5cf2202aa7bd5242af9c1c97b7ec4b2b = "fa272e4370322a266e2dad18d038f9442392517d" +36b029418a9a96aec5529650840181da5a13b967 = "d5dccacf84cf90e09476f609635ed4ac33e4bf37" +45ccc252328cb398e6a88b242ae379f3252f3ee9 = "9c3ed03c338ad9c3c742073f9804d8a990ae3f49" +47b41ff865bdd4c5c302fd07a3f57f456700fc99 = "eea4bef6226d4a206b44f9517b50913f1e8413ee" +4846e55d31e14f50599e7cc0c368f109bede3089 = "0616e36372b54524d43c476458a4fb80619d2d0a" +4862b9e1d16a7a368e35c8003a2ee970379cd976 = "a34cba67b969986cbed46e4ce0ef5a2f3fdd8a3c" +4af32c18c24a7e41cb745315f0a0d88a454be1a8 = "1afe6d33d45861ce6d7311f99b83ae0dc552aa13" +559d7f8cee24306e846458e003612db43bab3101 = "358c42d1c498b2e6db5672e5ad4beebc7772dbbd" +5a2b85eee7693f3f343208ef601398ce5c380257 = "34d2697195983d82aa2c74fa3448110581322201" +5e9407b064043faec5c343600df27aed1e62d0b6 = "d7dc70865ed3337eb6911712b798904dc6778431" +611648b3cef17af4d11077c7fe54e61cb0839b4e = "593657928fde7a46c33d7fe199a8ff0824cc2b2e" +6c90d69d4b44f97b217e43c950d450b22eb48227 = "1afe6d33d45861ce6d7311f99b83ae0dc552aa13" +6e7a2269292ea2a4424f41daef38722e98e40838 = "13709e62c2ad271a11b54cdaf9576fdd98cb6224" +756e59843806b58680e5910cadf4c93eb814af97 = "4c0fc712d61003532f18958b49c7fd247c0d7f6e" +84b1475e8e9207e9afd7cbd046cdef21d90ee903 = "819c990128e1163a850c4fd9d30db2cf44633c60" +93666cd3afa028b6a4702267279e26af6c2c0788 = "0d8de080ed70b26fb06da24f90dc31ac57f37d73" +944f377c082ec9a5f2d736605beca7fbfca4353d = "0ac6e3f7ced238f55228793d96048efb218b64ae" +9b3fced32f4965495284c4ee8224691b9dd35284 = "880b4f98357ead92526dcc024c676c2217164a26" +9bc5ad7a6181d80ac2d542810f94759607e34306 = "e15d3d29315579b6a33484009ac94dbf88e718a8" +a0d0489b7a54c9cdfc6c4cf1a757595f25366f45 = "e917c0bde6d879624ddaeae5f900bbc7a747e963" +ab25d274a39b88b88b332f96f852762ab6515e12 = "61feeefc99dbf56c36a15711171a3f0f17d345dc" +afade35b9b54c5a9532f7dfc6d77b681437ad8fe = "61fc167afd16ed9762a2853703e8a33ebb3ab5fe" +b42cb08a84959f2eb7b522cb6e3dae00a52813d0 = "d1d4246efb222c9c0acf8900af70bc325d849593" +bc17e769ae9903d8b00cb365dd59c73cb3d4def8 = "4b2b42e104266f721ce02df38e4b3d0122aa2dbc" +bc639088701c82921dc49a91e33895c580b4d2ba = "8c7c010dfe262c7471f98b7c2bcc152cb9d4c67c" +bcc875a8177877e5e0390d8eed09068e42fb0742 = "bed9e3bf645a85b737719feba6b3c97c331f699e" +cb25c5b001601009ec6c05ad8e4bf9d3b48613e8 = "2f7a834a38e3f56deb0913a428cb3ff26af05f8d" +ce43dc5f1b14328b4db585b8a1a067e8fd88e9f3 = "9a63432eaf5303af6d13457c5cb3dec043d7f031" +e8305e519de90d3d92e72ee735a55d6c7d6d92f3 = "0fda9c53e435026617eb7a7017cb89c16db10b47" +e9d4bbc0179268427ab701374474121571c70223 = "9afb56fdf26f51c8877a44c2a243dd92a0e083cc" +eb8f5885a7ef82f4383b94570ab5aeb2c06eed24 = "b58c773d6e18e3d8c79ed32e9dcb9d0b4101ca0b" +fdb16529761e381f479a216dd6721967245de7e6 = "946ac262ddc275a3b2bdd6d81bec071962ab417d" +fef3e905ab4348b6c888e39352bc83322c92b1a7 = "10ec2772f316a3c68f0a2d84467a8607f3b31db0" + +[d9c5613a-d543-52d8-9afd-8f241a8c3f1c] +322a9d03eb298254c43e692bb379781ff9ca5c44 = "3f0f7c418e4e11783b0857ceba9ca0e69706c017" +cf8300c539deff32844d9bc571bd384a69e1e132 = "61e863c9a7eeab36d61ee7b94afe930f457a2cc3" +d7a0b03659f53aa1069e1164ed38818791d3a0d4 = "41560ec7fae339bf28ba840fbf6afea701cbe135" + +[d9d8ad79-29b3-589e-911c-083cca4f99e5] +1a11f9bd8cb895ef8749c3f752ec6ea931bd45fa = "46fb3d885198f5fe3f401b84d804f54a6216541e" +826775b99e4003bcdaeecf05548cd579bff5c57d = "d71c0a69038f50ad2545afee16639537b65de344" +8cd855bd2ab131ac1354a853bb37b5441cf31945 = "c2e03eb5d92564849b8c2b5583971e3b163346bb" +a9a18c05841c2224e35f8642353f794c30f745dd = "23df940b30f1291033840755673d4d0169bb3206" +ec1a803517d6b3906891ebc2be3e3ce38c609d6f = "b4806bdc219f289d626a192b78ad75113da45780" + +[d9fb577e-02a8-5914-b71d-b6b1f89733e5] +082f0b3f53e9e896e92e921b4bc9ce6fda4644cb = "2cad6ca92384dfebc431d7d0366d5a173c6263a5" +0d0990b870ce3434e019044047676419ff7b3237 = "6a11496f05fb07474353695440fab77ef89e367d" +0eaa9220ee00ea2923c055b19838c21ac9a24ba5 = "c52b4e8fe94e47f6ff596d0564e8a89e1eaca630" +13de46bfc5c8139274c829807914c0bef81f959f = "e14a0509e11682ac978675af29edc93c8011429d" +1fcd26b78993ad81ae241a53fb5c15580994f2f7 = "1c54e83a5d7edf26f09c0629dd6c024be8fd2e4c" +21eefa28f2f13ecdf32d74465723a973545c2d66 = "6a11496f05fb07474353695440fab77ef89e367d" +2d0d0a5fb2564103e1b25af474d71ce2ce59ba7c = "c93bf00155739aa6703c88ef42754b99def65d6a" +34870d61f8afee30ca8569cf724fb3a54a5def67 = "923c5303d723ca301e084079f1c72f5c5e477337" +34be8d5814019711db06e5d9c165fa39396d6e56 = "47697bf07f139b339ab6dc61e30800fef41bc65c" +4d38997d34a762f004257ae80ebfb9ebe2b590e4 = "88c602b18ac6e08d772f11d3a544970e7481972a" +4ec4215cc4a63674dde03c9e427ee4249a846350 = "111bc1885ccb103db830f58e9e38b9c94e4d4f2f" +538957737b1940e187926305b48992383751855d = "1cf3529fd0a7e7cde9d8baee5d87fb2f7021d0d9" +680f5a78a6054ac1cf41d6dcf82fd2df07fb6b41 = "1b70fd66c561edf41a4225380d7d7c950035e796" +6b7c0e385cd7f676060bf94cd72522079f72faf7 = "d8cf176e6244a6ca68a940f2f90af5c5943998a1" +6fa75c7b2bcb7a89f2d0b693b14cafeaba5330fc = "9fd6b42fde6cd03b24f80d7b2edb24149fa4f34a" +75ced33af7c418db157281a7e94243446ad5c2ed = "b447769a05c171c3961b65d372032fc713900649" +97cb94be5486d71bb3d763c3a54a57f0cd26d67c = "ec1ca47891a174b7d7236f965fd1c4181beb8322" +9a21bffc69da24de8d4579387387d58b411872df = "908e70f7f2562e9dd7b217f74c2d35066231560d" +9dcc274fe690b8ab4f9b048f55866d9b61e60433 = "34bed99c008fbc844625c12a8f07a92b74b3a64f" +b0e8c184f57e8e60c83e1b9ef49511b08c88f16f = "0213a9262b761e7d03d9e08e365c15bd42eb9d22" +b1107fbc088ee1b7ae0b15ff6c2360530a04a63e = "dcc882a52510bcb54b108ae62c870fb56b0d960c" +b15d248470da3ab22a7bdaa6a3793fbaaefee62f = "a2ddba49b171d645c19787419f7fc14126ce75fc" +d43d9919c5b44459fa3080ea1305a753ea490d46 = "92c466ad66a7001e598f644dda80e510deb6f43a" +f565dd42fa31c369fa118c8742bdb873ef872952 = "8cb9c7b3af924399bd9d6b7f652c526722899a55" +fe5e8188339c1bf62fefc357739ffcb27b6b3302 = "f6020bcb9d5c3170a6f3704a05f6de8a101ac41e" + +[da04e1cc-30fd-572f-bb4f-1f8673147195] +13b9ba92e279926b45690d3b6bf4f56d6061d904 = "6b2f08fde8172cb0047652623dc07b7f20e9125a" +16990eea631608ea2289441686c174305527f41b = "e84473b7d0b690d3b9b7effe928896c1b6d8384d" +171569eb3aca85a13a2c2aa7fcc91029d9a1b409 = "7ec9ce7e0c71725aaf292de9bfcb2f19ee951625" +2e2bf5e880d009872249c6a8c6cdbe0db6c30e07 = "7dd12c465580da318d53435ee6cc0b0c11c94bbe" +2eafed4ae94f0e993a447022c4a570090582372c = "468295bd0950f1dd76b99b04a7e7610d5eaf0c73" +37f525454b4186eb95c117eba051e196554e8c0d = "c0e7b5c395ed2922e985dd772f5af724953258f2" +4e3386af7611a0a2398d99e621a463e864bdf9be = "02ba2b536ab5e7f410c085dd5349b6e0a812842d" +56261899bc3b79a7aff19c0af34985c2aad2b4c9 = "61ec7ab4239f3edd6d5d39dc32b91b5a0ed0ec07" +6dec1855d93052505f8f19cb1484f909f8332809 = "af9ea882915b97ed5b603cd1fe3913b1dc6589bc" +6efa4902c4c03a6984ce4d29e3370ff1b11665ee = "cfbb1f21ec8e8e1305f6d0a51f0f5300d117a9ff" +909b61426dc802a332109d729b8540f730377499 = "3c9d678dd165adab139037d084e15720c06c786b" +a3281dab02c915ba0e50e3cf2ebab9b0d5d0d41a = "2fde606d2eaeac0b950b3c39086f9912fa8fdc26" +aaa2b58f870de318a1c8f77f6aebd2e252277846 = "b453aee37f3ff60f2dbd02a0366e36a51cab7bd3" +b53727864665940d5469aee21ceecddcf6b0d6d3 = "f441734094b36d405b229947fcbe5058421f917b" +cad330105e19f38ce33469b8e3de505829a76779 = "a779a082abb0bfc0d35888518b99b55a1a2513e7" +d55873dc99a7ba3576db4229265af4af1f390628 = "1d43f6f7d951635dfa432e9f829353809b650c9e" +f07e96286f0a9bbb0c283d22a2d8f8443c411954 = "ac74fd736e78ce7a74e9a5d3ad17f56302d152f1" + +[da1fdf0e-e0ff-5433-a45f-9bb5ff651cb1] +0d70f4a9396af9f99aad3bbb453f4650a9f29a88 = "b9eba2e879ad90a85ba2c8b2eef602db7c373fdf" +45067fc58a2691afe43b4e73387a796b0549ca22 = "eb91ec4c3063d36c2780d475a1ae9eb52f265a63" +78290d336fdeee8afde18302e538ab2332b2ab1f = "37aec607fdde23cc8c63a4f22389e215fdec32d8" +7884c000e6797d7ec621e07b8da58e7939e39867 = "6756c82cf501c013b4280ea8539567da33791617" +cec61ee2d49e5c7ef558cf8ad055c336d0b29ad0 = "4bf09c1ec8c26aeadd437d2559749f5728b9d0d4" +e6e1bfe21afaadb93f2e5f98e7a8845579dffa20 = "04e4a13d560f09f6bcd2a25e508ca3f07a7da83e" + +[da4e23fa-bfa3-5645-b5c4-449cabb34994] +6edaa622dc517b053f3803cec428e6e21f8286d3 = "603afd2ee431b4843c339e1509b184b0ad3422bc" + +[da5c29d0-fa7d-589e-88eb-ea29b0a81949] +12133522c72f59c88f14e0237603a7351b4fa28a = "02c7860ba78532cc433826a732ec577721e27367" +59c600b57b38682a9f22b5558b731b52b3259ea4 = "7544d1f6ed911763a7af7bb4aac221b4d7a11964" +5f5ff74a40a3fdefd23fcce44577cf7fcee51972 = "c09a512ff36dd5785ddc04fc102f2ff3b7fe05ae" +8411068b62cdf93129722284570fc44fafdaab43 = "146269dc84e3eb42140dbbf80031bd9dde4abf2d" +9c744b1b1f95ebdb7211f10ba23117b9d831a0d0 = "441ee6def59604e24adb8a2efcbe8089e91c7129" +ea0b8d5b512832ea77e758ac44d7b8a97f1c194b = "00033973ce3851d4fbabd7a2a69f6deacbc0897d" + +[da82b884-55c4-5540-8364-4f80596e1779] +1ab6342e33d6429280a4671085682a34ea184651 = "aae944f91108145f53c175886f5b6acb197b1a94" + +[dad468f8-6d63-5d40-b2c4-48631a3ed0cf] +574472d492c0d6e22a0455b0c6f942c5b6e0f4c1 = "e61de7a38cab87e2dfa8494ee79d6f10b323dcb6" + +[db124c1e-20fb-5dba-8370-5fc43211c42e] +19a28e0cbfeabe131a399922a8abe3e7647a0183 = "b66a5fe6492afe1d382689d5123fbc822f92f3ab" +400e027c0901c73a1bdff8c1189c70512879fecd = "2b6fb42e8fabd52a189f47fbcee0d13db979a2c2" +4e72704ae579cf6145d568efce25bab9d9df9019 = "8176d4c857b4b64d7978146195ab313fd4870b05" +7160dd797477ab4d15ebc7bf8fdc591d6c6c57ac = "281a900cf53e120f88676ff049c850913b88d0db" +794b015f55e41047b51cbc9c6017c292e6bd31d6 = "7dff8603bde64082d4effa49b7bfc257c2c48e5a" +aa13e71f4e7dfa58adbfdbd317e2d90f48a353f7 = "ebc7b6bec037a563e656d9a94d02044933b85d28" +aebf6f0a4e706629097650dbdcc8a15abb7e3f29 = "fee195613a23d0236f55d60c105304792dbe368c" +e103de4add967a64da436e76d1ce29ea1752169d = "74c89280a8dbe33e7cc11dc95cb8e72a96fc0628" + +[db1e4edf-8490-580b-87dc-ea5765160b1b] +86a07e9cdf9a855ba44b2869c578a818a874406d = "e750424a9114febdb420a7a2d671b429bfb98c48" +96a7d62bc377f803a40ac4e16acbfde61819e8f6 = "59bc25e97f01826ea6a604a9883a8d9065d4b1be" + +[db5f7d96-a200-5343-9fc6-a259b42289b2] +0fda95aee315ef90d8cdc3798ab359708b59eb08 = "ea65f67c58e85e2a477c7b3a355066a5e6555650" +3696376c1959767d17c97b3ef89e3889e4f72b9f = "6d4a79e5fa83e8f76af6f3d53b66725e87c03002" +8b8e08e76cf8ea48d90f1f1990899fd21f6ef72c = "c2dc72a7458d7ed0573ce5bed8f4ea58a55009fc" +94e53271e6be93f4d4c6810e4fa08fccc05f09eb = "428732f7a52233e34ed62747f50167e304454ee1" +edec6e997859cd171008f567c29e4e8df8aef8f0 = "c71903e131d02c549f3556e5e64f61e377d5e3e4" + +[db6c7170-6aaf-59bb-a3a0-87668a71bd78] +32fed196c70b40d1a4145f08e590d111236ab409 = "decb8cc9db7b487132a446d8408efb9aefb03948" +75376b620500d4d6a0175e55c5ce2df7211809a2 = "d47d6515fa82ad819fba21a9de2574befdf42076" +beab371e1b82c84cfe19dacbf2438d4acad5d471 = "1ded58f6fbd4872473daa8bbd75bbb31cfe9583d" +c3fa508796b4745c6b99403601db04915da9d33e = "f23695c2af849180346d44eca7087679aa28b7d2" + +[dbb5928d-eab1-5f90-85c2-b9b0edb7c900] +24b5aa8c089f1490a4f0dd230be3b7baf71fb171 = "a2fc896507b776036823d15f05dc028a9868b29a" +921c007b7d9fc2e3600273076e2fae4ec66a2c5a = "87153b001b33ea35b3b7702e6f1fe0158559a103" +ac9871a673506a94253fda29fdab48cd35366938 = "b43a3649550fd1850b0add82fcf0e247316f3605" +adcc01ea5a86f43082cf0a5a9867e7e60eb62524 = "af626341aadc723c02129a6f1fcad9e0648404af" +c907bdeed26b9ea044893feb492b0aa89881a514 = "2ddeb2526b7f9f042c9d8c0d97d50f504879f837" +d5b8d5cd04e5adfceb0f7b4dba13690cf43b9b67 = "0da68dc880e6a9971106538272c4ceed6bebad1f" +dc72f520ba499b4bff66dd3fe56935d2a33fe6e2 = "51aee9a15f48c27b2c836b5ce67d544d066818fb" + +[dc211083-a33a-5b79-959f-2ff34033469d] +f33dc836928e69150dd09380c9ad057cfd451a20 = "2d7459ce55eb8c96d05e2d6e3b0a81cd15e6a899" + +[dc548174-15c3-5faf-af27-7997cfbde655] +0df1d6f09dd0605f7cc784e0071f5b39d5c42771 = "881c4fbe4a25ad86f2d07a437d8c95b5aa63ee49" +6254c9dc661ebdbd199a4d10f1661e39fb953d21 = "1178dc0e198330fbd4527aa720d4d04434c0aa27" +695d898c7b9010b05942fb735c86e4231c405eec = "758e52a7fe9461a4c142ccbb122d6da631266349" +fb3e7c7c1d337b101dd30094b1230ad584d41b9b = "8199a703dae85ff9a0213799a2e60d700c30e58f" + +[dc83f1b7-23af-5208-ab3f-f15c73293890] +28ca4284d0eba29d8979df8ea55a872cea7b0706 = "4e614a6259ac861b1ccae25c9cecce58f5b59208" +ad430da18e7f4c1e5c705c2ea9e15fa014980f07 = "27ea9dad9575ed3d251f87feaf1f566274237afa" + +[dc8bdbbb-1ca9-579f-8c36-e416f6a65cce] +2a29ebeea16b53cd1a5d355b032a7f3fb981eddc = "67e36848630e25eb87b5604598b592f889de4430" +2f2e9daa85f0125dfc701f8f1f3ff50f19b28d8f = "5645f8a953cdde474406a62312410c2ebfd057ee" +5244474b476a51586d79963a4e71bd331d3930b6 = "63389c74edaecf14d3f8c79425c3b24504e3c506" +a91de1ffc3470f9389202c0f7b612528194c3ea5 = "9faac3960141d4bc83215c52552b5471e1e76a25" +c86672db7055cc48c32034402ff559bc316f3988 = "745a202720c1e848936c7808177841c36446948c" + +[dca85d43-d64c-5e67-8c65-017450d5d020] +29b36eb2e4958d7e55794eb8f8d54f20a8bd1084 = "f075d9fd6a513e653f466b1704a6a14d7ed91473" +2c9251b3e38487ef02bfb16c5ce0486205ad0305 = "9f9e12b2feec3e3fde7ddb9501aa70127e8dc7f8" +2cf41266eca241187972a65dc68623aa81828168 = "245ba271956497db72a1d74629eb69d37a14becf" +3efe65eab11d1f3d4a14a62e57d83bbd4b84b99c = "1fac712fffc73ae34c2c8f5641739092078245db" +4c19585a1fa29685302c5d354ab1c63f93e1f980 = "9faa4d77e1367d9011e2ad2674c37d1ce261dc9c" +55a70c80b8b91185c49fd1024c5f410781ed54d7 = "3c6f1d0b78f89c1e38583928df1d3ac0a7739bdd" +cef306618fab303ae8bc7fc1999d88083df27ca6 = "a79d6b85d385fe5bd404b213a3cb14f65922fd9b" +e5dfdd154bcba00404d936af269c31541303c2bd = "4ba34c6dbf49ac5a7866cfca79028bfd555576ba" +efb89816fe1a99fbcf413b94a5fc6710108eddb0 = "1bfd5f9f6176ba7d2c990a22048e9a6c28ff7068" +f73aa646afd9c3f8b6b4477a265ba015e64adcc5 = "508ce44d813b37a28b3da9adfde9b1a37088f9bf" +fda086bbca849f3b0d5181ac8f914cbd44e15e1c = "7ef0ccf9e107919f086fd32e4112b8143ea31306" + +[dcb6a4fe-f2fc-5156-9001-e19e9c1de97c] +283f02c56eaf239852c26f26a96ec7ee94de06e1 = "7ebeb5dfc055200fdb57c975b6ebd9e5126d9796" +31ef38e0e8e03affc783fe10c91e58eb0af8f20e = "af020908a89d31ea05ae2e02196f2f0c0f58b070" +5401f42d92eaad15f235e7caa2b543b44f95e6a7 = "f943976c8205a47aa96f8fe77833c374417b4a43" +f4702ab85370888a58394986b72de5382ba9dcd7 = "5b9879c474897b80a8d60769e07974f58ebd4b7e" + +[dcc97b0b-8ce5-5539-9008-bb190f959ef6] +0228639da71297e57bb1ff50ca4110b903b00389 = "e818b5ac7ddb51106d0b2cfcea2fdc2f97ea4e2f" +04311dfa82ff0a9424a873018968ac4869b21080 = "9365f22be6851bbebaa16d991698803a3295f70c" +06a6539dbe8aaa458c91bb6e45014c78cb4b520d = "1d2d909f052b170a0b13eee93493d99cd9c23819" +06f5c400968e80930f3647f88bca5085073b867d = "cbe083318ee89f941d2a88ac6be4b199d865e47c" +19775ffedd111a597686daf1b00cf2bab0e103a0 = "4dbe1c60ee8af8ea84e18753a431a0b1c93d4d29" +2c4b6e244b26a953502b8d43a297f4a7feca4956 = "63a8f9c9a7a8de6f1a6c15a8afc84efb2da97ce1" +2cd1b6327872cd26b88669ecf99e9f5e16fecfb4 = "b74c7ec6ea5ce70453b8f01ecc9af53d04d2a9cd" +311a67e2bc908ed981ae16dd29287d93068ef0ab = "c5a1de2ccaefbbbd671ce8d43c191bc8bcf81b3b" +38ab0047d681c63da629f4647abbe3298369b898 = "0a39a026c3bc2a8bd1024159c0efbcba425e5c8b" +44f3f29f9a9ac98618a5a3f97f46410d410f5b84 = "c58746f6d63c87e9f53b872ed69c4c9befce981d" +45e1f3dc08da57e3e802a6b8d31e94d9cc33464f = "573eaebdfcdcb9a3ba4dd13fa4ae8f7222fa12d3" +4900e28e10826f24b2a0888750a62d6ab6f68a00 = "02bef966e6bce29afdeee3ca69a608bb048a5644" +78cecf429127592e0dfa8c098763bc3a462a5469 = "c2ae497e30adc53bcab4d2feab65f0cabe709e63" +7e3e98a8ef27405e64fc1959a08640f4cea27663 = "424e4be7be12249835809af377b7988badbdca1b" +8dbff9d0f7074cef89896850c306a807eda4a089 = "cf8449e53f4dbe3ed02a35c75b73581f3afc31aa" +90d3d8bc8a70c8bf3a2d65dd10025479a64e3d2f = "a0c10eb3b8f50f87c6c5c18d441c9598ed1769c4" +97e12446b73b890f455fc4f2fbbe3df432d6e3dd = "ac1546fd46e01521dc2864a75dffa3fd5b2ed17a" +c76e1e7dc1880a3d439bad270b144d7ad2fcb11c = "88d8ed7d75b539f0bce73a72f6672b3077d7b691" +de116064bfe0a669f4bcb47758417957ef9367e1 = "497a4f67e72685545cf4b8201dba1878168d6422" +de7e2972687c8e14224c878064fb6486d5637952 = "aac9013d291eeedecd06abb850645957eb49c2a7" +e5d642d6932b68d1ef28a24298b83ff4f4d33e9a = "b70f97d02a9c2dcede83ba2d1213c1657e0548b5" +ef6c5637422ec0460b493530c8a0ab3aaff0f574 = "c66e465eeb45f3a40521e69d68b5aebd7c54e246" +efe1a2c7e7102dc195b1af26ac485acb70d05ad8 = "20779bc7b26ca535705a06f618a5abbcb12ee28c" +f1b841edf492dbebab58adad3adaf6297ea48616 = "d1c3c02f2a03aefca78a42f301f51ec78f88f8a8" +fcf32635d40d82d8436654920b6634a83ecba78e = "078caaa66ab976c2969368340ca7cdd818241ef2" +fe323fbb8cb1a102be5cbcc779089299d5806ef7 = "cb9e86d4774d32509dddd30f06fc76adc4f93317" + +[dcd651b4-b50a-5b6b-8f22-87e9f253a252] +7dab05afc0d4d5f3fc53f267928e09be43e61be4 = "efbbdaa2945faca79cbf653cfcc7398020f6d31d" + +[dce04be8-c92d-5529-be00-80e4d2c0e197] +08ec44ee368a762fce86f3ec2c72ca2de3268488 = "0ff5e0fa76e4af5e6d89d2414be0ccb7b567e5b5" +3740f2118dc7128a430d794185864248c98f0304 = "6df32d9c60301490b79ff71bd6372b067893d636" +57634bd7f18180331dac67a838077546c1877c50 = "6e114529c71472a3148a9d3eee6de99200f4bdcf" +6546d1293e08c0151805d0f320d303955fd81d77 = "6d6ed70dd92c14a6a1a9d6a6ec7cec22e61b85d6" +6c730e24641b6590d075a1d974d43d61367b43d0 = "ffaba3d50dbcd94cdf608757b3195680d5c2798b" +d031df211ef9ac269f328b93ed8e0aa196c03c83 = "91ffb99f531585d87b1eda86f636ed6d9f083fe0" +fa0feb79d4d3d6fce8adeb7bb6de7ec43c7e5d58 = "5a3b142a6d4f9e2ca72517965c997f05095d435e" + +[dcf8f9ac-6917-5b56-9f70-7cfaa7b944f9] +6351f628976d3266a96d1557d5e64e0b0d829b93 = "121f6e19143dd54b10bee87428ff5e6acf15ace4" +a5fc072f2d6a047d19b518efc6e4e1da4149942b = "b7334ee0b42bb15635a6eefae780a9608b9c179a" +bc4ae3eff24d03b9693a506f952b45501d498d94 = "614a59a6c37dadc720c0c51ff58d42db2242907e" + +[ddb6d928-2868-570f-bddf-ab3f9cf99eb6] +0ffae909e4ab38cef06da787e8975bbb0877667e = "a81c4f46c19f0eb9abaa90f3112bf536c1cfa7f9" +35ba2b95d5e3e2d481c1b2bf24ebb65d77252999 = "bad6c915a6f0f4e66172e1b7fc16909a93426603" +4471e137d37ebacfff66c83df6ba1d6e6698d188 = "0960a2fecbb857243eba3c568813a450935ba689" +44b5765a2ea7fb07e534d7efac4eea0159a7666f = "a8a35b93f10371e5664848ad4e80b0f05a6da614" +57fa1d5bc8ec4f22812b0628fe0dc75148e5ce98 = "e00de79634fb09cf925129c409daee62408f6000" +74637a776a7b916f8e963ad26e07f2a16889fb24 = "08656f6816ae70821cb3f5f4469c60275c12425d" +74d155b5334e6ee00b4172cb4eade03664953776 = "bf7454d24ebe927cba7de764debfa75bfbb0439f" +8c86daf4f47da58730f5c59384459b4fd70c7729 = "f93ec07ffe4876783f06314d7eb21b1f8a490daa" +b599e879108bd2b81407ff09c16e99778f425a10 = "d8f10d05f9651ad36a2293b49a3a997313560273" +bd07dc1c432e3775ebaeef81e30630acd13b2a77 = "8f16ea964f62a8b2b4d7c8a10c7730206c7708da" +cb6a9b41cc77d79629414c606df8ad7bea2694ad = "634d8500966be7b560be74a032b6a464adc472eb" +d1ecc86aa3ecef250ddf4d49780b3f63440a2db9 = "1f700054bac85b6d436ebc6a26e0b1f1e5b990f3" +fbf9288d98ed17cf34abf1b9524d810a990c278a = "68cf68cdce36b97ba2cd83c04c4819429a529f36" + +[ddc32c18-29b5-5e8d-944b-676104cc83ee] +189639fa833ddc57cb061e03e218c6952a60d7b8 = "3b6bf67c4f323bf3f99fd70eb985f051dc88bf04" +1fb746a848f48a6c7f4bb760fce995984e71b24a = "723a769441ed8b9f79c499e21bee4976f599965d" +29c7900afa03d0534604f3b1a4e2a3f2f030aa04 = "35ab9fd4d24bcf1ba78ae1c972473237fd4f8e56" +2db95be7857157c367723d09082aac8677f99c9a = "3c3fd232fd268bf3ed38f3e5bd2a19d957d5fc4e" +507a4652bcd30e6227ff4397e06676a504a99639 = "f467e68508c472ff87155d669dd5b0692e88e0de" +b540ad2edc619091fa2a63df25d0acf0e3360549 = "4120f1a4361f869042dcb8e8fdd4235a8bc5c4d3" +bf88bfd589b10ede31342f0b93b7cbb199918176 = "6c309dabcee806c96f3ae4815cce9eee695439d1" +d1b60432024ba4ab27a7132271e958e234a6ef51 = "fa25d185859f5de2b71fdf7cbf3bb716a59e53c4" +d55b97271c229b0210c7ac5aa9b9649d1b3a63d4 = "284541a81a3cfaf2f380c126d4bcc34de99c1ffa" +e2f1658c9ad0241014e47756e7edde3c309f3dd3 = "ea11a9350c61c615bf3927c1b02bafc6c9ebe800" +ea944e22bf895dc002cedf9d92fcfc3bc0834ed2 = "ec262a3598a1274ee6cb2ba6e734becf95e87bc6" + +[ddd0632b-7f4d-5bd6-89ff-461a327835b7] +7671efa01480bd0ed977446830b40167d120585a = "d0d540d24c9098986b6a4260bc7755560cf8675f" + +[ddf597a6-d67e-5340-b84c-e37d84115374] +2edda32c1e7a6910ecff9c3c02fb4a34431332c8 = "c36658b6c81afe2c9a7b7c385c30207073a646bf" +c4207f0d1d28ec421d684e0f06ff0eb61f85d2d8 = "fe26cd428409080815043b2aaa6610abd7ec93f4" + +[de03306e-617a-5495-a07b-a6b7842ad19f] +2a3bc7b92f3e9c8f287d1e9a3ea8bcceb6846028 = "c985a3a0b77f3fdbb51da4d380dcd237fbb9d536" +5fbf45e803990755462c18e3f7fff7de9caf6a29 = "c9a0499dadb5532894ed5196e120b55de7165e74" +afc67477c548643a81ad31dab4159c9d865ea419 = "89d6c3dd4733f04a1f5403dc8b6fe1c192a54e25" + +[de31a74c-ac4f-5751-b3fd-e18cd04993ca] +19c4e29db1a69d8a00e67d480c331becfe21b592 = "f704f10359dc9c4da8c13d9ec1f490c006ce326a" +3f4b67febd9d11e74f4f2db32fb9bdf9f232611a = "35d680ed347f93d03f24162183cbe8b6969cf307" +4feaf2d6e37163d435886597e4861cc182e4795b = "3dd228e98405cae37bc71f7c9533abf35e33d8c1" +6a6b6cd0cc1f39e2b60d3855739c0c52a2cba838 = "775c3b45f4d0293bc0779f7f5b1ce208b9cd35eb" +7d948938db5fa77922714d27a48c7d1716b0b251 = "10b0132e48882346b8fb0bec7e6100c98b879fa5" +b38338a89c82f530a67547991f0705be780e3fa3 = "45a297173c3cfe252eae977611c4a2e05db724ab" +ea16431f6c12e39992aff797e5a38d5ad30bcd02 = "175f1ae1e9000513743a31b29e138cb618b416a0" +ecf63dc4d034857b2fb439ba15d8525cbf14a0a9 = "f12d77439bc10f7a3ccdd34dc422755dec6bc27f" + +[de320387-30cd-5f83-91a8-a6e0ae8b8444] +4ca9744c7adfa6b1b706c8c76706f29540d8e52f = "413786c7476fec08be34c119472ea51afa0def92" +5841b3020babe087a8b739a6eaaf42a604be18f7 = "d0e654393d7c9fc498a0e338b47686887f2efdde" + +[de460e47-3fe3-5279-bb4a-814414816d5d] +5d593d914c7b9b172a60c87a4812a3ec98d3a959 = "f69d369b73effa45529ebc5b3468779613799270" +b805c3cf94db792a49f3b8b855b3edfcdf7bb067 = "a86df3c359df34f991ee2630c4e31dced1c2f823" + +[de6e09b3-4b42-5a74-8fbc-3cb2aad257dc] +220c46eb3cf0e8a6d70816bbaf05f850cd39a26d = "770c1b5d0701945ec16e46ea7d15f9a16e5645e3" +649816723f7f00b24f7386691355e946ff95f2a4 = "84a2d817aae6690912e27194a89673e5cf834aed" +93e34d5af5c71b83ce7d64e662049f9cabab4bb6 = "941e56405cc19dc2499d9c68d769958257c6657b" +ae99539acff09615d0be5135bb9a6def730ad58a = "b24b1fccef664a338465325ac2124cb3e66fca58" + +[de9282ab-8554-53be-b2d6-f6c222edabfc] +3c302833b4a66c59c32a92acafcdb97b5eb606aa = "8bbb8a2da0e2897063aa56cba675312571429541" + +[dee08c22-ab7f-5625-9660-a9af2021b33f] +09c2c799a8eec599bc8bf2bbfff49ea1252dd51b = "5e95c3c6639c34979dcadc69af03ec9860496204" +225b89ec08cdce58f9b5a787b8ea625e50777b0a = "3e0971869faaecd5434c94097e676eaa8d51d71e" +78c50c3e317d9e02879be2c3d7528e87ca5bd275 = "00cad9c9e635198705032fae0853ddf4e2b851a0" +d695586876214d03603e0055e2ad421f21c195fb = "68baeb3ad80e2bd23cd8211c5d03fd2f214a166e" + +[defc1d9d-1a91-5c6e-a5d0-6da97266dbc2] +15ac69e39bd5d9b80022a4dc5ab74cc7f3853237 = "8cd75baf2d61c60443b15403c8f268a12df8d5bf" +36a48415830065b8379d1d53213bee774db41258 = "ac4bda46dcf81c98794c80d1474c47167613d176" +4809e555fad066c1882178d6ef8224170fa04c9f = "1f76377013344b336d8448c5f677e06bb19d9905" +b4ca041f878b089d4431b1e9d495d9f1ae77bda5 = "1d9d2256d0407436dbdc9cf30b4d0b8fd8c96b0d" +b669fb478dd2d4854cf5bae77c9a34910e97bb9c = "a14f64f8b32223032154a3efd31344aaad29c09f" +d233d06b0b158a134f72f1e1989dde0abcc8dd56 = "c5aff9010cd6a3e26aa9e10ebf9117b752e99606" + +[df068d8e-6bdd-5cd0-b77b-69c5de8ae8a3] +6747b089a5b9ba6eec01be0d39305a786d8ef671 = "118b97b8b27873593aea336d4d443ead68614d5e" + +[df47a6cb-8c03-5eed-afd8-b6050d6c41da] +006766516c2055bd462b42140d515f7547192afa = "8b23dfa9d17266a3ae37df6cc5045ec61db5aa74" +2ff1091a9217a2d9b0764a515fab4525ae085ac8 = "596092202502654bced63d299162eca35a07d834" +3034b379d8a689e3172e7e7224b0a4914255cb18 = "005a9fd03a3d2f414a228fea5959e3017b80b4a7" +54d3385e575828c176d3c091f410f29c89077666 = "8589a25453aafddf0ac94f9ffa03f08a0bb570db" +7e17dcfc1b331bf8d6067ac68eeaae00551fc3c9 = "b919892c0a6ca0393a6bb6871ea25232713d6e1c" +dbb27b8ddde5f320283ea5ed5cb97195db20d856 = "b0ea55fe2a0498c343f320ac24ff5b194431688d" +ebc1335252cf790e552f9310c2473df2822ad14b = "e512a1b69e8958e338af5e6ac5e7801b4dd42780" + +[df88083b-ffd0-5ec9-9f27-0a3b3d809c9f] +0ef62ceb9ae0b5979cbc4c3dd0dc21549a75b909 = "3ff6a9da3b13c08263d7549fa434061c21a10cb1" +1509a494288920252163923dd0136894efcfdd40 = "33121de13672625a9e0f0c5b942b827d55dc5950" +1545c4615eb9b59c77c1dd118f9bb5d5d0ec9cb6 = "f50307f39d7abf26b4f357c1392a6cb1e0a46838" +2398ca8d6c64bcd3258d877d5bd5918353e5f33a = "935091e8b11206f6b85cbdab9d2c117fd8f2aa62" +2af5cb7715d4a04a729f17c6322c3773e3c307ef = "c09738ef2ced8b99a0c7aae0ac9ea3ad64167091" +2c39890ed70111b1ee9bf6ddc66580248cdeefbe = "dd78d46bef991b92abe406fc84ddc0ee6f05e6d3" +2ea3eca49c686e12d10a82c27d5b8acfc60eee3b = "5ef04076a106740bb885a8b9e38131b2b4ff595d" +3c354b87888b337cd603512b5c9dd9bb6214e16b = "6005d97ef648de4510e52e1bf0075bfcd81bad5d" +3c3a83d2212c0a97114608b3ca97740e9ada6c4e = "9aaf5e0e7834165f81e5efc438b6f15c164b221a" +3e477321f888dfb7dbd328894f273ea504350bff = "95fc10ffd63ad8be63cddc2db09d3c57ad2d3e86" +444c775a6aa45a63732e7d9542bb46fe6fdfa895 = "d348004594b7500bb1800ec5b4ab7cdf5ab3b87c" +45480d1ea55ba27844e8f002fe1e2ad6c25b7893 = "84d86a864b162545b4de6e7203d874c94283433d" +4936215e1441aeb66d47caf05f1b011776040cb3 = "bc813a39eb12f30765818ba41472c472066d98ca" +572c984756946d3e58e41fa629ae2d99e7586216 = "07987e08cd582fd2c001097e083e97e6b3795191" +60c51eafca6e1bded764c7904529cab4ad7e8cf9 = "e4e518309909fe360745a3d66f2bc8059338ef02" +67c3bf6106c74a1bcd4e35d9d12268ff058b6825 = "c1866b66084b6bc75bc491b80238b040ef7ca3c3" +695fb2c0c5609bddf06b146e40f1311dca09f075 = "716957def1ad9cfb967d179be59bc486e9234e40" +6d518a9c6d4709c7f2497c1ebff64fd89c48f6c6 = "a163eeb1622be6e23e588f0fbf9945465e32f4fa" +752275d3d452890d0d2c7e63526c8a86cfebfef9 = "700b8b8846c8223b09ca8e2debd34ae526cec8fe" +76b03305d3bd30891515fc1cd17cc9df40159b13 = "2a4f1db143718949e1186bfe5975697f585acb4c" +7870a6dd3b177d0f0c9435431b9bb3f73e050589 = "49bf0ff7c932af9219d95d169723a846d280268b" +79469c32ac0860e838c55a57e6bb5077635dec76 = "6f9da0b6bb69394adcf460736dc4505bbf89055d" +979706304fb79554500e988cd0b5201f8fd927e5 = "530ddcea9996fda35059c8caaccb356b017e8c05" +a8f3e463f07264f3cd33b544aeed8ee4f466a3a7 = "b38ad043cef2da7848deda64e51eebb6487c1aaa" +a972dc9d2d20cc01f171d1fa1cd307b2a3208e30 = "f98b967d74311ee9d7ce03ec2f1e45fa93e699a8" +bb1dd80b2d49559e4a368e4b43cc0e51ac848d88 = "db1c14b89aa6b27ae0f4562f171dad8467ef997b" +c368db55e017eebd8318471272d8b6851d56359d = "1d79f3e3a3b5f14fbbf997565b1b5b5e6f9904bc" +cf68b87040272c3b335da98c6da604269e33a26c = "a79168d196d359e5622d0b20435fe4c2153f00ce" +cf778031780fe006844103b15dff6e9e85166305 = "2ca4e4c2d5c03c33bc849f053151d8c667ce1c0c" +d8131d4d254d7859b080b77a09b52509f80413f7 = "6edebc8b88bb3252273321697b4ea755dad54fd1" +ed2bdf38334710c711be5778d1ef53e3716fa34a = "d1a45fbf097ca8bb44303f5a8df8bd7ce1041df7" +edde9467240a92292a52de51deddd669b8b32616 = "d2514178ec1c87a957112b8fb7349c0e24f8449b" + +[df8f2f22-cfef-5733-af3f-96770d497d85] +493975c17a1e4a3c46c4b773befb99926e322e1f = "3e851062f78c335fb0dc4a9717094cb707d76785" +68f466486e245e6130ed7a669284c77c97546ce4 = "d286a0932e6e41cd36ff4ec2e3f2c0df44948af9" +92082340590f548cadbde8f0927199251c406186 = "3a889851e1182d463f935e23ee00bb7d661b660e" +a865410c21a212ccbe299dc1d149ee0f9251a9f9 = "6027cf2c1aef6b8c77afba5ddb96ebc0eb992444" +b5a9c1002aac432ac80030f2c9de1b957f5084f1 = "e8e448c0376bc14a45910b48fbdb2e198379432c" +c44453c961515dc82427e284fd7562ef6883abb2 = "5c4560fc9da77401c88d1d1da9200b604e1f0b25" +e11088228d6d0144697da928ce3e968033eda0e7 = "050deb5efd966ecea5752b2ff13ecb0466c44d71" +f9a55977df8e98b597d7442ea809e12f0376d9a7 = "d496904e06035b0636710dd3978f72983354b089" + +[dfba31c6-ed66-5d02-bd53-3eb16f72707f] +cfb0715354c6b19e2faea351c0f7bc3f6addb9f3 = "39297f85eba56856242b5c6c10ab3f7c36d0e34c" +ec2c2f5143787a7b175a607de758a3a0e05b28bb = "2f9bb1734e5ef15ada3d664ce6c9b736dbf0c3c4" + +[e04668b6-ddf2-5c09-b17b-50da0d2d0da2] +116878b10fbfbfdf82f786a8a14692054388ae80 = "81728da673d8d770c5b0199ddb0ce3a6a2d92171" +217ff7e42f9953b1d5b55794e5d5e8d8e26c15f1 = "c5a784fea92be40c2b2ad73c8f8df14e918a7980" +2ce98120ebbb92c49832501fec41e8b1953499c0 = "3f3d1f6e127a6f9ddbcf85745589aeebad8c949f" +6542715f38f9b548a7150b0e46e807021bf9b5be = "349e53559b1372b7296143f65a8d8a15b4e2ecbd" +7b93214385c293ee063279ca260bdc3aba7cbe78 = "7450aaa711c1fcdeaa6c44a258da164bfd4646d4" +7fabf351c7132a6757c79421e1ab6ed7740e97bc = "667226ecbe1571c056f36e20ff70cda81005aa1a" +b34ffbd659814e092260d13d8a8582d38d9ef214 = "c751bd98d439d6168e1565cdae491e547bfea951" + +[e094c991-5a90-5477-8896-c1e4c9552a1a] +02abbfd1772131c378f944c5c5c14e10020661eb = "62beb808d38e6945df960c5a932358af9fa51771" +31a446b03c7f31307c3a644f1217f53f9b2e52cc = "1daf57c78e01f11d9592046d9458d71af9c443cc" +36019dcaab8b878ab66af03cb1b7817d473c6c84 = "e862bdfb228607600a0f9f8209a10ae0f76b6a54" +46ed41bb347ec9df43604de840376eb84464489d = "1d6d62135258ae59c3fe9d21c94f52d929911eab" +4f4936974532d476c41aace0781a90e11952e3a6 = "126fb3182cb4c586356e0beeaa48f319ff330803" +663af619ea570340d524da51b0148e599fd2009c = "c15353af5830380522151a7ee5faf6b16f6bdae0" +a57111cfc20e28dd97d22dbbd578d60c94a8bebd = "b3ec8601cd63c7c32c1161de57536e228a68c7e5" +aa6426f512fb826530be862f12ef6ac9aeb91b14 = "c80efecf2947f52ecfab1a532b9a3b34a7fd6026" +c214df8c6440ae0c0e95ab8d5ef9e9b8e2781e63 = "e66b5d58068065ee2ca33697f5ad7204d55ed7e1" +d58be265badd698835c277c0a2a6a85cd166129a = "17728988cfad3b6e346ab59ae850a12eb69145d9" +dafbed0918e1ed829728b52b6b30d4d9e086db30 = "c382a41f8448fc67cc406628180ac6429d87808c" +efe39be160cb0044b505308151aac608af7e5e07 = "d329b4431ffc93c62c69f2b5ab0e20194a1b99dc" + +[e0b4c2ea-889f-54df-a5e0-fe74b3c892fd] +29c9d49e9128c20c0342ec5795ccb88c1653355c = "dbea94247ef18f9a10370c2cca1eb8330ac8f950" +6ec28deee4391dd6aa56c3fdc30330c386f78dd2 = "fcfdafb24ec0c0d3346d4b28541635892bf3cd67" +a62e842a92711952760bd311ffa11edbd327f39b = "96020e49cbe226d98c7402585280bcc13de9928f" + +[e0df1984-e451-5cb5-8b61-797a481e67e3] +13433b098170f3c16cec038728ec738ef2791c47 = "57e10fb7c66090576d950e4eb11aa50df3059f87" +13e5fd9e224fdbbd27303f10b8b23bac704a49da = "dc7368efaa898e90db01768c4f624dd557f0c73a" +1fc592eecd20a8f9caf83035d4a0e07e0d27b0f0 = "b256f9639e1156b6d2417b2ff740d0c8a355d66b" +3dd944426d53d6aa28be9ed72c46164b6a93f902 = "55e3c4683529047b206b3c09657777c7d36587ea" +44a36131a6a592f612ea65c0bac009612a3cc112 = "536159a669c48f76658ce1459e0a59a078fdbaa7" +48dda26682286f85eabe4c38093f35642446d06b = "b01036376ca8ff1f8f9a9cb31de9b27d715cd2d9" +71a75782b971d926af9feb8165c71555e858750f = "53081a259a83bd1455268704caf5f1bd07fdc7e7" +9e67e1b4428d17e437b7134758851c2d01c402b6 = "345a06ddd796cbbf7d10f4427953190ef9686317" +b81cea29638cd2bf14a98dbc80a06bf3ba1ff4e6 = "900b55543ca2309be422199d8cc058757ed7d789" +bdcecc419c680aff15e0219fbdb081344f50c79b = "291c8b8259efef7813581ee282ae1471d2c6c30d" +ca19058f291792a2990e584b1c50e3173488890a = "453669672a9d3ae3cc402e13febbace60be62b03" +d2aaf6d793709035b8c1e7654cef0b5e973d9db9 = "3d9a9ebc79da6323feebc471405a6d5ae83a60ff" +d76878234f74bd54d178212eb660dcbc4873ea90 = "92049d04361d363a10a6e217749ce39ce659121e" +f007c88f2eac02a5f072038a39eaa6a8a8ddfd74 = "b663282a0c7418fc8d29bb45e7a98bb712adccb0" +f9932a7fde58aad515b7ffa027f64b5f868ee20e = "34c99ca5f023877be42af7bb86a984df2fab88c8" +fe90ad7ea8b9f524688131a6d967d1dc71cb8d94 = "8446f3475039731d792bab75f85af66344e1f71b" + +[e1397348-e965-55d8-8fb3-3dd9faf6e4f1] +d0f99f89538ab1cb25370015ebf66deed6703fbe = "2fbb94817ad7b0f054d69cac2c49e474c089ba2d" + +[e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d] +10c24d438142e3cf91c01fd7771d2d90b38dba1a = "01b9c1984a2628d155e6fc902cd7da539cd07169" +1ac857ae21ee569f0a5b02ce128e5297987f39d5 = "21f46d641cb4a611a9f8a9b11e78ee6ba6f3ea1f" +24b4dcb787a76ceac72d0e52b065d1b0e33d054c = "d00ace84d3f5eec37b51f24c5d5f01f43070238b" +54ecb787fbb16fef0eb2967bc8667c72ef41988e = "ae75a7ad828e4afc5dcb6da7ad9b08681d1878fa" +6ac5963cac0e8fcb2fcd32cccbea5ef7c205f239 = "5c3495cc015820635f72dd09989b0e9770a7af49" +7f49516f8fd6576716fdc6a68ebdce9bf6049363 = "e869f30985e69dd79e3728d781086d71f524a857" +90ae91778e4e3a1de85b970fab305ad7b448ba59 = "cda00da0fe734c6560dd5ae1ba49db5d9c5c2318" +a89539edb07e188c47abe28a36e22a4e1602763f = "c58fbc077d83ea2fe044e97623f5497b6bde7203" +adbf2de7beb909a053b40217bd7908a5237de4f6 = "5c4c64b65048b7d5169423621c4665b52cd1a8c3" +cf9b40bb57e88bcf1e808488392df1fcb78e4cdf = "c834799f756078ade3fd92e3eb54639fc6645845" +d0eed65b62278487a8f216b3e5e67b8ae1f61d85 = "06e117ecaa20f8081c14b545acefa16a13c8e036" +d26a90435cce2ad1abb7b263215e37739eb12d79 = "a209447c670f699764afc69556675929146db21f" +ec31f4e8924f94de90e90d681621b837ee2b16a0 = "811c29afd2a334465e442ec34ab234c8b9868ae7" +ee331396f5c6dff7ec1eda21a42e9fba341dbe93 = "534b3f81196e99b780948f5de73a9b78fdd53567" +f4e2f9fda5b185f8cdd6cc12341d9ddb66884cb6 = "33be61dac4df6d6314159781e795abb281de3492" +f7e71c130c673b2bb9dcf0ced908e6885a69ccd1 = "57be879392caf56fb0c1e93fd5fad456b7239523" +fc763c49ef1ebb0fa37c54e7bed3e87d7f8f701d = "b9a7f42a5d3b32cff4a14c400689374d60905b41" +fd271a237d2da76b2d5c0cd32fd8df3c6e7b21ee = "342673a9f37ebb68e466a44cd86dea12da20c2d4" + +[e16808c0-8298-5c79-b0aa-b155392dc629] +4104e2c4322a23454e221384ac918127f81ce19f = "0c2e987a681054ba63972617b4a62946e7e39ad4" +68b6c2a1a7eb8aeb66a3f9f2aed962d6ad3ccad4 = "77fef3b60b80dea6a3da08c28e7c9a3ebfa431ad" + +[e18849f4-891b-50d0-807d-7841c4cb7c8f] +0e2afdfdc26adb5c7a2c084eb43b3060c33cd35b = "51ad6ff3cbf8f0be75797f82d39cea78ee58fdbb" +10aeb904259ffbaef3ee11f3dbd604e0bde07ae9 = "4b16bc39a05995ec31ccc5e466fa9412e6c4299c" +2cf57c5ece68dc7630ab78ef29aba8a8a9bbc237 = "2663918ba03a2257fae5fc45329af9908fce4fe5" +6d575b570f61351ec9a0456e74901c53ae2102c4 = "2c59688af59f68a7e3a0d4f06796a6b376cf6b7c" +86a18817c5a5f376674deb73020bc88a51fa5258 = "126821558544deff8184e9ddd60a8f736e03bff3" +957898a4c4181d8dc2b866f3abbe9a57fb0e84bb = "837411b995fb28d883ee5dde8e66e1087cb92624" +a62d6b10b583ae9437322dd921902f127c4cdc10 = "afab385f2b9dfcd693e6f681718331a6b1c392b9" +afa3da222b3b3eb1df3fe1be76b4d892e91c9d98 = "d7b00c78816c1e326532dcb156fc69842f17025b" +c0fcad085f4b93bf8a70c0da52a86357c7ecf654 = "f2e459505bc93ed9ad3bca6780a7bb05376f85e4" +e6d85fe8f6799c5ec76856fb3ceb3fe88b4c2e57 = "2d3e41be6a02139db4ad6fb83d1d5b65637132c6" +ec64ba14fc4b66c668f18e6224aeb9dd7554fb8f = "606027416716c07f3a0d8bd21f50024335ee85a2" + +[e1b248eb-41c8-5a2e-8270-b68e3dbff0fc] +744f58d8314cd95e38b70dffd5f1f1c48020c05a = "bf0c5c70b227f9496cd1abc4f07c5e01012614ba" +bb95422226cf5f8c081d9e6a266f9cfc1dc56294 = "58943732f26b26ab135ed52718a8176d49682474" + +[e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28] +392b2051c888b7bb48d13372c78ef3f7fd912ebc = "fa88ad22cb8e351107863ad1ac1b99ba0df0a75f" +4287e0003882d055fcb0d42b8a5a69cf59a90416 = "855d03a712bc12737d4075aad5f46ea61dcd023c" +528e5dca3035d0a5a4742c133cc51758345595fd = "9ce9f9bc4ebb70927db618ebd1a5aa363ce68e09" +c08d4bbdc27a8257694814bba26200fbc5d11b7f = "b1fc27ef5fff964d49ff45df721e8d91d9e00686" +c784f9b6be5030cd37ac7532a5c60f39d0817bcf = "c3f24331e2e1afeca91afb8376daf11d5eec3b3a" +d4370da79eba2b18f1260f1e084eac3bf13d7f00 = "5a869d745fe9e979dda5a2895691a68ad7323f51" + +[e1e0bead-d0c8-5de7-863f-c4b0e859faac] +15e10908919413e96371ed0cb8d47eeb005ba7b3 = "d16fd9a8ace50733bba7496e3803056a287a3663" +1d38131a4df81bdcb386a01ce790ed0a42c55fef = "34233986ad5856b5bcfaa4b8366ab40c323b213a" +aee7a824d12eb4f5001c72d4eb164cce6d0a27c9 = "be5e1da761d86577549fde9b4b8f21563e84b2d7" +bf8ee5f7abf5d6afa4f0a60aa2ac4562f846cd7e = "a26c8ad0f527d19b2c4dc717f83d655aae67de92" +d0b9b8804a0336f1a7dfa2f5bf0b29d09c3936f7 = "315050ff98cfb125138d55cdee618f2cfd5588a0" +e3e5388656b26fa5c32032c80e29fd10807a7f6f = "cbb6ca3da7de9eede198f2f5d5ae47d526fc5732" + +[e1f3b4f0-2dc4-57d3-83f7-d4b7faf3b05b] +13ffa1e03ba1081dc500f7a249931e0d97e7d264 = "b53bb278f61995fe52745ebfc36a5b43dc3b7c05" +72ef9220d5acba2ece44b158b11b468057b0a2d6 = "99a4c1e48de87020ec2b26b7dcf7c277c1484c6e" +be0e9e065901390199b06088269cf03ba8b0b9dd = "220fbd8b66c4c62ac1dc6a461a160bc9723e489b" +cc4e54b8aab8623a115ef1dea2bf42bbc436eecf = "1673c5b285409d5a3cf89e2227f6df054b80c73b" +d3db0c920e37b46a8ebac13fa09aa0f961f18399 = "5811b840b1a32ce933726da23cfcaa5b5b756f60" +d91fb5043ecc9ebb6989038b0667c704d0b04a35 = "a00b61352384bc926f8ae52dfb3dedcb47049a9a" + +[e210f56a-9500-59e8-ae47-ce3a5fb1a75e] +011c701da41da6f4362be2acdffa8a8f9294c49e = "ca30861ab5559461fd0b953f9773fda58c830a45" +063358da8f5de205b732753fd43444a404dc5842 = "2cd5d30653b94e463fb1d1d53c5baebc4060e287" +0e31ef78006b15622c8c8d54bd03fe239447dd50 = "37efd121359672a31d767510bf4a2a6cf999c4a7" +1268756ec88c21f75bb1dbc9adf82a969ac73692 = "525d91cb376eaade01cc9d0326a302a573654842" +15b90baec75200235ddb4f8d6d3bdddc5bf11f9d = "e077b70851f9e16fa7b8a371f48a75566760192d" +1bfcb60899cfd829357c6e59fe7b2d6c17700748 = "5228734b427434069130001d8f91852d8853711c" +1f1f96024c7d873927a6a3eae1d800ae6f2f14a8 = "13d1cb6a9d5054526cde4d451bf4a2ab0307c024" +2c20270bd207664c86821af5de433c771b164356 = "2a3901801e905e1ee826699b1d92e77a17b6c43b" +2da7e26d5b9b5ecc7830eab2d1e874bf415dcf48 = "73f801d0a17141c75efcedc0b55ba40ff5385a7e" +33304f749ff7f19fa2961c1cea578e0de6069f0c = "c39953c01258853287e331dc9f4d08b30340c226" +341ffc1fc3470debd691d6c53e250f2c7288d92c = "0880ae60a2fed48ccfd151a1c83a2d3c1dcb261a" +3fa1c8af8deb8c8f3b5329ca542b25c09a815e7d = "32a1c6a3a0fb7639b9519f68a6f2efc7869b1984" +463c48b9a3cb9f5d6ca10caf518b6bf55dad800b = "098c76175bba9645c1df66c64552b513aa28cf60" +4b64bc2cf26141092a5eebd055b0109ef71b9d7a = "da9a823934e7942fffe450019552a5020ed54b20" +4c7500aaafbf37c9e6891e3b6a303a2e3a55486b = "6e3c21708638e79adbd9b370872c1dab26bd737d" +558cc74443c77746dddefebe3a1528b8ec26455d = "c5062572665958e8a5ef69f2dd2d56b55433e307" +58cd5e239cfda51918a37ac5ea61c91509be43e9 = "1f1f2108aee53de2fe55b1b3d9b0aa8c70aa7c98" +689a10646e38a708b309b35a89bc48211d9960f7 = "02473819dfa7c21109d3a1fa6c3bb269f37fc9b6" +729b3ce8a074360a25f5fa5440c909ad8b9c5003 = "e6c6923f6cf8c19e0ed7c2d62a0ec6fb4be98bdb" +76ce715ddac29a74015ee8c52376a5fe3144020d = "01020cf377bbdaf059d3b32bcfedf48b6e230ef7" +7c344cbd79647256dc16595bb04e0a05f38e2530 = "6093d37aee9aaa5750d190ad1c75db7e0287897e" +812d05dd24e1c5546fe6d249b1270f2e8d93446b = "fdda740883703a052efed35d7de62b6087d3621a" +8eca3fee2aa22c6840eecc1cc3c3be5bf6a7b478 = "e4cd8b2618e6906de1d13ccadfa3e4fd731794ed" +948223933a4475b68b26554d69ae66b713951174 = "8fe61debd14e24b25b711ab486a2c9f6f3a6a7fe" +9f625d8da99947ea18c66fd32be4e4f2d01a959e = "39c52e852e2d77ea997f62649ec8b179451aafca" +a39a3b00219f6d82fe6aeedc4204b4aea414f0de = "9ec94663721d6384113d7c9c2f8b00250e1c85bb" +a67f5f3332ff14e42a342f67be1902ef8fe82586 = "e4b96d650d807bc71121de8299871efc70f4b6e2" +a94c680c874fc22594573f81d78683de98dc2732 = "65aadbbf65aaaaf2809802b8f29c942025445a5e" +aab6b17ead9b702b10a6d0f004665c81b7341885 = "0d285ff0f6543592e7b926b627f043def1f0e763" +c05bba993dfbfd27e1801a07109ac35380c5bb6d = "33cc8cf06ddce46aa01aff92b5edf1cda8f29fa9" +c40b328b82b427774de226a93e6d144a1c9025c1 = "a52b72cb292774f53590ba1385cb2c56b0a9ef20" +c46bce33a83684332e34d3413266291728cb7f88 = "776e8d8cf631968fe121529fea335d78b8bbad35" +c4802cfc31d3a305780bef7793977398fc20a532 = "ef462aa0d526e944052b10638ca0ec7fb7db91cc" +c6738990966b0d5d37cefa09b248278f8170ee6a = "93adfb73856a615593ff03495af9e957a5124b4c" +c82675d4a39932d1d378e954844018cefc091858 = "044e4c3241bf1815bf272390c1283043b92fb532" +cb83801d60e992001144b4e13dab296fcd0df370 = "723af7eaf20d5900f89b521a12f505ac37021d03" +d16e431760b484cdb62fdcb483b201177766d641 = "d9c487d4d3a47c5d8ea46149dd044a8fd7a938ab" +d201b036ebf63afb8d7e3221f4ee869b95943615 = "a4913a7e8f80e4a4ad1de29e20c34f180ed5ad25" +d54cd8d16bc3bd7217ad6010338f6881a0f9fa5a = "ae0dbbe44f323ba2eae605bff67f3375fb9d8c71" +d57fd80c5f15185cfbb67c5baf62dae50f142a9e = "561e0946b331fbd17c684862144f560b64e28885" +d6c0c549b5a5b4f7b8f58aa54b25e56c59eefca0 = "e4380df4516e5720580eb58832475b5decc1acf5" +dec23ce619d2d1386188d1625729bec130f7ee4c = "57d044bb56783c46a9de86545c593802cebd3e2d" +e618ae6c6747b009223697f6f82128a1518a9784 = "6dd040ba3a161503a4ef15c0f9f0624cce71107d" +e9d005b937741bf351ab90903bd922cbb79c9903 = "7e93b467e8fb77e7f6a188e3162477ac3ab1551e" +ef16c7eb9bb43322f2267ff0c746f9ff99fd5023 = "5feca91942c1c65cd76d59d39818e2eb9d6e22ed" +f281fcea9b39b3a323a156b83bf30ac0c0ed2749 = "04475944cbc45c1d550fa7a0363293a23116935f" +f648849035531255854ad2168f94c37c719a7bf9 = "e7d1b3bf1d70689873696bd07bb4be1bde90b0f3" +f93eba33d8703a0db3975aae06f70446398c1897 = "be9c73ffe009ca882a2c4ab23e998a848cfdd0c5" + +[e21f4509-7b4e-5b4b-a375-a5512fd6f24f] +d048e2b13705038ffb9803a6ff4ac9cb5862c24d = "c3c5cca89c6a856caaa73cfb2457e185a3f06507" + +[e220cda7-d851-5a2d-9985-d1627e9abca7] +01bf5f5f1776111a5ca05ed88566ab90253d9e99 = "3ca10edbd7dbbd133e039e1eb733f859066b79d4" +0c28d4841c8ab4323501587c4c052eeb2b28b296 = "3ab62f8e39f74f75b00339514d19a155ef0bdda3" +0f54fa25d033c492ff7e1028b6c4b97340e5e30b = "37b5e7c8070e93a63a9e07c56a0c96e17ae759a3" +1e41b76a0db8566f5c5e5a573ce7a8f0674e601a = "991b0c8b9b33303ebc3cafb530ca9a6986056f2b" +2b4ca7c5336ce6480b1ecab73adae34a35fc2b2b = "365fea1009235eda6382195201ef22291f4e3090" +2bc5f6803fcaa4018051ba20f84c2a68fa0667d0 = "e8bd4a03d0bb78f26662dc1e84830c902436fd60" +3f5eb47c72ca3717c9f9660ef5c34e888adfdcad = "1027bd7d58bef6a71fcd9397ab2e8cf2cf866b8c" +5e438ede34df962099ee609fa219afd62d09114e = "0ebe3a0873d36c4da6aba1eb362135b7de5e3a7a" +7141fa8941dba9851562fed1440e0211b58f4073 = "80f754e6baf21228e7077452c5e315bdb221a7e6" +916217907601a0143e3fe7b21f6defea208c4633 = "dd464cfb00afe9d92f6f5a4b4e795564755a7eaa" +9bcef6b7debeb6bb792cc7cc09f7e94095363607 = "d16a146b6c6a8ee848f9a33a68b03e56bfea52f8" +a369998415d26b34a585fffbda3afb42a051f369 = "a6b24d99488e326c108955c406c0f51ded293285" +abcf7a6f8728ec0e4445a76e4d5d5cca2b47ea48 = "d7fe98c08f5e21a1b98a8e8d4644abde8443407b" +b8d3d5ec4044549d8cfe71a0f9f7ffad3acb7a2f = "00ebdfa310c36e73e23a0d3f1a4554363791c69d" +bc3c8fe24e49e422ca276deca4797ddad7a1dc4d = "43778a8a4f33029cccccb6c4a4064ae1e1c047ce" +ce79a6dbcc44a41d1fc4421d0d325f6752387139 = "55ce83b30932ee1678f34d1c1552c4b269772c8b" +e9bbbfb9c1af043d65af1c88c71c3d98eb2102d0 = "3afda6f6e1f4994e1c80b326f9618251434ec949" +f5205bd686e197cad05c113325e6b507116fee1e = "9e0d66060fe7afc6ae8b55faf7e9e2cfb1c458ac" + +[e243d093-f3e7-5ddb-82fd-a47193d1c26f] +67c0ac679b335c6bdb88dd51089fce70a8f3394e = "bee7d4115acae7a803c235d1103565d87b88d8ba" + +[e2554591-2d5a-5553-bb4c-ff0ef3342964] +0ef96214fe46be758806deaaccb5c38b0c5f09d7 = "013fed15932dbe1191d0839555b4e144d2f61ae7" +761bb6c5ce5800471ff1f9538efcd9a24b4256fe = "de43b01e175628caf3cb77d8001a7028a250f9f9" +e685b90635d19f3fe58c664c34afa73d26a6e8ee = "bfea86cd5ddfa9f9f41d34b84c12b4cc14717d89" + +[e2554f3b-3117-50c0-817c-e040a3ddf72d] +1ebc2114a792476fe2d9c297e7c3604b24a9ee16 = "1fdecab903880639984040521b1de5f74b9149c8" +33862e62204eb7535db5eea3bfb84ecc16edbd2e = "a44ceda9c3713e7d6c5453a34f396966c3e7a25d" +33cb6c31e72bd958e409d3dcf868f1a8a16cec58 = "8a039263cdf8d0b8eeb6344fc0b248d4f2001f3c" +3dde8c21e24eb61f5a7b2d35e03623a1c57d2a01 = "3a13d3e06d066332b95ff8cb969894f810e15221" +41a830aedf059c4a67ae0e90ad2801aff69441d8 = "f56005bc35e451ff6f3f4a1ffe857b784c039ce4" +7b34db9d90e91c298f2a2c00335010fa4befaac8 = "5bd949f1e1cfd477516b0486e8956cbb40a1f072" +7d674d17b1310cbe26d083ddae412a451d6d9501 = "b471e08983f12159ffddb24c7dfe2a74333928e5" +841530cdeaa302c8630f4c68b52bfb015123879d = "c4337ab3ef0b770a15aeb7e6c09fd63d2ed56c97" +8a7cc69cafd1cae00b1356e2b2a4400242d6f3a0 = "9e75d8fcfbb039da2a294c3e5b0e648a37e18d6f" +98c06ba48bb139ac19c5ad43d91cf196fb05457b = "5d03c40803ae8a82706f8235693f733697948dbe" +aac279f6a07c92d5fcfb435f64063672b73cf198 = "a7f3e2a3adc4ad0efb7bca18bb8fde8038e909df" +ce11ac71c8817fee585350a43bff2e24daef601c = "96970ae26aadf95369ed3831b3553346936e0618" +e3258188f6d4c30e302eac48364a6a28f5560fd3 = "fc51d87542b6e77bf7f8f25e10f0cd91b61260a6" + +[e2685f51-7e38-5353-a97d-a921fd2c8199] +04413b68f9d4b70af8f4742b865e4f48fbb17a79 = "e073c20e6412c08e56b2fa03deb46242ef4e58a3" +04ca4bbc98c4729970cf65e4c477824f19b81c52 = "06c9f053982902a2276b781a5bed8af8cb94740c" +0bc26dea8994093b31f9d6920fb81a2faabf1fb5 = "be32887968344938ddcfee772d055b88bbe60bfa" +19898728d90f758b5ffc6c7020aab742abdfe4e1 = "f958eab66911c37c86982671fab69c1c63cfb778" +1b4cc1537b0bae3bd4f03cbe1f9c9473761a63ac = "3a5cfacaa01c7db71850d28734d00bbd2b432319" +4209c24464db1f2b05acc7e71efd8cff3f236029 = "73a7ee8fc804706b05087e5c4fc65fa620299928" +472b3534951b89e1848db4dc806f4d25ffdb6686 = "8773a0fec60a469907716f9fc358bbf307438630" +599d5bd365fe230110c66c92bd10c262b1532af2 = "7c71a702898a8aed2df7ef87ceaf306e10fc063e" +6bdc96e051ec65a94a0eda29c78d0c6165f22cfb = "3c8effac5096384f6a4b674efa5d0c9c3b3d855e" +74a0d0198f9d1792fb391378bee3806621daa0ef = "31327edec65cdc0d98101717defd6f0bec476c25" +77fd695ef3c08a93c999245bd7b786c167ea68d7 = "f97a1d4fdb9fb56384aa6f965080655edec1a0cc" +8ae212231fa6d65d0d020a361dec0902991f466d = "e46789838d034bd6c55a1350dc9cdf8b57eea401" +8dd805c642c11a0f54c82807b598a069a8777b5e = "676505f5d17e7c5705d7f605ffd88f9ac1b921e4" +99b224ae7cdf2b794393ab352d15b2c0c804e173 = "1c5115497e36fe720a5a6c2dce4dd2a6e42fac09" +a8bda52a5d18d99626c2d58cf7b73038bb62af83 = "670b2aa69db5c553f7a1f10b7be16430c25b7347" +b32341efb61a11be26a061675989ba38662e126c = "950d34eb723477ae0fd3ef7ada3b82e1ba457d02" +b7e4a20cf40693d35452b24a0d73789d19bd0d76 = "aadaeb4104cfa41c0944fef74091ef0d1cccee0e" +bc7a08aace67ceb246091ece6893286da1a927ac = "f973265c87002967257680dbda156645128a672d" +c822c76401c82443df13951084437c03ff623cb9 = "bfff1f44c9d6cdda65e1184692be5a0e36e1fdd0" +d23254a6605bf36a4a1ef73912d0b650f3170c49 = "e3fd622f4d4dc36cb5e5a1ef06723010902a23ba" +d524789ed7bc66f63af25daae1cedf789533b863 = "324858e811c6c9ebac8295073a76d62e7e648893" +db17f315964258b79dbc9eb039268937359e5e39 = "766e2530dbea120d546e6e9068acf64f8f8dbabe" +e7addc8895b623ca03bc8b054feaa81899a380fe = "67ed6a01888e9644111f5919ccaeb1187be14057" +ed0330725580b8591a813c2bc1272fa130560b67 = "013833fd3c76dd84da1e0dabf50811ca7e1d7df3" +ef1b05a134aaa9b3a484e3db8aba5d8590062bd2 = "c1db8b98402fddd96b0f23bb5c1a67fbf710941e" +f2e9f45dfc4dbe318135bdfd56bc5fa494fb5899 = "639e4d40a2ea44d13ab5cdc8a9a8b85a68dcfdb2" + +[e2860157-3336-52d5-8ddc-1def50726c76] +721a344cfa2cf8c6970b7f7ad8a3655c0e1cb9f4 = "a7d72cb8cf6eb2e018144682c70ff8a91898831e" + +[e28b5b4c-05e8-5b66-bc03-6f0c0a0a06e0] +0681a1cbb46cf302326bc15e28de30a68fc72c48 = "93535c6a99e5a6e1431dda6be157a038c1474bbb" +0c462823dce220fba5f459944699104a55420829 = "157d2382232f970ccbd9742d5c210157b8250fa4" +16c7c99d5ae8d3ab8f1d8e8e9b9bcf8de60a918a = "ea93de2c0ae073e2902434d47ea88c46a5e0100e" +39401dbffccfbde2f34f3b1bd1914f237f487ea9 = "404bc548e439e2737e57c78cd283024131439d98" +41ac55b267defb402f698084759d352cf5107ff4 = "2198fe51078735bb2402928962621deb80a174f4" +48d0a2c6194a7ec06ce7510a735c3456a8a5b392 = "de56bbf5811d2af69dc7ca585ce50544ddfd3832" +718a2439fcdcbd8ba1cb3df0ad511ed7ffa9a29e = "5e90deb0aa75da7e9d071bbe54d7d28a6bac5dc8" +7a14c4efdcb22511ed03e9f2012eb7e3cf22c434 = "a7aa2f09f059ce0a6b7bf1305445070544be043a" +aecf73ce23354ccc1984f64bcf52c0265d2caa99 = "f3b61160f1a83f229fcb41bb29ca61a6b1d7a08c" +aefcec66b5d14d327b2ac1e117d768e39a30169e = "033c479fd9ef6614f49248a1d726a13070ca081a" +b0a75bb20ff41005a1329016cf021779babbb60d = "e79fb6e1ae9f580e41b7946f96f3703080c82af5" +d0b008a8099ca2bea381bbaf2e34f61bbbe0d9a4 = "ce131e16f2899eb2e1c9e85c8c36d494d7f2a4e7" +fbc6eb4ee8467d98075f908b34a0c7793e6c0393 = "2329430ffd5203932bbb993a207a667918619208" + +[e28c723f-7d43-5a39-80a5-dd45f382d5f2] +48ec678b34ca912b71a6cfc36402043c152d8683 = "a520829c8b2ebce1c83b03948e4a87bdef0fe6d2" +71645586c9c1f82c60ea415ed9fa90575d8b83f2 = "9cb8debe4b2b49b14b7d03bdad0b8f0775e906f4" +753a74faa605fef22449b3f35bbc0f5024e3cdc3 = "9877d9d482dc317bffba7820814251d08c12154c" + +[e30172f5-a6a5-5a46-863b-614d45cd2de4] +0d77e0abbf2a545eba176a6c4d6d04baf039559c = "867a939875e96661c49d13a18112e960fc4658a9" +11f7132000fe15176954bce599882a433c7164e8 = "065f25e37ca8de815f23f6ad02213b066517cba7" +194db3d1abaec7156289ce8985adf783fd3a2d6d = "e6b690977dc1e1bc68d0eda0c6931cc1efda464d" +25a6f2f56a9d73713393f6ada254f6884fc5d2c7 = "b2a56ab3730083fc37e1310a736deda900499372" +271394e53e5749a13a00d2470159dab562a88ffa = "ca7642e7c5451d91205f1155c97913b968f77604" +273953b0dbb6fa5d56bfec888b987450c5f1df6f = "aa347369d6cb785476f78bc2e8a552d0bf9370bf" +27c3dccf769c689a61db91d983062bcf65b31893 = "a166fbb35078dc3a568bc6b813105dab67d83076" +29f712fa87cedfd29282fdb1dd4464a754dd01be = "8ecb6d919b0beca54a5e0593245bad79871742c5" +2fbec9a0db5c3bf4fd6b3dd72d415d11600817b2 = "080d2d6f224d9ddbb5783543d70b7fa26774d17e" +31f4f43feedc272e1a85ffd2ee6ed03bf49e5083 = "a24dee88f88924a96ffa2c5f66e18efa9fb24683" +382b00b09d35d51478a388a0d2bbe8429542c9b2 = "ee21fe8767179468b302788101d7300f4584642c" +446ab503f658c408ed3012ccb57fd2c399c16e55 = "fc623906be136776ad48c78eafeb273acb0c5b52" +491c97749ba687d16ccc80fd7c914ffb09122415 = "7f2d3887bc5c9ab84558a17bd3c73d4232db8a31" +4a3d6702d8da241e5678cb70faf1b31d292d16bb = "814cc9ad3e734861414524838b570f6d70e86c81" +5148b83ee163c6a063adeaf9ed602fd555ac422f = "b670a7efde4fe7b51d1a35c39ad61d3a48e0b44d" +5282458e0c93aef7ef1f55e698781aaf4dd4097d = "eb2e82bcfcadbe84c681241e1510e741c95841e9" +536394956e5a1bf6fcf96b62e2ff9bf9496745d1 = "f845bbefa4a4d616a50fd5bdfe9f91d85aaf0f72" +5593b8f55f6ab191a7fdf76df867936a19d9e83a = "71be83e0bdf77f25675ac5e4684936d828b7728d" +56990dda21faddd7613ed6db6912e2a30b6299fb = "77f16163fd29f68ac41d511b901f6db70ce822a8" +5a6cb83b46aa54a739ee5166582b8bb4c39a2ee8 = "5cbfcf05ac340dd383676bbb4a7e0994715a8325" +6648ea57a36651c82d4a7583352f9e658386381c = "c332fd39142d1f46c34cf9b8b9fa2558d6ef0669" +70225b69f5090f870635ea4928b3cbac9f4f0fed = "a671929d8b6d3f2d9832cf65f836273d3f3b751e" +705568347d43564c136127d1d3646f9cc729b040 = "a0d29a1bb07dc32fa2be3b862fc61bb2d5d330dd" +7059478e1de68bacd5798d404927fd2232052f6a = "d16de865d4b2f35c46e82857a0d6a8e37f6857a2" +743a736ec9e0d3dce9bb20e6d52f07352b802671 = "8a666df93308ce08c8d5254ebe1c80a5bb8cc370" +7613893ef11528589d9f151fd16a6578ce1da363 = "dc4fd5cfd5409e87fce8b2889dc82839befdd606" +7d7e1b519523633139e3afb3a9be40799b480d14 = "b24596805ef52a32959bd0f27162aec60acc42ed" +7d8cc186bf787f37d517d0cf8475205b56f23900 = "d8418ce56ffa833795832559210c88aff8175702" +7ee8046c66168cd635add48cc2f5a32260c1bec3 = "05c2e5f3065b07856cf830a7b6b6c4ca08eb02cb" +8867a3602845ea21daa085ba73fd2f7d2b07566f = "2c4dc7e5450eea2c5df1df24940a058bde1b2854" +88721381f35b57ebddcaa9a6088e879f8243387b = "52fe8f514391fed54ab83310a7de05dc3e6bea93" +8a852ce3d009cae6f138a4a11b2a3a838c2e6e4b = "41d87363d2c0fb6abe45870ca79d342f76fba726" +908efbe7aa8be4c9d157113bc939a0ae3aec4e83 = "4aef7164a5f61f80b9ba382af282e841c7c64155" +9c23e4d43b9652b2f3c8be8adfffa47db779037e = "8d19c9207f035653a842416fe1b699063fbbced0" +9d447cf758628b25822fb4255326418c16e355c6 = "456c5e8c284579a92f6f7d85644b4af9b9d771a7" +9d5883bf7cb290c27a29db05925fbeec66514384 = "45c869cae4b5a37ad675493f7ea1b2e7a058efc8" +a40fa719e43efb474325497e3f265491bc07faaf = "b5d1e6ee76afe95bf7c9561c973ff750eebba3c2" +b0a337b94b124affda5d9ab3a957228238c2e1cb = "6098fa3fb18ae40a3783e954379e788deffa4908" +b27b707da585ece2beb251b4112181510b72db34 = "0a4771b19c9836d42c412a389931e37f4ab3d70f" +b6d308b07ded1ffa3184e59463a61eba9610cc00 = "cd9f240490ac7278087694f5dbca30f50512a6a7" +b7c4d5d2a909fb432bec8679b80d3266e0d00366 = "1be279990f7f2e0d854d4a059e449fff3bab621e" +b985e524f2808be5b1a6dea58350d9969a47c6c1 = "f34456c7507f2af6a637553e61b0c556d2ebda39" +b9d42a39464f6b059cc8fb70cfc2641ccf7dd029 = "fd41cd80a54f4023415f2d739c664341a145b747" +bab60cb966fb2455b9672063c5d8c88f4f1c00d4 = "31eff21338dccc033acdd8495b7dc3afdf2617da" +c189f738c33e2e07103ba05478d84b0098ed2501 = "d50b6b8cf0e77e8a8cc9b8509b5b5eca0b2d425b" +c5be239597babe9b7ffc1c93ffed425a2f149c9f = "c35b104426a826193e8e00ed754ecf899a12f629" +cae54938b8aba174e613a81c1b663106a8600551 = "b71ed1f5f88555ebdf369c4317d178f12380c9a4" +d7cdcbb39a9d8b6d2dd94e52e90e1782b2a320c4 = "dcb556b2d5b490221ef01231c2ae84b2b13a79ee" +e52ec25e060bda16dc18e85f681144ab1845a49b = "ec3847c19605a61b1f533218ccb3d05c4d4f66ac" +e8f437a73baff265a40bf099132515b71475a5b9 = "df789f44d6d3c489e9870d41cf8ac2ffe9ff2d13" +f3d7d191e6fc63af67309ae7debb909c358ee0ab = "3194ae9c42ecff402812e96809f7fc4108d850ec" +f97c077e42eb8c5db1f2ff0f8af70eba8b665672 = "95e024313b921d4393c3c2300cd5aba5f5c37e04" +fe5beddf966c6a525858656860c38bb95e66e9ad = "1dc1d6c8249eaf3e2741ef7c71df3597807fe5a2" +fe7540fdb657edd8b841d652021071a0fbe935fd = "9ccc032bddbb3e6b07e4724da421a3f15504b20b" + +[e33dfbef-2ea3-5ef3-a604-7da28c17a6d4] +3613c6bdb6c95d3fac2d83cd8cfe8dec9709b8fa = "eff0a6d76069cb5c44f3de01d013184bafb32a37" +5a5d30bf86873c3d9465abefe10ac771500405a0 = "8a1e68f2d6921c000d45951e0248171594486f2f" +66d15afa66487f22c8b943ec352d73e641215cbc = "c094607a55186a16bd62b83fab0721417edf720a" + +[e3415d5c-09e6-542b-bada-f9fe353e6f1e] +55a73e5cc1c8adb4b7fe15b9c7ac7b1a37a5118a = "df83772907d4f8876c01cf5f9eb63aa1f2f1f801" +5eb55a29f0433b9a86ed2a889b65b54127ceeda9 = "efbb626aa4d27a2576a964e29167ae26989f484c" +95920b40614270aac3c529e18114269ab834ee77 = "00dcf9541dee463e07f0475d5a9fc99fedfe619b" +f3f875d2a6e8e068803faee4ec9f4d31cc0440b6 = "98c3bd468fbe3e2a9a34b0dc804d3428b8133309" + +[e3752997-1a1b-5887-ab5f-06b776b4288e] +9500dd429423b9ee6d490b1caef4ad9f1424ca93 = "e6969a0a2bacef7bfd9453ce76c792d4035f8beb" +9755e706b8f90b500b3a0248f65ae3a828c5f826 = "d51b5668767e09449168151c12e38901d0a6127f" +b5e4f7672f2e3bd3bc7ca8b309a2e3eb92bcc86e = "c86c018ac02ee09fb98c2064f66404dd031f9a93" + +[e3819d11-95af-5eea-9727-70c091663a01] +194b79528a51c7a59df7d9e604cd3306e79135b5 = "f20d633b3d8fdb6990b615357bfe5ea07a553bdd" +d4bd3519a0682f7a81ae3b06e044eb1d9ed6d7e0 = "4ff5efcf2c06e6e2a8372d3658523ba6d8e16431" + +[e3ad505e-1421-54b5-91eb-f8fab629d2c9] +0325069b7c171b0db189c69c5636596505ab3e43 = "14be82b67716c31642895497599e77ee87b7e697" + +[e3df1716-f71e-5df9-9e2d-98e193103c45] +6490b0ffaa8a3f91f1232ee67f2d421450e83e82 = "3b1ac3ec9223bd84567879ea47e39aecf35908f3" +bc557504623513a1128d83be79742a25ad521c93 = "bfc843125191e48da4948f67616c65cb0858c229" + +[e3e34ffb-84e9-5012-9490-92c94d0c60a4] +18927c086d30aa6d4c0cb9bd0d2dd97aabd1ec2e = "685c9fca97fc6055ef45be09030ab0afbdac64b7" +191a38741f36267fd29295c20ceda7df7d33300e = "3056319c992190bed7103401594f1f4adea1b0c4" +1b9935e49f6f2e710759b0749edfe3e51a594ec1 = "28c405781511f0be344ece2e391b198e97ab363e" +543f8561678954eaea72b2dd470489b7ca61268d = "d8bbfffcaa9affdcf444963a558a5c77732839f7" +b79c740fbc9b2abec1c58c1add2e4dcdbfe2850d = "78c39ffe476c2961d2328ee82d05fde8b6e4d01f" +db8b92ee54d7dcce982fe590e79c822bf790dbac = "7e5b2099780f4e988082e74bdcb8e5000da0fb3a" +e3eee09805277e439d640826129e830eda66dbed = "379bd42a858cd6b5f4dfcf473cfd3595dc80e826" + +[e404c9c4-5aa3-5482-9006-d6d05ff6f231] +22168dfd06bdff84fa59ead38aacd31fc664e8a0 = "18545907d9526485b2115eebd898531f540333df" +58e091200929475b38c5aad25a3520f335c683df = "b5b490e0aac41236aefbca1c9ebc5e6d410c6512" +ce94da4f2a234157d6755314a051e243f6f82b24 = "07b4856ce69d335b3aa4cc0c19673605e201919d" +d4c5a2f4fd0257e833ee2eafcee74efbd4cec705 = "7dd2b08c2024a28fe0e012380713801eae48f53b" + +[e43a630a-7162-55cd-ab32-8b2d01917861] +433be291362c65498372b610b98ab9362b63ad59 = "1142f9271a30588ca89d9b736d82456be0eb023e" +4691b688e70d457d4348fbc3472ce69aee26fdd4 = "978ff10fedfd181804a3fa0b9b42b2fa0a19c4d1" +fb5d5278ad3ec747ab7c3f9975f5ae07dd5905cd = "2b22d58c15a94aac4f5564cd5d2935b05a1910a0" + +[e44e80c3-c1a0-5445-b28e-0e14522c62bc] +1ace061bb8103d6b802f2dff8563e2e34412ec00 = "950313e50840af8a718a87d5e1a1a658667c00fe" +5912e56015de9c64c0cec60a1c752b7b0697de7b = "74bd6b330ecea7144ef71b870c20316cbbf09aeb" +f98eeb3bc1522ae1837841e62429258dc3c8495f = "29760827d501ec0d7946aa4d7fe40fa167cc6b47" + +[e49e52ff-a044-5211-b256-ac9cd8f555d3] +172f02bef07a4dcd6ab6a52c2b208ffd64e9c937 = "6ea48a8427ef79614a66ca45ceb7c38a6f52ea90" +175fbcb051e1f84fedea3edf02df0ce322ceface = "deab7103ea32c3d0f68cd722d6332afff59a91a5" +19c74cf2116d5656943bf6c475d5fd18b1ae5aec = "5db257ea213d684323516d3b614ba8cd667e6129" +1a307e8e178b7afb6169f49c82a7072fc8e0e053 = "161a29a9335d73e38b80cf67d0d4f32211781553" +1d0f4b5a75d5b67098429e1c87492d3f8c8dfa3e = "97a9e2cf7aafb72ab3cac974a80a81f8428b6420" +1e2060396bb5f92c4a3c7b6c4c832370659aba38 = "b86c6573aa8e10b72b487d76c6c67e018a8eb70e" +1ffbaf7095119329d5b869327b9f5c67febe7a30 = "484b2a9bc07324ecf7708be6bf6cbfc4fa94dafa" +27dc271e6c60019687f1e5e3112aa52143c370a2 = "a387381b6254d7a16476a8a6d12c64143199c2a2" +2cc2442ee5432f9b435803d3f17518a5faaf1354 = "dab1faecfdf40443b99cbd12c1fa953077f052fd" +319a555b98be74ba1cf6a57f0f4470ae3cafcaa7 = "db9a307040e05432fe030122deedbe4eeedcc98d" +34f6043b1020962cce8e6fc36d0a3945beea1e6d = "fd900283728bb481f1491acd57dd7b90e40251f2" +543d024deddba3adae66aa7292c7ba9025a0e4b2 = "9dcd06384e47f89c7db9e4e070b104181b0dc0c3" +62ab5b3874123b59db05d3fcc792c2cb0ea21ca4 = "c5e32ed7ed208c975ed08309203fcd7e0444a4f2" +70dd902f6e652d1b1f4378d696b8f69fac63eef0 = "c719242317cc72b1bf670b1bf5f71625dbcda50f" +82d55c9213d6bd3aa35b59db32183819ff2a30c2 = "5ad48bfa7e64c3a5790a1d5d72c089ebbe6b81e1" +88fa09aba0ba8f4946c4bbf2d4036fb815ebabf1 = "39fa8a1a91bf9027952267566395bf8abec4b7ef" +a2476f3be0776a8061237ea572e40d07c10986e6 = "f59ec45ce826e66ebc56db039555086059abac47" +cbe27f91751060e608b4c8417d1220206ef81a24 = "7ea1c1ea9f28fb1586112d2ad2133e9335e242f3" +f540a252f8824f71d2df77074a3792ba2420098e = "fef6ad6040c340022738ea6e343dd854dd7a932d" +fa94a5558826df32cee40f833eb88c2c4886435e = "33888fe858392911fccdd797872780b968135d05" + +[e4b2104d-9c17-5378-9b07-7788b8262d80] +04f7120f60ff5d085705ac5d07397be78a09163f = "8bb9d659b9ec24349ed88bf1c232939c236e3704" +08904f5116b5c90345aae67ae3dddaa4bf48f327 = "5e0949ca2c75d322d7463bba611ccee6794ba9a8" +0e1cea2371875ea9dc3d33b7292f1a478813bf8b = "0a16bc70839e19fb89deceef830f3a4792d8484d" +1766f975860bde7e95f8d148cc2c00b9013088af = "17d6c9ec0cbdeb74d33f357b1919e20ee9ed5464" +1df5fd3dcfa9a85285f97c5edebf8f6aeff10d97 = "cb8a3c6045ff85a75987a3951c5b92e2cf15255c" +1fa7142b926e67b19fbaa6a47c8910a3cb20d036 = "41fde8019ded4190e489df9be9a99feea2b5cff8" +2b9d1e447133929ea2a441bbc69d7c76db6137f3 = "936652ba612926c4d0a8db61aaa44e0b0ae4e1a7" +9bd05a6b0b3a2a4b6915281cb221797cf4c56ec7 = "6a9174a2d3f8e22b4b4e62d51d03f4664e93e254" +ba4257485a47cebe6382c2b437fa28cb74ec5266 = "d2346d24ab577102d09b3d2de862ca0de7b8141e" +d5280d883bd80e459cffb575aacaaf09f89ec7b7 = "bac7b089d6ebec3beb39464ab18d5dbae72e6f1c" +dab4a08f1e5cef5dbe76d6c7c3434decd34f6144 = "8713e997c05b3d3b3dd811138c396cd048ebc7ed" +de9eaa3b29a8b879bdbef1bac315b52bc5c6d669 = "c6f4d94ff7a87ee50e043330a25fd7ca696e95b6" +f4131bae8d0d8ccc6b8f7994453bb6bde20da4ef = "07822bf448a4823ef31e0b80f66bc17e34bda8e0" + +[e4bdf1c5-016b-5777-90bb-39e5992355c2] +8b5415f5c5a16b73709943b67f70ea1176d02198 = "c10c46240c6c6fb564ac7cbcb671213cc1ef0403" + +[e4e893b0-ee5e-52ea-8111-44b3bdec128c] +0730fac5ba5522fd600e534692148abb79cbc46e = "1936dad7621ea9b259edc8ba4ffd835d2e2519f4" +0af0dc20b1aa73c1847883293f72f3c72bc97009 = "e0c9de8382477a6a0f97c40f80d88236ac453bab" +1ae85ef175db8b7ca38a627013dd73b9fe3f5252 = "a7ced35dc04d9352c757380863794a37397fdb26" +2f8bf04eff52585ae75e3dd71afdbcf9a6988a00 = "e904a2f5983a43cbe8aaeb8305b4dada7a22e1a1" +4a692e1cb745e394264007bd3077019d2b791b79 = "0590d4610a393dc7d4e21ade00f4afd2681855df" +524520c584eeff4c6295e1518f63f54592f6fa02 = "797f3c7235b848f4f81166e33596fec799dc7415" +9cb97086b1a5b6701642116352a4cb8d76002c44 = "cf9410423482c31339a09e11cb63bdb68e4c519e" +bfea3f3cd6e03390fddf7e7a50e32f95720ea5f8 = "c215a22576da97dc3ce8b94441a05573b6d1b424" +c5a5f8cf945c2dabda3dc39c2b85eae604d2d9cc = "dd838b697eb3d620ce71d9d15fa000afc7f9afdc" +f750096ad7dd34d1233f60687d4b90f398755a17 = "3546b645e43ee37587a1b8556ec23b60d1ee4190" +fa025d367bae776a1c6eb2afde8691793190e075 = "edff273ef4d0a53521357ef2dacddd5bdf417c83" + +[e54cec92-43bc-5b69-a0ba-12a83b9121d9] +1ac554af742108d5e5003d2a54bfb113465908e3 = "d130b31daa11435f26b1460100e0bdf87e5335b0" +44da4ffe0a5ca77b6b6aab1f4947ff9c1a7e2061 = "d33a09e265d5ae37cab50b507c12a6a1d1cf1de1" +842296386d8fd586ee25299be2e86ff629d6df86 = "c5a4418b9a5e465219b30c550996b2eb093cc60f" + +[e58b783c-04fd-5dff-9755-92dc86b0912e] +19cb8097030bd40064ae62cf06f74848e5f75eab = "46a5f567dbfbff714f823cf036fa31c737611785" +56678d645de2e17998b7a31d6eeb6f3aef4fa573 = "9bb0592353840c86bc4991e383abdea555ad7d12" + +[e5c3ada5-44c5-59b4-94bc-84ef8a3e2690] +04f04bf36f1903e72a66ed8f08aac19a35084c67 = "b31ae1567b9dbe8e875e6efc4c67d5da4d619a39" +08946ee7eb15bc530fb5818e388f12f3ffbfb6e3 = "ba6c4a6e25318e0c605d568557af204f65db3a09" +168b89b192bd6b5e9153e2d383144ed605929714 = "22c6f3e4c416883db3d1d1790fb33c029b704852" +2531b9db47fec051efafab08504b6d2070be7e13 = "7d9fe2bca81c0f7104dc8dd76c890407bd94143a" +3adea2475aafa351b70d746af06516182ca3e433 = "96150ea670204344212c107fa7f7b539ca267d90" +4b976dd921bf81891eadf2eee6531390a857dc49 = "0532f482431cdfcd8d9d3e1ead428d7ac0f68f8e" +637da9f566db4f325a07db87c0ca56cde5c6f0bd = "8c59484dc69b4e05addbace597171697367ddaca" +67d7aa8ed7ec603882db0414e9ca380c2a780239 = "1e649159bb9c399e7f30de359297d65f2f915cea" +7a6612616acc3b5b070d30ed3159d96c537ade32 = "5f1ff2685e00c95b9393b892810b4b7894bdf7b8" +90952ee71db21d8210698f784219bf025b408406 = "15e2e8c5534ebe7dfe99978a3d792b22dac7a4bb" +9f72c4ec5bc7e65a1b7a77467d7b5d814e5db457 = "140fe524104c842c547e08525c26a8e0bc8a8406" +a073de1ff0fbf2c7c3821ef137fd3b17007de916 = "539a6906bad1844745123c2c73685690c6ffaea0" +af54f9a2ae0c489c4edded1b8c822fadb8c47271 = "323f7bce21081362ef03fa11907a679b5b2c9987" + +[e5c7262c-e9d2-5620-ad8e-1af14eb8a8e3] +14e4cdf6ca6cc477b3622306b4a13a9f287cec36 = "8874d4d5d0a0713c576095d9c9e260ce198525b6" +70a2b4d6f7ec6b8f854055ed658bdad5323806e3 = "4d627d494ba6d577dbbc2c68ca76d2af1c996683" +7a87a425eb7ccf071237574f22953f714b2e454c = "36e5261871825ea891d0881fcf7e6e38c2ff1ddd" +cf7d0e2c4bf61dbbc0e5accd7f14227bbde7a461 = "fafbfaded5393f89434f1d3894c0c029eff94b56" +d3cfb2032598b0f620be380af310c1816ff1c263 = "c19c9c2fb2b835ad9cd0105b61e96d2e33c58988" + +[e5e0dc1b-0480-54bc-9374-aad01c23163d] +0492a9ba0699de6192ab7cf5b337779de06f549d = "4a757d71410353b16a8e6aeba04ae6dece1ef9e3" +08f11fda9f5e5b340ac96ee78dd5d03d3e49184e = "5c6536ec5beab7ba38a2c401f65f2e0f812ded7d" +18b8b190c7d55f61017a4bf1c527d15d615d87a2 = "b4b31f713407b4665504cc440f6fe3ac6d83bda9" +3c28145372082b63ffc9b813a834eea191b380ee = "b0463992f1372fb93994331242978f17cdaf873c" +64cd2c32b2bd98f8e56aaf55ebe0b76f8b631f34 = "dfb3c9f0bde116a2f6cbecf0f162b56b9652735a" +64d733f5fa17c80c6e15867cb72ec7a9f2980c1f = "ce8d858c9263b6783db81cad85f1e2ac6bf8c648" +913f6c0cf9fd0e4063f2d1af27c65a060941ae4c = "5605ceadfb8e4a44ecdbb7fba4f435780da9c236" +9e8118335cc92b01a704b88c045356367c0ab7ae = "94f7ad582a3dd35a5cc5f0782f80e85e68f91c5f" +a076c6d5c3c64d624b96e8731739ffcf271f4432 = "14467a3850ce869c9f48a5d41f662e626f9b272f" +b967b69e116ad0fe2c2b3e2207f4dc43dba45706 = "f466a6719ec96780122178d9eae00910ee182504" +bbde5558ca0b329ecde15e580ea977838f20ea51 = "947a4dd1eff4f4df2b90de7052d86dd3f0402997" +eeb9c84295d13a9a1574c7e29b61d1a15645aada = "f6530420ff93f270c92b84c848b06d18a7b6e6e9" + +[e5e5f8be-2a6a-5994-adbb-5afbd0e30425] +b86b41d8fb660e74b0bbf58141b553427317582b = "c41adad42930ab86969f038586346d044d510b5f" + +[e605e454-228d-5ea2-8551-672d69aa7712] +5d09bda0fb0c098e044d7ec6750b8865c2eb954b = "f17cdba37b9353ea785e78bf661af6e39ca1b11e" +8b68e0a9c74c5ea43674a98777dbf044ebda8f2d = "32baea23a67eed4abc774f12d2edfb4cf7fffe5a" +b5e3005f3307ae5bb3df0184e674fa3c5c7de1b6 = "3bfcbb5c607964f2f3c6ad1f4f44722859939abf" + +[e6352adf-4ae3-5eb7-9a68-79830dcd0ac1] +3fd2a7ac9f8fd771b1ee8d323510fa7a1329b751 = "e86c182147a778c6b4e8212d63f2bc506e6f3c5e" +64ffbd26654448f9a46999d9efb8564e4748f9d4 = "dbc5d46b5665c4b2b318e03413bb51ee24cebe8a" +ac26d9b48ffc5fe31cabbc7fb8db7df2bbdd43e8 = "ebb68a2560c556245014c0f64d878d7b8344ce39" +f583c99c82b06b73a3cb1f26163551ab3b465741 = "4ac8bd198c536f24b7e5ec86df7bb3f1232c7504" + +[e6386f5f-9a8a-5a5d-a605-d2d61207ca5a] +6c7bfea54738d190ee1e7271529e6d25405fe335 = "bb6fc33653f549cc18f015e5dfcf23b5157adf78" +890f5945a56e12ec5151f3d300619b8654ac337a = "829caeae20de1ba39547f07701d517dfc4fed143" +9b1a72ab5e47eab8a817f0a178fca7440b4e8300 = "c1258fa32708a300345f695bc30370655a5f7a13" +f1f6e9b2b79d2747ed3caf75ddd4a4e05f64dea4 = "17d28bf62d477b7e9fe76e89744fc87ae3d7088c" + +[e6723b4c-ebff-59f1-b4b7-d97aa5274f73] +2ed69bf4487a3c81eceb080d4bce40f59f107cac = "73b2b0575dd52c95e9023ad04059b23c698bd16a" +3100f8e64ff4ce23d47031e7153b9c5ad714afe8 = "28dbea922e7862ece88237dc24a9a53e3729e0c0" +6722f25f79702120fd4d74070309ab98693db4d2 = "379fd0d256907e2465bacf36f7f1d8c79577bef0" +c1ca1f6beb44c01a8bb02e6978ddd120b0872f68 = "2d48ae5800c4b48a108560423e2759154c292655" + +[e6aeac8e-85c6-520e-8612-effc59bc0f33] +1ccd65d8658deccaf8878d7403f9105cc1edc759 = "e37c4b200a66c3aee28ea82ca0feba36cedf7849" + +[e6cf234a-135c-5ec9-84dd-332b85af5143] +15f227f9680591f805950cde09c469d73f069b21 = "a3f479288b0e49982347e88bf16f5e8be117a8ca" +5a5861284ea5bd1038a75b0d7d689f3e42fcfcbe = "e5cb01e4309d5d8cc13f447534bd861de61002d0" +e1b65c2d55f8cfe2899b890cd17969bedb8cad0a = "4eb4306839ba731e5d3a0275e0c21387d253fc71" +ea7f88f55673f288a2a675b93f6f593d674a4f43 = "0076a72ed0d0c055517d3900f357adbc26f3ffe8" + +[e6d88f4b-b52a-544c-a8d3-7a4f12cb39c3] +cc05800c0948ff653849042f5f68e11634e7f002 = "8df3d36e0286777d226f4fd4956a432b73425186" +ee2e55fe8ef28240490c222f050b0699f573858a = "87a2dadf0fec9f576e3bd89e40ae9e3f56d91608" + +[e7058ba0-a568-556c-b31a-209ee9d855a8] +30da1764a3f75bcc3890c1db62e5e4beac99928a = "165a21963b43769f425126ee3eeab2c11952957e" + +[e742bb3c-81eb-5c15-8577-c54658a6ac7f] +09d01d0811962406e62f3e46ae1faf04cc6a147a = "c1182748684df86762317701c2c4a906f429cb4d" +a65c107672898cdcde582c5fc164884bc74078d2 = "fae9bc7b9d46f1046c945fc24afb074d794b1f8f" +da471b7bf9314acf42cf7d350b415b5cab538ad4 = "6bc3a6b7d1ac718134c60eb1deec68286e430081" + +[e7bfaba1-d571-5449-8927-abc22e82249b] +32557ae47ab57c033db02f57b601bf6e1dd20ed7 = "f7508354dd1d1cc4e1fe65dc7adb5a502cd5316d" +5ee27b62431c0e57ca4fcfb4547788fe4887f0c1 = "ce296838473be9b06d1e2a1ffa4deea05265db69" +d999d21ff31664ac5ad7323b9a1a38e913c20092 = "a7a4cf675860d3d73c124d32898d893bfa7272b3" + +[e7dc6d0d-1eca-5fa6-8ad6-5aecde8b7ea5] +2356f617ccd6879fe76140330192b43a190fb2d0 = "e1c225e78b665e10fad69ca86b63455f7b915ab3" +45e1c18ebf1ecaa09272d114384f009a843c0322 = "3ff709c239615fe99daabaaeee5432fa42f1612e" +639c9de1102daef9dc865b1a639282c96f0ad9ae = "c20aee4360dd38efcab6755a5a8f45e50687cef1" +8133b98fa8b8b4a992f6f7696bf24e68ddf0bca4 = "0555b02be885a17a522a173539aefa2c7faabab6" +b8e84797fa0dd641b282f5f2c641dcf1ea10b7f0 = "6ffbbc6559a4c90e35187bc1122d8aeb92a6f01f" +c041332b4c5e5f07992d25bf111758297d2335c1 = "270fac130bef820692b78ef589bd3a325ea76482" +ed78d05bf74c89bb6ce02f758ddf5a14a097a280 = "849ed484e921a7887bcfe7ae03a440fb6c51ef49" +f79fc8b3a42b0dd9428f3c6c20b89a3cdf2b3369 = "bbb660687dfc446b93393050e36d62e5dd10cc56" + +[e83ab1e5-2a49-5f73-bd41-7fd30d6576bd] +1e0af0b98f338e46fb8511fa6a4cd567d510c05e = "7256d74962df34f891f793ba000061f30df67d24" + +[e8712464-036d-575c-85ac-952ae31322ab] +00cfba7fbd474bc12f91c347f7255e6ec41fe174 = "70ba52cdbcb9bb08a3416714c04b78d22b059f73" +06d2531ac3f5140d0eb34ee3cf8a829c259d6681 = "8011dd345078f36cf074348fd632ddabd9378d8b" +1a43b9c0e05d3261f45717cfe1d898deac0cdcef = "1b577f6fc0fab1c6b28ce53970bfb96db534c704" +1dc8259aa16b4a3569ec1314ec11ffec0ad14386 = "b680bcef8502a1cd047e98fee34450a5fc89a89c" +20b235a43db76f6744a5bb55e468742ff9e229bc = "74bbed8f1adce35a2ef70da551a565ee6ef2ac12" +262c8693797c93c4d87af19ec577cb3834914eea = "b0510e78048bec0826e3b7e3613b0a05af9dfcce" +272ce68af0775c473c386ffffcaa377c90888ad5 = "fa9fa2eb69e2014628c84d8bb06a6482fb310495" +299f72614c88ea771b3163495206ad4580a0da38 = "8c453dc0dd4be99bb05c3b62411554512db120e4" +2ebc7fb158c4dbeeacebd607a441a091ed17e1f6 = "50d148ecac678750f337ba5d206c96366913d434" +34e56ef21231e4602ac339a80d0acb003a400459 = "a913dccf08015523d75880ea130326060002b79a" +3a4af3caa3852527ccc41f486b207227edf309db = "34375f227c06b170b43f8dae05490d7cb9273cfb" +3eb69153ec3929d44c07c9c458f314637fa0b7bc = "3f2c80111b323ad744322d03edc18b16efe82429" +44d70140e0b8652b31cc4775e6d86767a921322a = "65ab08f3253f852f88fe3ab91182abce0cc7b090" +51b82704aa0ce9cbb851ab078667ce25789d8cef = "970d88dd33359befbc06d2a87fce54a76ae13b16" +51ef61c1d9bc8fc0841389197538554eecfbaf27 = "d69f79897f8587b09a5def6044c5cc3c2a4cc2dc" +5c0a418846631b815472e1d91bbf96075894f0a6 = "56b01419226ce568b720ec1eda593a25f43643db" +6f77b9cc35af1f70403b7318d1bdd5fde2c17720 = "22c933466323fe18f3af11e84be54d0e44f7c95b" +7c6e789fc9920fd1b7212424b94665de51fd7787 = "50598c4d9dab36b66dc2c8a8d200da806a0cb60f" +7e52f9ce297818289f68a7a12521c2f27ae4611e = "6732b83bcc5c1042e0578ba6fff0907896fdc607" +850c9d025d0fad65e83b4cd2a5e602669b4da885 = "2f8483fadc8b38a5276ea066d000b5c79c190c53" +8fd99fc837e013c861bd3c08eee33373032e0014 = "176d32987541fc7e6310bf8fb7e41092ef4c1315" +a05e22acd7058bec5962cacf3ffe2820a6472491 = "80eb51d5b5411c37d5df8306db1ad2f59f352eeb" +aadd4bc495fc117aa16c2ba9536152ddd3dbdea8 = "0c5840280cab519d87f9a111dd91302c92e00bc3" +b318231bf451a4325f2dc5ab81927433fc472103 = "7e1319f2a7693bfaa72cb4ade0f3b03529187954" +b643722116f6e27c1b7c6da4deb1132360fb9be7 = "43b88966334556e20a7788ad22e6fb94382455c3" +be5cace4a252dded7ab29c873c3f244e4ed5808f = "237c3d917be4bd0658faf1c917b595d05489c539" +bfc5c667e4bbb23e2b61fd8e3670839c975da910 = "3b7b2ba13451233f4e135f64a1fbd7df183bc720" +c637b89ba752ea99c4f53a4bd68dcdce6ea70cb2 = "678c6ac09aa073156118e03256be998382c00868" +c7b7d51ce171e3f3bd3ba75a58d8caac38005474 = "b90566ebcb91c0be7dfb85f66a9c53a39886f2af" +cee05c8e1f60132ca6c3d7d443cd46686423a0fa = "7b95f83c93c59baf7379d0556acb8ba3449b3495" +ec40ff9c31b4899ecd95d82035cade5c8e819c86 = "b9b7f3dddf18117f9803846631ebe2f2ab3a6fc6" +f6c9670391b8cf6d8ae3eccb57b270cd67bbb38c = "873d3f51e600b104ac804038feecbe1c82d678ba" +faf191a13febdbe5496f9b3924a067dbc49a5ff5 = "63666d61078cb1d201f80f4f6fa936b69bb6c90a" + +[e89f7d12-3494-54d1-8411-f7d8b9ae1f27] +11c451e8c196a2cf031c95359d5b3b6fdca8edc3 = "fdedcc58bd77c3fb2342a0dff387298d599434db" +2fae93a4168816c5b44fa2aac4b86d62fbc483aa = "aa5912ba62920d859db7650161f5154ac916c8bd" +424bcbd24dff08182b05ec7848ee5ad8c52e5233 = "e927b25ba378aecdb0933cfdb03aa9fe4f361f61" +4d4a247d58048c814919c0dc734ed3154130abe2 = "b58b2063944a54a840d88dd8fed26f4ad2737250" +7a70fddfd73890ed060f9188eb0bcf6c3bb09072 = "de3c6a481f055204cc220dd83551eccdecc0ec31" +9024124519402c619748208ab252344bc8563448 = "c80dce0fb51b121c0a415c2be380d4a294b9f3c3" +93ee4053e70185e7a8b128181b4172e8c110dc8a = "8e7b3d5c884b73b5bd0efb7fb8271eb7522c3400" +c749dc530397e6299271a50fa7a2794af71af8bb = "6f164a99490fd4c0210bc409e2fbf99894db5f36" +c9eb37cfa6b7f186fcb82711b4f5ab64a8db5b05 = "2e51154e9878e696a9231e6d107a62134f7202c7" +da904a4103408cc8fc4bf46c0734f7ac97e24f4a = "1fe976a351890a936055114ce45aa27426821ebc" +dd6d2f1dda2aa6d183bbf4415f84a220cd184504 = "6530d9ad615e6ffe6ca5a5fa33b485675443103e" +ecfe7c94d1b4bc2409e7ebaaeac3faf5b6469fa6 = "c277d16653ebde1c6194ff9ac9ad2eac10083569" + +[e9039029-efb3-5f59-bd0b-e956901ccca6] +360e0345020c7137a0bf3cf42ea5e6ded3d4e6df = "b1a6adf494961d1b3466b26cb59a854c0fe30b99" +549b8e557717b9de918ef5eefc96d438d99e77ca = "11b587e6e9e7e4d8db79f51cf2c59aa036ac0c96" +5e9d57729b3c9bf8313c23f7ac2db1aea8cfccb1 = "8328e9daeaf33dc066ed8d84789d19611cfbb5cb" + +[e90401ef-f6d4-5a08-92d5-f8df1a23b84c] +1272c82d7f082b3a9fff42a5ec2c0b1c9d8bcb5a = "16e573e895e3d563f9d413a4185479ad4948b210" +36afa527ad4595d5268529c2e38f7d3f2a325579 = "a8b8aa439fe5706ffe2a56af798fe13d52c50d2e" +6e401e7942843d763934c2f97f7b65375bcb3ef1 = "1c720f9175e99ac36a41671be4f99968f2bb0389" +7010a9e28dd5422efea419841029c639c52dffd3 = "ec5687598fa3275aba3309bba93f6ca5a58e929f" +739f7513cb2328028e4e97218d410fe820dac3f4 = "475efa3af36c0d3d726d079274acf49be112081c" +7b1de6ddf0bb767e414eda6c022bb91d6084295c = "4de39092bb2bf80a851a6e41e9477e22daae1a89" +7e657c2347e4ebbb6b04e2e8c806634595702d70 = "41496a30df59f47e8a6df04b7b87e6fd872e09b9" +83da81e8f1b60f6a1f3d7330481c0404154d7ac6 = "19b9749667f60a761630f56bbd415a91d68a557f" +946aecfac88f70ca58048d3e44d33465d6c5f358 = "77ca3b61cc3e930d77a6793cd5994a888094a6ad" +97e8670a39d44050959aefb77e0a6e84dc2ce746 = "97908954e5ce7bb2f2eda7188d4118e1e9902759" + +[e9059424-2e25-5e16-9663-3799bfd3fa0b] +7bee6fa872eefc2688c3c81939e81b0d61896b5f = "5fb73ca9c156f8ff0ffe7026f789e226b2ebfe9f" +8fc41b9f0ac04fc7f0f82236ea545d37c8625334 = "cc2d44441964a9f2451d4e0a62320f44b029d95a" +9ef225e2abca51d2b90f7bdc170d29324b9e58eb = "f8be55d9c8f7c218d55a7e82519e85e0b8ea49d2" + +[e91730f6-4275-51fb-a7a0-7064cfbd3b39] +0786002dfdea9eb8af3d651a36e8af6059d42cb6 = "f9cdfc283a0e8e3aafebd6c717fde0353d70ca40" +3825e11ab18e9cefa10b8cd1201ea20aff2aa7e4 = "d955cc4729cb99c74f0d94c932428a22cc230622" +990b8e7d81659d1a8defd17d37a1ae9c50b69e3d = "03c7fdae0f96d825cdc69f4ea87e033a58ce8b35" +bf204dbcc4e6e580832a3154271f863f82ce8444 = "6d3704f4e21fc5e53e352420958790ee4fb34b8d" +d37626133d96e7f404604b27471c7850377c9bcd = "ae8001458fa682f5e719fc32dc0e4bc3937c2a03" + +[e94cdb99-869f-56ef-bcf0-1ae2bcbe0389] +159f024e7f840701d93d2ee52c1c27c31d458498 = "65cf237cb84e010b3a0d84ba921131c657d9428a" + +[e95a7839-07fb-532d-9a0e-071766bb5168] +02a1781862f71f6fbb9301cd7924016af5911ff4 = "d5448809e0ed8baac94c9fc3a6dc69a37444b990" +11a50fe956c907ded80260faa5b7b367d7b11ed7 = "a4b2fcc96bd8435ca075ab1a6d3d677420a6d555" +40eadbacdd0f5c537be0b91b1aebb455f03e3288 = "e8379908a7a29ff1d675126ea3b8ee844476c239" +696f826f863ff77ac44fc76474234e853813a172 = "671ec3d37cae24a450b49cf0187793d9ed41fc7e" +c50bb372292697fd09b8a3641bd5789a8d2ac1a4 = "5b75108b22f85f73f8c9c64deebeb482d7a423b4" + +[e96904bf-1073-5077-9b57-b0ce0ff5555a] +00f5dbd686d1f413f66546e505ff606979a4e9b7 = "2315c66cf0ac38acca7cb5e2d9a727dceda99f65" +21aa56e7236f6a8dc3dc7b853dd3e7a02f4b51e4 = "faf608a02e86c5d297aa8a218a43c3f905411b27" +568cb6cff27748c9a6aa6524d843a7f44ec7bf03 = "cdf2b01496314367b07976084b5f3eac1d0e796b" +6784d8728ec34959a797e41b8178c17a1243251d = "fcd8497103d2c244a1e50872e1af68ae1728d4f6" +a59fad12ef3be0d6fa9352133199cc991357aef4 = "89e78df84aa08fb3eef62f2d743dca4d85cabee4" +b15926c6baaffd96f5c77cd4ec0a9c31d18d12ce = "28482c2d1206c1d825bf5bcff129dd8effc30a9c" +c07871d62bf67ec695d3e0124da56df6c36a0813 = "74eecc40d310c76d449b0cb33318a31d73fa1be0" +d22c0643a2a3b84f7e96dd12b9a7af2f33ce8a2c = "589a3b47bafc89a011d620161204c161f01215d5" +f53683dfb10d80c09b21a60838469c0f400258f5 = "173cb789683c46740a70e3b281b0ac3361e836c7" + +[e993076c-0cfd-5d6b-a1ac-36489fdf7917] +0825c2cc9a1736a09734266715bda3c42e2a55a1 = "db0c12307d426da91c2cf68154800236b7d4d2f6" +20af72ab09293fa9b750938b18c489554ffc6986 = "cffd9611b7ae54a5315c1d9709443d8e8da4feab" +25ac7134acae9237126cc073758e7f5319b3a465 = "63ff59d74023c19c8ab50cb8304cd081962227b5" +a17ab3f1665d70fc1f71d808451d2409839f768e = "6dc31f969ba4d91ac462bb9bc82ba9b13743cd5c" +bb544ac59a5b0da5a352e6fd7a0a7d9a2ceeb89e = "4060756a778758f0fb14e9d2a5c28c7bd84eebad" +bfea57683cfeb2dfa1db93b201a6e7ae0d2eda03 = "bc7fa89fac1e0f2e8f5702f9213e47ec12582af5" +ca01fbb2b5ca5c30998f3a9a6d488ad95c5f9de4 = "7b5ac65a37f2994c733a461c6c79c76bf88e0654" +f74dcdf580cbeead562c0528918bc3286c2d6e46 = "48a1781c821ca1019c04e771dcdd3bbfab829337" + +[e9a8cd0e-445b-5884-b692-2dce5a6b6c76] +2b9df669f32a4f9a3a2d179f85fd674925281cc9 = "35fa481dde97ae1012191cacb6228a4bd2d7b2e5" +4920b5b8806d303ba95661d32eb7b7c789027b02 = "debcf5afd97fcc8ff5ea74950c1f38ab47779cbb" +92d3f724a7e41ebd4d5d246e8c190d949b7a9c34 = "b6ea284a07c81b2c774698bc754664cccb5eaa16" + +[e9eaa0be-409a-52d0-bdb5-a49ccf89ddf2] +5d591c958f2dad73281545793ee5fb5e4bd16ad0 = "57b56728f4b98ba934d76b59447ac88979f04a54" + +[ea10d353-3f73-51f8-a26c-33c1cb351aa5] +140ee9fdb83b5e365d2dcb450043c95bfa315638 = "d84529780e1d186dbccc5d9b41aa72323cebc833" +152cb5e6698fb183429e9d9cc57c37917b208e5a = "59ad71f0a89e4499ae553b556cf1f650f841776a" +34d5207e0c3e0c4b133ccc8d226a9e509e530df1 = "8d94352274fd3ea0fea4d1e7ad4c2a459837fdc6" +34dc86ff7622a9e1959e0d33ad050ae6d04a28b5 = "8e56ffbedd0d93c1d5505208a9c678a8082bef81" +46363b01436c6f3c787d0265991783b0574f0460 = "3c6194e8e7300c3f1ae1f35eaace6b713853332c" +4a03ad423419c20bc26f8dfb2d7d55e35fc9518e = "8ebdcd9a72403f3e36f3a3d8531ced2450fd1abd" +5bfb17cde0044776b7b77b776b2cdc4d11d22892 = "f14e1d2401eb4758a7899d81f75dc363793148f8" +7dd57d8168c045459f64045aa985bf71af1bc16d = "9767323be732588a2fc318b9f8d458e9ca601d9a" +98be3ab08d94c2732f40e6f4923c6413e6dbd787 = "a069c9725ac84c0c2381634c50beff3ac0ff84ee" +b4d12a0731d104841dfb049d088dd352e08d3f6f = "c34c5b247ed27b2606572de9d9380faff9842672" +b5d25435fd90b212361f82aa64acca52aa25666b = "01f4e48a0c778fe299ce8145e6be3a775ab007c1" +bcd2f0fd03bf42946ef7498064561981b427c264 = "bf7a6309ba9b5cb9677d42c0776cd212d25a409b" + +[ea85cd13-0aab-561b-ac63-24d30c69819e] +0b5834662288cfdf99e1754dd4320c02f154eef8 = "885ad76ec8199978db837fdf1d82542d7e4479cc" +21114ed30d29563068edbf1feab8f10ae51f2049 = "6e779304228e11e017670efbb0d300f9c1fdd4e5" +743c3d933e3a23f95b6d2bd7ed387c7c916e916c = "86735621578d4a9f9822887dc43ce7e47b15e7fd" + +[ea8e919c-243c-51af-8825-aaa63cd721ce] +08bfbf1be1967066c81c9c95c337c600fbae61af = "2011437989c9629ba85cbc7b90c40ac57d6dfaca" +0e31e9d265eede8cafc9f0c04e928acf5b0fa4cf = "6dfe05b9172f7dd1a3217d8bf46dcd4d7cf395fb" +14aaef7aeb792a4c8279d2877db6b1d6e534194b = "5a8ba76f3464aa24a9dd80057a40de22a9d9b579" +285faef2e8a68d495c7368247b57da97ae0baf3b = "653404982dbeff98e712d5266fee2dbc36c6d8ca" +28702f45c98522baaa000b0ddefa77acff99744d = "993b3dd09f995590a17543674924bdbbbe947517" +337a8f78f450c6a0a1dc50ed1a43eca00bc558e7 = "9ce386dcf6dde95a1e267e320332d192bc090fff" +4eeff02a744c56bb2bb6b5a421b17fd4b98ee264 = "e0e42567a569ef78ea1bf5d844c4eab4170d7426" +5b22374dbfd3aa0ecff8ffcb74b50b28becc1e76 = "de4c0eaeba2c1ec728855dd10349f5360a1a68c8" +62e0924400f8fdd90f1a974dff3da31c7d39dad0 = "e1b08f6b33bc78c44c5515032374cd91b4e7de6d" +6de03f4ed96d2e58e794cbe8d58d5c86e3637b76 = "cff49605966f2e6d4057e1e82a18b82528c02600" +6fc545579834a7caf306d47fc3608ce578b95f3e = "a7b48605af2b277ac8e01b034cc788a304c014d9" +79bcc3fd79c1a6cc8678c39b74d721097c5cb2b0 = "069ed88d6789fe615059ef615ec83abf162882a8" +7a57fd67c600f2349ee954df83c64dbaccd92049 = "36bdf4e61eca53f8b280be6045c58b11f7ef8633" +90144b2c9e6dd41582901ca0b311215b6bfb3f10 = "1548464dd4413c7938ba2c194be41f5c638443d5" +939e8f571b7d205371c0e3cb65cf28d7964a16c6 = "54d89dddda38d6e32522d3141dbf37d6fa1cf972" +d44d9d87752e03be12aa6837a1141f5a1377b928 = "91cc54078cfe28488add383c458333ef39cdcde5" +e58b26618efcdc716ab5b44650c1344da7c524a2 = "33934beaf5ae9bcdeff9339593332a17e32a7532" +f091ad7e2db37fee4eed6b0c84659ed65dc431aa = "2f992a7c4583db0d8a65405750b0d6fc92eb5ecd" + +[eaca7b4f-722b-5502-8392-1e2735fc81dc] +0607bb9c1c2666c06793243f202f5225507d3296 = "65b91709c65da31fedb8c9cdce0d8e5cfc17892b" +350cd9fa8c09964aaced9f1356b5b135e47023d7 = "86497a656c25b77f2015d7a4eb65da50dd0ad8f6" +aa248281d766c95161538b6b1f3980c55f58474a = "50f532b50ac70682299acb267bce36d330e5a686" +b966ed0895a56f257194f255af0571877fc14509 = "3a9ea3f79dd94a207cba0dd96430e203146fbd92" +e0de9f636ae71d7c1556e1f22eff95588f955142 = "716f130f034d468414973763151718ef3b48cc19" +f1a2645924fd3e8efc17aae7cd98af5000466233 = "df2980a9536f10de461d5a3252b8c54cab0bece3" + +[ead62946-4549-51ad-a948-164214a15bfd] +12a49807bbc1e8e0173f9d02bb56cb7c23616822 = "f58fcf0d6ae3ce0ac681baf85662fe05d95b2c8f" +a891cbcab989ac45bab4ab741d53c080ee3b7783 = "a243bb1860ab525e086c27037524d59e1dcdcae0" + +[ead98f13-3562-56ef-8e28-822b2114fc97] +a355ae578533dd7899669ce528d46e81e73b6a27 = "ff0d208ddc3042f5507c642ccc8116a50295bb3b" + +[eadc2687-ae89-51f9-a5d9-86b5a6373a9c] +0177f2a99032d5c115945997285991885f4c906c = "3aec205305715faad5a83e5311cb4fc8a7ef91f3" +02ce97243873002c2ea2739021e410c1a10fac19 = "2080de66d81c79bfe43dc6c4fc3a024a31e7517e" +326d838e61fcff26c7008a88e05280b8278c3714 = "aca38628b3540ac4fa4ee8f7804ed8fe776b0484" +51859b3826ddd383727c839d45a33df84b837b0e = "12462824e27ff2cf3dfa82a2cbb0457a26a812f0" +5d6efde998562caac597abbac4f5623e895d57b5 = "6e4914330ba6f1527b4683a0f4e220b1c7091c37" +770bab7a73b8240ecca78be09d95a8a9961f0926 = "72ed803964fa82e481604cc3561c522745d71212" +91ca3d018dca8dbe5011a3da8ff3af4c19615cd3 = "3959e74597c4673a52c5f90b7e380ba0ab7e9f6c" +9f372f5b816bff8acbcac471f7876c12bbe36afa = "a3fed2bffedb5e553842ead30f1c41c96e2d53bf" +ae2af070718546bd26c4202f21722b5881bf5fa7 = "d859624a8a852a5b06aacdcb2ff8f73d020cc8f3" +b780b27d4caf3fb48cd9a6868ec900479d642aaf = "0250ab5bfa0f14e389eaaecf0fd4fc82251d6a40" +bd14f25236fdcfe5cf3433b69ca346297c9707fa = "8fe41878cdf3958869f4f15dc8f9b28b409a01f6" +be5071fe371bc0805d08c162caea96245ee6e9be = "8f935d9dae5ee74bc00f2304efdc39b263a1a2c0" +d6377e80f9709ba3995a4682dcf3b76fb86222ef = "cf348a75e35ff5603655a0b415b0405bbaf2f820" +d6f558db1dc0038412b7afb987e318c8b88fd9b4 = "b0e71b2620c0200745a57217d4b07e6ae8871dfd" +f384a22ac66a7c04c1831e0eafe8db11b240b4c3 = "51ad678761a4484f3127423392cfdd630411612b" + +[eafb193a-b7ab-5a9e-9068-77385905fa72] +0830856e1fc5e26431990ead4d248d643a627459 = "9eafac4ae1fd4ddc7ac74d6afb34bb6a1dbb6996" +84d115a7bf07e9566a98ec96fb87f114f5b20c0c = "405d685ca4a85cf70c39a9210949b6b3a7956968" +e10d831fe214ae9b268233b63e5b498ebfe980c6 = "7687b514b9e74c9721e8e26d5f5ed16b3cfcf356" +eb2e78300907edc402bc25c980d5086bf21b4d9b = "28465667381d5f4d4348f19fd7243ef2f07be669" + +[eb300fae-53e8-50a0-950c-e21f52c2b7e0] +54d00d9f4bf180f3c5f8084b57adbd104183ee5c = "b8b3c7c200187ef9d9a71b0f36a4313269237499" +891472d7d5e50c8d8f1b42fa5c486f2c418adbdc = "ceb4236d35f12a1c2c3acee3c0dc50d08e7055a1" +c9aa90255c1f0289726e2168eacce5c83109cbb7 = "1fd3d1a764682aa09168b9eebacc4a11f0705467" + +[ebbdde9d-f333-5424-9be2-dbf1e9acfb5e] +c0d41d91496d2ecb81ab9ef1a75665d417ff7650 = "870f6e64a2d4430e68a447c4d8418a75121a52e9" + +[ebe205f6-e6f4-5c1a-92ce-e87123df1286] +48d6659a778153894912353708ba612987f90f23 = "84992a33164e78c94b68744e321bd9b1e4059632" +ad92720b8d6110b452c9f0c3ed1653a6a03cfac4 = "54e5b425ecb0b86f906f822b2e91b918abfa4379" +ec84c412ec1f197d9f915dc6fc7f5a7f593976c6 = "a8a5e4d16e21e984f5f17b0d8123105de04273ad" + +[ec145902-31c2-532e-934a-7c64254c4b82] +0296745500fb2b18aa258b459d1455206aa6b90e = "01d2570a571c93b6ccdfba286a4ddbaf09d3d9a0" +13c572da96830be3c90896ca8c28a2659582778f = "7f89c0b7a029b56d974ecea946c3b66010bc31e3" +1c3e0d5da6c7dae7f621b1722feae36baec0c269 = "4326e2b570b8f237d3f8ac849705d6cd9bca4bac" +40060716a55ecf20f4e4612fed7183ff43b16400 = "4ffa96ca24704b831e1da169ce760b466327879d" +77416673f674835fafddeb0e048c86b87c102dbe = "944cdfc0177ce453275272e1d664bdfbc151eeb2" +9f17fef46eb884d51af63dd6278a0eceeaae7686 = "a3e78b8aef4774defcdb068e437bf1f6fc45fa19" +e627f82eee4946e6089838228de8468261cf2c28 = "f33634d9d1010be25f30a500aaabac80b1f66375" + +[ec312bbe-3c21-587d-a7db-6dbb7bd4eda7] +e1a242bd98e7ed6e323ec7ef91cfd09048770859 = "970d709a7afc99282ef8859e42c979f8dba69c93" + +[ec55e9df-579d-5e55-a10d-b795213e2edd] +3e9e022661c88bb42679c562c364f5e2ce522a45 = "be2db8a4191422e7f3d507d4db2a286dcc1fdb9c" +60354dec877ab64ae06310c807490736952ca667 = "710ca08e36df4c4f53610bd0874ece0fad2145c4" + +[ec58984d-c81a-5818-9de3-f03f207dcefe] +386bfff9142a2b34d5fdc651844b653cc52a14e7 = "1fc702d43c5a7e8e67dd6cbcdc6b62967e1dec21" +cbd5901d0a86c3c845e0d7e23411ea2ba7e77a4e = "c09428e68dadc527a1268685eb24ab9467a7f785" + +[ecbce9bc-3e5e-569d-9e29-55181f61f8d0] +55d9024e810dffb26f982299732ac5175ffa053d = "cab3a679b0f18fe9744da6ce27e29ed0de05683c" +b0c11e433949b3bb95cb7273b1b590d2fa8d4924 = "de804ede8ac908341aa2107b2fedc72f753ab3f2" + +[ecf26e93-935c-5e64-9b21-bc8ac81b4723] +3196694bc10f73c738457a2151eeacb2b04748ff = "e7c021d39d59f9491464dc4752a2023fab87a932" +6ff2628c15cc5c17efbbacb4b3ecae9bdb3583a1 = "9d3ad380beb089a17560638b807e8fe9378ea371" +aebd353646bc7efe35e598b7b9625cd80c03ebe0 = "bc4a3eea057c3f36375e4e6964cee251ba74d235" +b47fa7d5992f2965a4afc482432a088d5093cb35 = "05c1d8c73ae0d8333974f5a487fda0fac21694e5" + +[ecf29a63-ede7-5edc-9377-e4ca4ad0389f] +ffa639dff1957616b84e098e0a53cb4dffc0b373 = "ddb29d73cc254db2f4781d45ba42f908f22153cc" + +[ed01d8cd-4d21-5b2a-85b4-cc3bdc58bad4] +28c1860132474f470399f0b1515aea5f3ed66353 = "df882e67f5e70a6de7036d28965297b689ba916d" +29d3c0ad63c6b8ad781095153b44f64059c5f709 = "e2182c6d3c8bb6e3543fe33fdd6797cad8c3ad23" +4d9b245aedd3ca142c6ce8b79c41146bedc42521 = "9b2a093a2fab4a2f2952f39831cc54bd6094403d" +747f5299974ef4e96c96fed2bd78ed3923309f90 = "a5710c2bdcc7e15a53c2b944d1d2d282c2d41d1e" +92776cab9e4c9edd7cb7131880bb1ab503d2d5c3 = "986a0e2ae61af741bd8787aa4d5e2de2282f578a" +bfbaeaf246ffe2ae4e684844c78eb971c36e1519 = "639ad13d1c769c2f9c9a9144ae59cda10bf6fc79" + +[ed09eef8-17a6-5b46-8889-db040fac31e3] +054650dd4c9442686b51f577abe6b8512f724f07 = "ab22db1f6423571d479dce9fe68647f1323e6df4" +363f3f37dba74961d6b64f1390f8b0a9121feb96 = "a8de46617d03a06c66d16c6a875b5206dd83166c" +99bfd1ec4315bcad238f97a44bf3172fcdafa303 = "6a5149a04ef4e347990930cf9d6cd0464a2179e1" +ece06ed22dc2e7ef074bbe9a9c77ffdf7a606e68 = "9f1aaccaaa3658ca0665870c48a3b3e7374dab5b" + +[ed829526-b29f-578a-94ee-3fdae66fba6d] +2856fbbb1631523777e58d102b5eb5f328b87f20 = "45c1797c7afbb41d658d5b7e727234aafafd587f" + +[ee84a2f6-cb0d-56d0-91f1-5a43e127d00a] +06cbfe62c2cf450bffe559e3753d4b8eef7a2fbf = "bb1d0d9488fe57332679f32957969eb9ec6ae3a0" +0cd5a3da824dfe09ac1eb429c418f4f006ce0225 = "725a5308bb3ae4638e4c5d4b0d251ccef2e2a496" +1004cf098b12f7314ed68cdc3a2d5396a6af4dd6 = "01588f9df67884b16f5449ae5257b2531ed865df" +1bb613a33baae81c22b64d2ab20662b38e2c1386 = "47e4d9cd3642053d5b507e328dc36858eec5dcdb" +27065a962bfe54539a68c864af0f5df70a4b66ad = "49f11e2dd99cab855344410119256af4d8340a92" +2e66c19b4ebac65bc1e8565e1d200ad691eb4c75 = "b2537c30e6d0fe0d753ce26bb31d7f7263eb04d5" +3d997c05c8ed3f7ffb9f0271b761116dd97b7fe8 = "812fb1718c7860461478e97667e3a15ff4fbb3fa" +627cbb29f2e1533b998ce7bfb19726747243c073 = "789eaca654714c0a813bed1ccd7d57e9afeb5eea" +6da2e374243118bd61eff7861c653faf0ad26f5f = "ce632a7d8a4efc36774dfd4b152aa8bdab5cb796" +848314a0485565817e5a2c444f29d4758b8312b5 = "bb7ff371b4be58d3a90e93d43eac547e5d6f18cc" +ac76b481a01690a6328e791184d010fe72e6d00c = "10503395592d77bdb3dc8e68667e090aba46fded" +ac7ab4e08041174f289d9ca83d440be1fd29f26e = "f057fc96d2122695b14a94e88a741094c308e051" +d2055962c0fe13656f33af6b1f21980fc2f4ff14 = "be062fe3c3457247344000bdce6cc2fde2112e40" +dfb140dc7b10be1ceb6d4d6f09e5978e5c144c32 = "6fc561c58204bf2e4462200aae09af610ba130a3" + +[ef61062a-5684-51dc-bb67-a0fcdec5c97d] +22200784fb37bddb21863c2e57a4914289a1352e = "d84529d3aff0d19c957d1f69d286efd35d8e59ae" + +[efbd00a7-8d38-570b-a42f-2b6adcacbb8f] +0af9fd3f28cd5b8e9514e50e2c4d294ae6a9c8fb = "b28c018f917decfa0f113e7a327d990518033657" +c7175b69487de71e8a027ef6009c6364c0d745a6 = "39e0800dd46dd84b33ed64aba5ed33f01d2b7dac" + +[efc20176-1dac-578f-9267-773aa9bc71dc] +19d7bcb1cc442c402414eaaddfd6c53a35ac8975 = "e4fd8bd0606e74ecf1f449f8c686c73e9cc17cdd" +324cde353afc1a92c1eab3e6c60ffd72371dd677 = "db0dd0b04de2218ca4c9182d7a6d2abd95e30446" +46e2bcf4e1e1fa72cf414f48893baa3fd9916e1f = "565c05ef14fb8c204de8117d10d77ab422feeab9" +510a8b13fc89d36225d68296fc1f949f6a494ba0 = "20aa2a089c5ff4018e311de7be8499ff20ca4b9d" +8fe3dc60df314221a30baf82fe1c0513f533ec16 = "7da757d036ea5ab90cf1d43cdd705320f794b154" +94672aabec39f7002fea679127258f5abbba18f1 = "b1c59604043896675e354732b76c3a0478abf2d4" +d24c40eae1f4fc96a6dfe9121122cac5d3e26e70 = "aa9c0edc53045334ef0fb13b070dc1e59a762021" +dbb87804c67b40b0ae38460917f5f7a3afa1374c = "9b62e7ef0dad7c97b66a322b6fd110dc7a645ee8" +f4ac9f70813e2fecad4a9130f3ea4156ed2fed52 = "1c6bde569a9a379f3b75ac2f92ad828e3fd2c66c" + +[efca97e4-8864-5806-976d-c5441310cf5a] +40f5d5dad342ca2e49b9e59ec64be29608f9b3bd = "f22c0adc8a2571b2ce0917d345b1e077614f8a69" + +[efce3f68-66dc-5838-9240-27a6d6f5f9b6] +02e7067a69866751151cb639a9e8b51871e63d77 = "1d769fa31b4c306ed9294498a116507317efe974" +1a1ec7d5046cbc684ecd55eefa8872e956eb2c74 = "1a043aa0ba67b35f4d5ccaae9c8fc71b6fefe9b6" +2592d74d20997b5417cc8bd5bb5c16450412faeb = "e50d0ef2108a418bbc8502a6b8fa0bb96c765648" +4c470e0e0b05e94450f8f57c44393f35e7ae2820 = "bb8dabfc4026dc31473bc6cb9d6a40def04b0fe1" +4caff4b593fc84dcb30120bb7e6538310d8b772c = "6a6de3a86398315d3862fa7bf8d33a0267459b91" +5cc1eb4dbd04a1792a1e7b4c8f504e8fed442faa = "2a42bb0613424a71d2bb061899e74ab567f8f033" +7b40319f3c59bf140eab3f57059eb56620476858 = "1ff67b5a5b5c446a71527c5ef260f046d59ca136" +8a8d61266b942b368f7884e21f2d19eb1214b4d7 = "fa52d7f112ee4824211db4a8673b78520add780f" +be3a69617846f2ed84c15e12bd88441994b7d3dc = "a0e062f34a0eaa774db3117bbe8d811316256d4f" +c9fa159797c9cf806c2730661d9bb94a0dfb0632 = "e54145972a45193ff1d407fbf5a1407c07a99559" +fbba515a92277cfd4d7618586a17b26593699e0b = "c92d14f9d5fdec54ce1eaca6759bbab8346dee4e" + +[efdf428f-f294-58b6-a961-90c8051bff4c] +029ea772e03c8cc49df4b74b17590ef4532f2ab3 = "cbdc76e4213d4833507dcef80b84087d6cd95939" +1d3254e412969dabd0db66ff347269b39052ff53 = "d95236308d1df812ae649ae708cdfe99d5016c17" +6eb65879cf6051da81b5932d8dfcc1cd6ae0b293 = "b419cc8cd9c803730580412006522ce020c950f6" +f433ba738a7b6ba5ef463c43029029b8dc7db0c9 = "9d1187f2e5e9ed9c66ed77ac23d0d15258db5c48" + +[efe261a4-0d2b-5849-be55-fc731d526b0d] +0d2433365db02201dea331488f8a93ae37d41681 = "cb31e3554bb3644688af2b98299ee911a29ee7c3" +1e3e2338000f24797af4cad01b80bb025ac328a7 = "3187a81d1933dfa7f872c53058bce19d26c538d9" +3310762229a1a0ba68dc02caccf43e6f045847b2 = "17e92e2c9e760427bebcb2bbe4ade40934d8feaf" +37cd94c6a01295b71e04e6a4cd707d5d8f50172c = "bee1e3593de209b683cf6d714042cff74b4b47f0" +5161b77b9bc71b537e73c262765b30090c24737d = "de911ed8feaad913b25b6c7c0a107773a2dd491c" +847c48275d1bca0c1e935430725239585d5a75c7 = "cdc0a93beae53b0a612bd9b36d80bf6691c614ee" +8c4e58201735a7665cb6802fa89755ace4e052df = "f319808d29c252c36bb26940a0724b7ead386b3b" +d777b9803c07c64a209f0a8442871d45411e692f = "0e83294a8c44fd7055dd53b319e269bc74ff3b36" + +[eff96d63-e80a-5855-80a2-b1b0885c5ab7] +013caa01b4ee6449d07b13a983e0f98844f98718 = "3f2276248e81289cefef5afdebf1a3cd9c68f5a4" +1eff4dda6582a3b4e09543a335fa9625221febb2 = "82cf2e8d4d00501b5dcf4a80ded1a859be790496" +201d30ec44fecf9428426d72ec11cb1af745a2a3 = "d683c615aaabe5d275e8d74aa20d011041d150f6" +2d775a71875ade7b5046f557887832e365a3a7cc = "4c09f51309ed26c2391451b7bcceeb0911fce68b" +3653592ba191451f8abad2fb5338a258ec637cee = "bba1fde08c368b7e1d06ab97c5d7392ba8157265" +641fb420d18a905f4d5f131d219c738665a05c46 = "ef0bbbc868e961dd1427c52a64c273741de42c71" +6c41199670374fdc749fc79bb3f63321368317bb = "c9cde48a7318133e53489c7f3eb228b2072f5d97" +80f3ea60bcd8bfa2d0d60a14ee54da0817b89492 = "2b7725aa22c9cce9dd280bc64e5bde3ab8110109" +8935b73c6b1182eb87bfb6ffe863c18dd29a4f5a = "354334dc80c71a944376ba156c5ef9d1869ac9e2" +d1d98100bde67e5576c7e84ce95756026c3ea2d7 = "f0e161523946fae89a7cc4eaf51337f5f7374998" +e2dd5bdf4ea5cd8e676f22601cac67238617cccf = "37f938ef9ceeb73b2fcaa459fc5fa894aabb422a" + +[f01a5c79-138a-571d-9c23-7d209c0b0a14] +910773f93f15ab9d4a53ac928087e3c5d7e8cc20 = "dbe1917301f594e09af3bdbca54ff9838d07a311" + +[f08002d9-bb2c-5ca6-9977-d4081ea2ff9e] +0af3c0a6493a4a607149a8a6e0f8d5bc58686394 = "cd90456697c1493319b34c64ceb0ad7d7bef6aa0" +1934b192f99db3ff2dc6a3c4d24be12e94b7bbe3 = "a6624e24f52f68155d29c0a7ffadc4dd68ab280f" +518c63d8be2227d8b8a8d654e63050dc3f25435a = "4cb5415cedb1c6c2e57c6e7f7c6fcb414f5d6a38" +659a3ef54555afaa9fee8c0feb94973d7a2c6664 = "20a35ad6be7364c945b35fae9b5a7c376302062c" +67f6b47c9fd976f33e654d621b57d097018abfd6 = "4cac0432f28b91ddb42aa2697e175708cd97fad0" +9c932ffd8d927e404b0a6b63dcd755610a2b8f19 = "9740205de0f31a0bbb1d123644e8d1bfecdfa985" +a0a59eafcbdeac308eeeed1cfcf75408e7120208 = "b441a336fb305d634b464b4f399de426e9288705" +a78754cb1a4413c1572cde9c16b98de55790bf61 = "e5ff1b74b8973b5c89fa9dbf547a108fe17129ee" +c9d9701726ff26f58952614048070d490306d972 = "bbd35951dfad093d3be0139cd636b38a9f6f331f" +e01ac77000c2eb54184af25333192c81827a5fe7 = "03e715630f82c97e8469917731622f8db50cb5d7" +e4889d3a3954634930e5f70dcad150a58cea105f = "820770c9195c2fe65e343beaa34099ad55cc48f9" +ea46eab8e3e1c6fcaddc178b96c000e138f57573 = "fba11ed60f0da2f0d0a89aef56b408fb909c7d6d" + +[f09324ee-3d7c-5217-9330-fc30815ba969] +538ba3dba894c79266460c11f58783dd363cc0a2 = "c50c4a46daa118c76ded89b2e84209fedbf4bdee" +85d3b6d85d4ff8904bbad6a43cc78596207f3ead = "50f7e59bbcf0d01928a33ec1a4167d35b646f8e8" +870a7f2d2d1eea20be1aa1c2b438496e95793826 = "ce2fe8fe6c45527a1e6091bcffded2a1b2f9694f" +a8115f3699e7ef462517bff1dd0563e65cb564ef = "7ab17cade8a3cbb61a828ca1157a6ea70efdbcef" +d59ac7b79c1797786a7a42e3eda5742f20a6af7c = "b6611d2592a01bab3695fb4f9f8d29ba18dc48a1" +e45ec647978a08893adf6a9c66ac816866b0a584 = "3368f4cbc31c4d8452bcc6f3394037e45771e253" + +[f09f1ae0-d51d-551b-9f1b-1081442009d5] +0bc506601f5912492bd939b1ba30a988ec8fa7d2 = "b9d2a14a5334f21ad626fd5e3b4f924c4ec3345e" +5af676d51c598449322d6592e2a9f8d5e985f645 = "45224c7406a64a2956bc77e5a0311ea044ad4eae" +5bca5f4bcd610d247240703763e8da19900808d9 = "66d01eb89a7dfc1eaa54b46791dfcc8e0698f5cb" +7ecde7b0e38e88356050a1709763cd4814a08281 = "d8669961ffa86dcedd9603b07197127f16c2cf7b" +fb23b8c1306897df0bab30652adadfb7879fd797 = "ce624fee4ca4ac443be65674452f8e950b97894b" +fde9874e20aca2202179e3d2764751b8475e21c3 = "c38ca6dba872624e43db7abf0b1ca97707a5ab54" + +[f0e99cf1-93fa-52ec-9ecc-5026115318e0] +0934ded32ccabd3afee3579ca6dde267acf4e050 = "d1351b6e846816e9dd34f6d8f992d96a18641293" +1b8acf2f82d90399aa3cdffcb71e9d59c83b8706 = "976d8dd1e8741e86defbe6f47e85729504e703a7" +2b8ecaa3b855b06c69a756174b6050068c90cdac = "730fce224ae832ad499e84d347ea697de679d88e" +42f4e83e323ebefed62c214de88225dffb603c07 = "3e9b909fc73c5607b7483f738d852d8ed783acb8" +45002ea85bf81ee32bc6f2e7b66e7744cd3dae8b = "0d4780c2c7abcf1ed40aef448ffb3d729776c8b8" +541ff7aca3e41d37e7ad544fc0f4003ffa1722ed = "255e7131273d6ec11b9985c3429710bd5dac9366" +5cdd89bd625a48fc076f56f90ee6ba014225f548 = "81809c3ba038386a623844fd35329a16f1cdf399" +6b811ff9a575b9cfb7db482df0b942805ca263ee = "670c86e613540ace91c4f4b1ac072afe2cc7c5f3" +726dd8054578ff3ce7c7719e20e8be873f769759 = "c4be43223ffccba73dda9f3b5105bce1b1b38ed4" +7424f6731b5ca4cc5c0a2d05adac872fbe0e3c95 = "3d4ed981c577bc4dcf0cbeb4495062c47e1e22a5" +8903112732bddee02d25cadc44a5a1cfde3431dd = "6ded67b5d14c2d5969ef09453bdef0fc6500b79f" +a6e6bc1038db1b742f086deff6cbb404dec4c9d7 = "baffc512a73f1ee40a844b4202c1f13bb33af26d" +b769805702a0c89516798aa4a90ddb57838c8012 = "825ef1d25024c2fed70dfb0d950c31d9a81d81da" +bc5812916b7d8898389ef09dad20e76f4f0b6a71 = "74f08ff1ed715db7e73aade7a3fa4ad7d73a59b8" +bd71cc78cef45eefe882084ed89b1ff7005c879d = "3e9b909fc73c5607b7483f738d852d8ed783acb8" +cc7e888ed581aebb80ac5a76763c4e5c3aad30c7 = "de3a67aec0e45dc0d8ef11562d308a91fa7583e1" +d8475b80fcd74b03f4248f2844cce3843d472178 = "caff03a0b45b3b6a6d7435cd31256035f2a73bc0" +eea32c766f020464d51a172965808fab4e22b6da = "6311804d83034d0a7f5797bcf7f35f307f7fb2ba" +efe2c38e5c54a3a5a1525092cea2ce67da4299bf = "bec95826881798800501170e4ef1c2218275abe2" +f031fd4a701672db5c850b2d43d61d53047027f3 = "0f43c280a846170bce88e986f79d0b987cf81cac" +f2c36ab8bff434cb5af85ac3a85c4a44d2d0b6d7 = "da82afb970698e7a8b874e4d28d9db39fb0cd492" +f759eac14b7f9d145e0083b759a8ffef765bf5d9 = "0449d55ba55d98344519ea3b421ac81ff14a678d" + +[f0f68f2c-4968-5e81-91da-67840de0976a] +0677d77954ebcc129aa6271c77877d50c4b0f012 = "c94e0989bac5a671d2916472901f4c0e053a627c" +0aa4be537807383f21a97cbf587802e0e20517d5 = "bd3200a19cc3e6b22244838663bcc9b2bb424cd9" +11257862105d15fdc8e5e74ff131f0f6d8befb3e = "507e20254feddf209fd8114fc85ef52b049ada1b" +23ac07b87b3206ff09705190921510170d95c3bc = "116fcf0fc6c265c42ad92fd2ddb8bba1a3054ffe" +36cd65a98cd2c4e62ad3cf3adfc78e7823779d15 = "e142f29f3ab5943edbf95c7c09184e874f722388" +4793d9b692974ed3af9e53b7470142e438bda5b0 = "6b907caffce287c88794a308305f22256427ea7c" +4ba01f770aeb5ff68509edc769d9b675236a9ae9 = "1d7805ad1746409e98806ff7caa9fa924fd957a9" +5330d71a9757bdd371f36274c7fc382c085f3f06 = "eb86692618301a3e2933ae9a7fd215cc5f2cba52" +599dafbe279303ef1fb2beac7d3a37fc70f24054 = "70001067e628fa4a823c86b4418f71ee55cb58e0" +69b79f39b368f67abf0c3c103cfbac8c87827a36 = "b96114f5293a387940a6c7c8e1679574e45537d7" +6c182a1113813f28a08725bfa910c24f494767a3 = "2ae97520bf0496735753396e597bd4c01524f58f" +6d612d86b73ac1c0c47f6c7ecd69e1539875eaa6 = "51554d91865f3e9c3ae374bbd20bdafe70995c92" +6f5dc18733c3d54bdfccbf9aff17c50edc480a3c = "01d1f1d7aafe6cd08746270458144cc59d3bd3aa" +7263071a248722c766ddf8d5310f30794da6ec4d = "36dfc1c783f35179feaa8117a4924ceec8b8d853" +793b361452244259c653e2c02fd9a0ca19a96e95 = "75c444abd66184760035a4954be02288805421f5" +7cf9d2c3d3f9dcbd81583e5479018d921dee790e = "c2456222beae6c7427473cb70ca0ac7d61d30da0" +871e15a494b74a22b1b4749288d4fd5984248790 = "8a699b45c6cbc48211ce8b4c2ba587fdae4da9b4" +941b757e17abdc790ac3d2e0d91d906ad846ca7f = "c4e9d8a756a03f26cfd2fd55e51817874f87ffb7" +9deb241adf3a3362b12bef219b20da35065893c1 = "70c6d720a7789e7dc6a61f7d01ad8a8425269a48" +ae074cfa9e0cec49f317658c74d773fb6956fac4 = "f56b5c3f17deec2844f1ac480fcd56818ce82356" +b1ea56717e9ab6c98da8dd68a76649ffaecba612 = "4fdff2ea08ea768e520847cb7938382e62c0c598" +b5d96015d0971121f4bdec3ae2b054de3ee74b45 = "ba4e719c3b63f4e5a7aceec73f9be6cfccf7fefc" +b72153fd6a4eab157961bafa5cbbca8f78a95148 = "967b406171bcbfc893f2136edfe7e927d7823a8f" +b802e4ece261633c89f40fcbc542449edcf17e27 = "63f7967213432be4ea1944a882ede7431a39156e" +c2ca256ded75dadce2ecfa9f6b199d7bba17c505 = "b287add32d6916345d5776475d5f0c132906e7a7" +cb8896e48bff9b5483c538f58e992fe6cdf55207 = "767b1e3bceb38e3b604eba0fede1e0581972e07f" +d348793218c3f6c29e205b3cfb08640d5c84c53f = "dd9ddb03ef4d2e83e4d2a326afdeda54a2240c66" +d7eae25e19d9d1bac28ba4bce8694ef4f1322d99 = "05e2c6e63afe1a4ac5fca942e2b26a72e652c16d" +d8a0369f7ec3db300c583a26027078ccb6739529 = "f19d30664ed674576d6c6a18ecc1c5807021fd56" +eab25f8df4918f35599d2cfa48443475ca608cb3 = "394938c765e23e9123bf34f5e5842ea39e7a8b74" + +[f17d6557-5fdd-57bf-a30c-27e301b4ff87] +262eca51b9c7b10c00424fe04f82e7f973d461ff = "e1937d2441d0efc24477cb6696ef9adee017c7ce" +33bf945f0ac870f6998941ec0e38cf230aeccc99 = "a139810ecaabe5ad24d6c4788f956ba51809600e" +39e17e019e7a84ed43318ea19689c7c052d2407e = "833b38c846a146da7f28a7d3521d79a99dfb9d80" +490fed89fea4efc0794d5cdb1bba1988bf288bc4 = "b5367791321e16317c7302800d42763ebe0c2b13" +56d8a885fdb96cf630ea975833bd96786da17f03 = "c366eb4abd5dd658b473cd56c004f39660c3410b" +617f810c994f53a4779b4922f606f2c7c4fe5862 = "887fc656b86280fec7c6722fd3d945619fbe7870" +8546e35cb626025204d6394c412d95d292bc977a = "f41d784e47ba9e1e1866f590029992720b4a770c" +998401f65605e8144d1ff7126b9a1a2ee2c187e1 = "d8ccf97d674b89bc14245ace2f8188a208941abc" +ab26d5dfa57554dcce633f4434d3df83ef958625 = "859ae691e7be2768c86bdf0d2cd39e5d9f606d34" +acdbf71b63c262c8cb33391193d6a3042e9cd20b = "9e39a35f0280300609193c330ee3deb79dacede5" +add793ae8ed25e7012e06b30a8f7dcef9a9a2ab1 = "72b7eb440486c7bae0dc94ea85da0a36c067a30c" +b3772540d47f822180deb72e0ffeb63c9a511d8f = "f2b9a3f40c8b919ff32808ccadee1d8422469af9" +be17557e2db3a81d2ca517d0dc4a0488b4935285 = "8aa317edd1ab823468cbb36f63d4d9e0490bab93" +c3f948f9bdddf66a1a80dbcdd660c8153cfeed00 = "5bec9c9355ae4db16ef67410fd28f0b8928195be" + +[f1d82dbc-2f4d-59d4-a6c7-4dd79dba2fc5] +8ff008c02fb70e01e6940b8c0cda3a1730308b6f = "17ba9b971ce82a4035bd08a7be1ecb97f806c3f7" +e28891e6688ae227da089b1301ec03a3682eed57 = "5c7740d5e84248d4a5940596d3fe6cd6e8d37a24" + +[f213a82b-91d6-5c5d-acf7-10f1c761b327] +9130e05b2541072beb7b10f922b61b20b3357ed3 = "0e7ccba9e54882d5bb6bad639f98b1fd5106b87d" + +[f22f4433-750e-5048-95f9-cae576f2c120] +4a16a1d670bd021fee9d1f360fcfb479448e67eb = "e0939e2ec7515a597d4ad8a02c4a4abec117ea8e" + +[f25983ca-f764-5a23-878c-030f91a0c122] +2f0d2d31a26da63db57a8531c053c4e46dc2c469 = "9582e06e8a55fd3ad3d30aabcb837ea36975952f" + +[f269a46b-ccf7-5d73-abea-4c690281aa53] +09509a482915be49d1a014da39b31eacdb36710a = "9d89e76663c13657ce52935e8c7ca1e1592f018a" +2a7a307e912cd8e237ca929902ed95d670769211 = "82fe3ea4c04ff3ced9ee82966fe6d26cab6d37d5" +32abdeaeed4d5f3e2f2b56e16d400a149a20ddeb = "84e265a0143041fceed3ef35f30637ad4b68d158" +3b6c94ef8484b9ce88604f8750dbde86fde239a8 = "e18c527f5b7a464f58b81badd466cc12e637acf1" +4cb51922365ef9176d52b87054d32a439b7314ae = "0e5903870173b3bee22aca1babb2bb9caf13e518" +6a422f403bbbab2ea62a42a5294abad034b56d93 = "b2454c6185fbf794a4d9610f112b30054dd36e3d" +87a4798d9c36319350625cf5bde99f95f84d376b = "9cb37ca1ba9eae3e0e0c265b2fa8f23a11ae0393" +8e73dab4c86f5ba2669eac878b543d485d07234b = "9b284ac947ba2f7899c2d36e9b8ee47e068b7f35" +9224a3d5848771ebb3aab9a673c0a6782a40e5c2 = "36696eb9631bf80a49888500798da52a4f980bf1" +94c725c0125dbe174bea293f568ecbd296f346ac = "f58c7460f5def7de3c07de57eb6334641ab16c3f" +9b3db2c6c1fedfd6111255976791084a9870abf5 = "9131edad6efa0cbb718ebeb14a8a2aebfe0ff95c" +c1b7b7dd9f069704b36bb86f99914b11e9b8c57f = "4a8856755dd476ccd1cf484673fefe10e996207b" +c6de9d463ab5f6a2576417a849cc5bf2ad7cc5f7 = "3ab8cc4afa7a9cedf4539ad38b9075fd4ec63794" +d56868b77c8335181618250547fc717a903b619a = "89523d043adab521fceb3d1f1169660adff3885c" +d9a0e92033e9042a54404110836a8e840e37c998 = "7686329dba4f2fd32649658b618681906cb808b8" +eb1109e1676822297b7c76e9757725ec3aa005cf = "06c0d449e2e51feaeda9537ddb71e77df7daf270" +ece22b3bec572790f561d5442099eada21491b6b = "bca0dd88407f1d8ecbd4691a9a01b81345bde9f4" +fa63d7b3af63c106eb2c4d92981af637ca3b771f = "b9bcac868e4ddd90d1941f50b3a60f061f627465" +fc5f1451c313d7c45cc6435990dc711e34e32ebb = "b9ce570a1ef128b906acd1563fda39f0cd2aa464" + +[f2734b57-981d-513a-bb4a-df6fddf008d0] +1e04ff505f6c053796ca80039775d194d7e6be9a = "64851e47fa7898d3c77bb19752f243812dfdd4f7" + +[f27b6e38-b328-58d1-80ce-0feddd5e7a45] +101d574deaf26ad30f2c713b3def9c4c186f04c5 = "e33f9421e14e3772a398f355359fb2da324c813b" +3a017384790f4f6f8736f5f4aa8e22c1ae8ebb01 = "48617371fa9292e29d0db927cebd5d8ad0f16ff6" +449a06c4c971e688bb9d0711eb3d0b16e4af95a0 = "a5ccfac3c41299f6c21f582cd2086b8457e21761" +4ab8d1a0fc42b46f9c816987efae6045b189a4dd = "6bb66e91acff4ad9bbd5f06309157a41f1f7d3d0" +5bb5a253a00114a9d1b65a20176083fa7b6526a4 = "48ddfd426b986f7d094857c7a6551ab19cd68c2e" +6bb8e2ee193ec62db89c41c160c49109ec154255 = "579ab1a8bafbd0dcc78278ebab2889ae6e101564" +6e60f2d99e4b3813b86f0d38e97461acb340eef8 = "2a8a769f3630c65d382dce75582c0483c1a8028b" +7c0cfec28005cb7fd5f5efcbcef20808e1d69aea = "9e8c01dd108ac1d6e668e97f49cdf0f13f1e3947" +85e2bccd234ad345a9146325117555a4849da875 = "26257f8b840891cb7182dd59b41456d3e7f52aa4" +909ea47c7606d73dc638e8f0c33a42cec33feb8b = "9ab362a9a452565bb62aedd9423fd9704421b752" +9b2c87382b4a253961fba67c57c09a1ebb86934e = "94dffa7f4ecbe612425bec82abac510f397ef7a4" +a137791d5c8432fa649d8c02de4d555624a96ae8 = "8811f7f0b994c0fb2954ed80b59ca58bed6813ab" +d53401c477ac9b4c69678fda4b5379b2525d4a1a = "f2639e1b9e3fa4d85b5a354e4264cd8351acb2f7" +f5faf58fad1a2d273d0467c23f24ae3c61bd918d = "26e39f6eb35fbee16bf0972a4169518ab823c768" + +[f28f55f0-a522-5efc-85c2-fe41dfb9b2d9] +1d922ec3b9adabeb37381d1f400e1453510d522b = "9087f98b304414a51f639f49df56d11373dc2b90" +2083a54cf6ddebbff5a9435a76d5158359c677a0 = "8e4bc485738c77cdbc65639519d4e8382cc42921" +57069cae0e99724f5913d7e50f54e55af8fa5564 = "61d89173c9636d8ef7e3ace7d15bc0a81c91fd18" +57ce5c92824a388d5cdcf6e9813c6ae0b935cec1 = "2b28c1f110015db7a5035e373f5c7a36f4b8e16d" +626877b751179c5004cc23474a12054245ef9b4b = "ab4adaac5b5c0417b0266ab8f49162f24b7bde35" +7699840f692bd2d50b7b86ea5cb8fa25a5bfdf6f = "fe4a304c909a995c9d6f33fe3337895935293862" +7ab0c4d75bf66c543173393b70111cf81090d788 = "4329988635316e1edc15d03be534771ed1207294" +9957111ec03dbe2e258b9ba06ae22e1df72f80ad = "575f4e638635c51f998e1543744972b5c4d8e256" +a0d24d75c45270fab95b355969751dfa7f4a137b = "5a8597754ecd3ad94cd05df8df5be40d1a4db061" +e2c2181a569e491a5c854c3f775483cf7a0995cb = "e92b6548871cdda1df0799096b2808f259378544" + +[f29f8280-796f-5dac-8085-6f2eb8e8ed66] +16959b35553e344111f5d05f1bb0341f92ac0354 = "9dcba295983659db74114b53a03bb5957c00f49f" +25c358b7512c741671c10846204f1e9724a07d93 = "6d3a5afa6afacb3231e4f06d48ca63983d454029" +320eee3795f9244a9edf34c89cb2760022481c42 = "544805b4f3dafcbea6b3b3c5d4e766bb87fd81e1" +35c86e35ae75261a9cd7b303dc47890dcfc35841 = "376ea077a4ecfe229ea53f92f3a478b7f2e5e520" +413e094dd36dc5ccfd3405c73cd81f106f05894d = "ce334c94bcf96d8881469d222d04f27474366f43" +48ba9c674bb3363af3db639f6996046c50933edb = "c65bb21ca6dbc60b8ba1a7d117b67516e599d3af" +7da389f6127283fa93a9e8cdb0f6f0db89213b9b = "6732f220aac5184b91ef464c649d6ddef57b0573" +bb624b21b6531b89a90db5f0281c10990877095c = "b30e3dcb0421cd25013f8afc8df9a96abacbc14d" +be88c647b7a047cb35d4a966f50cc31e31a5c862 = "2aac619a701d97e71f5cf177fda845e387d15893" +deab630b9cfe21ee44ca4ea260d7c1b03821e22a = "4f2e73a8bae938c5c66aa714a4fe7c1206f6ea4c" + +[f2b01f46-fcfa-551c-844a-d8ac1e96c665] +079fdf92097a49e90e3951e54baa8329fefe9b7f = "bd167146db2a060407843c4fa1d13e3efbbcf0c0" +09e5b3dab36e8d06b159656fec7bfd5dd7871431 = "9720184b3ac7a52c24384e19ef318ca025843e32" +0b804a868d43d35053d83af2f2109be61678d05a = "2212e1fae9551773e1d894713ea9fc11c2a6c1a3" +1233d3363b5374d59f209e69d2ef59eee8044d91 = "00f2317a8804ca8673be5b3eb07d8ce2a699290d" +1f813d2d57aa69f9cd768a8b60caa691c0fb9467 = "dc304334a08e3c7f8ec2e73d171f14f3280a48da" +281e63efbfc94fedeb5eb6f6bd5d93b7fc09a224 = "3425d5cddc50bce22bbcacefccc57c511a1d5c6f" +28916ace3fba62e7cba75e15c8b6422a0961b621 = "c23aee42255c255ac3a64935e03ae61a939b5820" +2bff0e54d69f5967fc20b063548e5d34ec564916 = "44a75797d15ebea9c53a3f6fa971357a36c3cdbc" +476921302b0fcfe7688f87ff9e2107669d562d48 = "5206f3dbf9442c408dff62e2ec36d35db45d6d64" +484156af6102b1520d173989511a57c06cf075da = "08791790719b31b34480f844fe8f8b4c55ad886b" +489ec9bdf77af3f0bd31c8ed120874bddb35df7d = "a8d02e2b9be17ab78ff488387e8d89e5b63b01f4" +4aa750e754c5b42111b674d12b5549634d5e87f9 = "fce5826dd6d082f58bbc2b87e34b69424e418348" +4f92cfe8417e694beaa1c5c132ee2ff7df0ba949 = "716e932ef67484af9ffd11d5cca63478462530a5" +63102317c5127bdc335bc495d14d75dcbcfaf194 = "df3f4b1440daee70f26712e547a24a837ccfcffc" +63836375da8e09032aeb8b0e7087ee241c49c678 = "2131294dc2d2faf6fcb322909194b6f76daca053" +71060d22a965ac2439abe109edda103013a19281 = "7a076c75a89d6186ed70e004d33563219b7f46a9" +719fc2bb9c8fb6e85759d6e2e8208e34f6a5973a = "65a707236b21cbc9e6e852f4c6b7dbcb078876de" +773cca23bb1fa1257abf2dc5538158decee7777b = "dc09ba41f5c8063203b9858ccb414a1cd900ecd7" +8fa4a1738f2f1677ba3551ac018d2cdc47c81321 = "2c15dff5e90f9af081648b58c8319d83aca1f8d7" +943cf897e9ea6b31ab3ec70238ac4931065d365a = "88c59b4ba18e9319e57dd5119164c2d148b350d4" +955353228fade205326790450c71a00499361c6d = "2a2e8d09b80843b0aa191c8b18a51d7eb73f604e" +a0aa479a3d86ff225b15f7ed438ecc9a72ddee57 = "94b1612928759b15e20882f8d9619455669d7b24" +a603c07b61741b3c60a19d9626d808508bdf7a35 = "ab819edf67b4c3a03ce544946a3d1ed4fbc55371" +a9f574762eaedd0bdae1bec2eb4d537d99bac191 = "1112cdf536849b20d513f8d2aa177919389316fb" +b15036fe00ce404429d50a1a7c7b1c99a54f2017 = "98625016d2581a7ec112711a9a9dc2d9cd876f7b" +b3aaf19a3a4a6bb759d52d0ee9e94045e6c55829 = "c2df265d92541f1d9ca4a2ae9c6051f13aac7e54" +ba0be2d29837131c41654407dce7698b71bacdfb = "20a5c16a352680c2cc55c18e9924ebe106749028" +bc453b0fb8e8cd36277730defec1faa326f6295b = "5d16e4e0ad695617c1596e4d714fc5e6cf4df33f" +d916f8a397ea74a1521ece71b9ae611c70de1a65 = "07b7d6d26837c409cf2754da883037b6814aa4e4" +ec3880e688aeba77869e9df3a9d3f249f8aa3d8b = "5c123137926cfab6aeecacdfbc432d3a9b113ae5" +ed5ae1e803c42105cedea76409a3426b6d351f2b = "a6533d79678daefae9897fd48b2fb4c5ceccc2ee" +fbbb639338981dd88b705d3abce2f82072f14d13 = "d4521a8de985fbada6ae8737ea78d9917497e003" +fe8c4a53cde3dcc99f9a2f1f077832d5f2332433 = "07daa152e69d93c242fb134d173a8f5f6a60d816" + +[f2bf48de-049e-5a34-b3ae-c1fab075c4ad] +349a8b0abe6b092dd58377b9febb81fbdbc5dc43 = "97f76fedea97d3d53bc939155e3b6e0ac20a6ed9" +40df36625a06f31970bf8b5a8f07f527d5298b20 = "8d5b4ca5b8d67bfbe2a0d15658a7107731914bf9" + +[f2d92676-cce4-5c6c-9dfa-ef4beb5f5b05] +b044d6babe5f7b7e1214a20a784e169c1d11e912 = "62530cf4f10f55d309aa32867e53b4e122291cf2" +d9aebb059cc6d8e61b76664b5ac990587837686d = "34dd3fe2ce97f3d553e731ffb862b2325ce6988d" + +[f2e7fd27-9209-5b1c-87f7-086e6f5a9295] +1cb4fe02e47af59ecc926eb756b930bd241a06a7 = "c3316ee0e5095e66f19881e07aff3da93d4a43d7" +2b9d6cd2c88864da1919b95d42591a63d97a569f = "8b0bafaac3f82078df560fa67f62b83e9be69248" +46d4e7a9b0aac9fc2b3ffb5459b9a5098f676191 = "4f0cadd3d26705dba8bcd31bef96d03f2956d448" +6138d0aab58f86f78bc28d865010f354906cc409 = "63a189f19871da03e958c60d58117d9faca4e41b" +64d8c1fa224825ed6e6eac942a081e8c53c97505 = "d57500b061eebf2ae36f6ced6d2d68b42bac96dc" +8b37590cd55ece6edc4759e006fdd520944bb4fd = "55ce5bdcdc74b74f07c246497a69b1fe373b9b7f" +a9526cd56d25516505f630eb12238c682088b51b = "803ab2d7c49009c4cafd8699628607e25e6117da" +af9c3979fb54c9d03f5c274894f586f671e3a5fe = "e6bd422190a14553112d94c2e2607705a6bd0039" +d27356ed544fad4f9c979fc2f25dfb5b89798360 = "a67b18ae67db8f1ffda5a2077cb1bb9f713ef57e" +fabeb11a0538ea484a57a165b87aa1ed995f854d = "d356b54259b7e283d02d2bdec69c8bccdc27ec6c" + +[f2f26720-ab51-5ee0-96ed-d53c33548c15] +a7998491a67b509a9ee7f6e2a3494545575162bf = "7fc04fffc3fe324d5e952ede106e10001de3e194" +c859a7b9cc62f1aa7c117f106c7c66ce88d62a2f = "d6a379c5fad87878f28ea2b934a61d968b580ad9" + +[f3015e33-6d2c-523b-bc4c-ccc92cdcd86b] +1b49d9744cec75cb9566574f7f48754becee4f21 = "69ac6203b3f2580b33ab8bf74121ac22d8257344" +5a580197d24598b102352bf393fbc5f3d3b16408 = "8a898727d9849a4d514f06f53882de5b45ee138e" +744b70d0301685daf48cb805d7d887efd5957966 = "ebb3d9eda85dfad19e7c69828159e2df0bc2639a" +b1710113921be4b3b1b96062c4c2d17691bc7c5b = "c1034a08fa2304e73e783f80538fed2a664aad95" +b74105e5edb0b8099b85de470a1f45381f4aab72 = "a4a2c819b9a45460919d94293c558e7c0af75113" + +[f306ff79-ba0f-5c52-9e7c-6e6505f53397] +8c71cdea7b02c63b8085ca40227e0833087f57dc = "a1582d7290164a29fbb57211eac3d47629efa2d9" +b8796c4425088a1b684967871a4de80ae3225965 = "568bdcc53fbe5baac7420e073f3b48b49cd22460" + +[f33766d7-c71b-538e-be72-a4170021497d] +82c8a3b09ac88888f053ee1be995baf4448e4fbf = "fe7b1e77a926c2999af32a9282721c4c8def9864" + +[f3a2742c-0c51-564b-8b1b-8d3b3d057d99] +30612ff3b1592b81a3ddf48e24bb33cf58f06f69 = "c1a73356f1a2aedfb8fdb60b7df86ce40c15955b" +62ae518a6381562828a50fd8335abd6dfc555646 = "997f13fa4ee9b770d78a0ddd0298f114af379330" +aaf1f139f1e0c4b905769f37ab4e84b6e3dce307 = "c642d54788b3afef4cdeae13b0fd698b61cda686" +c6e43549f57f9fec001fc5155738324019dbb512 = "6197f78c4142d3dc65812f30cfe707f085158e6b" +d1c945224e0537d828e9df018f3b68a0e4d1b30b = "b522bf14f18d25e74edf2012d2036e12942c6a47" +d3cf1e99413c585302ac5d2505fe543cd615428f = "0c36b64ba948495e119895c9f3600f00a839b2dd" + +[f3b72e0c-5b89-59e1-b016-84e28bfd966d] +1876e4ac51840fd5dc3fae2383391ccc9d3fc51b = "82a2c51f71815653da4e101341e20f837172764d" +1e022c6cb897ff434ac836668edfa3110e2909df = "45098e09669a3bc5d0cfdb5d8cd8a85f674a73e1" +24adfbc9417277970e337db8767907afb7513cca = "403c78c3dbb9f27a727ccdf1470a87466d35d136" +2542db60e825b7649a3db3919afdcd80ead0a810 = "0d10502f6e3072be6d70a0bee94d847759a48ea5" +3d21637eb1ec301dd0168576a56f47babd9acd7c = "bb1a991eb74c0c3750cdbc82d90d99c90876785a" +4a259f3db942ca1c922c726ffe12b7d4684882ec = "e9cbc60293bd3046f80d5478497bc95b9dc56d82" +4d9ce3c5772312e148dd9798b49bc4f8e39ef7be = "8271e7bc359c1842cccb5098c30142bb2dde6ec6" +4f5485fe45195d038fc4c8f07d5ae819a21db499 = "d691ac4e4b0a83c79c1509c779115d67df563828" +59f6893e61de90288acaf746073120498ebe44ea = "2368d42a7377a4f7cb37daab46e1729f345c4ac8" +73852ec888a63719581732c821d14a2c21dd935c = "df3ce6477749ada96e2c40f659088e575d6ae40a" +7b740e27cc24ea42e1001346cc587711ab86cf84 = "fd300dbd2f8a32025584457cbba88fd9f13e23f7" +80172145e8a170380d16d34954228df1e7121a84 = "43df15346f4136535ebddf6949a3fb3ff29afdee" +9d4eebe1b68f0c8c4d32de9524b8afa8d66009ed = "70c47fc0b04e66bfe6ebeedc483056b943184ffa" +a582920dbec6a8ecb1911d1db0d4fbc960ce85bd = "c1fa2f23974a8edbd93ca836d57ff56576fea759" +b10dac12ec46492274aa968b0db6e8e0b63b86d1 = "465d4a48f1d01464bd0bffa13f7d49de27a67d75" +b2b372fa9ef15188e3d01928fc9815b2657d9e81 = "fef38216172b23210b23836845a3adf0bff54785" +b68d1ce963001df1da3b61cff912576e7d0b0661 = "5fbd7e1bb68a6c0a098099fb807139c02f7d095c" +b7de7b660e531e43ed7b43b5e7dd935518e91717 = "aa149cb4aa22295b51cf1860a0ffb5a6ff160e7f" +bbf0b9bad8e7dc65e4641e2849a38c5a61ba4314 = "02013fa5875b8a094439f75c3bf008d9b6209f59" +ca24808f6c1f0909643f76b495ac74d466ce7d2c = "ef639970635c24e0df4aaeea3570607782f3189b" +d1e92122169966ef115eb6e558adf10aee8f6327 = "4f80f5a886739c43006b7dc22e83d1b837016241" +d7f696f26b5d49d53a46cf1b9719744fe0457840 = "37d06f7adfebefdee4146378f4f77902805306a0" +d8b18e1a5d508d2de4866bc28aef9d84c099b93c = "835e8c4870bbbefd30d5cfe3e673fa08727c1ade" +dece4925235af576d0dd844adc5955f098e2b9ab = "54724078af37d925b56a52ba4918cad0f89c25e7" +e4926152be620885ac10b5500227cf1167fa43d5 = "2b5bdd9bd2ab11d5c2fd145f27022f83a0921342" +fffb0661718b41737dff6bbae5c729718bc0600c = "11666ca1a48e0b5862dc504a77acb186306121d0" + +[f4508453-b816-52ab-a864-26fc7f6211fc] +1e3bb8142f0c30e50c2e38dc7d8e0fbd1d468dd1 = "c258c6532330c5c32af05684312238b71ae86843" +2db5619d39cb80cdccd398c975c7c397e6f92787 = "04bbd0f3567e695bff1a3c778354ac49ad235841" +347ebb051b0e50c3a928bef47b8b5b2dd354d742 = "2a85d6f82016142a0714f90c523ae80fffe5c6d8" +3e678b322a625d5a45352da233850e730630ceb6 = "b552b5f991bce4a62ba6f020e3a9eb000c492690" +48dec9fd9ac1a7d4d9758b0c60410454a13af51f = "a6fb3d69c2dc015f94addfd1245ed85967e161d1" +4c70fbc202f1182877791bcd7d0415e4c3c28a17 = "43a62165163c539ff8cb1e14449875b53dd7c775" +53a70f01fa1433d4fbbb6621663a17a0ec038a57 = "1088275b8e2a23fa01693aff6975a5a375ee5a5a" +5a933d964f9cc731243d7f15b40e5463dc7175e5 = "b06ff023688662d3d0b6220f44b5e2ccee2455dc" +6911527695f510bfa52fa91fd9226f943e427e39 = "c6f7bd0d04f1b6cee436afdcd42f52f985292e6a" +7fff2aed6d9ca8bf64f905e7f42ff0f8d47d96db = "f1d9ab23647a5ddd672894b182e1d27e08deaa72" +81e3dce55366aef62af0512a92e61f848848fcdc = "5ec24a7383835756872e482e7f2f3349b9a85f4c" +a56b9e07d70e72a5767f79e6e7b096799179ee96 = "3447459e855132e06f1df57b9b29e2fba446fc48" +b84c20c3945da314830a81c7dc56cb60989ff7ee = "4b18b265216e118b83ca67778b9414e65636bb00" +cdc81adb4038960911535f6ecf00f2f69649c1b0 = "323928d2b948056bf9fbd22c1e102a65f1937321" + +[f4abf1af-0426-5881-a0da-e2f168889b5e] +961654af2d90e713c3486e4686b7ec47d0d44fe5 = "3e65299522400435db0697e38e67d505b334baea" + +[f4cd0703-4c39-5e89-823d-694fbb07b12c] +3947ead0171542ae179c2a3f56806fe9e3fb0916 = "01bac8c20465fac6a67a831ff5420b57711d7f59" +442feae706a3d3eb7554b4baac7b5206e9da5e9d = "e05a09a76e0ff936a4049ee7c457e823b6922952" +c0a841898dc68cb0e6acc9056a0cc660ddc45586 = "1e66c48462dc9f6377dbcab056aaf63f9b426ea5" + +[f4d215b3-0620-5416-a1ed-ff5329874956] +0e9793698d14a84b44a98ef84bd0dcbf208e5ef2 = "0dbfdfe95dfff202d6bae248a4cd014f764028aa" +1da7c729641bb8350869a5167512362b1a88afd3 = "45122455766cb861db13e05af0a5f4d8d7db77dc" +53e1cdca15293d3d1131a2bf241fb86fa42e7b15 = "831ab1b33491aa037f28859417d86f4442219197" +5d34b184b98480708fac2dc7628c4f64d5eb8ca3 = "2669b34b36f924c0f63d804a6c4204d145f18c1d" +c49f4e6a28157cd3ec2fc12652bb7a0537aac660 = "fd897afc720a42a0210f8b533cd1c94bd4b89319" +e7dd404cf3f01b80d5b24373b22e80010cbb4782 = "9bf642e85ad9938ab1e94d8699a2e0b7330b3678" + +[f4d49484-96e4-5177-80dc-983951be60dc] +530fa970b4957d007ad082b21c1d27cf3916d906 = "085e3404e15e91a8eab52abd89c34d743608f6df" +a036673e63c1e62ff34c90a21d0aacf1ae794ef6 = "658d46f8fa503d23fa986597298240477fd45127" +c38db4944216cf1c5e05857dbf1035c154d0a6f9 = "6e87e9a640144211c22f93295506a834d09bac0b" +e5951d564cac9a2f366b019e4928bd25b0b8ac86 = "b6a3a811146a7a9c46e7d5475fd4968279264abe" + +[f535d66d-59bb-5153-8d2b-ef0a426c6aff] +21d351068f56948489ebd6d4b055c8c2287e452d = "750e696800c813289af0bb9a3f0628b79fc7d25b" +487dd1fd9fcb6959b400f6013edde1adde2b5834 = "ee9eebeba98dda09378be6ec4beb4c4723c9143f" + +[f5543645-e2ff-56f6-89fd-a5e7d6120970] +097f1789966cb54f58594db225f53a95c594833d = "0fd2d29a8aba6f86c88fa77328523f69ececd0af" +e080117b239c29c2fe263a53e0d424829ef06bff = "e5e1c49c451d1566c76810e3d1326a1071d31620" + +[f57c4921-e30c-5f49-b073-3f2f2ada663e] +02b39b65d041ab66737f3952336cc16d3ccc2b0b = "51c788d15c1d353c9b8b89b0197584a77efa0e0e" +1e0190764bb2db48de65a3341ae1ffda85c63493 = "2593a87abf15eeecbfeb3914453dfc745ba29560" +24bb89fd9c759052d564b49a77bf860282809731 = "2e69cf7b2ec1fcbd08efaebf1fb965d0ae61e20c" +44bbfa576c77d2034b377a806ba4326d9d6249f5 = "e20da45462b603dae6c7c00ac5d50bf38dd1f892" +967bff2fa06b1caad887869e7892d018f66792d6 = "5b414f452509226ece41d9b5d4c9a1ab5b6b422a" +993d9c14709bf160d435fffd5bb9f762fee82609 = "f8797b097f07bd7c140840426185aa1522c2e758" +e5a785036cbf2f1e95dd20b4dd28e0080d0461c4 = "6b0c5a9a06f08f44765cc9036b82734ce5bf8b95" + +[f58f5e38-9170-5b32-bef3-0f72e8d4f505] +7fd64855c2f0193cb9bfb17a8da2306b027179fc = "423e8d7626b7028f051de58a57c51e8f1ad85788" + +[f59402ec-0262-5707-a561-770af94bc5a6] +3c4f80e08e9898bf4987b12e87c894de5594a9b8 = "e3c6b214993eef84dce70d9704355cd0471c7475" +8185dac196aa94c76fefdd0760097c6460802e89 = "6a6ed33e0c61012b4dba677db1fe8db313f3c1c9" + +[f5c4805d-b585-58fe-b08a-e9c59614aa64] +284dbb12779afde341987a96c35c8cf4b0bee2bc = "54a785f459a4df551565c95c4310b1508be108d4" +7d738fefaee58a786bcd8d336ea42e9601eab07c = "10df662adfe1215a5c6e025ca88b79d943bfe4bb" +8865827dedc7decf65a8434242e8e5a0e9c62a93 = "4a1c618d6e755fc3dd16b23093346c77cc9d4c1a" +f8e0e4db6963a0e5775539a65d8f85add7af9565 = "e3fac60ebf2d3733a9382259d3332f43b326dc9c" + +[f5cc2397-9d3e-5971-afd7-e1f28e1d1eef] +0b3b60f5288235a47bfbab07608483b697a20f38 = "349baa6f5cc7e56f39a4b269f1389b2802b80879" + +[f5f7c340-0bb3-5c69-969a-41884d311d1b] +13bcd7d8cc2e8d6faf8484c9bd2df2c6b28174a3 = "faaddd09377a6e80f561e568786ae5dc296a1954" +3712b89bae0fb4940ce7703529f4bbc50933575e = "249e4029c12abd1b16d57e4e5f70a6eed3850bc9" +397956c859f0184721d06c6f305fe564fdaccf61 = "20fb9d29216b2f8e93a27a6d0fa131f0742be6bc" +51534aac439585a1478d72cf53e999d2ae3be215 = "17b3c2f244172d287f701ab0a467c6d7bfa8c06a" +685be2f43d2e5486ce0df3da58b548e9f2145cf7 = "3ca3269afded13b49d2ab30e95d84530fbdf035a" +9dc2cf59083bfb1bc76886b64e1d7d2930b0ef92 = "ba49f37bf71d4c77e418138916350fe74d2c11f4" +9f3a2b87bb0efe6e07d55578621d4de693125460 = "254944652da1a4ab1b285905f91262800b4de57b" +bb89e79b088d41257d4badaab120b5d64af1b65b = "ff99c8de5b5493ade70baa14184ea20cc1816300" +d92188bbcf876716a86e2d0c76872d554a414e54 = "dddc9ff308494c6ab351e0c47b8aec6a830b5c97" + +[f6024387-75e5-5fdf-b095-327b05c0905f] +24ea0042783335212c7933c56a9877447c0a3ad8 = "fe34b498917ba5502e072e4cccf5aa84e7b14b98" +2ff4eb95f9b2ad286fe76df9ea739320235cbef9 = "05c7e987f5db4a20cff336a39610da365e4504e9" +42927e2a002ef2bcc688c270e2b0a2d3b73eadb1 = "291d224acc94233b56eebf93f2106ae6bb68024e" +4d5b34d9922dd3f3657c9e83980f5657ca86f3eb = "f6bcbbbf761cd7385cb5587d2306691089199a96" +73feb492598cf1e47a6dee1126a425a5a8662d82 = "d9b9ee19cc28662a265cc6b447049fb69159e8fa" +8b492759b8081c484c34d9aa382f8671d385370e = "4ce20516d1ea97a9460644d675ea770bce5a13fc" +c035625b1b1946e4551dab9f5b30d1cedcddb1f1 = "2108b80f394fe3f6a3f1002956d9b6cf397ee421" +e0e58fed3ccf393f50aad0d4e97bca5fd44f65ff = "19a7af4bf15af91984764f502030a91407384d10" +f11f9866889ebd6ae75b9ce0b8b9025e5cfff27a = "34751fc00ab7075f8605dd1f17e44c025d1083ee" +f68b9da541c2f811ce24fc76f6065803a0715c2f = "afcec8476aced68c93b2b50f1bb24564eeaef2e9" + +[f6097e2c-3ba3-5605-a9a8-3a277acb490f] +11c607bb1a5a70cb7421590fd29f7fa9aab91402 = "cc7165822d76d859bccf7c709c19f93e2e4e309d" + +[f6369f11-7733-5829-9624-2563aa707210] +045a8286ba5ea8715ba6e47ee49e0ed58707e228 = "6218d8afed64edab64723c8553345ead55637370" +1129f9be2b706e52a430d5b29f7ddf41bb49ca18 = "bc2d359917f28cd5b4a2291a8cc4f678ad44cdfa" +1b5cf91ff103bb7e40ab650dd5fe0c6a74e304c8 = "2cfbaa94a3b862eedf509e6c07aedab76d807d04" +2381c4443917cb0517bb75de61081a4b5a3bcbe6 = "f1806e9de86f74b4ea9582da86240eb90822f058" +25b93c2e409f0c229ca27be5ce543f6fc9eaa987 = "f2559eacc43435a8f65ac5990d8b712a5c705fe0" +2f712dc1da9c801b537c31ea5cc3400987043124 = "9b2541a8625ac60e61a6fa5872e56723b00c1ad4" +3077036fe9c675af11d321b9732ea43001a73e30 = "9f786da192a613058ed929306e3b8ef95c63bd5d" +49292ee6fccac514d0f532a7b98e62d5b8c47dfb = "5011e4fe4c3b613f4c0e5940ddd24dda15ecb9f3" +5418e4e1d74a6a054aae3e00e61309db34ff8154 = "f75667427eee65c745c6c268cd2d0dcac29a32cb" +54bdd2c17e8593be7d886e815217c317c12a8b78 = "3550887b3470a6114258b5795fde011f23ab9d4e" +55222a0fe5509c9dc1ecca88c314f0b57f529cd6 = "92bf5b425539c5661a58ade570a727dfde03817f" +5efb62e1c17fc36f74abf3be7d41baef4d4c2b57 = "362236451c1d437e17fd2fc7a8cb55e33cd957b8" +62ad04b6cc2f36f744942d5061c64fc3f9582da1 = "890f65ff755999b3e0e661e44cd40c3445c6eccd" +667b37e88967a3e61427d1e085e39350f8261bad = "82088789ef48679704385a1407613f03a006c8d9" +675818ed42bbb95ccb84884d0e6a08d1a858b94f = "97edcc09fbdf4de1b759c9d5ba53cac49e0ef808" +6c61b61de2b25ab8b8469b7ddb0b410898590323 = "ca7bf4aa73ffd6b22264378e152a3dced5d44cd7" +6da5f5204fd717a1417a8a4a6b9e2253799879c9 = "0894ea348669dee8da2f3be1bf15c5234f7eca9c" +748c80031ea6d062102d886ef0d26a765a4b0ecd = "c4855c0a9df0ba2c8ac3fad60df93fea375f783e" +76715d249bb58cc9feab5606d3986e1b65162b8d = "938dbfb841b9b389f250679d22293b325b379879" +805ad5da942ba5f4477d1d8c5bce0b11cf3260fe = "9cd090c3439118dd45a88a8a2c6460d0e4897b24" +81774169f013ef5a8398256557e6d26e769f4501 = "3c87b382c5f13c147cb6bd6b51010440a627d34d" +82dcd98972f8af437d9b59d7083b0a22db9fe7bd = "baf5f8cd44008df8f7ca4cbe0619fdd17e47f734" +8f9e9b3175920e619091befde0cac10009cf0764 = "df2248f12d49f3be31668025e5411ef9b6a662d5" +934b3b260b552882c556e351588ccdac524aaace = "4066f2a8c092c3517c6fde6e5fbdaf3dd53e75f0" +9fb6582e19c9987ec763cbaa27f1ae833995a5d1 = "7eb66a22e8b80cf4c1e7e545c990ab5304eb8c45" +af3977209ab405a9c7ab889412d534112e28fd8a = "18c2aae4400b2c36665f3f6c7a3f3b04b18666ec" +afdf603400eb366abc33cf3a5804f0bf4551763a = "e1dc3223b1591f5449aaf507423df79edce6f4e1" +b467b89cbc2119d449a1bf14c106d94280f2f548 = "22c32db051e52cfdd14966162342306f4cf9490b" +d6714170e667027e9e53aa5daf941c3ef5252e7b = "07e29aad7f27f421f639f7872f121277351bc727" +d723cfc9c94a8fae1b5637e1a4562c572b1e603f = "94a99a5d0c7078cd2351c5b821c6ca8aacb834d9" +decce463ae101442ef293ed69b6fe1696745b0b5 = "6a13ae6c27895541105bd601613db873e9829a34" + +[f65535da-76fb-5f13-bab9-19810c17039a] +161bde61fb4bdf05728ba7f5e442bcd030505aec = "0ca96f826bf5d1863bffb10d2f4c6def8b7bd280" +19f0a599b39e68a84d3ba001d97ac0a6f65a5f0b = "1c420087d6584c35be833c76de634069fd64639e" +2f35966bd35c8e6e89b36992d3eaaecb77b6684a = "5747054bcc058d4978eec14826cd2427ef2c0a23" +31960219657a17d2b4d826282c00935a9f2f8e97 = "657f10a9f41f454ec56f741a5a68cecf89591d9c" +90eda1177b2b13eb891753b55bd54f939747b920 = "903505e3b228d6b659b6f7f289a55f552cf315a4" +a98ec6f7b1ba108e7920ea045ccc9cda3a747207 = "461d91a72bdb31af0361bf4250eac696dbd98a26" +ad07cf45f0ea922572861c0e810cdc54547e55b4 = "91678580ae9ac15c43a6a750f4175c0e56094f34" +bd20920a1823f8488f99fa1d7f782325acaf3b5f = "db88afb5b8aafa0fd95686166c7988b37eca32e7" +e54a8ced508e435a4a06cfdc0050dc3289223798 = "a38494b7edc387cb5c8f5a9ffce7eb92abce8424" +ebd1acb80eb97875550b6b64222da3d0675319fb = "68c92d69f17ca998ed803856664d606ba1ddf0f7" +f814370085eee19267db46170d5ca708a6d19b26 = "9918997a2362b0bb80ed195b9c5ffc0e89f46693" + +[f65c2e20-4403-5cdf-8ea6-a970e6a3985d] +0d36b5c8ad0a3aabb2b9cf0cd95d41a7a0a9aff8 = "34cff57af3dd2bd00badffb624b4a267b1baa7b8" +218ae2dc710939c2427ecc874c5978a588b0bbe8 = "853f3af38b507dffe2500265c816fb6b0ad01d01" +62114cb6c6335eef3e40adf62695289cc14f17c0 = "753a92a8bfb27ae786f3f2b3c96b16fcff1cf245" +b2182753e6b41d8207dbfbc3a54087316f1e4bd9 = "6ce31d1f2f9bcb351f0f1bc82bba96d71a4cd8f7" +b8c8bf41f0541ebc6a18cb649cbdd97697272453 = "d632a30f3f72bb326fa4adf7ed61dc9b870878bf" + +[f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f] +071fb5e4fd9d8a5fc23209ccde98c12f298545f4 = "d6ba62af31d136fe67e7f077e8915b288dc5909e" +07b37362ee1518eef100a01a386794f1b8880766 = "62ec7078a2550ec41b925276fc5a084badf4ca8c" +11e56713a3c1cef4d4ba58461f368376be424dc6 = "da80374b95774759e37a712582dfea6b324410d5" +1313d67d317bee674a7ae8a38a930719349bd96d = "0366859b06b42e5e84fb8414ebfbe76480d90aab" +13f7ad69e2357e5310891123f2626dde1dce59e8 = "673169af2fa70c5863550f16892e77985a7077e5" +14ddfb87c2d14c6aacd449387bdc412ebf0f811b = "dd3a9d33ef2c47ad0f741e1a0ec0d7a93008031d" +178a67e9a9a9efaaeba39bdfa4217d41da1f09b3 = "ccf6689eb582aa9daa724eda2640f0147c36ef30" +1a0e57d33cec9866401346bfe03c73d6ac704138 = "0b762fe75c53a75db759dfc69ef52fd1ccf42bf6" +1ac15ac115e2cee4ccf29b24ff26280c46f18064 = "ed7d519b743feb9f4b15a4db7c551120f93ab6f5" +1b30f15421e0e6b16a3448deb39986a27a4b1885 = "1827fc98c6eb65275dc929ee53dac3c3f3dd7e0a" +1efb0f2547a5bc3bbe91bfe291c32942bf7957bb = "d11422011ec64f9ed35d68e58ffd86c645575813" +245639ee3963e8b903c5b4cc4accf13a37f09569 = "dc703d996cff279e18225af056faffe45963c527" +25202cf753ad4b084c80f6729c73d5ba21bb7296 = "f38e24d23c4727a0bec4b178b814590bffe9f22e" +2821b7733546c268b38c66f3e1918a9625571032 = "97bbadf285a4cabc7addc9c4b48da80ef5757255" +29ac03e758fb1e5f9e799a81eef2e8c243a5d5cd = "033351ce7536e02f512e4749e6b77ebf3df01280" +2e767296118369d2a931d21e860d3d3672cf2cb4 = "74835d7a6851286eea7c99a5aaa3d57a6d6a5a66" +3218c8350ca90841d61931cd0c1fbdddaa50332f = "c642353a45688b2d60facd2e2eadc20aa37f5e64" +39f6aa8fef349a2ce9e7d3df88c64dfaef11688d = "ae041da40e72d4e07bcdd2429a723d15e339becf" +3c1296adb62a0cb7a6e26747ce47720c061fcac2 = "1f29425fdd459d24af85f026b46808e33d423c91" +4040fd577e2a1677384cc3095857021113011db4 = "691a865d01bf6fd50cd8576f9f4ec9bbe3c8a952" +4116abdd80184038b1a4da5a1b9fc7079ee00903 = "9916ce4ca13fa63f24e58f04ded3d66c36c6aa4b" +41223afaece3b7253961313733b8fe5603670844 = "b4dd1294fe6c6d682d03be5a0fb89240b2d24b0e" +4218cf6a5cbf932c32c5f90cca3f7233ec5ccc7b = "2d8054757cecf6452125635e8f520844032cd6c8" +4745e75600c7647d9068b47add39cd3be0344e2e = "4eb09a6a0f7dbc85a7f8bd6ad0c6ad95977d6c05" +4a2dff3b33efe5120a43264d90496f69b965c318 = "4862fb70af7eb3313d62fa8e96cec69a1638d7b4" +4b0a727b802d6923b02c68a3c441f01e5fc4d6b8 = "839a8eefdd7e761d074601a348af18d1d4205746" +4fa53d3e89c05b0a96bf4060886ee54dbaee2ac1 = "6bb2c111d888834b11d6e8376576bc53933b9b2c" +4fd9654327a60ccaaa24376eb2d43da3edff4e77 = "e9e61fcc0dab8bb38cb38f46f219290201fc2f1a" +545c2b58b8378e473ac84865e7dbeb6d3a959ae9 = "49fa7197c1ea370b5e4fdbb888a66c6d8d65e362" +668dd90c90f38ed83b11177e96aeb469e616f5e4 = "f116e8d1f322145752559580d1bd4a1bb1281d5a" +6c6f09bdfe3b530fa34b46cd4db02850e783c935 = "e1e906a388eacae3e4b656798a976a7318d19f22" +6d3cbe1ac0da9ae81163439b50b4b70c998213db = "2fe567ae2b282c8cb5ef558b12de474bb53f26ee" +6dc4d254cbc4f5eb6c1e7f256911ce3d2d5ce646 = "bd3266774da252e8624191ed00b3eedd2987cfb3" +74d7f05bd3fe3264c9e491700685575d39c6ab16 = "39d28cc3af7189c7046f86a47cd2ebcfbb734d24" +75ec2c32ede6c516738c1b04f09f024f080203b7 = "05d2dad5182c6517ddd125eb1137c9df94dfa1f1" +7cae2b4e5a82ece9cba50ba790808cc9752bbdec = "2db42ba38ffb8fde612b54281708b6d95eecd3a3" +7dbea08030bb8377b53e93cda7190a4a6490cb6d = "5471d9b4ec57fa7107dffeae5c0e4baac41cc04a" +843933e5dd0598c3828f3152813dc32257e6774d = "2733e48285a22b9ab274db316fd61998ebba97de" +883165af1cef09980a3d9b1718477579d629754c = "fdd0e43f1a70a3acb957555211f5d0a519c0e40f" +887c930f8e812a87e2c4f34a55afc5d956d65016 = "85f685f9ca319d0146d89a507a5dfee896d54624" +8c4db2df096775f776e4b003173fc3fee0dbfa44 = "15164d66055440cdd61e642702cb1dbfa93f2a85" +8d6d1dfc033c372b67054902c0536439552ce018 = "77e84e2ad77c894d7586cb2f740777daea7694f6" +903f4ff2c82a034e48df008f4e96118d092f682b = "17f8472d58b86e245d61f4951ff642535e849311" +92a190055c946d63a0bb10956512a67196a17b52 = "ebf2d20e04657446b0dd981237a9ce283b9d16c9" +94386126dc1643d9f1fe953d721099d4cb84e8b0 = "0ec450297127c9fc193088c239e0d0b7a8003c9d" +96049554c7c7988ad12ac578d45553cef6970fbd = "aa1b8f0911c6479a794de0cdfa52ab64ce607981" +97c0f16055ff77ef57257c03f58a233a78873d4c = "59306340f4b4cf1d2ef243b03933889644e0c24d" +99c9718ba68825d7ab7fc53aa3c558cd3c40b1bf = "957b166265318ce5dab83d850b0791e0f1148db0" +9c029c1c78fb2d41bcd61ac8a3c591d799860cde = "1b37b0f991998d97b9a30746cf2d3f550f664d91" +a10138a7b2dfc563104709e95c432db2171986d6 = "70dd36fb720fa101f98ee977ee0ce206c887ff9b" +a149697cb85f7cf637972293e69acfce1392f90b = "1f36b660656dff2595700ef3d8ceb8fcc243c94c" +a14e5ea94ffdf3e97b2dd115d06da00176d85011 = "4638eaa4ed8dbf1372c22346bad8981c73287f44" +a3b998853cd9f33849b4f7cb5c7b93c1e62a9526 = "f5e11e297b9ab482cb6e7fb0e03333bd20b8ab1f" +a3ec7209c845087ec04f338484e2a5343a2cb88d = "5894f87d16bc845f7aebbc0eaa1d50f7ae5b99f3" +abe06f39d0570ff3f3d831e92ff4511924779212 = "9b06c0617b386dca568123f6ce634a6a81d3f75d" +ada78cbcd821988619b92eda49c952fc9f158652 = "795a26cc27ad172a1570362103bc19370feb8e65" +b1e1e36011787a9ce6e903e40d166f8ffebc6ed0 = "c1cb21b4ad40db8e7923c1ca47cbc75c0c897d83" +b83cea4da20745bf897662cbab2326be711dfb17 = "8a8ae9d47e4040ab408b24da71ef894f097b63d4" +b94e9417d16e5d8307b24963b3360a8e681978e4 = "9fb8c395ce88db0eb99002339fdd64e59d31b48e" +bac4e9ee89dcffc0bfe6dcfd384d77e565213eb6 = "bd019871919fb68d00a8797ad457f1399ee1a912" +bddb37a6206c87294e7004300297af39f1ed92db = "b83eb32f03b212bd04e7b0f12269014fe4f55cf0" +bddd411d27dba4b51700b803dc0017c1daa6bef7 = "e8c6d7a908756b0300ce3b7cdf0dfc8fe640a656" +c4d2b58a5c07e6bfff5176e00a9fe688bbd687a1 = "265d0fc43f569aadbbbf900dc1ab0c51bd24200c" +c6665fd8f544ff6f6fa0b303906cdc26e4f9edec = "04d796c544ef947eacd1ef207e42240d1cbe1bc5" +c7a9397e0882f3f5cd07d6e0e739d65e3ad786ae = "5e8a721efd5b7c57127b079613cfb0935638a91f" +c8131169d42ae22f0e80e56a2ff9af9234b960fe = "af11ecb239325319117a23ca4e455c7ff054aa6e" +cbd6bd7c821ce113f53420f3ee49c58a5571175f = "c0fef2cefa5497dab7a1a1322abb006bb5a51165" +cc0d94accbe343865ead30ba4cc700b552eba36f = "8ce8c7d70f3a2586597b25cdd31e66e53d357bd5" +cd1eba18eabc72ca0613028b8f25ea7fb07e9aad = "65c1490750f8c44fecf4e66f972ea6d84350e95a" +d05984d24466785d5cfabae466ba373293df078f = "3e21fcd2eeab21dadb3d1366debd7177f8075035" +d197b2b5f2c8faf1ff7acdf3601bb9b9dfc76bf0 = "22ca952663c9088749c409eda4a403091d6b5d50" +d300b5a9f0d70357e6f23b0e0a437819327dad78 = "75969e6942a536652f81a60597a8a056862a0d9c" +d61a50b4b2105e95c1fdf3fee20d9afcaf422150 = "a0e658bb4caf06adb2a36a0f9db613ccd2c6634d" +e2fac9aaa6447b7ba56295fcb9488e8110280c5f = "b4d461b596db281d65a0fe9fbd920fe710d004d4" +e67e7f9f63118604eac25405bbc0a342768cbe74 = "182176e4b32b7e271284b7dcd93148e83d9be0f5" +e75d5c751c5bd4fa4ae10a0a829e13e1577ca04b = "08f0e26219b311b16371aeedccb7ea3d9c7b9661" +e792771e820d41f4a97fe320839d401467678705 = "2c301ec3d777e1453ec70443e56b0adcaff3e1c8" +e82e1f81905297fd39037ea5e2613fe898debfe3 = "4d80ad3984ee1148ed67330a135631421502dad0" +f27612c88a11ad166c9194578eb967c8ae89136e = "09ea33d0f6aba993dbe5b24584c45d77bd842b7a" +f31cc598f2805b834574559e72d609afeb76218a = "851a84e34273f3234784f5ada3be97ef6d7e8cc3" +f6b5589df61112a3144d547eae8dde2c49985886 = "7448bf7ba5c8c8e50c639cc9552c9a1aab4130a2" +fffbabc715e4d1e53705fc34c62babba5f161905 = "cea0f3b6ca9e350959d57577ee2c14e3e55cc9d7" + +[f69e2558-b9c8-56f3-8387-9ca602ed87e4] +fc755ffd3e39f7bdc67c07f8dd0fc2fd988009c9 = "1185ae247bf82bdb168e28cdc16f0da222766dba" + +[f6d8bcc6-4e01-5431-93c4-9d6004abab90] +0cde5a48c95a6b83ac306e8b8e78f73ec2bac032 = "78069c237d3855119cb1b87dc6aca884ac31df91" +3b397b319a326bd0d6f005d8f9e91f71dd11777b = "9f18fce5902bf589326903e0fc4bed191dd05af4" +3ff0c268df2dff8ba31507a0e0d09e4d33f94abf = "3af929e3858939df0831cad24543b6d4e98a4c0b" +9ec268f87d042a889c2338a20857ed4a47ca783d = "237c8c1cac175661eb68da590635519429878a95" +dfe68383404b93c17fc09750a0631d94a25dfb2d = "ee0d432ae87359c3a753ac043e8900fdfb985dfb" +f106c7446609e8b29eed53f10f74bf2b4b6c512a = "ed00577c2959e8fefa7d529a20414f1b7fb03f2b" + +[f776ca57-7675-5783-9f00-00905e639b89] +1199129513a4367a29fe9712b1e496f753525290 = "c2d2a4adf16be90f29eb89d41a58217bd7acee61" +16431da8df21bc698c901224fb405654f60bb4d1 = "dfe657b9637a649133a9b6724033fc4e3844be89" +a2a5f8b36e8c27a628fd3f62e527c030b91495a8 = "b05714b08047c0c0324c6a20c821b20ffa6dfdc1" +ad6275b99c39ed6f3f63996d38fc8269ecf98372 = "55d6c40bc4dc7eb2596ef65c34bc8d3b399f4806" + +[f786175c-7be2-5c6f-a66a-14694b1fea27] +65cd27418d65e855034ea1dc6ec00795139e6f46 = "6ef5e1a3e028edde6947b00f917d0414029e3b25" +84341371762bbd28a60d2fcaa8978408193f7914 = "0f2b8b97deddca98c75a19688b4bde520b8ebf67" +d0c825528c8193797b0570ee66e1c10d8549834d = "243b3dbd8d988d257b5a823c7771b8e5c092222a" +faff857a34bcf2fcaf835ef6949d0c8fd6735b6d = "06eebce272c6cd1b5d5521e90dcd1f727ff6912b" + +[f79a5470-17c6-525f-b62f-3ca7bd6eedf2] +3ef61e205383726ba2aadce1754b3bab76733e70 = "b4cc25c886ff046e5e3ab158d9e51f85a4a5257d" +53f7012f0f8a97f3eef0200ec2e4a56b2ac7f9c8 = "fa49496838943eedc40baf6bfd0f3c2b623446b8" +598d15b86568782a4b84a81fcb5980baa18163f0 = "9ca179ed38b1e71eb6d6823914c86852530c1175" +87007181deeff517b65ae25795c289fadc3c54df = "e3cad6a1d91ea201f1a4ab8f4ecaa946f7df1f26" +f095ae62682902b8d3cedf85652529a0818e135a = "16a043c5b08f3ff9230cf203752fb5808075ebc2" + +[f7cde340-81b8-519f-8cf7-a5da16e3ca5a] +4601394a40d4a332f8cfb796d03af1829939d4f3 = "89c55cbc06b704dab652a953ec58ef7017f27403" +d4a53a13f912be7f7a9433b30ff0a3893f9af18e = "7e8c173eedbcd47b08d5543b9d9e78141af93e0d" +f8bcf69f08f99ece4e5ee5b6d784993d1f06d253 = "f5499f81e3b3e47e9f6bdb904dfb7fe3518deade" + +[f7cf5433-e9a9-5c98-8d71-a3ee389f50ed] +88da1a17192aec0e571804ab071c03daef6ede52 = "08f0ef80955ad1217e66d077a2af6996358f62bd" +b413ca1225471b204d579c623c7ad5cc34997c22 = "0c96e8f6b7daea73d9e4c4bd464c8b2bfdb7a41b" + +[f7dbf8cf-5e5e-596a-b7ee-19a3f6d1dd5e] +00e63a61bc2e033de7ea4a4276d79caaeaed1052 = "08442c5f2bf89f793e155f8b08a3061db0f92725" +7003fa9b1eaa2841ec6841521188f0a144bd5fda = "cf5df7c075c2ec1b554b09690a815942534f070e" + +[f7f18e0c-5ee9-5ccd-a5bf-e8befd85ed98] +00531f3bf68df7bdda62e7ecfa6c4eb42c0c2981 = "07dc7a755c44726f6dab15d40b37833115b712cd" +31a93b64aef50f067bd7fa648b76a1aa433ca894 = "53b5c13f13104df5118bebf2fa0971470b3ae05d" +38cc23997fcab04283683cd9f711ca411d761e67 = "fe2bf409ba4c52f3cc4ce0b7122cb077bd219b36" +4e48ad77b3a100810d20de7cd994806cf9acd449 = "fd0b7afd3b35a6b78e51ea6ffb03f9b05339368b" +503eae848bbbe56caaa04c5aa03f627ec384a452 = "c973123439a85628167caa442b8da94e2c755cda" +58c0b7538fe45fb335ed64924b99952e5924a9a3 = "5d3a14c3124f56e0f65d60e23d82a8e4f7ee0b65" +5d0c39117aa273cb01e5f28e71dfa793819dc81a = "d6db6a6ff9912c3a3d5c42c830f8bbd97c2fb70a" +65ae699fc45f11d981b464d131acfdefdf7e427c = "7919468df95778500d3ce0b37bea97d39e6190a3" +6c83bcb5480318e09e3eef8d58f9c7d0c7fc7ab3 = "369359f1ce8cc4baf69b3fe70100cbbb6634c109" +6d1e509cea73402d4f6b37314ab0fe97d934c837 = "d5f5d5353e2736647f30dd4dbcf95cebf386d3a3" +9340ce88c67590276a07f15ef670335feea5dc82 = "08816d9f58059e8e88f9365740124569ccae364d" +db2da36320759c5949c24b9234eaa01af57eea61 = "318a451b37aa5bb072736e65d730086d1919c4cc" +f5faa6e85e255618f53d5a09b84446e9bb4a3b78 = "939a1126050da08a88632b518e8828b7759b7874" + +[f80590ac-b429-510a-8a99-e7c46989f22d] +35307b12adf9465cb942ddc7e1da87108c7bb575 = "c170d63ae5fd415231e6728e0e91d95dbfc26109" +3e8fb609e67ac8213210238aaccbcc2475ee7531 = "f4d5149decba1e0c692a225a9b0934f1696e9dbd" +41796749ce35e04ecd0f610d075ae50ed49eed41 = "92d9138c06b5dbf4c575a3b9669553b5a8052c1d" +419edd97c825a3a5bbac62d55fb6f466d163ec6c = "ab90af370aaa662e2a6742303a9f76d0d002cc2a" +6e467691f0ca1faae24b2fb723909f75a80512a0 = "59ed78ba875c8cea797a18dfc0351c95e01287f9" +6fcba926d0fb1d2d86007a9388e1dea67809be3e = "312e54be315a547a039c93ca0348e9d48c28cb10" +c307c1482cdf094efeacf30d09bd4531243c9323 = "5c256c0703e982229cd86025245c03249730d862" +d7bef419ed4946671f53fab17a4e532ce021cf93 = "1f83841fd59f08c2f43b395721b73e08c8e212c9" +dc75cfda0363acfafbd2d3b000ff5158c8661f86 = "2695a19e1307101ae55e9e9234d3c649fcfbded6" +fa8834e9e51113c90549a287de40fc05c133affb = "cb7cf4a66d955b3fe183bf898ac127b8e9f7ec1f" + +[f86d3d12-fd5b-522c-99e9-61577282a1e9] +bb8aae062173e6b3cd6aba103ec1df89138c570b = "7a1e7e6d054d9369a2e85a43015f628329716fd3" +e0a3ea0b4f1817afc94d77b372212243619c7350 = "375a0b43ccd9a7466ce045b16a8cbf6b0b237824" + +[f8716d33-7c4a-5097-896f-ce0ecbd3ef6b] +0443613e379442308b1c5be364d22e632c8eff17 = "502e00fa7d822f5b801f536b9890fe7759be94f6" +355bd0e5dcee6701c7cf63992997c01736bf49f0 = "b19d8c442c75cde10286437ab1e0884738b62420" +5d3f4b529018e75d9739ad82b3ec183abac19365 = "a8b03e2120f6ea57356f4fd592dda855afdc0cf1" +6e1602d767e4d71198020dfef93cdbef869d3e94 = "ce262a53a22b6244836424ab481c7df08056c817" +bdd9c0ea044250df6bb8b5a21aa51ef2d9c652c0 = "18e88fed234f3b83137ace245179f9bfc1474311" +dcca6ab58c3976a29029f9d52c18d8efeabb7f23 = "5d83333350b690f6444ed57a540699a4ce996821" +ef502ba25c65cb559e8c086b1eac5e220ac80a3d = "0824fc763a15c76e5be5fb2c110a0b4c606d4ae2" + +[f92d4219-768d-571c-9f94-afc617fb7300] +4dc7556d45ef8f07d619decb9a1c4c70b91bb3ce = "c8e4e3ed47eb0455e91962f48aff9559eeb81426" +ea497eae30e9f94ff61a6b16edbfc4f67aa9fbe8 = "dc398b16a32c782f435d6f69facf311110261e86" + +[f9640e96-87f6-5992-9c3b-0743c6a49ffa] +06abebef67a6681c8c3e4612cbe0b92545d9d14a = "cd9e51c74ae1a9eb68ed5b765f89da13ed74c5ff" +0a598dc563efdc3c5fba05b73a87d79256f54f7d = "eba98cd9f959a73d053bb76bff9ef413e8eac63b" +471602e9d53d2326979a0cde6598142279ccc291 = "10432937edafcb91a44b310e28cbf2d5412aa2cd" +4d60ba769c60547f6718493a4daf1c879a85fd86 = "f4ddad8be3b18772a68c0ee8c85dbb6e3c75a7af" +542f4fd6dcb1e0617fff15dddbdd69ef1c8b2bed = "636764dc6366731c4c9af4ea72b2baaf03e2ea14" +cfa9463c527558e7a73e67cb94d415f338a5c463 = "ce019a9752648db30df168fc077888bfd4a6447d" + +[f9b4ff27-07dc-5514-a2b4-022623d798a0] +26e447ffe1914c95348f5647f3b18e80e81d7c66 = "e46fbe6de2093126ebe8d266a5aadd0b38fcf44d" +86f9920fba3a8a869a5a964f4d53a8861063fbf2 = "8ea7ecb2f05f6d614347509147c5eb67d2b9071f" + +[f9d848e4-75a0-5321-a43a-fbaa97166838] +5ea1c9a16d81587eaebfdc0c078d7a368e99066e = "e7bb7a93ef2d13eae390715c4d39c04aa28b3505" + +[f9da4da7-9382-5435-b973-175f5d8dfb32] +0a85c61aaba996d4dce0d6ca66d510fa3fd3d562 = "943863f3b792b083664058f3060eba09b77394de" +11fbf2961e5fe43c01f8d9c5fdace511e0b0acc2 = "96b3a3e14d206ef1408d4598d84ce75365b4dd20" +6e5d3acf1665b8b69fe4a8dd1766973d5958b2a2 = "6f2ecf77b3be0fc39d7049265a0b47106eb8d572" +a25424a2fedcbc747c4cae327e41ef4241b689f2 = "e210229ca9bb3e5d511d2dfa88f60f679f79040f" +b77f0bb65628d4e818984e5e1191bb9b042ce47a = "1516a61d011361165de21c5fa3eff7696753845d" +bdc709cbe047c131966fa76faa45cae3545aa338 = "16a28e7ea30dee69b4a8134cd118a8abdd740bbd" +c43f806b870f06fbdbd3adde4e74f841e36a15e2 = "910b269e4514516eb6d39decaeaf7972d4dce815" +cd10970fa57d14802503945b42995fa52faeae32 = "9349e4b9d7e6dea65d1e745a41c859416ffae312" +d53ca3a5c69b710c3a10e26c1abf5d9d83d70f62 = "1ae5597a855048fcf1af31c09028409484500391" +f9f7004c64fa7457eb0ef89c5bd594efab779a55 = "88bc8d4d22fdf75392b18fbb34c66caac61c084f" + +[f9e31aca-17d0-553a-a5f4-335c39cba33a] +06a807f33da1f3902ceb995251c38813e3a45df2 = "70c75f1f857aeaa9f1c44e482925a6b6244b8fdf" +17254e66bdf0fc60598bbb7a771b661e8be7fe12 = "5c39d2eb0ff5632e316addcd6e5465c2897b933e" +17ebc7d616b6f8de97120e2e4aa1c643071b482e = "89f16561ba05624f9f565c6f42c264331e7e019d" +2056533035c58656aee7ffb6d02ed3ae97ce4198 = "6c888be2c4b2f6a86b0701971b60b5639a3e3eb6" +2d9c940126347e9c418c58f30cc96b794a32e78d = "efb30e4c87c905baef519615d84eeff9071b7bac" +450e263645f909469bdbc0b8f77a3daa7cbd9d84 = "3dfc1f615ab56a9888e243450b81ee452bfb2856" +499240ca6d87d07c06a94ff3958884d88c1fa534 = "558915190a343edf983582c6b081da51fc07a546" +64fdefa28d319f29aa89bc1ed9e848889d23d1bf = "29f2f1361a12d690a9d4550469366bee9fc4becc" +843a94490cbaa150cfe5dff0632934c5f9603e9a = "dc756d2a98e6828b5622809fe0b2978c3bff5807" +96fe60a528131e6f78e19a5b18dcd134c98f5860 = "e133b2b688a57abbbec66831dd892208063d8698" +b0492f499b7f33dc448635cb3bbe3154a359615b = "fe35912fec2009b5c96644f497fb3bafa41e9518" +b18f6cd5907c6c6dfc4c444de520f348e5b78fcb = "8b2e211dd0e49c871cadcb8158af2a6363d3713b" +bf67c333e0c22c0ad691f3be4983e453bbddcd4d = "22d0b7d27ec3b7d6f58cbae9e64328422dff5e08" +c02a1c9ad2682b7339e0cafbc17e3737c951179e = "9ed224d23db8fc7cc9b9e75ef50834cd339f5552" +dc52f5876937113723688ef3250ecdb2236c9ada = "277e08e0007f7acab1132514a17ad42c75bfec3a" +f285e0c6a42fae21780546db55987e5f970652de = "35115652553e47b630527d0ca9b316fa35c34f34" +f7ac87d95df83ace308c17061c77f47e6f756251 = "7eaf3b8424f9911934f95744a46a7524bd63215a" +f82693b7ca5c35249f978df45d193432452bffc8 = "848211e815e6445eb348dc590065ee7484b96902" +fe9852231d04672c0792f2ca7adf754da0874f0a = "c072d1f4323554ccde3018497b218398706f1666" + +[f9f48841-c794-520a-933b-121f7ba6ed94] +28c1c04c2f17d3e081d9267d49132a0f6b616a83 = "1cfc04ff221db39ced5bcc3ab24c4c68f75293ea" +376c20defeeccd6abebf150db4a312a46a304a32 = "bdd125bc809c20447cf33962b49901d6264f8c0c" +41a21248e32c63e128b499632f49809eedd09ede = "41788846aee2d04c2e981c37fb9cf0881b6ae50a" +7846aca83d1209c789bdda32e0d3fa7d5ae333ee = "5038e6e21baab31ec7b64dbaa0588ef3529de5ad" +e861ac825e167bb043caed709d28036f31018a23 = "f5f6152c0763b90e3a5e9aa72b9f5cae783322ec" + +[fa42c844-2597-5d31-933b-ebd51ab2693f] +04a4364cf3da2a8cc2ace043aa2667d5c10bbbab = "2960e37b2652a5b31e19a264a44b9d20162f0a70" +2b7b3c02928c5e9dee294e3f78ad974b9a3efc5e = "bdbe5fab4c2f78e3fb9f72e56a6951052748ac50" +56369a8f4e2a4af683eb5471ea2c802f7b7e0714 = "cf27b6150448518f34fa8f4e87844af69dd58527" +662d1a03ecb9fe0a9398b256029283d0bb5a8ab4 = "89e5a0b744861dcc4d941e2bf4eb537ac57f0017" + +[fa45d1ab-b616-567a-ad77-664fd15b62b2] +cc12337a200536613fa94c02fc3674a4d619312a = "f8f6a92418d73e3a7f1fdd47c042a076b8ac2b3d" + +[fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74] +07742616b1e5d89c1f5a4fe974411bfbcd7fbc57 = "2e0ed59cc68abac54a786b4810be0c272db90c28" +18cafea0b1cfc76bc3c06550881f6259d0a95358 = "8cdb01cff30d43d85b4701015a67694ced335ff8" +34ae2b236f4853028fc60a5efed42bd17a33230f = "dc76a81cb68412b70dc2787c3a74b5af7e98ec4f" +4c371f087a0e950a59301f6d669673010c65ef5b = "0a3f20a433c336c0299e63f93fb8e71b5860114e" +652127f420d036278b8327f5327419596e7d11d9 = "1c83c13a2fd2ebc4d28694f813eaf4fc9138da2d" +7d4eedfa1bd6c0af7d844d085d0c2ce6b2357aa7 = "a5c75b82175307cc51ceaae7356280cc99df2579" +9b5d94f59254ce7958dc991f9e715af32f0497b3 = "e6cab16492d49226a7c8a0adc7a64538c84f5f76" +a9a47656fb6b70e5788551696f133cbe7886ea7b = "de8e93cab147976efc7480593cd91bd18e471436" +a9ff70a8231e0b540a6b4366030acc0f33d9d937 = "a2d15a8679a9876bab522da852b311e81e634e0d" +ccc83f8c073ce8f2668141a733b5084674f5b0e3 = "379c9c73a0bd5584e62ec8e28b0e5a756067b45f" +db11ab85652685c0ea25f4f08f7de96ffcd085e6 = "dd8043cfaa448e67100f5e4e5541d0d6bde51b13" +dfff532572bc7b7c677fa2323c6e7a239c416709 = "5b3a5681f4f32e48de01a37a4da7a521994733fb" + +[fa774e86-460a-546b-b195-92e8193e3324] +55a4506eef75c4c011dacb47d53ddc88c75b4888 = "db618cb7836df40df7fb3ce151730199d44bbb9a" +bc3fa2d7c061686684f6a228f0be8ca2a0adbd19 = "3ddeccda3f76f90bb5dc7329a591dea6d68d5386" +d2c33fe29d05a577464f094159d01940815e543e = "4437cac6cbf608babfd00884038471af7f41623b" + +[fa778a35-eff5-5ebc-91c5-11ea73160f07] +7aecd8b62a94b809d5ef10fd1a1096fe8742c81f = "d8cc579059a2f43d5cd9de30a28354b02468e2fa" +d4a29a57dda8e23235e9f2e0617d083714a6a331 = "299e06ffb61f7cbff205edc00a8a04ba24819b5c" + +[fa939f87-e72e-5be4-a000-7fc836dbe307] +2c8bcc9c2f30152ee8675f7ece672ce25ebef5cc = "85cdff14b2006aaac81696538aa37b0ca74c3f3b" + +[faabce77-3242-5060-abab-4a4767a0df42] +bf1dc6f34bf5c9e3f679fbc8361787b5071fdfdf = "cc9f779bc8c2f25b91c6a9c0c0f91b84e01b1946" + +[fae87a5f-d1ad-5cf0-8f61-c941e1580b46] +0ca7f4a6c865a6d1f9dcf30345224d07c39ee5cd = "a7a03f220450654997fa4271268f471b70ed74d2" +0fdcd12cc8914022c07f5e3a191daab67d728e51 = "17ffe05b07564a9e3111ae9b9f6a5c41122b1bc5" +12672c5ddf6cc98b0b2847aa6a31a16ee0ca6812 = "97aec16df3e887f7ced66b02ca7ebfd8ef006b28" +1fe85fb6f57574b3fe970e7eef3f7a2c0aa1345c = "c35334bc5417ac9e309ed3c9da272052a68ad64c" +203085f06b1c0a125845b487e7e4d886a6b8a640 = "da3f95cfdb35b15445e3f70031f7eb460a633924" +33cafca80a56e5cd2f0413b407c87830fe00e739 = "419f05103e8a5eed1d00c4db3836b8d32c9da5e1" +34ee64d71709f57abaea8f186f20ee695a0a2a02 = "ce8429a3e08c4aa71c015675211fff6e31c2d3e4" +451ce5856881357387077c15a23195f0d30e6aed = "1bc05da6bef6fb5acce69eac9dca9ce825633d6a" +4cb6e869739d4a7760db0d32b319922e66fb2a9f = "0ce4f7cff52cd8dcb367442a21744b1411177ef3" +5053ad4658f6659dea405f2b849d455e66a6b547 = "67e6aa2ba654cf623c3ceafb6f369ad0339983f6" +5a50de6f1de749e6d9594ea777230f1c3565b967 = "0f136558a78979ccdb5c9c20713f2b5e4969b977" +6024e47d167c08876cf2a7fdf3f01866640ff37d = "012f77c0d32dde739195d57c43d89308641cbba3" +6c7045994dee1f1bc4d6bff0a8c96043a9599a5e = "55990f66939e0af1d0cb156d2bb747cd613c15a0" +73d119b2f2a74544c75bef0c21b09b03e1d18e6f = "e068d7dc0642d0e401740a30709291939889b76d" +865cf925f8fab5e3c3938cef186a1d5ce9ea3913 = "2e2c9139375c2f4a2abaa4fa93fcbee357900da5" +8cd7644b1c518b4cc2617faa9c51723cdf60958e = "08de8d686c692b2add1ed1dfa5dffd39ae780daa" +9106f09f433e111e4d0690f6f62a2f8cc862ae9b = "8711ba0c0931bbbbd5a7e647c132a9c9e0b96ca0" +98b0d48491708afc794ab7a471663c9373cf4ca1 = "86f7eb2218f80f6b51afd5c4d5b762affd6b0577" +9b0d498e633d1285362b4e533ffd3cd683c0a2a6 = "9e1a764f50861c828d9fe605a8446b1ec10f91e6" +a0c0da6cbaa98ed707d4290c899589e7833dbec5 = "9f302e720188658823219f209eb7ca1874b81aac" +af92bd64fb3af55a9da61e1e1495d27c814130f2 = "9c661d4a35fe62003aab2e9aad896bbefc118f14" +b275b4eb786d9b6a1e8f4fbfbd8ec80c8e780515 = "5c6a579b9455fe69801a09fc7961f48af55412e2" +b8bf5d3686110a7b031dc12fd41c8c70c5e228b1 = "b5143525f27e16a282ad79b9bff862241aca634c" +c28742cf8c4af8e49d66384640abbb1dc4dfa6ae = "f698f0b182a5a681e1fc22419648631334a432df" +c4fe807d72073847e8e8a84480a58e4b4650b915 = "544301c9e3cd5558deb1f942f66b74a3a6383d4e" +c7aee60b8637da487ae017ca969af275e8b3d203 = "5600bc1303b2f214e89e10dcda19051c816ea76c" +cffebc149f1188272c2b366172ae636a22b89aa4 = "3d84582ff8835b667c4598fb8bd526c7f7f9a7f1" +db4deb8ffa1c64dd19c871801ca95bbdd01963e8 = "96099d0a9bc1b00399fc5c0436f896324f835b11" +dc0965d9b6bd04b02bace7a2812dfb1e2ad7271e = "5ebac11b4422f47c39a2cdbc7b5f59fab9d213fb" +efcb17731574f9e3b66887f7a93decd233239960 = "a20d6ee859e6152b36a42c11271f448e3ec6a097" + +[fb0b9bd6-a79e-56fd-93df-a55af7a092bc] +37ff0c231ddda5d648a76d5cf75fe6b0c2e4e64d = "d5ada9062be6786a0a00307e32946f4718b0806c" +5976bbfcc5094ac954ab5871b5004dc10ffc2d26 = "4082cdb0d71c9e4b1775af6aff832b57913c7ab3" +f791c9e05a564319b4f647bdb9e6ea7e487cff0f = "7074e8b85fadcffe4a253715a1cac8ad1a743187" + +[fb44c06c-c62f-5397-83f5-69249e0a3c8e] +1ecc69768fc3b597f5808786fe472dd59dc99638 = "0a1a23e3fee31a63172fe69ee263d4841807506a" +a3752c454e52fb048ba228d77bf886e94b8327e5 = "3477fa60cf4ed7a4137ed12ad9d891ae7670e387" +d91f4b3ed2db356c19ab87a8192cb3b4c228577e = "2c85f76dc081835457c1f0802a6b668430053f3d" + +[fb4d412d-6eee-574d-9565-ede6634db7b0] +050790cb5cb4e565fbcc9cd5158451c67844e985 = "4427fcf9d822446bed104ebaffa96fc9c3a89500" +0d87dfeb61cc69bc9528c2e6c57dd783d7034fa1 = "30989889024160d192ecfcd94a64a0e21f1073d5" +769a89e9b57bfd6def77478e5d14750529379eb3 = "1f3146485a6891abefc514c189bada14be32e41e" + +[fb575ef1-c80c-509d-a4a0-4af84ff70704] +89d01e0a0f6aedd122198904af1fa631b2c59f2e = "5a0898863013f65b5b7457af49089406f66fb48a" + +[fba1ee03-5eed-521d-a2ba-51b06ba98eb5] +7d89d2ef95b59aa0c6428e6d776dadc5737de88a = "cd7e6b142ad482ae2b273b5008c2e6edd3e82d26" + +[fbae9410-3ea5-5e4f-995e-dac77a0dfea3] +299581c6cdc70ed815c9ce2d99a1100f6e9df715 = "9f22abc7e0f240ce2f40bc63160a3ec3819382b2" +3e354b912313932a4f912d84f993ef2eeaf63ac0 = "24e7abfcf1446fd7a939eca6bd4a255f4f8e90a8" +5d4704402afb1f6f47c4b0ebeb51c353ed29f523 = "87ddcb6e4e03f565700926c1246e3408ada7e789" + +[fbaffd56-9477-5acb-a91c-8d53cdd62c7f] +3f176ccac6a552b4d8fa1fcd10bec49131d5d06c = "24125b9e65dfd6bc30b98f7bbd56f8fb90ac8384" + +[fbb456ec-85f6-55cf-94f1-f0a40aaf3d57] +a148219a595ac957b64f1ba2dab041bb05ea1642 = "bd2aaef747294893674098f380a0e59dfed1d59b" + +[fbc9c225-e6c3-550a-aea1-62a5e1fd6a9c] +54b55bf545f6e3b43b2121b25d1a47e5082e9893 = "c7cff6938ebdf3855a6c299b6ca0939c25b927ca" +93eaa8c3a5eab20f44f2ea009c630d34623de2fd = "5bf567f0784ecd200831b909cfc81bf769672b26" + +[fbcbbc08-f1bf-5204-9233-b69f5d396135] +110acde568e5906fe3e051a16b8087016107aa30 = "5984d0911308e754eab3ea43ad42f7386adcf8be" +3ab1f97cd97afcb0e209127dfc50dc3ffb1a6410 = "b91d0899ee4fa1b25d29f8ed967b091951e17511" +60cadc5e4a57d142fe0635b4acd98a013e5b0276 = "81d92056a29ae60667db7056097f3caffc3dc8ce" + +[fbd9d27c-2d1c-5c1c-99f2-7497d746985d] +b5bc0ab2b36620a6a4c118895878d95bc6a135af = "13450340b06a8378673ac634d60c16d7c9ced16a" + +[fbe9abb3-538b-5e4e-ba9e-bc94f4f92ebc] +14cc0539ad99a30dc9e3511afe0144ad5d7d1f47 = "9bd3d9bc80a74158339c163fd399efd555941e63" +1fc8232ac05bcd445c3635cff2a9ff35c273c9a4 = "d21e8404268f46d3c97e8d0920e29c1e2d0b70e3" +409dc2bcc916862a5c8696718e4b277da24e6cd8 = "f564fb32aeb2d536854870eb8beccab75d3b818f" +51d5a0ed4e0ea25788571c1f05e6c1bfe439fbf8 = "b96b8e80017957b666f62b27af110a3871a8552c" +53144908a080f24d30a6d4c333e3fbba9b25949f = "f42bbbce006c96bc52ab38f8cc64d9a10b147148" +5aba846a24145c027a2139b51fd212a41b9c76ac = "22dc93ed23687392010f45650bfdcf3e77e8995f" +6291862f775b16c57bb3e4304ca23ffce7c60a9e = "197a103681c39cfe3c524b20f3624c06ab031e0f" +6477fd150f24fb07e0eda78688ddf74067217189 = "053c5bb5e13e644619272c4071f637ea8b05d900" +654c058581c81c603116a3a8090623269aede4b3 = "fc0579cc4ea6f81869071dd99a11d77b807bb160" +6eb59a400b116118852fbf3f74831ea8637b7221 = "6dfbbc42bb38cdc6277cac36cf4f52f81ba0d6a5" +7a8ae3fdb4f8f5cad95b2d0098d41b43c63b78ab = "49b3d4610d10a3c4e44879181bad712bac8dbf0a" +84bb5947ee8e1fbc8d49af95c2d5747d5d919bff = "46ba52eac7d5f9e94c34b3b6cca6e60645af02a4" +b42f0235b99d103469b9539fff40ef410c346817 = "6b54a032b83e76f91e0c8508506dd24ac99a3d80" +b4edb3f8e950e9b6d0b9060cc176effc0c832dd6 = "88b58ef06c68d0e36bba6ca26bef75907bc50aa9" +c8e3fb6f7a3cbf9da2e65f7535a614e9f199c73e = "a4333eb0d2dba89912a208380ae1f592bb227aa8" +cb9157f4bd5a3ac3df1cc05a6364ef7b4f49d11a = "9d605586ee4cd3b27c15735a59df00bf7e8649ea" +de5722479fb55a0c401fc96f83c6540a749fd6c9 = "4667459f4c0cff92155f603da501e990022890af" +e84593f259163e119a9960cf358d5f76ac5131b7 = "529edea05726a4cf6f070c832756c0999355c9af" + +[fbfd966d-c689-51ba-8131-03d0dd334937] +233d41aad5ad8946b347990abb6e07f6b1184162 = "d4228b6ec340e4bec1b60ba2626fe2bdb94200a6" + +[fc3cc343-2967-53bf-b6bc-48b8e407de1e] +f887ea730974ed97287d05a8acf541367206cb24 = "46dd91f100613a815dca69a5e2eb77fa43678216" + +[fc43787e-1373-5208-a493-af2921c41885] +9b4bcbeae42cbd0801e3f18af0a5975cf50fd157 = "2cb779170d0cd0a18b0b6422c8a4948c532ee4af" +a776b0c048049e5a5b41ec67573032ee5d72c2b9 = "bfb255aa5436dd025035043bfc653e7c5f6b0885" +d5d48891d14e325da02043d75e676e92d9192fc1 = "123c6990dec71c25e032a8bb9d5e39d2908d6040" + +[fc60dff9-86e7-5f2f-a8a0-edeadbb75bd9] +2daa0bc37f990d4591a0caf0b8ab081426ed356a = "3081c75d4ef6bd735dbed16c91f76722728c643a" +3cd7db5b2be562f3d571bc2ddd235e90ebea8f02 = "8d7c58d265360ef4a4549a3e28c2966a0244b120" +7b031a6477d4ec3d307ad4934d9f5dfe355b07b5 = "c3c0417335dd8f1d4a7ae72ed99735f1a28e7088" +9734fedd3769373aabd5af455d43f5f6d7884bb1 = "aca6ca71cbef4f4270c6aaf4209756378fa2c32e" +a017c664f5001a1bfe6b911664bb377062aa5113 = "924a74f79f3a24b37383d94206f375547194b6fb" +db1ca803f1d09bb56fdc2bc40150028890b45b00 = "1f1f84298cc40a82531b3f9c53dd168b9a9d4de1" +e4c754626d40c5bb91e8a72562cf4e18143d3219 = "dcbac457f22bc0ac7d4ae0e7f572626581be4ddc" + +[fc659fc5-75a3-5475-a2ea-3da92c065361] +1d37b5feb53fa39d6dd40dc91139b11005e4c234 = "71e5fdcb9fc4d15c67032ad15adc7654fcc97c73" +9f247e64a30d4e1ccaaf3a6f2e1ffb02a62c9e01 = "cd59a5d544fb9a059f494f87dc6a70c383c7c28c" + +[fc66bc1b-447b-53fc-8f09-bc9cfb0b0c10] +3418c36d9ef63eef085155f406eb6655c8e67924 = "d86d216c468cdf27bc11dc9b4716ac7c369b25c9" + +[fca6b79a-5711-5ae2-8ce7-7abad8b9df70] +0766b617c851efc54a5c3d1388dacfffb92c628d = "d3aa9a5a29e4130994a05f7b63f585703cfcb383" +17b58b36d6d8df12a4d88a974b0cf807ddb70ee4 = "667a2ed355091a7384ecbecf18a38ba2dd29703a" +57524ebb89be5d55c736d4a0cfe3b81bc62d11f8 = "c4b106942e4de541c9050a6b32209b05354dff02" +623e472c81897e18cc3c53e409742ec81c16b8e5 = "1cd0ad5e9d6ab16be6eb062542820740743a7c7b" +63f7217fe0fc38632b414f904ff53dfe50efe066 = "624a678529b3f48eadf8b94d975cf38f8d7a339e" +a699469096e626fb137f3f74a318118426ed20cc = "31ef9885183aa266dc82e99f73acc4b14b2390fa" +ac65250aca7d94900f952ea470d31a518bec0c62 = "cbf98a2f1c8c33f7e6575284a69121d00e5726a6" +d5448b26639cd0f2a3108dcad5935365e14f8421 = "67a012796fb017d52ba064ef0a240b7a5458c274" +f845014ae429d170cfad3ff25cac364e5fd96a31 = "83912224f02c9ed72cc5a9a37b2c4240084d5402" + +[fcd29c91-0bd7-5a09-975d-7ac3f643a60c] +05906bfd89ec42185b83f18fe693afc21df14eef = "4ac759bde08536ba2245baa01e03dce434876ef6" +16a9b81ab76185a0003733a398e99acb19a7b071 = "ca12313e779fb0627e48895b4f477a4a79b1d971" +2777e6c731d4e92b619b02cd32db69a24a5ef106 = "7ff79f66ce910e34866c223bec002150eea2e0ef" +29de48b19c2727e0e73f52e06451b809a77aa930 = "864774614b228dd80c3158efa8a8baa148bc1199" +2eecc7ad1a1944e9866408a807a1f9f6e310cd92 = "ccc7605a43155fd9304a2801aedeb29688a32113" +34026d2db0a6ca17d0662c5e8e233af7ad6deb29 = "23a585a025095d14b42918aafea4617cdbb3add7" +3ed25fc05de2920e57fa8be59355ca2d2a67902c = "c4c5dee51458f70dc3d6c12201b6d302ebb6107e" +407d1671f8bc4eace1a9491d60d70a79354a87d4 = "90652d9ea5f51330fc93cb95deb4150066e02ca5" +5b7ba947633e6efad9300def4497f8fce3cff290 = "7692ceb0976ef6900d3c6788f1a6369cfed78bc1" +5ea70a3762485cf54f4d9e65872a1300fa86eafb = "a30a609ca154e64c396ba5423a19020901784535" +7394e23a135a3f2c124caa8dd31002814a43e48b = "285dcf5c3ff8d3f4ed4ace7eb9780fe14f85c08a" +79fa677daeef75dd694d1f6e710a44f4244fd197 = "174a1629177b7c66c3a64713c4ddece35e07d89f" +93ce49646b1c292dae08c4f3767374622a2c74de = "f405d3ea09588703ad15011d5d8ef0a11a8c35e1" +97c30dc769563acee932fe9510b7f45d216eabbd = "91728d5c18eea66b4dced4b944cbef05071d8896" +99aded1ccb46ad0111f088aa695fe7eded1a47cb = "725ae6ad678c3e89cf3f491cf14297f38b4f4e8a" +ae41315779013e29643a8bbfd42b7556d5f5866d = "4431957536e36c5c9c2269a0cc1357eaa21e2946" +af4a7f85e6b31da0bbd6777c519935457db3260b = "474732b45a20f270d73938fede03815dd52f59cb" +d028c898625b971442b48c9b94cfe69a10562f93 = "2f5a307c448f86fac7e54e61cc7752282af27870" +d0d1f78c976114d7df6d835ef3ac3827ebdd1d6e = "62dd8bd25c50d48ea62858e473ea2b1c075f1a85" +df22e32f3e127ac99a59dcee8314c53aec4e64cd = "d0095126277b238e37cfdd44562547766b5f0b54" +eb078224a2a681325d6d3e7bfaa8898d10f03f56 = "3cb18d9f389308535aa823c9e9a25f395dfb4648" +f744b5bd0dbe0f65cf0ff32bc5a744948435e4ec = "6f16d8d1cf1dc8670afac9f15d98eaff98974181" +f9a34ddcf2f97e3b989e05030ae5b7d13c395f25 = "94ddcd6e24f86bcd7ceddee171ec1c372c461fc9" +fae6e19205d1911d03ffb6ebe7ac98eccb6649a9 = "d47ffc0435e465fa4a4f1ed0194119242c111f79" +fe2be6b95b517414b810089c49f295746d93f3eb = "24e106f300c8f6e5a0359db8c2ce98742a63211f" + +[fcdbfac7-bca7-5d83-b49f-2c155b340956] +ae50d16a46fa9e5a5c806a110a835b92f2adb997 = "3907e4f818938ea5ed264f04439b5c4d31ca635a" + +[fce155c8-f798-5163-ac02-b1a32139d092] +212b3b8767ce67661be0c8fdbdd2d28169e83a85 = "8ddd6aff9360c9bbb9f1d62eff64eae5a36ac9c9" +2fb607845e4197b013d4d65595c666de8ee82020 = "31e74311b8d902eee8a38a98fd7d343da1d42fc1" +33e97108cd253d5e8e376265a58e92f2e6b93981 = "d90bac0f4ec646493dab4d939256159660c19e5e" +55fcc4165bbdb8dc4139311b5a111d02dd62ae49 = "3d72ac72df2f119f1669a04534ae7cf334addc14" +5ed6f7c7b5e3baf6e21defa9ecf04916c615c5a8 = "5ee06561d1ebdea3329e1fe9aa89e56081ae376c" +61398f3175835aed3eba32264f9ab88a5085c22a = "1f0912aec8a07cd0bf7eec8620adc516a85596e2" +658ca2264af7faf468aa875fdbd7f6cb1895c27e = "fe88b40d6f2dc7a60f35089e720d515a05aaeded" +82e62887937cf258635419d36f7ed78db4fe20e9 = "b731b9bc3bbfdae91419976a3f8d7aa657b49b1f" +8e455898c4a581276b5fa7c4d2b911df6b6a7452 = "844eda491e5900d8c7f52977e06f2c44bfbf631f" +a0d210dd2d8e6d6f1ec3748a49bd27af76889c51 = "336fd8f4b7f4bba5f7dea80b165e18e42789f001" +b41240258e32665d37da62c62b4add71e2b1de3e = "a84549e6f97ea448b3d62dd0f66a622cfbd2ad0b" +d44f078baaebd5d96d099a5f7b0f232d707b1c50 = "69136c4d5655fda602255a2d156ebb017dedb6a8" +e3ad30ace4bce66b9b7877c30711139aa7730325 = "bb3df5fcf34ba15695d12f5f77fa1df3a1273e92" + +[fce5fe82-541a-59a6-adf8-730c64b5f9a0] +0fe926e429176f2417ac37d749358c24d69c4442 = "94ddf71c955906656aeeba1a991213c60caf3c96" +2165bd8ba0f9608c00b6e01b025f49240702b59f = "d7e46ca8d5d6ef726744055370a91540e08b03e2" +3d1d8db25b51a95e32a4f55eb019589d83b611d0 = "971f38f0bdc9dd2d74d8eccf6330164038c3db9b" +79fcaf79c8324486d41d3ddeb0a627fd9d5dd56b = "138b0bd5ccb157b92d8cec1627f624251848369a" +d3e1cf4e141edbc78fb32a94e75bd1ae9d153c5c = "df3be2f29da6e3805c981c806a8286a6a88ed9c0" +f2e4437d8740c960048f1bb0d302579ca4fefde8 = "218be950880752b5590050c1d64557fa7c33cce3" +f88e5eee70bfd268596f997bd4d3387d2dcbc1cb = "5723f16a2b7a15f68c0aeac6ed3a309bb36fa022" + +[fd094767-a336-5f1f-9728-57cf17d0bbfb] +0f68ccc84bc6db6acab655c15e0d36dfb01dc551 = "55a8605abdedee3f4e964e015b869de62cb11621" +1ec0692f12180f7446d96277743fd259389052bd = "8b67666c918c39ce006f02346dd26a2529937a3c" +cbebb22d0a42d1fc2ee5c7c154d483a6421524ef = "557cbb54390710abc4f68c4ab1efd37e02bc2ed8" +f5646a7ab0ad9cd9bcf1c3bfddb9aaa44b62232e = "3878e5f7f1deff64c1d6bbd7b1a3e96dc38f7ff0" +f918ba1094f085b97d987285e111b709c8b348b7 = "b12c0bd9735b1d4a3f55d8f27c794864ac6c54db" + +[fd0ad045-b25c-564e-8f9c-8ef5c5f21267] +08554f837b2f6f426749f4051f9e44d0b996d07a = "6d9ca54c9ff8bbb1a7909566b1af235fe7414d3d" +0ec56826dc4eee301e0fe237af1fecef5c4febbb = "ed08b3b56c564599a1b4d21e22586eb39a708419" +51ee147fd2a0d052d42e3c2bdcc3d88d0654a7b4 = "391ce575f36f0b1e136bc7fc89d019c119bbf0f2" +5df9c565d91b0a630f16bbc546ce24762cb3baa8 = "d1d6fb49d780ae7b4b22b859b026ca0b08e6f71b" +916081fd59a2690bd3fb9e55506111e2ae8fa338 = "f24427cfe22923280ca71266e7a19de437ecd250" +daf55ad776aa5331eec77fd5e0a4a5db6e913852 = "a7bd6e6a614f55387e8b8aa31e675e6315729b12" +f03fc09194369dd954658c5b978144d05002c5ca = "f3a5afa3e4eb7b5454eb8d61a0490a944fc9d31a" + +[fd66a1d0-90d3-555d-a35d-c122df06773c] +2c4fce3d5c4cd16fb3c889f81b5f9e826132888f = "db13e4d44eaa49f1259c516b2e756df7dd839d42" +ed8aba40c15efa0b818c49dcf25fc4b8045a9c3a = "b012192a7fc5a54c9739b50c33df0265ba44b7c7" + +[fd7cd58e-89b5-5734-8764-2e0100508a9b] +0a826d9d7f66a12b9d2b03e1028163af140055c2 = "8272fda182ffd8e2154726c5dd726cc99ed995a2" +160c8d3d94e8cf3d72c3a2ac4eaa6284f5a733f1 = "3572eda62a73bf92161eeac5c128ad3b677603b5" +731906a0472f81b519abf66e816eb365e6b4742e = "fd49865abd99d072a4cd18dfb9df7841ea224ea7" +ce5ed148383dbee9e956a8dc2a27ace5d9270c5a = "8cca21f3aa08cb623bdee55b29f911e0f320ad18" + +[fd9e7046-df80-5870-8bf6-b6b2342464ec] +084ac19b7546e1afe7147476d3e93e57927c15ed = "81615ec6f0c447a541f495c86b0b260cd27ab7c3" +181082fe34bdf8acf50b12e12b0524b5b8b38cb8 = "a078820e92b3054d03b6c22282d8c96d73cd6afc" +1b6f7d35086c62a2afc18cc838af34eb5cc2cd1f = "1dffcf2c5457732946bd89dba6bcbff2b950ed76" +235a1e7eb5dea1d9f5fb1e74febc3adabd9c6253 = "aa0298f6f57d99075233db237ba120bfedaf2f0b" +277129ed7a426d5a8027bca95b4bbdcb209759ee = "a982d4ef3cb453bf0c15145ba249111d5d6941a2" +2a43c29a3af34a21e4478725d3e4a81427b7445f = "94cd5a9ffacc52305a90fa51fd5c28a4d76e5ba0" +2a69b18bacbf2f60dddb439735779587a607f5ac = "b4bfd2839e64953fd36585f5860015eefff7e98b" +2ec19353f18299a40d3feeb69e4a0f315a3a9e21 = "914f23322009f2e03dd82470e9251c9139c2125c" +40bc2baf8d94f488db5374d7e84e829e0fe92859 = "331493caf371230e17e11e021ff444b3071e8668" +558835c9196f1fafd083860ac4251e23d85e0fb3 = "38e64d0fcc520f02066d07dba628fa3ee3ab2984" +5656779a7c235a23ace62e17dc32d39f9def230f = "e6d56c713ea1ec105bd9726af2f8f43435217c9c" +60fe4dac75f7c26f9844e3e423ddc8c04a190aaf = "38e64d0fcc520f02066d07dba628fa3ee3ab2984" +6bc952c02f5eff1483d2a953bbda9ca845ef921f = "7a98a863a3a9908991e55b035c68245df498b2a0" +84cbe0bd664f57cc511524ca84d7e0472b0eb244 = "704bdd5f95581bacfabc89f8082c5375c7bbb0dd" +901f83d50da1232fecdfa62a3bde318285dfcead = "8b54dbd8123c5465ed7ff008e09f187d698a3f26" +923539a0b65974ce04059d0edd218bf2295ab5c2 = "efbaadc65fc841ae479a685ea1fccae57345b7f3" +97d2f5e12cccb777db3602a6c1a01bc19d8e2d68 = "ad3610299a4a2bdf2d799731c71a25e863844f7d" +bf501f74409dee1fc1f40db591862d406ec13310 = "db76de6ea644a4e471a048a4513b34a954a560a0" +d343968913581054be59be6ad7e37513d6a48512 = "704bdd5f95581bacfabc89f8082c5375c7bbb0dd" +f2d2b5c56c53423963515ce38ca0d1d5637aedd1 = "c5e28fef139841aee24afdd8e936783a59e81924" +f69b868235029fbb0ffe6f59fc89308cb3ab755a = "c53f0b416f0ca25927645126cf2dd56e003d68a8" + +[fdba3010-5040-5b88-9595-932c9decdf73] +0132f42277c90a866238bf18ebf8641a9b5d7466 = "99c4829c39f01cecf572f60102803926799b1b2a" +038e07f059fec0da5180253148cef5c812c203eb = "fa7f40ffcbf29015ba9d485f3016aec2ad56bf55" +04de880875a93f3ed0ceb2effea59d6083932bc7 = "48a8afa4ec4e21ede7d840be4e1531305b6260bd" +052d9a5741f26d1c1c17ea6084b9b2fbb85d43c1 = "4a26abd7d1187a5a97d229523d2bbef2a3a75e12" +08f73e736d01c04255f09fc76eb2972a03d8a422 = "e337f55e2d6450b8c46916d3a2012dae8b1dfb26" +0ac0333881ec2af0cd09e9cb427089295a496041 = "86e8123494943546837a50c3ee1f76cd2265b855" +0ae3dc86f8d2f9e9f8abff5643ff00da3fa0a634 = "495702f403c92b17f52c1308c7029fa75cec97e0" +0bc8fe042c8aff25ed87fa91ca0f6cb3d642d0d0 = "c4e6a70860f6575c9228269c610d92b77b531d9e" +0d3862b8bb6a36e0e705308d9fa93f0eb490494b = "08309a314c3a6f2229565951b47e1416cd4cdf08" +114f6f60649af23c9f337c61bf1288b63e6bbc88 = "ca2921b117d8c33a9800ac4edc40e0ebd6938d60" +119129282ab5b5c95c66d667c46b202aeb4e3f08 = "faac3d12e20eb7f7229d8c6f1aac028350c399db" +1685462f89a54bd305296bc9b2529459c7b82c18 = "8c0fcccfd39dd05a44b04b5b80863ad4c916f28c" +2344fcbfb58757bbb18bfebcba9ca4ee979bde0a = "7224b355a60ad534b7712a068303b991ed18a8d0" +2a4172ad577e9aff9abbf7ef0cd2bb3850179ff4 = "83b180914aaba38c62244167b1bd14662c1b01cc" +2b6de3dc81118d8b4b51f5a02c827aad1b047ff5 = "9c65df65f1ddfef2e7fae82c8cd1696f757b9677" +2faa7b97af385f61ea2e829512b5fa1c1c2ceab1 = "ab561dd4151c4ba1de449bc4985ceb52c59f2290" +2faefdf4a3b0c9573a8282dd8c7fcd99cb9fce52 = "fb7548517a14a8bb07b4fe8fe6d09887c296fc66" +35f0f99cafe04c140536404ff2517c59cfecd419 = "f9cdd55150f8e68c81a97620138e1ef51321625c" +3a4e56d243cd11bbedf18bd95714415a45c324cc = "88da8361b80c3b85bb459c98cbf8d9ad3148d65e" +40cd2712bc12a3a6d2b52f956e306bd22f76b7d7 = "5661463a5ead2de854df9694235e3bc19bc5846c" +48f191c2b9ecdb63c38ccf601cc7f34d321d4cd1 = "4281a8ac04fb3f98324645adf837f46448fca6cf" +49549bfbade3aca5fbbd1e5dd83a7f77d95db463 = "e69aea6bc918aa6158cf36537490fb0c58cf07b5" +4f92960f0be59e4b6170f6cd473c3aa6305d882e = "4856ce9950c8cc1c34348e3d7f3a57ac7fa49746" +593592be6c77fb2e4faa2a5aeafd313fa33e5b64 = "9c1b0342895c01a5f938c5ce48737151590eba6e" +5f5e035a6e1ef45f5f041f8d43b39dbc9869c8fe = "830893afd435d10ae09294ff14300faa14bce676" +6115daa3f330dde47a993db34b78e65880bddb84 = "6434939129197130214bbec9976a18ee70143c4b" +661b67c9104aa0b8faf9ed82a4192a899135ba73 = "34c83916d40061c0005ea968dad35a16b633aefe" +6e47243704199340d38791ebb903833ab33eb75a = "140c875389749bde11081aa116f53e1f5c941026" +725dad5f8a74720ba9d58fff97878d1583c14444 = "1cff38c0cdd0d886bb36eb38fa70080c28bf6348" +74a36caccb74338225136550d9a71d3425329e74 = "dffb9a4bbc36273ecbb0c64c546238c2b8bb7e56" +7529596b0596027df1d262e33567673c33893138 = "dec0d0c7b5da46aa4a67b5962829ad31f5902818" +8035f13fdfd1d038cc47bb64385f4cf8bb3dc320 = "05baa37770b5cb74e2e4c8ebb94c7b6308de60a0" +84b5866448ac0891371f6e9179d06d80b35f3b5d = "264cad04229124b1c30ad0f3d8b5274a028cf269" +84d657f8606ccb0e5bb16d2432e3276b946b01a4 = "0a14fa2c3d3487802d4669a0f05dcc02c08340ed" +8d108067a7bed6902ebb758fbdf82079872a2181 = "e0022f8e58babedd71d124c129d79271de89eb7f" +925f626e458f687e4b28b0839d022dbca30505d4 = "0419e0515c6115c34860272b2d6208c3473e2fe9" +9a2ef0dda2ca167a769631b394ff21ae2cabc483 = "a4cfe45e094e2892220be628a3424fefa67a3643" +9e0b626f34c2e001b6c28c4224f3cb6630b2c073 = "9a2c55a3b0badb08cfb247a537ba4ae34d4f1996" +9eaa9a8bc6fca6bd3f42769b19b66863b584b49c = "be876cb81a87a8544a2691026a876641bde04834" +af570747b301fb794751da7325b051ef7ec07e46 = "8413e1614b09be3beb65cb4849aac23d421ae659" +b1a98ccbe2f71bbc6da6c28b43cb9c4853b92729 = "a91aab7f01a93864ef381efedca3b5e5702382b4" +b20de5a8542bd4b34eb20ac4fd50542c48bebf03 = "390981f3dadcffe402e888d8ed18165e4e21142c" +b31ed608243d9c6f0f06d40c7b5d7675d70e3edf = "d634824d7c3f1169b145984bc5f319ac379eeb8e" +b9256567021e2eecc85c0c2dded57f14fdeb8d4f = "afed1457a7655747a04d8b3ac0a50be54435b3d2" +da721ef453677135798dca3805c02ecd84283167 = "7684d6a1b3caca014ee33881ee3e2e2348f286d7" +de0e7dcce8322936755a53f6bf0b62b7843fc03e = "c0caaf6bc8d98e3e18ca62ed3561f95645b02c38" +e0699bbb163fe9df4cbc890738c5f7654b292370 = "12aa149f5d21350d5acb6af5d4524678d3c5f499" +e6d6b29c8de2be80cf840021b892ce83508ceca5 = "2c1bacee0416116754ba7e1654f6ecc7d2032b02" +e91bbd7432b946dac18c8427d505a01bfeab6a5d = "cf7bc7e4b6b1a3781a6e5600877bcaf81d27dad0" +ee1a36736a41cfa2365c730583a9e8f3256625c2 = "f293858a40e473694a3ed74e9826f9cd863603cb" +f8859fc3e8523ffeeb2c9ed4db6b03f81a79ebe7 = "3aa4d9c4446da64f36c9b5c6e91c25eeb7d5c79f" +f8dc60a13068062698d9b17b9ad33dc28a49c8b6 = "f6f234492370f8b97637d2d18efb66102d07f959" +fba7cac1d932a5801d8bda227e59fed49eb7062f = "3e22f9e0a4cebd7a0c19a3665c5215f34209b33b" + +[fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4] +17257907634216f57dfbdb08161e8978a260419c = "23d805ea5ff2c0c3c663620f9ed5d2d153b93709" + +[fdea26ae-647d-5447-a871-4b548cad5224] +61c4a9369d234857a1b9766b980423eacc133e63 = "1a60f2a3a695c0ea9624f6951f90166785b57b45" +a4a12d9ea34e43ba66e14d8cecc71b1019aac65d = "45247e80535e62fe7b7e285af1a9d2b864ee200e" +b94e44015a70204f65400a9ffedb77271b4010ef = "2f7e90ff817e06ff44388e5eed0c6f6eb0af7f25" + +[ff1448f2-0ebe-5696-910c-db1e9ef544ff] +b9cf9556468b2c2a1683335625c480d71ba99f38 = "da64261f1d61f33740ec66c3733479fe973965bc" + +[ff2beb65-d7cd-5ff1-a187-74671133a339] +ad90d6ee4a2fd0623b28fb11defac12b284ded8f = "135cd71cbc45dd9df074bfefc6d23ed3265af4fb" +b9a4fd76ffe1e8374b5d1223f8630d8a92b3fd4e = "3d176c821d174ff1b1a16e977515b9cdacc0949e" + +[ff70551f-00bc-5e1a-85c4-e17d0b71e9c9] +990cc9c786d45737642b0fdee2fb96f360e5bb23 = "bc9460c582bb042066530d90ffe9009d5984810d" +c5aab0f1d6b2dd65e788ba156c15fa6103445398 = "c84551a807ea8b6f384cfad8f57c8d83d1688a48" + +[ff71e718-51f3-5ec2-a782-8ffcbfa3c316] +039ba426199dbff142a05084cbea26743271737d = "3892c9d8f165d783cb242285d86176df02ae34ba" +059fa5ae969fd64bcab4e74af81d24553088bd82 = "787170d8cd838b574f50c6732111f9563d6eb468" +08933fb9a7ee50f1406d3593780faa5848d8db19 = "a96a6cde870402e2ee87bd03a960d1546a4679de" +1b6ff9a3d0abf0a61a6812c44a4dbcb14b36fa48 = "77184d6b6121169a17f237fe0b2f95e4e250975e" +1b8bc3bfc6094d5d9b64c61b34fe437b518cd1c5 = "dae72b2a411975e75b061f252a76f84dc2b7c084" +1cdc683ddec2e64dc106a974bd881938ffc7d8c8 = "f5e4140c0e499708cd63bba0bb3a32c3c4f1fbfe" +2859a2e84e1a8c34acd4de40a95c1cf9f0eb93d2 = "b39c382befd7173a30eacd5b0586cde761a7832e" +2a89e92a8f5bae469ef03d2b50ed5eff36277d02 = "4b13745156ddf39404dc3b89badea21100cff845" +30b681556483c1ce227a32ea29a7f552a4d05cdd = "05eb325bd6064b656ac83d1f2df0cd2c4e1ed774" +34f508b5e295d4bd36ea8a4ac4331c7ed1df3abd = "9296220de3676f9aef202812f747f7bccc4f5716" +37d82e2b9d7be6483dc0f0064571f21cce87e349 = "8b543d8f1a1dd3e50c95d46983be366f99746f77" +3a1e7b49159bf4ba714ed484add509fa8c37676f = "b39a9c9556fa0462fc460200b0ef221ea8a2b84d" +3bcc2479137b363786a8cf060a7c8f74922c310a = "399fa30fb978ad39517c09fa182040581476b1fd" +3e9abeb654547da528490513bada67f52e757472 = "ebcf127f16ed4935f13ab3c8035e3085fb14093f" +3f12aee66a185f562ee2e0ac1df039683d23c712 = "25b3a492d8961d7c0e52aa9a5b093d1f8e3087f7" +3f49d673a0f83247117776ea051739c7b3c6587c = "1a5a54585209cbcd28a5a14946c11c40004d4e54" +40b3a6d42bf2771d46e059710ff80adf67f85c6b = "ac75d747053c67f681b00323de6f03d8c5c0cadb" +41b79c59f1197b2fb882753ec65bae7186f8c3eb = "c0b2764f7540b4a518290a3d6e78e3aa29afa71a" +4274319047192716ba05f2014661c6860f3cb3a1 = "af5bd2d6cfa7e867e72017a87989748bce2ea493" +42f494413dbbe536b63b15b5b98ec5195be2ba71 = "f38a4eb4883c2ea5eaace9e84338b235aebb5109" +44b78b528247cadf094ed0b588c83dcad576ae39 = "ad8d9257814f03d2308020c417557809522aefd7" +4b78f2a5f653a855d408e476c57d7ce747e2a289 = "b99e7b127df12759124a468904afccebaec503b6" +4c290aa062c42023764536acd8b498acc3279521 = "9344dc522c9a42b91dbd957d738bea90b34dc547" +540c929f221ecbeda59503933f0a40f40d35d53c = "4731c5093724f52f2590e08ea21f11eaa73c98a1" +5808da9da37a733f870e7cb5b5c6914e73473d37 = "2822ea1a8ace3efab37e96bf9b4978971cec0091" +695bdff24be10d258704c6b687ed2a7a0dafcd4b = "52707d16bc36be6a67885c918d6fa562b58e4f83" +6d2cc9a03ec942e371f87de3cfc67e8e73ebb1b5 = "80f7a2beab72ecb3a8efd31a72dfad2c8fb7c339" +6d99ac613fd84364fcd8f79a47fd611413e0ffa9 = "5d3a59eade5df2218ce014e944144885600a0027" +6e873aa96f18dfda86b0c0fccabde3a755e3bf88 = "5ec5c51e7b2bdce4cb7ab0f5c5e57456eb00f2aa" +6eda39ccd39126f4b813b8f83178708c981179ce = "01d9c2d696fe7b13494138c4279bc85d9356331a" +7570a04dea81144027ef298d747c647dd23b8ad0 = "ddcb4bf9ce260fb9144917971f5e151ea3689739" +785fa626395d508aeab00be22c6303b60a79a6da = "798721600615b94b964885be02fd27574401d42c" +7d30ba9bbf1b80442a0c8e0d6d56f460dd615e45 = "41c1c2f1f61f2a063412ab6ae7d8b90e3b491206" +80cb318054809176fba06a953de133022255176f = "4098490039e5e655f2ecde1db75cc85e2a9ef34b" +8251b5d0e9c949ae2f7f148800c71e01d6a42299 = "c79968754744283bff50769814b0c751095fee91" +82b7bffc4ce10dc3cb98360ff7926e3a69c23cf9 = "74561a8de69ea29293dcfea2f1721cfa82bfe8e6" +8c70796d2566e1a8ffd8705b25db1c3acaa98b6c = "be43eafaf70933a573457fc347acce3e45d7cf5e" +95871af4e17226dbde002bc95886e2a6e45655ae = "1814422c9632b4aae5386480fea5632802ecde48" +9a2686c28340ba4e7d1c81a2b4fea15770bf4a0f = "ab945d3bb8f2a91af6c78ac5fde581858ec80028" +9d70f8f516599a6174638d5bd4a009716c77167e = "ffbe4a99065a5555719ba5cdfb1ad840cdafce97" +a699033e09d15e385f93327f9c418cd8e5c227fb = "d323cbd1bb6a161431292df8eb6e6dcfabb67574" +ab841caffba6f307adde8f52fb931c522ce031e4 = "97cff5d94745834e11df4d711c47d2585aae829b" +b3bc8c08cf5f7e5390f9aa917ba373003beb1aec = "d23e05a66f4c75883c35c719671f7cc857c5387e" +b568f0f6eb447483b92b564cdee370f1742f67e6 = "f6d453a4fc74d133a18251cecd4050f265d2fb19" +b925f6f2df35ba112c4a1d95e43aa07d51eb7f0c = "2ba870625781a13a179a906356e777337b6cd800" +bb177dee01a1760b4d05b3d8c84a870787b3a1d9 = "a9c4f13a68d1ad5c91636f2c7c2562ae332d50b7" +bb4b7fbe55b23b397e301c969b30a41ec9f8b22c = "46c38e30a32aa6cd05dc206aa6716e80a23ac457" +c354b51691fe1569bd1c1cf31c9262b65486f8ee = "56695a534adc41d8a0792127f8eb16ade94becc7" +cb03fa312403b1010b4e59cec0e81501c6a43a22 = "389b9238ca86677369f8a032bd11ed46433a64cd" +cd738c4601b3e691e59d8284dd5693a3081382c8 = "5f7d317c4ba4f164dae3f2a8d062c6ffbfce096f" +d88408afa9145b8ad05faf47ddeadd9f60e066d2 = "5b2dd1ec46cc88df6a582741d62090356e616388" +dfc20e6bef58573399f998535d7127609d93a29d = "0d8db6548a22059fca06beb86c464f398b15748d" +e6286b75ed6905b019b673df5b7a7580de8baa8f = "eb6f1d2aa2a8fd45076636d98ec428833ac21e79" +e6b13fa29e0510cfc7b303abe5317eb2232306b0 = "cf8aa6e6a1cb7f6759de1d82edc6abdf8fb8a0c6" +ea1c0045250a5ea105898b9b9ab9a63d2bc8190d = "268b6577c2f22e750abed182dcbb403c19fcb147" +ec01fdfb610e1761463b7682b1bb31887e635fe9 = "06e02fb5bcff276dbf7ea59da429ff4830359516" +ec6c32b80b2e4ad43a95b3225802b10fcf9dcb29 = "8e98e2d03f8bbc92b5ba2717ea8b7ba22e702e62" +f248fac55aa22d87113add384be93eb744b0ee30 = "cb1450befb76ad3a43687da95abe2cabd5d1ca1d" +f4c55935a64e443feec7f3940f6af626108a19a3 = "c1ea8b5192f4e78995f730d61dce3996b8c3e5cd" +f63b21fc0cc79e7aee002c6d2f7d5d025d7d67e5 = "3919fd40e1699a0fcf6e3b546c2072ca304bf3ac" +f6cd758135fe889d4f9f4771821f9615b1bec91e = "4b4d9ac0576e74a04c8c0e80e6d07e11ec8181f3" +fe81c549d37931543d09cb45a8daeeb20b1f4085 = "7e467e81c0193504b8c393c2f16f0292d0cce196" + +[ff7a09a4-2bbe-5ce1-96cb-a4b0cacc22b1] +151954852785a527a80fc9bb0099d3bdcf872dc7 = "e419c928db85f8353cfeae03eefe4b02c781b078" +27fd2f4b19436b0cb70f3f922235980adebfa0ca = "3f38bda3c5489acb528f10f06e1a497a4e663094" +29648c1fd4351e9a80bee03fdee23153cb6ba949 = "b0db39225e2b5471405a0cbf3a3e4ca43f5b6ee1" +2ca334d36b317b7972fe980d10067b8e74ead35c = "277af2d7c095a57f34ae7810771fd3dc6ade28fa" +3222b38c48910ae9947c41715554266c34189001 = "f224130a9aa544a541b6aeaa54559b0c595558d2" +3fe2d80ab06c3b9e70a053932468d3dad8037faf = "10b746cb5cfd6becddf088761f60d071c972eb28" +4d5d8768efecbf01116073bc27956aa4e8dc3902 = "8714c76d95daa383d0655f673f8c0d8cc28eff16" +51fe29c522ee9003c0f9a13185244b067ad2a8f8 = "fe6cd37934580ec2614124edac7390b06af7b8c6" +58086c1ae551ece0508f407f77fc8e7e90ce1422 = "cc11c3813f7ada35ba4e8e69b07bb8617cd80f58" +72ab05fc75ea22bff56dc439b02e1c252daee02f = "cd2cf979fc67bf76079f28d38dec9b399eb80d04" +9c6459ea4bde3a4ee62f86e357a2f42bcb713646 = "49be64be67027888114ec504f29218aae711d7e0" +b94199730207454450b481886493916331d5e94f = "3866ef517d473af70f049c64ebcbf1b4876d14bb" +bc47adf0a9fee6675474eb72da5cbe4fe40190dd = "d9731bb4203a7e03d23f2ff6aab67bcb7b4c1b73" +c617443e26307cf719e3842ad2ded847e8d43873 = "f1a2279ff2d20133958feab65ca953e75a207caf" + +[ffa52052-4d10-5226-a170-a2d9687d6a3d] +508f3204fd53d08da09292483db928ff66465ac8 = "901dbb8f558ad1111e900470fad755a6ea4dc088" +817a57e5a54a6af4bf3a5c43ece2bb6a28386729 = "5301c18dce6f188c6d2f8d0c9b7209e5d43ee8eb" +9b4769344f0886722f77eb7115bef0bbbf0d9544 = "d8f549f01d546a1aad7955223b2398773326a282" +a4be53af6dfe10ce6a51acd3d561e2a7d1ed6372 = "ea9f7b77eaf3cfce69aa90f67d8957fa5785e24f" +e411d539314ee32fbe429c06c434fbea8a232ca3 = "73e6cbe56ea0aa496a023e043ead7d22e1b4e89f" +fea9040953fe4f4f292f5fabea63ef6f36771525 = "35d3b220c7a630678483a447a2a2fba02fab8c38" + +[ffa9a821-9c82-50df-894e-fbcef3ed31cd] +a3aba9c34f2ea5d4b95330286d6f5f7ce9a45098 = "88619d8998f18ac8b6bd41183630e9665c70a32d" +dc3163ef1fec03a095e65285070a38a85c04c37c = "8af7e1e574cfc6fb62847d7569cbd8b9d4f09214" + +[ffbed154-4ef7-542d-bbb7-c09d3a79fcae] +0606ce81deb1e693d64b9db4f62c4649517f9e1a = "943116a571095a562473aa23ffe839f25e27660a" +0fb7e6c7b05faa4da41aec44cfed29562accbc12 = "df888bbd616f371ba10967f86da0a83416d40ca6" +1263ab050589cd021f3e3076c2217679229e1810 = "c56e027db9ea371c4ae57780618ca7ed60e3d3a7" +1b137918388c85c39e863ab67c73f89ab978d121 = "caf725041a12f7f2d90248c527ebe9e45578da45" +657107d31778727ce39f5c4d6624eaa31856df89 = "b5d4baef242cacd28034455331f394b19c08f3ec" +73fc332bbdc223d25829f4ea1fb68ee3c956ea9e = "413c5eed3177fd6d131efc49f8a09ef2500e98ea" +7ae4c6f15b715b5a23592b00584d17e29bcf0bd1 = "7aad793cfe8c1c00b81ad43299d4842c8465467c" +8fc791130354c09145df8721e638e132f02315ac = "6c6eea96e1374895f1d40ba90a6f2fe1c1487209" +a4cf2b837d59fa5f7b73848ce764ba4b75485ae9 = "ae1c1fc9dbb5a786caa11f868b288985d560e285" +a5b562b5ec1d0fc1f8ff815c39066f4e0c7f7d7f = "f9671b4cda95016b4449d06cbac19f69c91e3b3d" +e4bfe3537cc033c161d7e65bff776c15dcf3e9a4 = "da947a0c8833dab1a033eb7aeeb666b1f7e10deb" +fddfc994aca3b96eb204ec2622ae2fce091f0045 = "12185b0820c6e83cc5776ccc39bbec4f85091bb3" + +[ffc501a4-beb9-5d29-99c5-6b9b624d1a3c] +138a5e39cae2aaec03289aa9975bfc27c334ca72 = "066938a814804e83de585aaaf323a03562480e07" +c6f59bd206dc2c2bfe94f117730b6c7439144965 = "06ec94f165bc5ed12d793ef7ee65057bfed8fda8" + +[ffc61752-8dc7-55ee-8c37-f3e9cdd09e70] +0187f30a03f404f9e9ac5776c69d8dfe8fcba799 = "820b38ac0181510c052fd6063a2e66a1f8b72ea6" +1264e8ca17cf26117e721df2b67850cba2b5dd9f = "3f93d92b45e27b35ef65be8de79b55e5091e23f8" +15cf3ae9fbff6ce4f6a6fe0e4722174bf5284713 = "a375063ba556ade0b445c0b3bf2feac965688e37" +165a7435221efb90cad788ce3a640461131430ee = "9af67128d7822032768b40dc307249ef011d4cbc" +167c643613e0cd5d53a89cb18c5f744a9faeddf0 = "178c375f41dce1bb38352eb9294e3efa13ab7aaf" +183fc41ef76750d7c122ab289f24c9d1b1846b31 = "8ba8830ac545cf7047b0f60e8de2c94a1ffe5cd4" +280eceb56aceb05f0c606affb5aaeeb548c2f745 = "6c1f0f058e977ac1f787c64c9b70557ebf39f597" +37fed25571f74a2e936353d5d50d1564dca880cf = "649d1e273437f81403f3f600412bef4716909f08" +38121df41b210f71ca662e2a4264a9b1b39873bc = "17a2fb647b27b5d2228ea3922babc5f8bad90545" +3b66f5061145324e50f66dc9e9be624e8de1d0dc = "226ed52c2372e5d106aa156972362dfbe418eb2c" +3fb2106e68d419685ce60c628e15303d6b6822d9 = "5001e22dcc72c749430e1dabe7ecb576ddfe7f65" +40f0f39c5ca45738ca18939304c6ee4c747003c2 = "e03b628747c3980e94251c0470101ec7ad93d0aa" +5b17fbb162cf587558a79606b08e78eeb97607af = "bad02122b083515647177c625705e40d80f8b260" +73d88267dbc4580bd9afacfbe536aacff1e14168 = "c82c93a22d6292ea560e2cae5bb97180783bda02" +af83bad9392bb5fa81540f1a55e9a6dbfe1a8eac = "48357ee1c2a312e78470218db68f386a875ca410" +bbd0371b4a881951e60f148137b39ac208d491d8 = "9381fd893bae712f2c18d1a993e9fdc9113e1771" +c2e461099930c439ba4bfb095b7c285eb6c89ca2 = "c66bd4720e621ea63daed18d743548afff4397af" +cdfd446e7b79dc0769e93db7810ca5d493680d33 = "1722a0092af24d2b3b6996b090d7cf61546b6624" +cfefccc4c8f2391c1cfb1722f187c57eebd56532 = "6c7589c086c124590f2c45429636829056ddc798" +f3f47706c6c862e107516546d4fd0857c4155b62 = "1ed0b94c0be609a010d210e9b16417c26e30ce24" +f53812def6964a56bff2ccec31a5a59edc129afd = "edeffd9e3af45dd72fbc6eb6e4d51db4c9e3fb86" + +[ffda130c-d492-58df-9d61-3bed680bfbb1] +08e1b303a22c141451fcb96567e054ee880484e2 = "3aad0eeb04d014f8ecdf898657765e327abe4395" +0fbc44fcf1a83b02fca814258ab66d3c9b0d8a51 = "ada195e53dc8175bc859979d6392d5d0dd7c8d4a" +43f2b280c468d735c4cd06f317526a975ae325ac = "0cd2a03ce702a84efe3488f3a5a2f48f7466a804" +54c88f408d66cfd346b9fbc235f0f1d1063ed81e = "1e5d35e4857102e4641ac50c517941a96daa6591" +5ef3cb7175a58c796c1db708e940c0e64ca27dd9 = "098c232398abf2a7002f5b116dcf8f4e0a56ae64" +79ce9ceff25f09d97b3b8c8b41a1676d37060bb5 = "cf922190daadd47de2410dfc19953f5db4af60c4" +8caab72b8858019eb2c7c95085e7185d28a8828d = "e81f477caf4467e6a2924be163da0c7e53e2e815" +a39cb5767729ac5ae36c7486ffe1522df358c241 = "894fc905d8edf3f7b99c74d56c3cda9d63680e39" +b89bd0b6cc1275ae001865d37aff4c529e840a31 = "80140fb80eac673f8b1eff0de2f63ad7c80a726e" +d73c21a615cbefb20b75e87762f334a668e4b449 = "c33f67c78db7206507006e99c553b84dea6e293b" +dad0bb800d4945dabbfe1cee4bb2c0ea1b720aa4 = "65838f4f5de314afcefee6102e0a6d4ab3579340" +f785989d512d575537912893668b1104ea1fd212 = "a0d352e066e74518f94bca0385ed62bc1a9a910c" diff --git a/stdlib/Pkg3/bin/update.jl b/stdlib/Pkg3/bin/update.jl new file mode 100644 index 0000000000000..7f5884951bf10 --- /dev/null +++ b/stdlib/Pkg3/bin/update.jl @@ -0,0 +1,6 @@ +#!/usr/bin/env julia + +pushfirst!(LOAD_PATH, joinpath(@__DIR__, "..", "ext")) + +include("loadmeta.jl") +include("generate.jl") diff --git a/stdlib/Pkg3/bin/utils.jl b/stdlib/Pkg3/bin/utils.jl new file mode 100644 index 0000000000000..c87c789ddffc0 --- /dev/null +++ b/stdlib/Pkg3/bin/utils.jl @@ -0,0 +1,105 @@ +#!/usr/bin/env julia + +function packagelt(a::String, b::String) + a == "julia" && b != "julia" && return true + a != "julia" && b == "julia" && return false + return lowercase(a) < lowercase(b) +end + +≲(v::VersionNumber, t::NTuple{0,Integer}) = true +≲(v::VersionNumber, t::NTuple{1,Integer}) = v.major ≤ t[1] +≲(v::VersionNumber, t::NTuple{2,Integer}) = v.major < t[1] || + v.major ≤ t[1] && v.minor ≤ t[2] +≲(v::VersionNumber, t::NTuple{3,Integer}) = v.major < t[1] || + v.major ≤ t[1] && v.minor < t[2] || + v.major ≤ t[1] && v.minor ≤ t[2] && v.patch ≤ t[3] + +≲(t::NTuple{0,Integer}, v::VersionNumber) = true +≲(t::NTuple{1,Integer}, v::VersionNumber) = t[1] ≤ v.major +≲(t::NTuple{2,Integer}, v::VersionNumber) = t[1] < v.major || + t[1] ≤ v.major && t[2] ≤ v.minor +≲(t::NTuple{3,Integer}, v::VersionNumber) = t[1] < v.major || + t[1] ≤ v.major && t[2] < v.minor || + t[1] ≤ v.major && t[2] ≤ v.minor && t[3] ≤ v.patch + +function compress_versions(inc::Vector{VersionNumber}, from::Vector{VersionNumber}) + issorted(inc) || (inc = sort(inc)) + exc = sort!(setdiff(from, inc)) + pairs = [] + if isempty(exc) + lo, hi = first(inc), last(inc) + push!(pairs, (lo.major, lo.minor) => (hi.major, hi.minor)) + else + for v in inc + t = (v.major, v.minor) + if any(t ≲ w ≲ t for w in exc) + t = (v.major, v.minor, v.patch) + end + if isempty(pairs) || any(pairs[end][1] ≲ w ≲ t for w in exc) + push!(pairs, t => t) # need a new interval + else + pairs[end] = pairs[end][1] => t # can be merged with last + end + end + end + @assert all(any(p[1] ≲ v ≲ p[2] for p ∈ pairs) for v ∈ inc) + @assert all(!any(p[1] ≲ v ≲ p[2] for p ∈ pairs) for v ∈ exc) + return pairs +end +compress_versions(f::Function, from::Vector{VersionNumber}) = + compress_versions(filter(f, from), from) +compress_versions(vi::VersionInterval, from::Vector{VersionNumber}) = + compress_versions(v->v in vi, from) +compress_versions(inc, from) = compress_versions(inc, collect(from)) + +versions_string(p::Pair) = versions_string(p...) +versions_string(a::Tuple{}, b::Tuple{}) = "*" +versions_string(a::NTuple{m,Integer}, b::NTuple{n,Integer}) where {m,n} = + a == b ? join(a, '.') : "$(join(a, '.'))-$(join(b, '.'))" + +versions_repr(x) = repr(versions_string(x)) +versions_repr(v::Vector) = length(v) == 1 ? repr(versions_string(v[1])) : + "[" * join(map(repr∘versions_string, v), ", ") * "]" + +## compress per-version data ## + +function compress_versions_data( + d::Dict{VersionNumber,Dict{String,String}}, + versions::Vector{VersionNumber}, +) + kvs = Dict{Pair{String,String},Vector{VersionNumber}}() + for (ver, x) in d, (k, v) in x + push!(get!(kvs, k => v, VersionNumber[]), ver) + end + tx = Tuple{Any,String,String}[] + for (kv, vs) in kvs + for v in compress_versions(sort!(vs), versions) + push!(tx, (v, kv...)) + end + end + sort!(tx, by=t->(t[1][1], t[1][2], t[2], t[3])) + return Tuple{String,String,String}[ + (versions_string(t[1]), t[2], t[3]) for t in tx + ] +end + +## dict utility functions ## + +function invert_map(fwd::Dict{K,V}) where {K,V} + rev = Dict{V,Vector{K}}() + for (k, v) in fwd + push!(get!(rev, v, K[]), k) + end + return rev +end + +function invert_map(fwd::Dict{Vector{K},V}) where {K,V} + rev = Dict{V,Vector{K}}() + for (k, v) in fwd + append!(get!(rev, v, K[]), k) + end + return rev +end + +flatten_keys(d::Dict{Vector{K},V}) where {K,V} = + isempty(d) ? Dict{K,V}() : Dict{K,V}(k => v for (ks, v) in d for k in ks) diff --git a/stdlib/Pkg3/ext/BinaryProvider/.codecov.yml b/stdlib/Pkg3/ext/BinaryProvider/.codecov.yml new file mode 100644 index 0000000000000..69cb76019a474 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/.codecov.yml @@ -0,0 +1 @@ +comment: false diff --git a/stdlib/Pkg3/ext/BinaryProvider/.gitignore b/stdlib/Pkg3/ext/BinaryProvider/.gitignore new file mode 100644 index 0000000000000..16a5e3a735f44 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/.gitignore @@ -0,0 +1,5 @@ +*.jl.cov +*.jl.*.cov +*.jl.mem + +global_prefix diff --git a/stdlib/Pkg3/ext/BinaryProvider/.travis.yml b/stdlib/Pkg3/ext/BinaryProvider/.travis.yml new file mode 100644 index 0000000000000..b744962267abe --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/.travis.yml @@ -0,0 +1,30 @@ +# Documentation: http://docs.travis-ci.com/user/languages/julia/ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false + +matrix: + include: + # Make sure to override to "wget" at least once + - julia: 0.6 + os: linux + env: BINARYPROVIDER_DOWNLOAD_ENGINE="wget" + +# Ironic. He could provide binaries for others but not himself... +addons: + apt: + packages: + - curl + - wget + - tar + - gzip + +after_success: + # push coverage results to Codecov + - julia -e 'cd(Pkg.dir("BinaryProvider")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' diff --git a/stdlib/Pkg3/ext/BinaryProvider/LICENSE.md b/stdlib/Pkg3/ext/BinaryProvider/LICENSE.md new file mode 100644 index 0000000000000..3baf9cd204117 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/LICENSE.md @@ -0,0 +1,22 @@ +The BinaryProvider.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2017: SimonDanisch. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/ext/BinaryProvider/README.md b/stdlib/Pkg3/ext/BinaryProvider/README.md new file mode 100644 index 0000000000000..dbe4a5d488c52 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/README.md @@ -0,0 +1,35 @@ +# BinaryProvider + +[![Travis Status](https://travis-ci.org/JuliaPackaging/BinaryProvider.jl.svg?branch=master)](https://travis-ci.org/JuliaPackaging/BinaryProvider.jl) + +[![Appveyor Status](https://ci.appveyor.com/api/projects/status/0sbp28iie07c5dn3/branch/master?svg=true)](https://ci.appveyor.com/project/staticfloat/binaryprovider-jl-fu5p5/branch/master) + +[![codecov.io](http://codecov.io/github/JuliaPackaging/BinaryProvider.jl/coverage.svg?branch=master)](http://codecov.io/github/JuliaPackaging/BinaryProvider.jl?branch=master) + +**staticfloat's third draft**: This package is intended to work alongside [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl); within this is all logic necessary to download and unpack tarballs into `Prefix`es. + +## Basic concepts + +Packages are installed to a `Prefix`; a folder that acts similar to the `/usr/local` directory on Unix-like systems, containing a `bin` folder for binaries, a `lib` folder for libraries, etc... `Prefix` objects can have tarballs `install()`'ed within them, `uninstall()`'ed from them, etc... + +`BinaryProvider` has the concept of a `Product`, the result of a package installation. `LibraryProduct` and `ExecutableProduct` are two example `Product` object types that can be used to keep track of the binary objects installed by an `install()` invocation. `Products` can check to see if they are already satisfied (e.g. whether a file exists, or is executable, or is `dlopen()`'able), allowing for very quick and easy `build.jl` construction. + +`BinaryProvider` also contains a platform abstraction layer for common operations like downloading and unpacking tarballs. The primary method you should be using to interact with these operations is through the `install()` method, however if you need more control, there are more fundamental methods such as `download_verify()`, or `unpack()`, or even the wittingly-named `download_verify_unpack()`. + +The method documentation within the `BinaryProvider` module should be considered the primary source of documentation for this package, usage examples are provided in the form of the `LibFoo.jl` mock package [within this repository](test/LibFoo.jl), as well as other packages that use this package for binary installation such as + +## Usage + +To download and install a package into a `Prefix`, the basic syntax is: +```julia +prefix = Prefix("./deps") +install(url, tarball_hash; prefix=prefix) +``` + +It is recommended to inspect examples for a fuller treatment of installation, the [`LibFoo.jl` package within this repository](test/LibFoo.jl) contains a [`deps/build.jl` file](test/LibFoo.jl/deps/build.jl) that may be instructive. + +To actually generate the tarballs that are installed by this package, check out the [`BinaryBuilder.jl` package](https://github.com/JuliaPackaging/BinaryBuilder.jl). + +## Miscellanea + +* This package contains a `run(::Cmd)` wrapper class named `OutputCollector` that captures the output of shell commands, and in particular, captures the `stdout` and `stderr` streams separately, colorizing, buffering and timestamping appropriately to provide seamless printing of shell output in a consistent and intuitive way. Critically, it also allows for saving of the captured streams to log files, a very useful feature for [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl), which makes extensive use of this class, however all commands run by `BinaryProvider.jl` also use this same mechanism to provide coloring of `stderr`. \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/REQUIRE b/stdlib/Pkg3/ext/BinaryProvider/REQUIRE new file mode 100644 index 0000000000000..00d58fea7ed8d --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/REQUIRE @@ -0,0 +1,3 @@ +julia 0.6 +SHA +Compat 0.35.0 diff --git a/stdlib/Pkg3/ext/BinaryProvider/appveyor.yml b/stdlib/Pkg3/ext/BinaryProvider/appveyor.yml new file mode 100644 index 0000000000000..11f663d64327c --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/appveyor.yml @@ -0,0 +1,48 @@ +environment: + matrix: + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +matrix: + allow_failures: + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" +# If there's a newer build queued for the same PR, cancel this one + - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` + throw "There are newer queued builds for this pull request, failing early." } +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"BinaryProvider\"); Pkg.build(\"BinaryProvider\")" + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"BinaryProvider\", coverage=true)" + +after_test: + - C:\projects\julia\bin\julia -e "cd(Pkg.dir(\"BinaryProvider\")); Pkg.add(\"Coverage\"); using Coverage; Codecov.submit(process_folder())" diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/BinDepsIntegration.jl b/stdlib/Pkg3/ext/BinaryProvider/src/BinDepsIntegration.jl new file mode 100644 index 0000000000000..2450315acebc5 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/BinDepsIntegration.jl @@ -0,0 +1,37 @@ +# This file contains the ingredients to create a PackageManager for BinDeps +import BinDeps: Binaries, can_use, package_available, bindir, libdir, + generate_steps, LibraryDependency, provider, provides +import Base: show + +mutable struct BP <: Binaries + url::String + hash::String + prefix::Prefix +end + +show(io::IO, p::BP) = write(io, "BinaryProvider for $(p.url)") + +# We are cross-platform baby, and we never say no to a party +can_use(::Type{BP}) = true +package_available(p::BP) = true +libdir(p::BP, dep) = @static if Compat.Sys.iswindows() + joinpath(p.prefix, "bin") +else + joinpath(p.prefix, "lib") +end + +# We provide our own overload of provides() for BP +macro BP_provides(url, hash, dep, opts...) + return quote + prefix = Prefix(joinpath(dirname(@__FILE__), "usr")) + activate(prefix) + return provides(BP, ($url, $hash, prefix), $(esc(dep)), $(opts...)) + end +end +provider(::Type{BP}, data; opts...) = BP(data...) + +function generate_steps(dep::LibraryDependency, p::BP, opts) + () -> begin + install(p.url, p.hash; prefix=p.prefix, verbose=true) + end +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/BinaryPackage.jl b/stdlib/Pkg3/ext/BinaryProvider/src/BinaryPackage.jl new file mode 100644 index 0000000000000..b644268c85c2b --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/BinaryPackage.jl @@ -0,0 +1,151 @@ +# Package objects provide a _slightly_ higher-level API for dealing with +# installing/uninstalling tarballs to a Prefix. +export BinaryPackage, install, uninstall, satisfied + +""" +A `BinaryPackage` collects all the information needed to download and install a +tarball containing binary objects; it has the `url` to download form, the +`hash` to verify package integrity, a list of `products` to check for proper +functioning after installation, and a list of `dependencies` that must also be +installed before this package can be used. + +There exist `install()`, `uninstall()` and `satisfied()` methods for +`BinaryPackage` objects, similar to the lower-level versions that take direct +`url` and `hash` arguments. +""" +struct BinaryPackage + url::String + hash::String + platform::Platform + products::Vector{Product} + dependencies::Vector{BinaryPackage} + + function BinaryPackage(url::AbstractString, + hash::AbstractString, + platform::Platform, + products::Vector{Product}=Product[], + dependencies::Vector{BinaryPackage}=BinaryPackage[]) + return new(url, hash, platform, products, dependencies) + end +end + +function pkg_name(pkg::BinaryPackage) + name = basename(pkg.url) + if endswith(name, ".tar.gz") + return name[1:end-7] + end + return name +end + +""" +`install(pkg::BinaryPackage; verbose::Bool = false, kwargs...)` + +A thin wrapper over the main `install(url, path; ...)` method. Installs all +of `pkg`'s dependencies, then installs `pkg`, but only of it is not already +satisfied. +""" +function install(pkg::BinaryPackage; verbose::Bool = false, kwargs...) + name = pkg_name(pkg) + + # If we are already satisfied, don't do nuthin' + if satisfied(pkg) + if verbose + info("Not installing $(name), as it is already satisfied") + end + return true + end + + # Begin by installing all the dependencies if they are not already + for dep in pkg.dependencies + # TODO: We may want to handle this through `Pkg3` operations + install(dep; verbose=verbose, kwargs...) + end + + # Finally, install ourselves + install(pkg.url, pkg.hash; verbose=verbose, kwargs...) + + # Check to see if we are actually satisfied + if !satisfied(pkg; verbose=verbose) + warn("$(name) did not satisfy itself after installation!") + return false + end + + return true +end + +""" +manifest_path(pkg::BinaryPackage; prefix::Prefix = global_prefix(), + verbose::Bool = false) + +Discovers the manifest path for the given `BinaryPackage` within the given +`Prefix`. First attempts to guess from the `url` what the manifest file would +have been named, if that doesn't work, will search for manifests that contain +any of the `products` that are within `pkg`. If neither approach works, throws +an error. +""" +function manifest_path(pkg::BinaryPackage; prefix::Prefix = global_prefix(), + verbose::Bool = false) + name = pkg_name(pkg) + # First, see if we can auto-guess the manifest file path: + manifest_path = manifest_from_url(pkg.url, prefix=prefix) + if isfile(manifest_path) + if verbose + info("Correctly auto-guessed manifest path $(manifest_path)") + end + return manifest_path + end + + if verbose + info("Could not auto-guess manifest path for $(name)") + end + + # Otherwise, let's try to guess from our products + if isempty(pkg.products) + msg = """ + Cannot find manifest path for package $(name) with unguessable manifest + file and no products. + """ + error(replace(strip(msg),"\n" => " ")) + end + + for product in pkg.products + product_path = locate(product, platform=pkg.platform) + if product_path != nothing + try + manifest_path = manifest_for_file(product_path; prefix=prefix) + relmani = relpath(manifest_path, prefix.path) + relprod = relpath(product_path, prefix.path) + info("Found $(relmani) for product $(relprod)") + return manifest_path + end + end + end + + error("Cannot find manifest path for package $(name)") +end + + +""" +uninstall(pkg::BinaryPackage; prefix::Prefix = global_prefix, + verbose::Bool = false) + +Uninstall `pkg` from the given `prefix` by automatically determining the +manifest path created when the package was installed. Throws an error if +this `pkg` was not installed in the first place. +""" +function uninstall(pkg::BinaryPackage; prefix::Prefix = global_prefix, + verbose::Bool = false) + # Find the manifest path for this pkg, then uninstall it + manipath = manifest_path(pkg; prefix=prefix, verbose=verbose) + uninstall(manipath; verbose=verbose) +end + +""" +`satisfied(pkg::BinaryPackage; verbose::Bool = false)` + +Returns `true` if all products defined within `pkg` are satisfied. +""" +function satisfied(pkg::BinaryPackage; verbose::Bool = false) + s = p -> satisfied(p; platform=pkg.platform, verbose=verbose) + return all(s(p) for p in pkg.products) +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/BinaryProvider.jl b/stdlib/Pkg3/ext/BinaryProvider/src/BinaryProvider.jl new file mode 100644 index 0000000000000..db76df0e2984d --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/BinaryProvider.jl @@ -0,0 +1,37 @@ +module BinaryProvider + +# Include our subprocess running funtionality +include("OutputCollector.jl") +# External utilities such as downloading/decompressing tarballs +include("PlatformEngines.jl") +# Platform naming +include("PlatformNames.jl") +# Everything related to file/path management +include("Prefix.jl") +# Abstraction of "needing" a file, that would trigger an install +include("Products.jl") +# Abstraction of bundled binary package +include("BinaryPackage.jl") + +# BinDeps support, disabled for now because I don't particularly want to force +# users to install BinDeps to install this package. That seems counter-productive +#include("BinDepsIntegration.jl") + + +function __init__() + #global global_prefix + + # Initialize our global_prefix + # global_prefix = Prefix(joinpath(dirname(@__FILE__), "../", "global_prefix")) + # activate(global_prefix) + + # Find the right download/compression engines for this platform + probe_platform_engines!() + + # If we're on a julia that's too old, then fixup the color mappings + # if !haskey(Base.text_colors, :default) + # Base.text_colors[:default] = Base.color_normal + # end +end + +end # module diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/OutputCollector.jl b/stdlib/Pkg3/ext/BinaryProvider/src/OutputCollector.jl new file mode 100644 index 0000000000000..040622adfb60f --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/OutputCollector.jl @@ -0,0 +1,362 @@ +# In this file, we define a helper class that will run subprocesses, collecting +# the stdout and stderr, timestamped such that we can merge the two streams +# intelligently after the fact, or keep them separate for proper analysis. +import Base: wait, merge + +export OutputCollector, merge, stdout, stderr, tail, tee + +struct LineStream + pipe::Pipe + lines::Vector{Tuple{Float64,String}} + task::Task +end + +""" + readuntil_many(s::IO, delims) + +Given a collection of delimiter characters, read from `s` until one of those +delimiters is reached, or we reach the end of `s`. +""" +function readuntil_many(s::IO, delims) + out = IOBuffer() + while !eof(s) + c = read(s, Char) + write(out, c) + if c in delims + break + end + end + return String(take!(out)) +end + +""" +`LineStream(pipe::Pipe)` + +Given a `Pipe` that has been initialized by `spawn()`, create an async Task to +read in lines as they come in and annotate the time the line was captured for +later replay/merging with other simultaneously captured streams. +""" +function LineStream(pipe::Pipe, event::Condition) + # We always have to close() the input half of the stream before we can + # read() from it. I don't know why, and this is honestly kind of annoying + close(pipe.in) + + lines = Tuple{Float64,String}[] + task = @async begin + # Read lines in until we can't anymore + while !eof(pipe) + # Push this line onto our lines, then notify() the event + line = chomp(readuntil_many(pipe, ['\n', '\r'])) + push!(lines, (time(), line)) + notify(event) + end + end + + # Create a second task that runs after the first just to notify() + # This ensures that anybody that's listening to the event but gated on our + # being alive (e.g. `tee()`) can die alongside us gracefully as well. + @async begin + wait(task) + notify(event) + end + return LineStream(pipe, lines, task) +end + +""" +`alive(s::LineStream)` + +Returns `true`` if the task owned by this `LineStream` is still processing +output from an underlying `Pipe`. +""" +function alive(s::LineStream) + return !(s.task.state in [:done, :failed]) +end + + +""" +OutputCollector + +A `run()` wrapper class that captures subprocess `stdout` and `stderr` streams +independently, resynthesizing and colorizing the streams appropriately. +""" +mutable struct OutputCollector + cmd::Base.AbstractCmd + P::Base.AbstractPipe + stdout_linestream::LineStream + stderr_linestream::LineStream + event::Condition + verbose::Bool + done::Bool + + extra_tasks::Vector{Task} + + function OutputCollector(cmd, P, out_ls, err_ls, event, verbose) + return new(cmd, P, out_ls, err_ls, event, verbose, false, Task[]) + end +end + +""" +`OutputCollector(cmd::AbstractCmd; verbose::Bool = false)` + +Run `cmd`, and collect the output such that `stdout` and `stderr` are captured +independently, but with the time of each line recorded such that they can be +stored/analyzed independently, but replayed synchronously. +""" +function OutputCollector(cmd::Base.AbstractCmd; verbose::Bool=false, tee_stream=STDOUT) + # First, launch the command + out_pipe = Pipe() + err_pipe = Pipe() + P = try + spawn(cmd, (DevNull, out_pipe, err_pipe)) + catch + warn("Could not spawn $(cmd)") + rethrow() + end + + # Next, start siphoning off the first couple lines of output and error + event = Condition() + out_ls = LineStream(out_pipe, event) + err_ls = LineStream(err_pipe, event) + + # Finally, wrap this up in an object so that we can merge stdout and stderr + # back together again at the end + self = OutputCollector(cmd, P, out_ls, err_ls, event, verbose) + + # If we're set as verbose, then start reading ourselves out to stdout + if verbose + tee(self; stream = tee_stream) + end + + return self +end + +""" +`wait(collector::OutputCollector)` + +Wait for the command and all line streams within an `OutputCollector` to finish +their respective tasks and be ready for full merging. Return the success of +the underlying process. Prints out the last 10 lines of the process if it does +not complete successfully unless the OutputCollector was created as `verbose`. +""" +function wait(collector::OutputCollector) + # If we've already done this song and dance before, then don't do it again + if collector.done + return success(collector.P) + end + + wait(collector.P) + wait(collector.stdout_linestream.task) + wait(collector.stderr_linestream.task) + + # Also wait on any extra tasks we've jimmied onto the end of this guy + for t in collector.extra_tasks + wait(t) + end + + # From this point on, we are actually done! + collector.done = true + + # If we failed, then tail the output, unless we've been tee()'ing it out + # this whole time + if !success(collector.P) && !collector.verbose + print(tail(collector; colored=Base.have_color)) + end + + # Shout to the world how we've done + return success(collector.P) +end + +""" +`merge(collector::OutputCollector; colored::Bool = false)` + +Merge the stdout and stderr streams of the `OutputCollector` on a per-line +basis, returning a single string containing all collected lines, interleaved by +capture time. If `colored` is set to true, embeds terminal color codes to +print `stderr` in red. +""" +function merge(collector::OutputCollector; colored::Bool = false) + # First, wait for things to be done. No incomplete mergings here yet. + wait(collector) + + # We copy here so that you can `merge()` more than once, if you want. + stdout_lines = copy(collector.stdout_linestream.lines) + stderr_lines = copy(collector.stderr_linestream.lines) + output = IOBuffer() + + # Write out an stdout line, optionally with color, and pop off that line + function write_line(lines, should_color, color) + if should_color && colored + print(output, color) + end + t, line = shift!(lines) + println(output, line) + end + + # These help us keep track of colorizing the output + out_color = Base.text_colors[:default] + err_color = Base.text_colors[:red] + last_line_stderr = false + + # Merge stdout and stderr + while !isempty(stdout_lines) && !isempty(stderr_lines) + # Figure out if stdout's timestamp is earlier than stderr's + if stdout_lines[1][1] < stderr_lines[1][1] + write_line(stdout_lines, last_line_stderr, out_color) + last_line_stderr = false + else + write_line(stderr_lines, !last_line_stderr, err_color) + last_line_stderr = true + end + end + + # Now drain whichever one still has data within it + while !isempty(stdout_lines) + write_line(stdout_lines, last_line_stderr, out_color) + last_line_stderr = false + end + while !isempty(stderr_lines) + write_line(stderr_lines, !last_line_stderr, err_color) + last_line_stderr = true + end + + # Clear text colors at the end, if we need to + if last_line_stderr && colored + print(output, Base.text_colors[:default]) + end + + # Return our ill-gotten goods + return String(output) +end + +""" +`stdout(collector::OutputCollector)` + +Returns all stdout lines collected by this collector so far. +""" +function stdout(collector::OutputCollector) + return join([l[2] * "\n" for l in collector.stdout_linestream.lines], "") +end + +""" +`stderr(collector::OutputCollector)` + +Returns all stderr lines collected by this collector so far. +""" +function stderr(collector::OutputCollector) + return join([l[2] * "\n" for l in collector.stderr_linestream.lines], "") +end + +""" +`tail(collector::OutputCollector; len::Int = 10, colored::Bool = false)` + +Write out the last `len` lines, optionally writing colored lines. +""" +function tail(collector::OutputCollector; len::Int = 10, colored::Bool = false) + out = merge(collector; colored=colored) + + idx = length(out) + for line_idx in 1:len + idx = findprev(out, '\n', idx-1) + if idx <= 0 + break + end + end + + return out[idx+1:end] +end + +""" +`tee(c::OutputCollector; colored::Bool = false)` + +Spawn a background task to incrementally output lines from `collector` to the +standard output, optionally colored. +""" +function tee(c::OutputCollector; colored::Bool = Base.have_color, stream=STDOUT) + tee_task = @async begin + out_idx = 1 + err_idx = 1 + out_lines = c.stdout_linestream.lines + err_lines = c.stderr_linestream.lines + + # Helper function to print out the next line of stdout/stderr + function print_next_line() + timestr = Libc.strftime("[%T] ", time()) + # We know we have data, so figure out if it's for stdout or stderr + if length(out_lines) >= out_idx + print_color(:default, stream, timestr; bold=true) + if length(err_lines) >= err_idx + # If we've got input waiting from both lines, then output + # the one with the lowest capture time + if out_lines[out_idx][1] < err_lines[err_idx][1] + # Print the out line as it's older + println(stream, out_lines[out_idx][2]) + out_idx += 1 + else + # Print the err line as it's older + print_color(:red, stream, err_lines[err_idx][2]) + println(stream) + err_idx += 1 + end + else + # Pring the out line that is the only one waiting + println(stream, out_lines[out_idx][2]) + out_idx += 1 + end + else length(err_lines) > err_idx + # Print the err line that is the only one waiting + print_color(:default, stream, timestr; bold=true) + print_color(:red, stream, err_lines[err_idx][2]) + println(stream) + err_idx += 1 + end + end + + # First thing, wait for some input. This avoids us trying to inspect + # the liveliness of the linestreams before they've even started. + wait(c.event) + + while alive(c.stdout_linestream) || alive(c.stderr_linestream) + if length(out_lines) >= out_idx || length(err_lines) >= err_idx + # If we have data to output, then do so + print_next_line() + else + # Otherwise, wait for more input + wait(c.event) + end + end + + # Drain the rest of stdout and stderr + while length(out_lines) >= out_idx || length(err_lines) >= err_idx + print_next_line() + end + end + + # Let the collector know that he might have to wait on this `tee()` to + # finish its business as well. + push!(c.extra_tasks, tee_task) + + return tee_task +end + +""" +`print_color(color::Symbol, msg::AbstractString; bold::Bool = false)` + +Functionally identical to `Base.print_with_color` except that this works +identically across Julia 0.5 and 0.6. +""" +function print_color(color::Symbol, out::IO, msg::AbstractString; bold::Bool=false) + # Engage the color, and optionally the boldness + print(out, Base.text_colors[color]) + if bold + print(out, "\e[1m") + end + + # Print the message + print(out, msg) + + # Disengage the color, and optionally the boldness + if bold + print(out, "\e[22m") + end + print(out, Base.text_colors[:normal]) +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/PlatformEngines.jl b/stdlib/Pkg3/ext/BinaryProvider/src/PlatformEngines.jl new file mode 100644 index 0000000000000..13b4b53494a1f --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/PlatformEngines.jl @@ -0,0 +1,542 @@ +# In this file, we setup the `gen_download_cmd()`, `gen_unpack_cmd()` and +# `gen_package_cmd()` functions by providing methods to probe the environment +# and determine the most appropriate platform binaries to call. + +export gen_download_cmd, gen_unpack_cmd, gen_package_cmd, gen_list_tarball_cmd, + parse_tarball_listing, gen_sh_cmd, parse_7z_list, parse_tar_list, + download_verify_unpack, download_verify, unpack + +""" +`gen_download_cmd(url::AbstractString, out_path::AbstractString)` + +Return a `Cmd` that will download resource located at `url` and store it at +the location given by `out_path`. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_download_cmd = (url::AbstractString, out_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_download_cmd()`") + +""" +`gen_unpack_cmd(tarball_path::AbstractString, out_path::AbstractString)` + +Return a `Cmd` that will unpack the given `tarball_path` into the given +`out_path`. If `out_path` is not already a directory, it will be created. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_unpack_cmd = (tarball_path::AbstractString, out_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_unpack_cmd()`") + +""" +`gen_package_cmd(in_path::AbstractString, tarball_path::AbstractString)` + +Return a `Cmd` that will package up the given `in_path` directory into a +tarball located at `tarball_path`. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_package_cmd = (in_path::AbstractString, tarball_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_package_cmd()`") + +""" +`gen_list_tarball_cmd(tarball_path::AbstractString)` + +Return a `Cmd` that will list the files contained within the tarball located at +`tarball_path`. The list will not include directories contained within the +tarball. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_list_tarball_cmd = (tarball_path::AbstractString) -> + error("Call `probe_platform_engines()` before `gen_list_tarball_cmd()`") + +""" +`parse_tarball_listing(output::AbstractString)` + +Parses the result of `gen_list_tarball_cmd()` into something useful. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +parse_tarball_listing = (output::AbstractString) -> + error("Call `probe_platform_engines()` before `parse_tarball_listing()`") + +""" +`gen_sh_cmd(cmd::Cmd)` + +Runs a command using `sh`. On Unices, this will default to the first `sh` +found on the `PATH`, however on Windows if that is not found it will fall back +to the `sh` provided by the `busybox.exe` shipped with Julia. + +This method is initialized by `probe_platform_engines()`, which should be +automatically called upon first import of `BinaryProvider`. +""" +gen_sh_cmd = (cmd::Cmd) -> + error("Call `probe_platform_engines()` before `gen_sh_cmd()`") + + +""" +`probe_cmd(cmd::Cmd; verbose::Bool = false)` + +Returns `true` if the given command executes successfully, `false` otherwise. +""" +function probe_cmd(cmd::Cmd; verbose::Bool = false) + if verbose + info("Probing $(cmd.exec[1]) as a possibility...") + end + try + success(cmd) + if verbose + info(" Probe successful for $(cmd.exec[1])") + end + return true + catch + return false + end +end + +""" +`probe_platform_engines!(;verbose::Bool = false)` + +Searches the environment for various tools needed to download, unpack, and +package up binaries. Searches for a download engine to be used by +`gen_download_cmd()` and a compression engine to be used by `gen_unpack_cmd()`, +`gen_package_cmd()`, `gen_list_tarball_cmd()` and `parse_tarball_listing()`, as +well as a `sh` execution engine for `gen_sh_cmd()`. Running this function +will set the global functions to their appropriate implementations given the +environment this package is running on. + +This probing function will automatically search for download engines using a +particular ordering; if you wish to override this ordering and use one over all +others, set the `BINARYPROVIDER_DOWNLOAD_ENGINE` environment variable to its +name, and it will be the only engine searched for. For example, put: + + ENV["BINARYPROVIDER_DOWNLOAD_ENGINE"] = "fetch" + +within your `~/.juliarc.jl` file to force `fetch` to be used over `curl`. If +the given override does not match any of the download engines known to this +function, a warning will be printed and the typical ordering will be performed. + +Similarly, if you wish to override the compression engine used, set the +`BINARYPROVIDER_COMPRESSION_ENGINE` environment variable to its name (e.g. `7z` +or `tar`) and it will be the only engine searched for. If the given override +does not match any of the compression engines known to this function, a warning +will be printed and the typical searching will be performed. + +If `verbose` is `true`, print out the various engines as they are searched. +""" +function probe_platform_engines!(;verbose::Bool = false) + global gen_download_cmd, gen_list_tarball_cmd, gen_package_cmd + global gen_unpack_cmd, parse_tarball_listing, gen_sh_cmd + + # download_engines is a list of (test_cmd, download_opts_functor) + # The probulator will check each of them by attempting to run `$test_cmd`, + # and if that works, will set the global download functions appropriately. + download_engines = [ + (`curl --help`, (url, path) -> `curl -C - -\# -f -o $path -L $url`), + (`wget --help`, (url, path) -> `wget -c -O $path $url`), + (`fetch --help`, (url, path) -> `fetch -f $path $url`), + ] + + # 7z is rather intensely verbose. We also want to try running not only + # `7z` but also a direct path to the `7z.exe` bundled with Julia on + # windows, so we create generator functions to spit back functors to invoke + # the correct 7z given the path to the executable: + unpack_7z = (exe7z) -> begin + return (tarball_path, out_path) -> + pipeline(`$exe7z x $(tarball_path) -y -so`, + `$exe7z x -si -y -ttar -o$(out_path)`) + end + package_7z = (exe7z) -> begin + return (in_path, tarball_path) -> + pipeline(`$exe7z a -ttar -so a.tar "$(joinpath(".",in_path,"*"))"`, + `$exe7z a -si $(tarball_path)`) + end + list_7z = (exe7z) -> begin + return (path) -> + pipeline(`$exe7z x $path -so`, `$exe7z l -ttar -y -si`) + end + + # Tar is rather less verbose, and we don't need to search multiple places + # for it, so just rely on PATH to have `tar` available for us: + unpack_tar = (tarball_path, out_path) -> + `tar xzf $(tarball_path) --directory=$(out_path)` + package_tar = (in_path, tarball_path) -> + `tar -czvf $tarball_path -C $(in_path) .` + list_tar = (in_path) -> `tar tzf $in_path` + + # compression_engines is a list of (test_cmd, unpack_opts_functor, + # package_opts_functor, list_opts_functor, parse_functor). The probulator + # will check each of them by attempting to run `$test_cmd`, and if that + # works, will set the global compression functions appropriately. + gen_7z = (p) -> (unpack_7z(p), package_7z(p), list_7z(p), parse_7z_list) + compression_engines = Tuple[ + (`tar --help`, unpack_tar, package_tar, list_tar, parse_tar_list), + ] + + # sh_engines is just a list of Cmds-as-paths + sh_engines = [ + `sh` + ] + + # For windows, we need to tweak a few things, as the tools available differ + @static if Sys.iswindows() + # For download engines, we will most likely want to use powershell. + # Let's generate a functor to return the necessary powershell magics + # to download a file, given a path to the powershell executable + psh_download = (psh_path) -> begin + return (url, path) -> begin + webclient_code = """ + [System.Net.ServicePointManager]::SecurityProtocol = + [System.Net.SecurityProtocolType]::Tls12; + \$webclient = (New-Object System.Net.Webclient); + \$webclient.DownloadFile(\"$url\", \"$path\") + """ + replace(webclient_code, "\n" => " ") + return `$psh_path -NoProfile -Command "$webclient_code"` + end + end + + # We want to search both the `PATH`, and the direct path for powershell + psh_path = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell" + prepend!(download_engines, [ + (`$psh_path -Help`, psh_download(psh_path)) + ]) + prepend!(download_engines, [ + (`powershell -Help`, psh_download(`powershell`)) + ]) + + # We greatly prefer `7z` as a compression engine on Windows + prepend!(compression_engines, [(`7z --help`, gen_7z("7z")...)]) + + # On windows, we bundle 7z with Julia, so try invoking that directly + exe7z = joinpath(JULIA_HOME, "7z.exe") + prepend!(compression_engines, [(`$exe7z --help`, gen_7z(exe7z)...)]) + + # And finally, we want to look for sh as busybox as well: + busybox = joinpath(JULIA_HOME, "busybox.exe") + prepend!(sh_engines, [(`$busybox sh`)]) + end + + # Allow environment override + if haskey(ENV, "BINARYPROVIDER_DOWNLOAD_ENGINE") + engine = ENV["BINARYPROVIDER_DOWNLOAD_ENGINE"] + dl_ngs = filter(e -> e[1].exec[1] == engine, download_engines) + if isempty(dl_ngs) + all_ngs = join([d[1].exec[1] for d in download_engines], ", ") + warn_msg = "Ignoring BINARYPROVIDER_DOWNLOAD_ENGINE as its value " + warn_msg *= "of `$(engine)` doesn't match any known valid engines." + warn_msg *= " Try one of `$(all_ngs)`." + warn(warn_msg) + else + # If BINARYPROVIDER_DOWNLOAD_ENGINE matches one of our download engines, + # then restrict ourselves to looking only at that engine + download_engines = dl_ngs + end + end + + if haskey(ENV, "BINARYPROVIDER_COMPRESSION_ENGINE") + engine = ENV["BINARYPROVIDER_COMPRESSION_ENGINE"] + comp_ngs = filter(e -> e[1].exec[1] == engine, compression_engines) + if isempty(comp_ngs) + all_ngs = join([c[1].exec[1] for c in compression_engines], ", ") + warn_msg = "Ignoring BINARYPROVIDER_COMPRESSION_ENGINE as its " + warn_msg *= "value of `$(engine)` doesn't match any known valid " + warn_msg *= "engines. Try one of `$(all_ngs)`." + warn(warn_msg) + else + # If BINARYPROVIDER_COMPRESSION_ENGINE matches one of our download + # engines, then restrict ourselves to looking only at that engine + compression_engines = comp_ngs + end + end + + download_found = false + compression_found = false + sh_found = false + + if verbose + info("Probing for download engine...") + end + + # Search for a download engine + for (test, dl_func) in download_engines + if probe_cmd(`$test`; verbose=verbose) + # Set our download command generator + gen_download_cmd = dl_func + download_found = true + + if verbose + info("Found download engine $(test.exec[1])") + end + break + end + end + + if verbose + info("Probing for compression engine...") + end + + # Search for a compression engine + for (test, unpack, package, list, parse) in compression_engines + if probe_cmd(`$test`; verbose=verbose) + # Set our compression command generators + gen_unpack_cmd = unpack + gen_package_cmd = package + gen_list_tarball_cmd = list + parse_tarball_listing = parse + + if verbose + info("Found compression engine $(test.exec[1])") + end + + compression_found = true + break + end + end + + if verbose + info("Probing for sh engine...") + end + + for path in sh_engines + if probe_cmd(`$path --help`; verbose=verbose) + gen_sh_cmd = (cmd) -> `$path -c $cmd` + if verbose + info("Found sh engine $(path.exec[1])") + end + sh_found = true + break + end + end + + + # Build informative error messages in case things go sideways + errmsg = "" + if !download_found + errmsg *= "No download engines found. We looked for: " + errmsg *= join([d[1].exec[1] for d in download_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + if !compression_found + errmsg *= "No compression engines found. We looked for: " + errmsg *= join([c[1].exec[1] for c in compression_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + if !sh_found + errmsg *= "No sh engines found. We looked for: " + errmsg *= join([b.exec[1] for b in sh_engines], ", ") + errmsg *= ". Install one and ensure it is available on the path.\n" + end + + # Error out if we couldn't find something + if !download_found || !compression_found || !sh_found + error(errmsg) + end +end + +""" +`parse_7z_list(output::AbstractString)` + +Given the output of `7z l`, parse out the listed filenames. This funciton used +by `list_tarball_files`. +""" +function parse_7z_list(output::AbstractString) + lines = [chomp(l) for l in split(output, "\n")] + # Remove extraneous "\r" for windows platforms + for idx in 1:length(lines) + if endswith(lines[idx], '\r') + lines[idx] = lines[idx][1:end-1] + end + end + + # Find index of " Name". (can't use `findfirst(generator)` until this is + # closed: https://github.com/JuliaLang/julia/issues/16884 + header_row = find(contains(l, " Name") && contains(l, " Attr") for l in lines)[1] + name_idx = search(lines[header_row], "Name")[1] + attr_idx = search(lines[header_row], "Attr")[1] - 1 + + # Filter out only the names of files, ignoring directories + lines = [l[name_idx:end] for l in lines if length(l) > name_idx && l[attr_idx] != 'D'] + if isempty(lines) + return [] + end + + # Extract within the bounding lines of ------------ + bounds = [i for i in 1:length(lines) if all([c for c in lines[i]] .== '-')] + lines = lines[bounds[1]+1:bounds[2]-1] + + # Eliminate `./` prefix, if it exists + for idx in 1:length(lines) + if startswith(lines[idx], "./") || startswith(lines[idx], ".\\") + lines[idx] = lines[idx][3:end] + end + end + + return lines +end + +""" +`parse_7z_list(output::AbstractString)` + +Given the output of `tar -t`, parse out the listed filenames. This funciton +used by `list_tarball_files`. +""" +function parse_tar_list(output::AbstractString) + lines = [chomp(l) for l in split(output, "\n")] + + # Drop empty lines and and directories + lines = [l for l in lines if !isempty(l) && !endswith(l, '/')] + + # Eliminate `./` prefix, if it exists + for idx in 1:length(lines) + if startswith(lines[idx], "./") || startswith(lines[idx], ".\\") + lines[idx] = lines[idx][3:end] + end + end + + return lines +end + +""" + download(url::AbstractString, dest::AbstractString; + verbose::Bool = false) + +Download file located at `url`, store it at `dest`, continuing if `dest` +already exists and the server and download engine support it. +""" +function download(url::AbstractString, dest::AbstractString; + verbose::Bool = false) + download_cmd = gen_download_cmd(url, dest) + if verbose + info("Downloading $(url) to $(dest)...") + end + oc = OutputCollector(download_cmd; verbose=verbose) + try + if !wait(oc) + error() + end + catch + error("Could not download $(url) to $(dest)") + end +end + +""" + download_verify(url::AbstractString, hash::AbstractString; + verbose::Bool = false, force::Bool = false) + +Download file located at `url`, verify it matches the given `hash`, and throw +an error if anything goes wrong. If `dest` already exists, just verify it. If +`force` is set to `true`, overwrite the given file if it exists but does not +match the given `hash`. +""" +function download_verify(url::AbstractString, hash::AbstractString, + dest::AbstractString; verbose::Bool = false, + force::Bool = false) + # Whether the file existed in the first place + file_existed = false + + if isfile(dest) + file_existed = true + if verbose + info("Destination file $(dest) already exists, verifying...") + end + + # verify download, if it passes, return happy. If it fails, (and + # `force` is `true`, re-download!) + try + verify(dest, hash; verbose=verbose) + return true + catch + if !force + rethrow() + end + if verbose + info("Verification failed, re-downloading...") + end + end + end + + # Download the file, optionally continuing + download(url, dest; verbose=verbose) + + # If it worked, then yay! + try + return verify(dest, hash; verbose=verbose) + catch + # If the file already existed, it's possible the initially downloaded chunk + # was bad. If verification fails after downloading, auto-delete the file + # and start over from scratch. + if file_existed + if verbose + msg = strip(""" + Continued download did not yield change in file size, restarting + from scratch...""") + info(msg) + end + rm(dest; force=true) + + # Download and verify from scratch + download(url, dest; verbose=verbose) + return verify(dest, hash; verbose=verbose) + else + # If it didn't verify properly and we didn't resume, something is + # very wrong and we must complain mightily. + rethrow() + end + end +end + +""" +`unpack(tarball_path::AbstractString, dest::AbstractString; + verbose::Bool = false)` + +Unpack tarball located at file `tarball_path` into directory `dest`. +""" +function unpack(tarball_path::AbstractString, dest::AbstractString; + verbose::Bool = false) + # unpack into dest + try mkpath(dest) end + oc = OutputCollector(gen_unpack_cmd(tarball_path, dest); verbose=verbose) + try + if !wait(oc) + error() + end + catch + error("Could not unpack $(tarball_path) into $(dest)") + end +end + + +""" +`download_verify_unpack(url::AbstractString, hash::AbstractString, + dest::AbstractString; verbose::Bool = false)` + +Helper method to download tarball located at `url`, verify it matches the +given `hash`, then unpack it into folder `dest`. In general, the method +`install()` should be used to download and install tarballs into a `Prefix`; +this method should only be used if the extra functionality of `install()` is +undesired. +""" +function download_verify_unpack(url::AbstractString, + hash::AbstractString, + dest::AbstractString; + verbose::Bool = false) + # First, download tarball to temporary path and verify it + tarball_path = "$(tempname())-download.tar.gz" + download_verify(url, hash, tarball_path) + + try + unpack(tarball_path, dest; verbose=verbose) + finally + # Clear out the tarball path no matter what + rm(tarball_path) + end +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/PlatformNames.jl b/stdlib/Pkg3/ext/BinaryProvider/src/PlatformNames.jl new file mode 100644 index 0000000000000..6dc2799a0d92a --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/PlatformNames.jl @@ -0,0 +1,212 @@ +export supported_platforms, platform_key, platform_dlext, valid_dl_path, + arch, wordsize, triplet, Platform, Linux, MacOS, Windows + +abstract type Platform end + +struct Linux <: Platform + arch::Symbol + libc::Symbol + + function Linux(arch::Symbol, libc::Symbol=:glibc) + if !in(arch, [:i686, :x86_64, :aarch64, :powerpc64le, :ppc64le, :armv7l]) + throw(ArgumentError("Unsupported architecture '$arch' for Linux")) + end + if libc !== :glibc && libc !== :musl + throw(ArgumentError("Unsupported libc '$libc' for Linux")) + end + if arch === :ppc64le + arch = :powerpc64le + end + new(arch, libc) + end +end + +struct MacOS <: Platform + + function MacOS(arch::Symbol) + if arch !== :x86_64 + throw(ArgumentError("Unsupported architecture '$arch' for macOS")) + end + new() + end + MacOS() = new() +end + +struct Windows <: Platform + arch::Symbol + + function Windows(arch::Symbol) + if arch !== :i686 && arch !== :x86_64 + throw(ArgumentError("Unsupported architecture '$arch' for Windows")) + end + new(arch) + end +end + +""" + arch(platform) + +Get the architecture for the given `Platform` object as a `Symbol`. + +# Examples +```jldoctest +julia> arch(Linux(:aarch64)) +:aarch64 + +julia> arch(MacOS()) +:x86_64 +``` +""" +arch(p::Platform) = p.arch +arch(m::MacOS) = :x86_64 + +""" + wordsize(platform) + +Get the word size for the given `Platform` object. + +# Examples +```jldoctest +julia> wordsize(Linux(:arm7vl)) +32 + +julia> wordsize(MacOS()) +64 +``` +""" +wordsize(l::Linux) = arch(l) === :i686 || arch(l) === :armv7l ? 32 : 64 +wordsize(w::Windows) = arch(w) === :i686 ? 32 : 64 +wordsize(m::MacOS) = 64 + +""" + triplet(platform) + +Get the target triplet for the given `Platform` object as a `String`. + +# Examples +```jldoctest +julia> triplet(MacOS()) +"x86_64-apple-darwin14" + +julia> triplet(Windows(:i686)) +"i686-w64-mingw32" + +julia> triplet(Linux(:armv7l)) +"arm-linux-gnueabihf" +``` +""" +function triplet(l::Linux) + c = l.libc === :glibc ? "gnu" : "musl" # Currently only glibc and musl are recognized + if arch(l) === :armv7l + string("arm-linux-", c, "eabihf") + else + string(arch(l), "-linux-", c) + end +end +triplet(w::Windows) = string(arch(w), "-w64-mingw32") +triplet(m::MacOS) = "x86_64-apple-darwin14" + +""" + supported_platforms() + +Return the list of supported platforms as an array of `Platform`s. +""" +function supported_platforms() + return [ + Linux(:i686), + Linux(:x86_64), + Linux(:aarch64), + Linux(:armv7l), + Linux(:powerpc64le), + MacOS(), + Windows(:i686), + Windows(:x86_64), + ] +end + +# Compat doesn't use the Base definitions for whatever terrible reason, so we'll overload +# both, ensuring the user gets our definitions regardless of whether they use Sys.is* or +# Compat.Sys.is*. +#if isdefined(Base.Sys, :isapple) +# Base.Sys.isapple(p::Platform) = p isa MacOS +# Base.Sys.islinux(p::Platform) = p isa Linux +# Base.Sys.iswindows(p::Platform) = p isa Windows +# end +# Compat.Sys.isapple(p::Platform) = p isa MacOS +# Compat.Sys.islinux(p::Platform) = p isa Linux +# Compat.Sys.iswindows(p::Platform) = p isa Windows + +""" + platform_key(machine::AbstractString = Sys.MACHINE) + +Returns the platform key for the current platform, or any other though the +the use of the `machine` parameter. +""" +function platform_key(machine::AbstractString = Sys.MACHINE) + # First, off, if `machine` is literally one of the values of our mapping + # above, just return the relevant key + for key in supported_platforms() + if machine == triplet(key) + return key + end + end + + # Otherwise, try to parse the machine into one of our keys + if startswith(machine, "x86_64-apple-darwin") + return MacOS() + end + if ismatch(r"x86_64-(pc-)?(unknown-)?linux-gnu", machine) + return Linux(:x86_64) + end + if ismatch(r"i\d86-(pc-)?(unknown-)?linux-gnu", machine) + return Linux(:i686) + end + if ismatch(r"aarch64-(pc-)?(unknown-)?linux-gnu", machine) + return Linux(:aarch64) + end + if ismatch(r"armv7l-(pc-)?(unknown-)?linux-gnueabihf", machine) + return Linux(:armv7l) + end + if ismatch(r"powerpc64le-(pc-)?(unknown-)?linux-gnu", machine) + return Linux(:powerpc64le) + end + + throw(ArgumentError("Platform `$(machine)` is not an officially supported platform")) +end + + +""" + platform_dlext(platform::Platform = platform_key()) + +Return the dynamic library extension for the given platform, defaulting to the +currently running platform. E.g. returns "so" for a Linux-based platform, +"dll" for a Windows-based platform, etc... +""" +platform_dlext(l::Linux) = "so" +platform_dlext(m::MacOS) = "dylib" +platform_dlext(w::Windows) = "dll" +platform_dlext() = platform_dlext(platform_key()) + +""" + valid_dl_path(path::AbstractString, platform::Platform) + +Return `true` if the given `path` ends in a valid dynamic library filename. +E.g. returns `true` for a path like `"usr/lib/libfoo.so.3.5"`, but returns +`false` for a path like `"libbar.so.f.a"`. +""" +function valid_dl_path(path::AbstractString, platform::Platform) + dlext_regexes = Dict( + # On Linux, libraries look like `libnettle.so.6.3.0` + "so" => r"^(.*).so(\.[\d]+){0,3}$", + # On OSX, libraries look like `libnettle.6.3.dylib` + "dylib" => r"^(.*).dylib$", + # On Windows, libraries look like `libnettle-6.dylib` + "dll" => r"^(.*).dll$" + ) + + # Given a platform, find the dlext regex that matches it + dlregex = dlext_regexes[platform_dlext(platform)] + + # Return whether or not that regex matches the basename of the given path + return contains(basename(path), dlregex) +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/Prefix.jl b/stdlib/Pkg3/ext/BinaryProvider/src/Prefix.jl new file mode 100644 index 0000000000000..20328ca8f6963 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/Prefix.jl @@ -0,0 +1,543 @@ +## This file contains functionality related to the actual layout of the files +# on disk. Things like the name of where downloads are stored, and what +# environment variables must be updated to, etc... +import Base: convert, joinpath, show +using SHA + +export Prefix, bindir, libdir, includedir, logdir, activate, deactivate, + extract_platform_key, install, uninstall, manifest_from_url, + manifest_for_file, list_tarball_files, verify, temp_prefix, package + +""" + temp_prefix(func::Function) + +Create a temporary prefix, passing the prefix into the user-defined function so +that build/packaging operations can occur within the temporary prefix, which is +then cleaned up after all operations are finished. If the path provided exists +already, it will be deleted. + +Usage example: + + out_path = abspath("./libfoo") + temp_prefix() do p + # + + # tarball up the built package + tarball_path, tarball_hash = package(p, out_path) + end +""" +function temp_prefix(func::Function) + # Helper function to create a docker-mountable temporary directory + function _tempdir() + @static if Sys.isapple() + # Docker, on OSX at least, can only mount from certain locations by + # default, so we ensure all our temporary directories live within + # those locations so that they are accessible by Docker. + return "/tmp" + else + return tempdir() + end + end + + mktempdir(_tempdir()) do path + prefix = Prefix(path) + + # Run the user function + func(prefix) + end +end + +# This is the default prefix that things get saved to, it is initialized within +# __init__() on first module load. +global_prefix = nothing +struct Prefix + path::String + + """ + Prefix(path::AbstractString) + + A `Prefix` represents a binary installation location. There is a default + global `Prefix` (available at `BinaryProvider.global_prefix`) that packages + are installed into by default, however custom prefixes can be created + trivially by simply constructing a `Prefix` with a given `path` to install + binaries into, likely including folders such as `bin`, `lib`, etc... + """ + function Prefix(path::AbstractString) + # Canonicalize immediately, create the overall prefix, then return + path = abspath(path) + mkpath(path) + return new(path) + end +end + +# Make it easy to bandy about prefixes as paths. There has got to be a better +# way to do this, but it's hackin' time, so just go with the flow. +joinpath(prefix::Prefix, args...) = joinpath(prefix.path, args...) +joinpath(s::AbstractString, prefix::Prefix, args...) = joinpath(s, prefix.path, args...) + +convert(::Type{AbstractString}, prefix::Prefix) = prefix.path +show(io::IO, prefix::Prefix) = show(io, "Prefix($(prefix.path))") + +""" + split_PATH(PATH::AbstractString = ENV["PATH"]) + +Splits a string such as the `PATH` environment variable into a list of strings +according to the path separation rules for the current platform. +""" +function split_PATH(PATH::AbstractString = ENV["PATH"]) + @static if Sys.iswindows() + return split(PATH, ";") + else + return split(PATH, ":") + end +end + +""" + join_PATH(PATH::Vector{AbstractString}) + +Given a list of strings, return a joined string suitable for the `PATH` +environment variable appropriate for the current platform. +""" +function join_PATH(paths::Vector{S}) where S<:AbstractString + @static if Sys.iswindows() + return join(paths, ";") + else + return join(paths, ":") + end +end + +""" + bindir(prefix::Prefix) + +Returns the binary directory for the given `prefix`. +""" +function bindir(prefix::Prefix) + return joinpath(prefix, "bin") +end + +""" + libdir(prefix::Prefix) + +Returns the library directory for the given `prefix` (not ethat this differs +between unix systems and windows systems). +""" +function libdir(prefix::Prefix) + @static if Sys.iswindows() + return joinpath(prefix, "bin") + else + return joinpath(prefix, "lib") + end +end + +""" + includedir(prefix::Prefix) + +Returns the include directory for the given `prefix` +""" +function includedir(prefix::Prefix) + return joinpath(prefix, "include") +end + +""" + logdir(prefix::Prefix) + +Returns the logs directory for the given `prefix`. +""" +function logdir(prefix::Prefix) + return joinpath(prefix, "logs") +end + +""" + activate(prefix::Prefix) + +Prepends paths to environment variables so that binaries and libraries are +available to Julia. +""" +function activate(prefix::Prefix) + # Add to PATH + paths = split_PATH() + if !(bindir(prefix) in paths) + prepend!(paths, [bindir(prefix)]) + end + ENV["PATH"] = join_PATH(paths) + + # Add to DL_LOAD_PATH + if !(libdir(prefix) in Libdl.DL_LOAD_PATH) + prepend!(Libdl.DL_LOAD_PATH, [libdir(prefix)]) + end + return nothing +end + +""" + activate(func::Function, prefix::Prefix) + +Prepends paths to environment variables so that binaries and libraries are +available to Julia, calls the user function `func`, then `deactivate()`'s +the `prefix`` again. +""" +function activate(func::Function, prefix::Prefix) + activate(prefix) + func() + deactivate(prefix) +end + +""" + deactivate(prefix::Prefix) + +Removes paths added to environment variables by `activate()` +""" +function deactivate(prefix::Prefix) + # Remove from PATH + paths = split_PATH() + filter!(p -> p != bindir(prefix), paths) + ENV["PATH"] = join_PATH(paths) + + # Remove from DL_LOAD_PATH + filter!(p -> p != libdir(prefix), Libdl.DL_LOAD_PATH) + return nothing +end + +""" + extract_platform_key(path::AbstractString) + +Given the path to a tarball, return the platform key of that tarball. If none +can be found, prints a warning and return the current platform suffix. +""" +function extract_platform_key(path::AbstractString) + if endswith(path, ".tar.gz") + path = path[1:end-7] + end + idx = rsearch(path, '.') + if idx == 0 + warn("Could not extract the platform key of $(path); continuing...") + return platform_key() + end + return platform_key(path[idx+1:end]) +end + +""" + install(tarball_url::AbstractString, + hash::AbstractString; + prefix::Prefix = global_prefix, + force::Bool = false, + ignore_platform::Bool = false, + verbose::Bool = false) + +Given a `prefix`, a `tarball_url` and a `hash`, download that tarball into the +prefix, verify its integrity with the `hash`, and install it into the `prefix`. +Also save a manifest of the files into the prefix for uninstallation later. +""" +function install(tarball_url::AbstractString, + hash::AbstractString; + prefix::Prefix = global_prefix, + force::Bool = false, + ignore_platform::Bool = false, + verbose::Bool = false) + # Get the platform key from the tarball and complain if it doesn't match + # the platform we're currently running on + platform = extract_platform_key(tarball_url) + if !ignore_platform && platform_key() != platform + msg = "Will not install a tarball of platform $(platform) on a system " + msg *= "of platform $(platform_key()) unless `ignore_platform` is " + msg *= "explicitly set to `true`." + error(msg) + end + + # Create the downloads directory if it does not already exist + tarball_path = joinpath(prefix, "downloads", basename(tarball_url)) + try mkpath(dirname(tarball_path)) end + + # Check to see if we're "installing" from a file + if isfile(tarball_url) + # If we are, just verify it's already downloaded properly + tarball_path = tarball_url + + verify(tarball_path, hash; verbose=verbose) + else + # If not, actually download it + if verbose + info("Downloading $(tarball_url) to $(tarball_path)") + end + download_verify(tarball_url, hash, tarball_path; verbose=verbose) + end + + if verbose + info("Installing $(tarball_path) into $(prefix.path)") + end + + # First, get list of files that are contained within the tarball + file_list = list_tarball_files(tarball_path) + + # Check to see if any files are already present + for file in file_list + if isfile(joinpath(prefix, file)) + if !force + msg = "$(file) already exists and would be overwritten while " + msg *= "installing $(basename(tarball_path))\n" + msg *= "Will not overwrite unless `force = true` is set." + error(msg) + else + if verbose + info("$(file) already exists, force-removing") + end + rm(file; force=true) + end + end + end + + # Unpack the tarball into prefix + unpack(tarball_path, prefix.path; verbose=verbose) + + # Save installation manifest + manifest_path = manifest_from_url(tarball_path, prefix=prefix) + mkpath(dirname(manifest_path)) + open(manifest_path, "w") do f + write(f, join(file_list, "\n")) + end + + return true +end + +""" + uninstall(manifest::AbstractString; verbose::Bool = false) + +Uninstall a package from a prefix by providing the `manifest_path` that was +generated during `install()`. To find the `manifest_file` for a particular +installed file, use `manifest_for_file(file_path; prefix=prefix)`. +""" +function uninstall(manifest::AbstractString; + verbose::Bool = false) + # Complain if this manifest file doesn't exist + if !isfile(manifest) + error("Manifest path $(manifest) does not exist") + end + + prefix_path = dirname(dirname(manifest)) + if verbose + relmanipath = relpath(manifest, prefix_path) + info("Removing files installed by $(relmanipath)") + end + + # Remove every file listed within the manifest file + for path in [chomp(l) for l in readlines(manifest)] + delpath = joinpath(prefix_path, path) + if !isfile(delpath) + if verbose + info(" $delpath does not exist, but ignoring") + end + else + if verbose + delrelpath = relpath(delpath, prefix_path) + info(" $delrelpath removed") + end + rm(delpath; force=true) + end + end + + if verbose + info(" $(relmanipath) removed") + end + rm(manifest; force=true) + return true +end + +""" + manifest_from_url(url::AbstractString; prefix::Prefix = global_prefix()) + +Returns the file path of the manifest file for the tarball located at `url`. +""" +function manifest_from_url(url::AbstractString; + prefix::Prefix = global_prefix()) + # Given an URL, return an autogenerated manifest name + return joinpath(prefix, "manifests", basename(url)[1:end-7] * ".list") +end + +""" + manifest_for_file(path::AbstractString; prefix::Prefix = global_prefix) + +Returns the manifest file containing the installation receipt for the given +`path`, throws an error if it cannot find a matching manifest. +""" +function manifest_for_file(path::AbstractString; + prefix::Prefix = global_prefix) + if !isfile(path) + error("File $(path) does not exist") + end + + search_path = relpath(path, prefix.path) + if startswith(search_path, "..") + error("Cannot search for paths outside of the given Prefix!") + end + + manidir = joinpath(prefix, "manifests") + for fname in [f for f in readdir(manidir) if endswith(f, ".list")] + manifest_path = joinpath(manidir, fname) + if search_path in [chomp(l) for l in readlines(manifest_path)] + return manifest_path + end + end + + error("Could not find $(search_path) in any manifest files") +end + +""" + list_tarball_files(path::AbstractString; verbose::Bool = false) + +Given a `.tar.gz` filepath, list the compressed contents. +""" +function list_tarball_files(path::AbstractString; verbose::Bool = false) + if !isfile(path) + error("Tarball path $(path) does not exist") + end + + # Run the listing command, then parse the output + oc = OutputCollector(gen_list_tarball_cmd(path); verbose=verbose) + try + if !wait(oc) + error() + end + catch + error("Could not list contents of tarball $(path)") + end + return parse_tarball_listing(stdout(oc)) +end + +""" + verify(path::String, hash::String; verbose::Bool) + +Given a file `path` and a `hash`, calculate the SHA256 of the file and compare +it to `hash`. If an error occurs, `verify()` will throw an error. This method +caches verification results in a `"\$(path).sha256"` file to accelerate re- +verification of files that have been previously verified. If no `".sha256"` +file exists, a full verification will be done and the file will be created, +with the calculated hash being stored within the `".sha256"` file.. If a +`".sha256"` file does exist, its contents are checked to ensure that the hash +contained within matches the given `hash` parameter, and its modification time +shows that the file located at `path` has not been modified since the last +verification. +""" +function verify(path::AbstractString, hash::AbstractString; verbose::Bool = false) + if length(hash) != 64 + msg = "Hash must be 256 bits (64 characters) long, " + msg *= "given hash is $(length(hash)) characters long" + error(msg) + end + + # Fist, check to see if the hash cache is consistent + hash_path = "$(path).sha256" + + # First, it must exist + if isfile(hash_path) + # Next, it must contain the same hash as what we're verifying against + if readstring(open(hash_path, "r")) == hash + # Next, it must be no older than the actual path + if stat(hash_path).mtime >= stat(path).mtime + # If all of that is true, then we're good! + if verbose + info("Hash cache is consistent, returning true") + end + return true + else + if verbose + info("File has been modified, hash cache invalidated") + end + end + else + if verbose + info("Hash has changed, hash cache invalidated") + end + end + else + if verbose + info("No hash cache found") + end + end + + open(path) do file + calc_hash = bytes2hex(sha256(file)) + if verbose + info("Calculated hash $calc_hash for file $path") + end + + if calc_hash != hash + msg = "Hash Mismatch!\n" + msg *= " Expected sha256: $hash\n" + msg *= " Calculated sha256: $calc_hash" + error(msg) + end + end + + # Save a hash cache if everything worked out fine + open(hash_path, "w") do file + write(file, hash) + end + + return true +end + +""" + package(prefix::Prefix, tarball_base::AbstractString, + platform::Platform = platform_key(), verbose::Bool = false) + +Build a tarball of the `prefix`, storing the tarball at `tarball_base` plus a +platform-dependent suffix and a file extension (defaults to the current +platform, but overridable through the `platform` argument. Runs an `audit()` +on the `prefix`, to ensure that libraries can be `dlopen()`'ed, that all +dependencies are located within the prefix, etc... See the `audit()` +documentation for a full list of the audit steps. + +Returns the full path to and the hash of the generated tarball. +""" +function package(prefix::Prefix, + tarball_base::AbstractString; + platform::Platform = platform_key(), + verbose::Bool = false, + force::Bool = false) + # First calculate the output path given our tarball_base and platform + out_path = try + "$(tarball_base).$(triplet(platform)).tar.gz" + catch + error("Platform key `$(platform)` not recognized") + end + + if isfile(out_path) + if force + if verbose + info("$(out_path) already exists, force-overwriting...") + end + rm(out_path; force=true) + else + msg = replace(strip(""" + $(out_path) already exists, refusing to package into it without + `force` being set to `true`. + """), "\n", " ") + error(msg) + end + end + + withenv("GZIP" => "-9") do + package_cmd = gen_package_cmd(prefix.path, out_path) + oc = OutputCollector(package_cmd; verbose=verbose) + + # Actually run the `tar` command + try + if !wait(oc) + error() + end + catch + # If we made a boo-boo, fess up. Remember that the `oc` will auto- + # `tail()` failing commands. + error("Packaging of $(prefix.path) did not complete successfully") + end + end + + # Also spit out the hash of the archive file + hash = open(out_path, "r") do f + return bytes2hex(sha256(f)) + end + if verbose + info("SHA256 of $(basename(out_path)): $(hash)") + end + + return out_path, hash +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/src/Products.jl b/stdlib/Pkg3/ext/BinaryProvider/src/Products.jl new file mode 100644 index 0000000000000..6cbf1f687694f --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/src/Products.jl @@ -0,0 +1,345 @@ +export Product, LibraryProduct, FileProduct, ExecutableProduct, satisfied, locate, @write_deps_file + +""" +A `Product` is an expected result after building or installation of a package. +""" +abstract type Product end + +""" +A `LibraryProduct` is a special kind of `Product` that not only needs to exist, +but needs to be `dlopen()`'able. You must know which directory the library +will be installed to, and its name, e.g. to build a `LibraryProduct` that +refers to `"/lib/libnettle.so"`, the "directory" would be "/lib", and the +"libname" would be "libnettle". +""" +struct LibraryProduct <: Product + dir_path::String + libname::String + + """ + `LibraryProduct(prefix::Prefix, libname::AbstractString)` + + Declares a `LibraryProduct` that points to a library located within the + `libdir` of the given `Prefix`, with a name containing `libname`. As an + example, given that `libdir(prefix)` is equal to `usr/lib`, and `libname` + is equal to `libnettle`, this would be satisfied by the following paths: + + usr/lib/libnettle.so + usr/lib/libnettle.so.6 + usr/lib/libnettle.6.dylib + usr/lib/libnettle-6.dll + + Libraries matching the search pattern are rejected if they are not + `dlopen()`'able. + """ + function LibraryProduct(prefix::Prefix, libname::AbstractString) + return LibraryProduct(libdir(prefix), libname) + end + + """ + `LibraryProduct(dir_path::AbstractString, libname::AbstractString)` + + For finer-grained control over `LibraryProduct` locations, you may directly + pass in the `dir_path` instead of auto-inferring it from `libdir(prefix)`. + """ + function LibraryProduct(dir_path::AbstractString, libname::AbstractString) + return new(dir_path, libname) + end +end + +""" +locate(lp::LibraryProduct; verbose::Bool = false, + platform::Platform = platform_key()) + +If the given library exists (under any reasonable name) and is `dlopen()`able, +(assuming it was built for the current platform) return its location. Note +that the `dlopen()` test is only run if the current platform matches the given +`platform` keyword argument, as cross-compiled libraries cannot be `dlopen()`ed +on foreign platforms. +""" +function locate(lp::LibraryProduct; verbose::Bool = false, + platform::Platform = platform_key()) + if !isdir(lp.dir_path) + if verbose + info("Directory $(lp.dir_path) does not exist!") + end + return nothing + end + for f in readdir(lp.dir_path) + # Skip any names that aren't a valid dynamic library for the given + # platform (note this will cause problems if something compiles a `.so` + # on OSX, for instance) + if !valid_dl_path(f, platform) + continue + end + + if verbose + info("Found a valid dl path $(f) while looking for $(lp.libname)") + end + + # If we found something that is a dynamic library, let's check to see + # if it matches our libname: + if startswith(basename(f), lp.libname) + dl_path = abspath(joinpath(lp.dir_path), f) + if verbose + info("$(dl_path) matches our search criteria of $(lp.libname)") + end + + # If it does, try to `dlopen()` it if the current platform is good + if platform == platform_key() + hdl = Libdl.dlopen_e(dl_path) + if hdl == C_NULL + if verbose + info("$(dl_path) cannot be dlopen'ed") + end + else + # Hey! It worked! Yay! + Libdl.dlclose(hdl) + return dl_path + end + else + # If the current platform doesn't match, then just trust in our + # cross-compilers and go with the flow + return dl_path + end + end + end + + if verbose + info("Could not locate $(lp.libname) inside $(lp.dir_path)") + end + return nothing +end + +""" +An `ExecutableProduct` is a `Product` that represents an executable file. + +On all platforms, an ExecutableProduct checks for existence of the file. On +non-Windows platforms, it will check for the executable bit being set. On +Windows platforms, it will check that the file ends with ".exe", (adding it on +automatically, if it is not already present). +""" +struct ExecutableProduct <: Product + path::AbstractString + + """ + `ExecutableProduct(prefix::Prefix, binname::AbstractString)` + + Declares an `ExecutableProduct` that points to an executable located within + the `bindir` of the given `Prefix`, named `binname`. + """ + function ExecutableProduct(prefix::Prefix, binname::AbstractString) + return ExecutableProduct(joinpath(bindir(prefix), binname)) + end + + """ + `ExecutableProduct(binpath::AbstractString)` + + For finer-grained control over `ExecutableProduct` locations, you may directly + pass in the full `binpath` instead of auto-inferring it from `bindir(prefix)`. + """ + function ExecutableProduct(binpath::AbstractString) + return new(binpath) + end +end + +""" +`locate(fp::FileProduct; platform::Platform = platform_key(), + verbose::Bool = false)` + +If the given executable file exists and is executable, return its path. + +On all platforms, an ExecutableProduct checks for existence of the file. On +non-Windows platforms, it will check for the executable bit being set. On +Windows platforms, it will check that the file ends with ".exe", (adding it on +automatically, if it is not already present). +""" +function locate(ep::ExecutableProduct; platform::Platform = platform_key(), + verbose::Bool = false) + # On windows, we always slap an .exe onto the end if it doesn't already + # exist, as Windows won't execute files that don't have a .exe at the end. + path = if platform isa Windows && !endswith(ep.path, ".exe") + "$(ep.path).exe" + else + ep.path + end + + if !isfile(path) + if verbose + info("$(ep.path) does not exist, reporting unsatisfied") + end + return nothing + end + + # If the file is not executable, fail out (unless we're on windows since + # windows doesn't honor these permissions on its filesystems) + @static if !Sys.iswindows() + if uperm(path) & 0x1 == 0 + if verbose + info("$(path) is not executable, reporting unsatisfied") + end + return nothing + end + end + + return path +end + +""" +A `FileProduct` represents a file that simply must exist to be satisfied. +""" +struct FileProduct <: Product + path::AbstractString +end + +""" +locate(fp::FileProduct; platform::Platform = platform_key(), + verbose::Bool = false) + +If the given file exists, return its path. The platform argument is ignored +here, but included for uniformity. +""" +function locate(fp::FileProduct; platform::Platform = platform_key(), + verbose::Bool = false) + if isfile(fp.path) + if verbose + info("FileProduct $(fp.path) does not exist") + end + return fp.path + end + return nothing +end + + +""" +`satisfied(p::Product; platform::Platform = platform_key(), + verbose::Bool = false)` + +Given a `Product`, return `true` if that `Product` is satisfied, e.g. whether +a file exists that matches all criteria setup for that `Product`. +""" +function satisfied(p::Product; platform::Platform = platform_key(), + verbose::Bool = false) + return locate(p; platform=platform, verbose=verbose) != nothing +end + + +""" +`@write_deps_file(products...)` + +Helper macro to generate a `deps.jl` file out of a mapping of variable name +to `Product` objects. Call using something like: + + fooifier = ExecutableProduct(...) + libbar = LibraryProduct(...) + @write_deps_file fooifier libbar + +If any `Product` object cannot be satisfied (e.g. `LibraryProduct` objects must +be `dlopen()`-able, `FileProduct` objects must exist on the filesystem, etc...) +this macro will error out. Ensure that you have used `install()` to install +the binaries you wish to write a `deps.jl` file for, and, optionally that you +have used `activate()` on the `Prefix` in which the binaries were installed so +as to make sure that the binaries are locatable. + +The result of this macro call is a `deps.jl` file containing variables named +the same as the keys of the passed-in dictionary, holding the full path to the +installed binaries. Given the example above, it would contain code similar to: + + global const fooifier = "/deps/usr/bin/fooifier" + global const libbar = "/deps/usr/lib/libbar.so" + +This file is intended to be `include()`'ed from within the `__init__()` method +of your package. Note that all files are checked for consistency on package +load time, and if an error is discovered, package loading will fail, asking +the user to re-run `Pkg.build("package_name")`. +""" +macro write_deps_file(capture...) + # props to @tshort for his macro wizardry + names = :($(capture)) + products = esc(Expr(:tuple, capture...)) + + # We have to create this dummy_source, because we cannot, in a single line, + # have both `@__FILE__` and `__source__` interpreted by the same julia. + dummy_source = VERSION >= v"0.7.0-" ? __source__.file : "" + + return quote + # First pick up important pieces of information from the call-site + const source = VERSION >= v"0.7.0-" ? $("$(dummy_source)") : @__FILE__ + const depsjl_path = joinpath(dirname(source), "deps.jl") + const package_name = basename(dirname(dirname(source))) + const platform = platform_key() + escape_path = path -> replace(path, "\\" => "\\\\") + + const rebuild = strip(""" + Please re-run Pkg.build(\\\"$(package_name)\\\"), and restart Julia. + """) + + # Begin by ensuring that we can satisfy every product RIGHT NOW + for product in $(products) + # Check to make sure that we've passed in the right kind of + # objects, e.g. subclasses of `Product` + if !(typeof(product) <: Product) + msg = "Cannot @write_deps_file for $product, which is " * + "of type $(typeof(product)), which is not a " * + "subtype of `Product`!" + error(msg) + end + + if !satisfied(product; verbose=true) + error("$product is not satisfied, cannot generate deps.jl!") + end + end + + # If things look good, let's generate the `deps.jl` file + open(depsjl_path, "w") do depsjl_file + # First, dump the preamble + println(depsjl_file, strip(""" + ## This file autogenerated by BinaryProvider.@write_deps_file. + ## Do not edit. + """)) + + # Next, spit out the paths of all our products + for idx in 1:$(length(capture)) + product = $(products)[idx] + name = $(names)[idx] + + # Escape the location so that e.g. Windows platforms are happy + # with the backslashes in a string literal + escaped_path = escape_path(locate(product, platform=platform)) + println(depsjl_file, strip(""" + const $(name) = \"$(escaped_path)\" + """)) + end + + # Next, generate a function to check they're all on the up-and-up + println(depsjl_file, "function check_deps()") + + for idx in 1:$(length(capture)) + product = $(products)[idx] + name = $(names)[idx] + + # Add a `global $(name)` + println(depsjl_file, " global $(name)"); + + # Check that any file exists + println(depsjl_file, """ + if !isfile($(name)) + error("\$($(name)) does not exist, $(rebuild)") + end + """) + + # For Library products, check that we can dlopen it: + if typeof(product) <: LibraryProduct + println(depsjl_file, """ + if Libdl.dlopen_e($(name)) == C_NULL + error("\$($(name)) cannot be opened, $(rebuild)") + end + """) + end + end + + # Close the `check_deps()` function + println(depsjl_file, "end") + end + end +end diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/.gitignore b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/.gitignore new file mode 100644 index 0000000000000..8adc8c2a1fbfe --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/.gitignore @@ -0,0 +1,2 @@ +deps/usr +deps/deps.jl diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/README.md b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/README.md new file mode 100644 index 0000000000000..cd6e50071ec27 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/README.md @@ -0,0 +1,3 @@ +# LibFoo.jl + +Example Julia Package, showing off how to install binaries provided through `BinaryProvider.jl`. Look at `deps/build.jl` for an example of how to download and install binaries, then generate a `deps/deps.jl` file that contains the paths to desired binary objects. Look at `src/LibFoo.jl` for an example of how to load the `deps/deps.jl` file, and how to use the binary objects stored within. \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/deps/build.jl b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/deps/build.jl new file mode 100644 index 0000000000000..a3451ab02665a --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/deps/build.jl @@ -0,0 +1,37 @@ +using BinaryProvider + +# BinaryProvider support +const prefix = Prefix(joinpath(dirname(@__FILE__),"usr")) +const platform = platform_key() + +# These are the two binary objects we care about +libfoo = LibraryProduct(prefix, "libfoo") +fooifier = ExecutableProduct(prefix, "fooifier") + +# This is where we download things from, for different platforms +const bin_prefix = "https://github.com/staticfloat/small_bin/raw/74b7fd81e3fbc8963b14b0ebbe5421e270d8bdcf" +const download_info = Dict( + Linux(:i686) => ("$bin_prefix/libfoo.i686-linux-gnu.tar.gz", "1398353bcbbd88338189ece9c1d6e7c508df120bc4f93afbaed362a9f91358ff"), + Linux(:x86_64) => ("$bin_prefix/libfoo.x86_64-linux-gnu.tar.gz", "b9d57a6e032a56b1f8641771fa707523caa72f1a2e322ab99eeeb011f13ad9f3"), + Linux(:aarch64) => ("$bin_prefix/libfoo.aarch64-linux-gnu.tar.gz", "19d9da0e6e7fb506bf4889eb91e936fda43493a39cd4fd7bd5d65506cede6f95"), + Linux(:armv7l) => ("$bin_prefix/libfoo.arm-linux-gnueabihf.tar.gz", "8e33c1a0e091e6e5b8fcb902e5d45329791bb57763ee9cbcde49c1ec9bd8532a"), + Linux(:ppc64le) => ("$bin_prefix/libfoo.powerpc64le-linux-gnu.tar.gz", "b48a64d48be994ec99b1a9fb60e0af7f4415a57596518cb90a340987b79fad81"), + MacOS() => ("$bin_prefix/libfoo.x86_64-apple-darwin14.tar.gz", "661b71edb433ab334b0fef70db3b5c45d35f2b3bee0d244f54875f1ec899c10f"), + Windows(:i686) => ("$bin_prefix/libfoo.i686-w64-mingw32.tar.gz", "3d4a8d4bf0169007a42d809a1d560083635b1540a1bc4a42108841dcb6d2aaea"), + Windows(:x86_64) => ("$bin_prefix/libfoo.x86_64-w64-mingw32.tar.gz", "2d08fbc9a534cd021f36b6bbe86ddabb2dafbedeb589581240aa4a8c5b896055"), +) +if platform in keys(download_info) + # Grab the url and tarball hash for this particular platform + url, tarball_hash = download_info[platform] + + # Build a BinaryPackage from the metadata, and install it + binpkg = BinaryPackage(url, tarball_hash, platform, [libfoo, fooifier]) + install(binpkg; prefix=prefix, force=true, verbose=true) + + # Finaly, write out a deps file containing paths to libfoo and fooifier + @write_deps_file libfoo fooifier +else + error("Your platform $(Sys.MACHINE) is not recognized, we cannot install Libfoo!") +end + + diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/src/LibFoo.jl b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/src/LibFoo.jl new file mode 100644 index 0000000000000..c6c969d7ec143 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/src/LibFoo.jl @@ -0,0 +1,38 @@ +__precompile__() +module LibFoo + +# Load in `deps.jl`, complaining if it does not exist +const depsjl_path = joinpath(dirname(@__FILE__), "..", "deps", "deps.jl") +if !isfile(depsjl_path) + error("LibFoo not installed properly, run Pkg.build(\"LibFoo\"), restart Julia and try again") +end +include(depsjl_path) + +# Module initialization function +function __init__() + # Always check your dependencies from `deps.jl` + check_deps() +end + +# Export our two super-useful functions +export call_fooifier, call_libfoo + + +# Function to call the `fooifier` binary with the given arguments +function call_fooifier(a, b) + global fooifier + return parse(Float64, readchomp(`$fooifier $a $b`)) +end + +# Function to call into the `libfoo` shared library with the given arguments +function call_libfoo(a, b) + global libfoo + + hdl = Libdl.dlopen_e(libfoo) + @assert hdl != C_NULL "Could not open $libfoo" + foo = Libdl.dlsym_e(hdl, :foo) + @assert foo != C_NULL "Could not find foo() within $libfoo" + return ccall(foo, Cdouble, (Cdouble, Cdouble), a, b) +end + +end #module LibFoo \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/test/runtests.jl b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/test/runtests.jl new file mode 100644 index 0000000000000..bf11bf06fa998 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/LibFoo.jl/test/runtests.jl @@ -0,0 +1,5 @@ +using Base.Test +using LibFoo + +@test call_fooifier(2.2, 1.1) ≈ 2*2.2^2 - 1.1 +@test call_libfoo(2.2, 1.1) ≈ 2*2.2^2 - 1.1 \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/fail.sh b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/fail.sh new file mode 100755 index 0000000000000..6e3c35eb4f8e1 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/fail.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +echo "1" +sleep 1 +echo "2" >&2 +exit 1 \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/kill.sh b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/kill.sh new file mode 100755 index 0000000000000..e0251a960fcb5 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/kill.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +SELF=$$ +(sleep 3; kill $SELF) & + +# Count 1, 2, 3 then kill yourself +for i in $(seq 1 10); do + echo $i + sleep 2 +done \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/long.sh b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/long.sh new file mode 100755 index 0000000000000..e724aaddff662 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/long.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +for i in $(seq 1 100); do + echo $i +done \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/newlines.sh b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/newlines.sh new file mode 100755 index 0000000000000..ad58e0fdda112 --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/newlines.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +# Ideally, all three of these will give the same result according to lines +printf "marco\npolo\n" +printf "marco\rpolo\r" +printf "marco\r\npolo\r\n" diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/simple.sh b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/simple.sh new file mode 100755 index 0000000000000..a61ca06966e4b --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/output_tests/simple.sh @@ -0,0 +1,8 @@ +#!/bin/sh +echo 1 +sleep 1 +echo 2 >&2 +sleep 1 +echo 3 +sleep 1 +echo 4 \ No newline at end of file diff --git a/stdlib/Pkg3/ext/BinaryProvider/test/runtests.jl b/stdlib/Pkg3/ext/BinaryProvider/test/runtests.jl new file mode 100644 index 0000000000000..d7facf140df6c --- /dev/null +++ b/stdlib/Pkg3/ext/BinaryProvider/test/runtests.jl @@ -0,0 +1,575 @@ +using BinaryProvider +using Compat +using Compat.Test +using SHA + +# The platform we're running on +const platform = platform_key() + +# Useful command to launch `sh` on any platform +const sh = gen_sh_cmd + +# Output of a few scripts we are going to run +const simple_out = "1\n2\n3\n4\n" +const long_out = join(["$(idx)\n" for idx in 1:100], "") +const newlines_out = join(["marco$d\npolo$d\n" for d in ("","\r","\r\n")], "") + +# Explicitly probe platform engines in verbose mode to get coverage and make +# CI debugging easier +BinaryProvider.probe_platform_engines!(;verbose=true) + +@testset "OutputCollector" begin + cd("output_tests") do + # Collect the output of `simple.sh`` + oc = OutputCollector(sh(`./simple.sh`)) + + # Ensure we can wait on it and it exited properly + @test wait(oc) + + # Ensure further waits are fast and still return 0 + let + tstart = time() + @test wait(oc) + @test time() - tstart < 0.1 + end + + # Test that we can merge properly + @test merge(oc) == simple_out + + # Test that merging twice works + @test merge(oc) == simple_out + + # Test that `tail()` gives the same output as well + @test tail(oc) == simple_out + + # Test that colorization works + let + red = Base.text_colors[:red] + def = Base.text_colors[:default] + gt = "1\n$(red)2\n$(def)3\n4\n" + @test merge(oc; colored=true) == gt + @test tail(oc; colored=true) == gt + end + + # Test that we can grab stdout and stderr separately + @test stdout(oc) == "1\n3\n4\n" + @test stderr(oc) == "2\n" + end + + # Next test a much longer output program + cd("output_tests") do + oc = OutputCollector(sh(`./long.sh`)) + + # Test that it worked, we can read it, and tail() works + @test wait(oc) + @test merge(oc) == long_out + @test tail(oc; len=10) == join(["$(idx)\n" for idx in 91:100], "") + end + + # Next, test a command that fails + cd("output_tests") do + oc = OutputCollector(sh(`./fail.sh`)) + + @test !wait(oc) + @test merge(oc) == "1\n2\n" + end + + # Next, test a command that kills itself (NOTE: This doesn't work on windows. sigh.) + @static if !iswindows() + cd("output_tests") do + oc = OutputCollector(sh(`./kill.sh`)) + + @test !wait(oc) + @test stdout(oc) == "1\n2\n" + end + end + + # Next, test reading the output of a pipeline() + grepline = pipeline(sh(`-c 'printf "Hello\nWorld\nJulia"'`), `grep ul`) + oc = OutputCollector(grepline) + + @test wait(oc) + @test merge(oc) == "Julia\n" + + # Next, test that \r and \r\n are treated like \n + cd("output_tests") do + oc = OutputCollector(sh(`./newlines.sh`)) + + @test wait(oc) + @test stdout(oc) == newlines_out + end + + # Next, test that tee'ing to a stream works + cd("output_tests") do + ios = IOBuffer() + oc = OutputCollector(sh(`./simple.sh`); tee_stream=ios, verbose=true) + @test wait(oc) + @test merge(oc) == simple_out + seekstart(ios) + println(readstring(ios)) + end +end + +@testset "PlatformNames" begin + # Ensure the platform type constructors are well behaved + @test_throws ArgumentError Linux(:not_a_platform) + @test_throws ArgumentError MacOS(:i686) + @test_throws ArgumentError Windows(:armv7l) + @test_throws ArgumentError Linux(:x86_64, :crazy_libc) + + # Test that our platform_dlext stuff works + @test platform_dlext(Linux(:x86_64)) == platform_dlext(Linux(:i686)) + @test platform_dlext(Windows(:x86_64)) == platform_dlext(Windows(:i686)) + @test platform_dlext(MacOS()) != platform_dlext(Linux(:armv7l)) + + # Test some valid dynamic library paths + @test valid_dl_path("libfoo.so.1.2.3", Linux(:x86_64)) + @test valid_dl_path("libfoo-1.dll", Windows(:x86_64)) + @test valid_dl_path("libfoo.1.2.3.dylib", MacOS()) + @test !valid_dl_path("libfoo.dylib", Linux(:x86_64)) + @test !valid_dl_path("libfoo.so", Windows(:x86_64)) + + # Make sure the platform_key() with explicit triplet works or doesn't + @test platform_key("x86_64-linux-gnu") == Linux(:x86_64) + @test platform_key("i686-unknown-linux-gnu") == Linux(:i686) + @test platform_key("x86_64-apple-darwin14") == MacOS() + @test platform_key("armv7l-pc-linux-gnueabihf") == Linux(:armv7l) + @test platform_key("aarch64-unknown-linux-gnu") == Linux(:aarch64) + @test platform_key("powerpc64le-linux-gnu") == Linux(:ppc64le) + @test platform_key("x86_64-w64-mingw32") == Windows(:x86_64) + @test platform_key("i686-w64-mingw32") == Windows(:i686) + @test_throws ArgumentError platform_key("invalid-triplet-yo") + @test_throws ArgumentError platform_key("aarch64-unknown-gnueabihf") + @test_throws ArgumentError platform_key("x86_64-w32-mingw64") + + # Test that we can indeed ask if something is linux or windows, etc... + @test Compat.Sys.islinux(Linux(:aarch64)) + @test !Compat.Sys.islinux(Windows(:x86_64)) + @test iswindows(Windows(:i686)) + @test !iswindows(Linux(:x86_64)) + @test Compat.Sys.isapple(MacOS()) + @test !Compat.Sys.isapple(Linux(:ppc64le)) + + # Test that every supported platform is _something_ + if isdefined(Base.Sys, :isapple) + isbasesomething(p) = Sys.islinux(p) || Sys.iswindows(p) || Sys.isapple(p) + @test all(isbasesomething, supported_platforms()) + end + issomething(p) = Compat.Sys.islinux(p) || iswindows(p) || + Compat.Sys.isapple(p) + @test all(issomething, supported_platforms()) + + @test wordsize(Linux(:i686)) == wordsize(Linux(:armv7l)) == 32 + @test wordsize(MacOS()) == wordsize(Linux(:aarch64)) == 64 + + @test triplet(Windows(:i686)) == "i686-w64-mingw32" + @test triplet(Linux(:x86_64, :musl)) == "x86_64-linux-musl" + @test triplet(Linux(:armv7l, :musl)) == "arm-linux-musleabihf" + @test triplet(Linux(:x86_64)) == "x86_64-linux-gnu" + @test triplet(Linux(:armv7l)) == "arm-linux-gnueabihf" + @test triplet(MacOS()) == "x86_64-apple-darwin14" +end + +@testset "Prefix" begin + mktempdir() do temp_dir + prefix = Prefix(temp_dir) + + # Test that it's taking the absolute path + @test prefix.path == abspath(temp_dir) + + # Test that `bindir()`, `libdir()` and `includedir()` all work + for dir in unique([bindir(prefix), libdir(prefix), includedir(prefix)]) + @test !isdir(dir) + mkpath(dir) + end + + # Create a little script within the bindir to ensure we can run it + ppt_path = joinpath(bindir(prefix), "prefix_path_test.sh") + open(ppt_path, "w") do f + write(f, "#!/bin/sh\n") + write(f, "echo yolo\n") + end + chmod(ppt_path, 0o775) + + # Test that activation adds certain paths to our environment variables + activate(prefix) + + # PATH[1] should be "/bin" now + @test BinaryProvider.split_PATH()[1] == bindir(prefix) + @test Libdl.DL_LOAD_PATH[1] == libdir(prefix) + + # Test we can run the script we dropped within this prefix. Once again, + # something about Windows | busybox | Julia won't pick this up even though + # the path clearly points to the file. :( + @static if !iswindows() + @test success(sh(`$(ppt_path)`)) + @test success(sh(`prefix_path_test.sh`)) + end + + # Now deactivate and make sure that all traces are gone + deactivate(prefix) + @test BinaryProvider.split_PATH()[1] != bindir(prefix) + @test Libdl.DL_LOAD_PATH[1] != libdir(prefix) + end +end + +@testset "Products" begin + temp_prefix() do prefix + # Test that basic satisfication is not guaranteed + e_path = joinpath(bindir(prefix), "fooifier") + l_path = joinpath(libdir(prefix), "libfoo.$(Libdl.dlext)") + e = ExecutableProduct(prefix, "fooifier") + ef = FileProduct(e_path) + l = LibraryProduct(prefix, "libfoo") + lf = FileProduct(l_path) + + @test !satisfied(e; verbose=true) + @test !satisfied(ef; verbose=true) + @test !satisfied(l, verbose=true) + @test !satisfied(lf, verbose=true) + + # Test that simply creating a file that is not executable doesn't + # satisfy an Executable Product (and say it's on Linux so it doesn't + # complain about the lack of an .exe extension) + mkpath(bindir(prefix)) + touch(e_path) + @test satisfied(ef, verbose=true) + @static if !iswindows() + # Windows doesn't care about executable bit, grumble grumble + @test !satisfied(e, verbose=true, platform=Linux(:x86_64)) + end + + # Make it executable and ensure this does satisfy the Executable + chmod(e_path, 0o777) + @test satisfied(e, verbose=true, platform=Linux(:x86_64)) + + # Remove it and add a `$(path).exe` version to check again, this + # time saying it's a Windows executable + rm(e_path; force=true) + touch("$(e_path).exe") + chmod("$(e_path).exe", 0o777) + @test locate(e, platform=Windows(:x86_64)) == "$(e_path).exe" + + # Test that simply creating a library file doesn't satisfy it if we are + # testing something that matches the current platform's dynamic library + # naming scheme, because it must be `dlopen()`able. + mkpath(libdir(prefix)) + touch(l_path) + @test satisfied(lf, verbose=true) + @test !satisfied(l, verbose=true) + + # But if it is from a different platform, simple existence will be + # enough to satisfy a LibraryProduct + @static if iswindows() + l_path = joinpath(libdir(prefix), "libfoo.so") + touch(l_path) + @test satisfied(l, verbose=true, platform=Linux(:x86_64)) + else + l_path = joinpath(libdir(prefix), "libfoo.dll") + touch(l_path) + @test satisfied(l, verbose=true, platform=Windows(:x86_64)) + end + end + + # Ensure that the test suite thinks that these libraries are foreign + # so that it doesn't try to `dlopen()` them: + foreign_platform = @static if platform_key() == Linux(:aarch64) + # Arbitrary architecture that is not dlopen()'able + Linux(:ppc64le) + else + # If we're not Linux(:aarch64), then say the libraries are + Linux(:aarch64) + end + + # Test for valid library name permutations + for ext in ["1.so", "so", "so.1", "so.1.2", "so.1.2.3"] + temp_prefix() do prefix + l_path = joinpath(libdir(prefix), "libfoo.$ext") + l = LibraryProduct(prefix, "libfoo") + mkdir(dirname(l_path)) + touch(l_path) + @test satisfied(l; verbose=true, platform=foreign_platform) + end + end + + # Test for invalid library name permutations + for ext in ["so.1.2.3a", "so.1.a"] + temp_prefix() do prefix + l_path = joinpath(libdir(prefix), "libfoo.$ext") + l = LibraryProduct(prefix, "libfoo") + mkdir(dirname(l_path)) + touch(l_path) + @test !satisfied(l; verbose=true, platform=foreign_platform) + end + end +end + +@testset "Packaging" begin + # Clear out previous build products + for f in readdir(".") + if !endswith(f, ".tar.gz") || !endswith(f, ".sha256") + continue + end + rm(f; force=true) + end + + # Gotta set this guy up beforehand + tarball_path = nothing + tarball_hash = nothing + + temp_prefix() do prefix + # Create random files + mkpath(bindir(prefix)) + mkpath(libdir(prefix)) + bar_path = joinpath(bindir(prefix), "bar.sh") + open(bar_path, "w") do f + write(f, "#!/bin/sh\n") + write(f, "echo yolo\n") + end + baz_path = joinpath(libdir(prefix), "baz.so") + open(baz_path, "w") do f + write(f, "this is not an actual .so\n") + end + + # Next, package it up as a .tar.gz file + tarball_path, tarball_hash = package(prefix, "./libfoo"; verbose=true) + @test isfile(tarball_path) + + # Check that we are calculating the hash properly + tarball_hash_check = open(tarball_path, "r") do f + bytes2hex(sha256(f)) + end + @test tarball_hash_check == tarball_hash + + # Test that packaging into a file that already exists fails + @test_throws ErrorException package(prefix, "./libfoo") + end + + # Test that we can inspect the contents of the tarball + contents = list_tarball_files(tarball_path) + const libdir_name = iswindows() ? "bin" : "lib" + @test joinpath("bin", "bar.sh") in contents + @test joinpath(libdir_name, "baz.so") in contents + + # Install it within a new Prefix + temp_prefix() do prefix + # Install the thing + @test install(tarball_path, tarball_hash; prefix=prefix, verbose=true) + + # Ensure we can use it + bar_path = joinpath(bindir(prefix), "bar.sh") + baz_path = joinpath(libdir(prefix), "baz.so") + + # Ask for the manifest that contains these files to ensure it works + manifest_path = manifest_for_file(bar_path; prefix=prefix) + @test isfile(manifest_path) + manifest_path = manifest_for_file(baz_path; prefix=prefix) + @test isfile(manifest_path) + + # Ensure that manifest_for_file doesn't work on nonexistant files + @test_throws ErrorException manifest_for_file("nonexistant"; prefix=prefix) + + # Ensure that manifest_for_file doesn't work on orphan files + orphan_path = joinpath(bindir(prefix), "orphan_file") + touch(orphan_path) + @test isfile(orphan_path) + @test_throws ErrorException manifest_for_file(orphan_path; prefix=prefix) + + # Ensure that trying to install again over our existing files is an error + @test_throws ErrorException install(tarball_path, tarball_path; prefix=prefix) + + # Ensure we can uninstall this tarball + @test uninstall(manifest_path; verbose=true) + @test !isfile(bar_path) + @test !isfile(baz_path) + @test !isfile(manifest_path) + + # Ensure that we don't want to install tarballs from other platforms + cp(tarball_path, "./libfoo_juliaos64.tar.gz") + @test_throws ArgumentError install("./libfoo_juliaos64.tar.gz", tarball_hash; prefix=prefix) + rm("./libfoo_juliaos64.tar.gz"; force=true) + + # Ensure that hash mismatches throw errors + fake_hash = reverse(tarball_hash) + @test_throws ErrorException install(tarball_path, fake_hash; prefix=prefix) + end + + rm(tarball_path; force=true) + rm("$(tarball_path).sha256"; force=true) +end + +@testset "Verification" begin + temp_prefix() do prefix + foo_path = joinpath(prefix, "foo") + open(foo_path, "w") do file + write(file, "test") + end + foo_hash = bytes2hex(sha256("test")) + + # Check that verifying with the right hash works + info("This should say; no hash cache found") + @test verify(foo_path, foo_hash; verbose=true) + + # Check that it created a .sha256 file + @test isfile("$(foo_path).sha256") + + # Check that it verifies the second time around properly + info("This should say; hash cache is consistent") + @test verify(foo_path, foo_hash; verbose=true) + + # Sleep for imprecise filesystems + sleep(2) + + # Get coverage of messing with different parts of the verification chain + touch(foo_path) + info("This should say; file has been modified") + @test verify(foo_path, foo_hash; verbose=true) + @test_throws ErrorException verify(foo_path, "0"^32; verbose=true) + touch(foo_path) + @test verify(foo_path, foo_hash; verbose=true) + open("$(foo_path).sha256", "w") do file + write(file, "this is not the right hash") + end + info("This should say; hash has changed") + @test verify(foo_path, foo_hash; verbose=true) + end +end + +# Use `build_libfoo_tarball.jl` in the BinDeps2.jl repository to generate more of these +const bin_prefix = "https://github.com/staticfloat/small_bin/raw/74b7fd81e3fbc8963b14b0ebbe5421e270d8bdcf" +const libfoo_downloads = Dict( + Linux(:i686) => ("$bin_prefix/libfoo.i686-linux-gnu.tar.gz", "1398353bcbbd88338189ece9c1d6e7c508df120bc4f93afbaed362a9f91358ff"), + Linux(:x86_64) => ("$bin_prefix/libfoo.x86_64-linux-gnu.tar.gz", "b9d57a6e032a56b1f8641771fa707523caa72f1a2e322ab99eeeb011f13ad9f3"), + Linux(:aarch64) => ("$bin_prefix/libfoo.aarch64-linux-gnu.tar.gz", "19d9da0e6e7fb506bf4889eb91e936fda43493a39cd4fd7bd5d65506cede6f95"), + Linux(:armv7l) => ("$bin_prefix/libfoo.arm-linux-gnueabihf.tar.gz", "8e33c1a0e091e6e5b8fcb902e5d45329791bb57763ee9cbcde49c1ec9bd8532a"), + Linux(:ppc64le) => ("$bin_prefix/libfoo.powerpc64le-linux-gnu.tar.gz", "b48a64d48be994ec99b1a9fb60e0af7f4415a57596518cb90a340987b79fad81"), + MacOS() => ("$bin_prefix/libfoo.x86_64-apple-darwin14.tar.gz", "661b71edb433ab334b0fef70db3b5c45d35f2b3bee0d244f54875f1ec899c10f"), + Windows(:i686) => ("$bin_prefix/libfoo.i686-w64-mingw32.tar.gz", "3d4a8d4bf0169007a42d809a1d560083635b1540a1bc4a42108841dcb6d2aaea"), + Windows(:x86_64) => ("$bin_prefix/libfoo.x86_64-w64-mingw32.tar.gz", "2d08fbc9a534cd021f36b6bbe86ddabb2dafbedeb589581240aa4a8c5b896055"), +) + +# Test manually downloading and using libfoo +@testset "Downloading" begin + temp_prefix() do prefix + if !haskey(libfoo_downloads, platform) + warn("Platform $platform does not have a libfoo download, skipping download tests") + else + # Test a good download works + url, hash = libfoo_downloads[platform] + @test install(url, hash; prefix=prefix, verbose=true) + + fooifier = ExecutableProduct(prefix, "fooifier") + libfoo = LibraryProduct(prefix, "libfoo") + + @test satisfied(fooifier; verbose=true) + @test satisfied(libfoo; verbose=true) + + fooifier_path = locate(fooifier) + libfoo_path = locate(libfoo) + + + # We know that foo(a, b) returns 2*a^2 - b + result = 2*2.2^2 - 1.1 + + # Test that we can invoke fooifier + @test !success(`$fooifier_path`) + @test success(`$fooifier_path 1.5 2.0`) + @test parse(Float64,readchomp(`$fooifier_path 2.2 1.1`)) ≈ result + + # Test that we can dlopen() libfoo and invoke it directly + hdl = Libdl.dlopen_e(libfoo_path) + @test hdl != C_NULL + foo = Libdl.dlsym_e(hdl, :foo) + @test foo != C_NULL + @test ccall(foo, Cdouble, (Cdouble, Cdouble), 2.2, 1.1) ≈ result + Libdl.dlclose(hdl) + + # Test uninstallation + @test uninstall(manifest_from_url(url; prefix=prefix); verbose=true) + + # Test that download_verify_unpack() works + download_verify_unpack(url, hash, prefix.path) + @test satisfied(fooifier; verbose=true) + @test satisfied(libfoo; verbose=true) + + # Test that download_verify twice in a row works, and that mucking + # with the file causes a redownload if `force` is true: + tmpfile = joinpath(prefix, "libfoo.tar.gz") + @test download_verify(url, hash, tmpfile; verbose=true) + @test download_verify(url, hash, tmpfile; verbose=true) + + # We sleep for at least a second here so that filesystems with low + # precision in their mtime implementations don't get confused + sleep(2) + + open(tmpfile, "w") do f + write(f, "hehehehe") + end + + @test_throws ErrorException download_verify(url, hash, tmpfile; verbose=true) + @test download_verify(url, hash, tmpfile; verbose=true, force=true) + + end + + # Test a bad download fails properly + bad_url = "http://localhost:1/this_is_not_a_file.x86_64-linux-gnu.tar.gz" + bad_hash = "0"^64 + @test_throws ErrorException install(bad_url, bad_hash; prefix=prefix, verbose=true) + end +end + +# Test the same as the above, but using BinaryPackage abstraction +@testset "BinaryPackage" begin + temp_prefix() do prefix + if !haskey(libfoo_downloads, platform) + warn("Platform $platform does not have a libfoo download, skipping download tests") + else + url, hash = libfoo_downloads[platform] + fooifier = ExecutableProduct(prefix, "fooifier") + libfoo = LibraryProduct(prefix, "libfoo") + binpkg = BinaryPackage(url, hash, platform, [fooifier, libfoo]) + + # Test installation and uninstallation + @test install(binpkg; prefix=prefix, verbose=true) + @test uninstall(binpkg; prefix=prefix, verbose=true) + + # Now test that we can uninstall even if we don't have the right `url`: + @test install(binpkg; prefix=prefix, verbose=true) + binpkg2 = BinaryPackage("fakeurl", hash, platform, [fooifier, libfoo]) + @test uninstall(binpkg2; prefix=prefix, verbose=true) + + # Test that we can't uninstall from the wrong prefix + temp_prefix() do wrong_prefix + @test_throws ErrorException uninstall(binpkg; prefix=wrong_prefix, verbose=true) + end + + # Test that we can't guess a manifest path from a package with the wrong + # url and no products: + binpkg3 = BinaryPackage("fakeurl", hash, platform) + @test_throws ErrorException uninstall(binpkg3; prefix=prefix, verbose=true) + end + end +end + +# Test installation and failure modes of the bundled LibFoo.jl +@testset "LibFoo.jl" begin + const color="--color=$(Base.have_color ? "yes" : "no")" + cd("LibFoo.jl") do + rm("./deps/deps.jl"; force=true) + rm("./deps/usr"; force=true, recursive=true) + + # Install `libfoo` and build the `deps.jl` file for `LibFoo.jl` + run(`$(Base.julia_cmd()) $(color) deps/build.jl`) + + # Ensure `deps.jl` was actually created + @test isfile("deps/deps.jl") + end + + cd("LibFoo.jl/test") do + # Now, run `LibFoo.jl`'s tests, adding `LibFoo.jl` to the LOAD_PATH + # so that the tests can pick up the `LibFoo` module + withenv("JULIA_LOAD_PATH"=>joinpath(pwd(),"..","src")) do + run(`$(Base.julia_cmd()) $(color) runtests.jl`) + end + end +end diff --git a/stdlib/Pkg3/ext/TOML/.gitignore b/stdlib/Pkg3/ext/TOML/.gitignore new file mode 100644 index 0000000000000..8c960ec808d9e --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/.gitignore @@ -0,0 +1,3 @@ +*.jl.cov +*.jl.*.cov +*.jl.mem diff --git a/stdlib/Pkg3/ext/TOML/.travis.yml b/stdlib/Pkg3/ext/TOML/.travis.yml new file mode 100644 index 0000000000000..6902f1f2db0c3 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/.travis.yml @@ -0,0 +1,15 @@ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false +script: + - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi + - julia -e 'Pkg.clone(pwd()); Pkg.test("TOML"; coverage=true)' +after_success: + # push coverage results to Coveralls + - julia -e 'cd(Pkg.dir("TOML")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' diff --git a/stdlib/Pkg3/ext/TOML/LICENSE.md b/stdlib/Pkg3/ext/TOML/LICENSE.md new file mode 100644 index 0000000000000..b584f17c7548d --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/LICENSE.md @@ -0,0 +1,22 @@ +The TOML.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2016: Art Wild. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/ext/TOML/README.md b/stdlib/Pkg3/ext/TOML/README.md new file mode 100644 index 0000000000000..21cf8bb4a8bb0 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/README.md @@ -0,0 +1,37 @@ +# TOML.jl + +A [TOML v0.4.0](https://github.com/toml-lang/toml) parser for Julia. + +[![Build Status](https://travis-ci.org/wildart/TOML.jl.svg?branch=master)](https://travis-ci.org/wildart/TOML.jl) +[![Coverage Status](https://coveralls.io/repos/wildart/TOML.jl/badge.svg?branch=master&service=github)](https://coveralls.io/github/wildart/TOML.jl?branch=master) +[![Build status](https://ci.appveyor.com/api/projects/status/quhhe2m3e9vbim6u?svg=true)](https://ci.appveyor.com/project/wildart/toml-jl) + +**Installation**: `julia> Pkg.clone("https://github.com/wildart/TOML.jl.git")` + +## Basic Usage + +```julia + +julia> using TOML + +julia> TOML.parse(""" + name = "value" + """) +Dict{String,Any} with 1 entry: + "name" => "value" + +julia> TOML.parsefile("etc/example.toml") +``` + +## Documentation +```julia +TOML.print(io::IO, a::Associative) +``` +Writes a TOML representation to the supplied `IO`. + +```julia +TOML.parse(s::AbstractString) +TOML.parse(io::IO) +TOML.parsefile(filename::AbstractString) +``` +Parses a TOML `AbstractString` or `IO` stream into a nested `Array`or `Dict`. diff --git a/stdlib/Pkg3/ext/TOML/REQUIRE b/stdlib/Pkg3/ext/TOML/REQUIRE new file mode 100644 index 0000000000000..137767a42af4a --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/REQUIRE @@ -0,0 +1 @@ +julia 0.6 diff --git a/stdlib/Pkg3/ext/TOML/appveyor.yml b/stdlib/Pkg3/ext/TOML/appveyor.yml new file mode 100644 index 0000000000000..88fd4e37fee68 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/appveyor.yml @@ -0,0 +1,33 @@ +environment: + matrix: + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"TOML\") + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"TOML\")" diff --git a/stdlib/Pkg3/ext/TOML/src/TOML.jl b/stdlib/Pkg3/ext/TOML/src/TOML.jl new file mode 100644 index 0000000000000..5fbba735b54e4 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/TOML.jl @@ -0,0 +1,46 @@ +module TOML + using Dates + + include("parser.jl") + include("print.jl") + + "Convert `TOML.Table` to `Dict{String,Any}`" + function table2dict(tbl::Union{Nothing,Table}) + tbl == nothing && return Dict{String,Any}() + return table2dict(get(tbl)) + end + + function table2dict(tbl::Table) + ret = Dict{String,Any}() + for (k,v) in tbl.values + if isa(v, Table) + ret[k] = table2dict(v) + elseif isa(v, Array) && length(v)>0 && isa(v[1], Table) + ret[k] = [table2dict(e) for e in v] + else + ret[k] = v + end + end + return ret + end + + "Parse IO input and return result as dictionary." + function parse(io::IO) + parser = Parser(io) + res = parse(parser) + length(parser.errors)>0 && throw(CompositeException(parser.errors)) + return table2dict(res) + end + + "Parse string" + function parse(str::AbstractString) + io = IOBuffer(str) + res = parse(io) + close(io) + return res + end + + "Parse file" + parsefile(filename::AbstractString) = open(parse, filename, "r") + +end diff --git a/stdlib/Pkg3/ext/TOML/src/parser.jl b/stdlib/Pkg3/ext/TOML/src/parser.jl new file mode 100644 index 0000000000000..692a4a0b9bd7f --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/parser.jl @@ -0,0 +1,896 @@ +NONE() = nothing +NONE(::Type{T}) where {T} = nothing +SOME(v::T) where {T} = v +isnull(x) = x === nothing +get(x) = (@assert !isnull(x); x) + + +"TOML Table" +mutable struct Table + values::Dict{String,Any} + defined::Bool +end + +Table(defined::Bool) = Table(Dict{String,Any}(), defined) +function Base.show(io::IO, tbl::Table, level::Int=1) + Base.print(io, "T($(tbl.defined)){\n") + for (k,v) in tbl.values + Base.print(io, "\t"^level, k, " => ") + if isa(v, Table) + Base.show(io, v, level+1) + Base.print(io, "\n") + elseif isa(v, Vector{Table}) + Base.print(io, "[\n") + for i in 1:length(v) + Base.print(io, "\t"^level, " ") + Base.show(io, v[i], level+1) + i != length(v) && Base.print(io, ",\n") + end + Base.print("\t"^level, "]\n") + else + Base.print(io, " $v\n") + end + end + Base.print(io, "\t"^(level-1), "}\n") +end +Base.getindex(tbl::Table, key::AbstractString) = tbl.values[key] +Base.haskey(tbl::Table, key::AbstractString) = haskey(tbl.values ,key) + +"Parser error exception" +mutable struct ParserError <: Exception + lo::Int + hi::Int + msg::String +end + +"TOML Parser" +mutable struct Parser + input::IO + errors::Vector{ParserError} + + Parser(input::IO) = new(input, ParserError[]) +end +Parser(input::String) = Parser(IOBuffer(input)) +Base.error(p::Parser, l, h, msg) = push!(p.errors, ParserError(l, h, msg)) +Base.eof(p::Parser) = eof(p.input) +Base.position(p::Parser) = Int(position(p.input))+1 +Base.read(p::Parser) = read(p.input, Char) + +"Rewind parser input on `n` characters." +function rewind(p::Parser, n=1) + pos = position(p.input) + pos == 0 && return 0 + skip(p.input, -n) + return Int(position(p.input)) +end + +"Converts an offset to a line and a column in the original source." +function linecol(p::Parser, offset::Int) + pos = position(p) + seekstart(p.input) + line = 0 + cur = 1 + for (i,l) in enumerate(eachline(p.input, chomp=false)) + if cur + length(l) > offset + return (i, offset - cur + 1) + end + cur += length(l) + line+=1 + end + seek(p.input, pos) + return (line, 0) +end + +"Determine next position in parser input" +function nextpos(p::Parser) + pos = position(p) + mark(p.input) + skip(p.input, 1) + npos = eof(p) ? pos : pos+1 + reset(p.input) + return npos +end + +"Peeks ahead `n` characters" +function peek(p::Parser) #, i::Int=0 + eof(p) && return nothing + res = Base.peek(p.input) + res == -1 && return nothing + return Char(res) +end + +"Returns `true` and consumes the next character if it matches `ch`, otherwise do nothing and return `false`" +function consume(p::Parser, ch::Char) + eof(p) && return false + mark(p.input) + if read(p) == ch + unmark(p.input) + return true + else + reset(p.input) + return false + end +end + +function expect(p::Parser, ch::Char) + consume(p, ch) && return true + lo = position(p) + if eof(p) + error(p, lo, lo, "expected `$ch`, but found EOF") + else + v = peek(p) + mark(p.input) + c = read(p) + error(p, lo, lo+1, "expected `$ch`, but found `$c`") + reset(p.input) + end + return false +end + +"Consumes whitespace ('\t' and ' ') until another character (or EOF) is reached. Returns `true` if any whitespace was consumed" +function whitespace(p::Parser) + ret = false + while !eof(p) + c = read(p) + if c == '\t' || c == ' ' + ret = true + else + rewind(p) + break + end + end + return ret +end + +"Consumes the rest of the line after a comment character" +function comment(p::Parser) + !consume(p, '#') && return false + while !eof(p) + ch = read(p) + ch == '\n' && break + end + return true +end + +"Consumes a newline if one is next" +function newline(p::Parser) + if !eof(p) + n = 1 + ch = read(p.input, UInt8) + ch == 0x0a && return true + if ch == 0x0d + if !eof(p) + nch = read(p.input, UInt8) + nch == 0x0a && return true + n+=1 + end + end + rewind(p, n) + end + return false +end + +"Consume ignored symbols" +function ignore(p::Parser) + while true + whitespace(p) + !newline(p) && !comment(p) && break + end +end + +"Parse a single key name starting at next position" +function keyname(p) + s = nextpos(p) + key = if consume(p, '"') + basicstring(p, s, false) + elseif consume(p, '\'') + literalstring(p, s, false) + else + ret = Char[] + while !eof(p) + ch = read(p) + if 'a' <= ch <= 'z' || + 'A' <= ch <= 'Z' || + isdigit(ch) || + ch == '_' || + ch == '-' + push!(ret, ch) + else + rewind(p) + break + end + end + SOME(String(ret)) + end + + if !isnull(key) && isempty(get(key)) + error(p, s, s, "expected a key but found an empty string") + key = NONE(String) + end + return key +end + +"Parse a path into a vector of paths" +function lookup(p::Parser) + ks = String[] + eof(p) && return SOME(ks) + while true + whitespace(p) + s = keyname(p) + if !isnull(s) + push!(ks, get(s)) + else + s = integer(p, 0) + if !isnull(s) + push!(ks, get(s)) + else + return NONE() + end + end + whitespace(p) + !expect(p, '.') && return SOME(ks) + end +end + +"Parses a key-value separator" +function separator(p::Parser) + whitespace(p) + !expect(p, '=') && return false + whitespace(p) + return true +end + +"Insert key-value pair to table, if duplicate key found reports error" +function insertpair(p::Parser, tbl::Table, k, v, st) + if haskey(tbl, k) + error(p, st, st+length(k), "duplicate key `$k`") + else + tbl.values[k] = v + end +end + +"Parses integer with leading zeros and sign" +function integer(p::Parser, st::Int, allow_leading_zeros::Bool=false, allow_sign::Bool=false) + s = Char[] + if allow_sign + if consume(p, '-') + push!(s, '-') + elseif consume(p, '+') + push!(s, '+') + end + end + nch = peek(p) + if isnull(nch) + pos = nextpos(p) + error(p, pos, pos, "expected start of a numeric literal") + return NONE(String) + else + ch = get(nch) + if isdigit(ch) + c = read(p) + if c == '0' && !allow_leading_zeros + push!(s, '0') + nch = peek(p) + if !isnull(nch) + ch = get(nch) + if isdigit(ch) + error(p, st, position(p), "leading zeroes are not allowed") + return NONE(String) + end + end + elseif isdigit(c) + push!(s, c) + end + else + # non-digit + error(p, st, position(p), "expected a digit, found `$ch`") + return NONE(String) + end + end + + underscore = false + while !eof(p) + ch = read(p) + if isdigit(ch) + push!(s, ch) + underscore = false + elseif ch == '_' && !underscore + underscore = true + else + rewind(p) + break + end + end + if underscore + pos = nextpos(p) + error(p, pos, pos, "numeral cannot end with an underscore") + NONE(String) + else + length(s) == 0 ? NONE(String) : SOME(String(s)) + end +end + +"Parses boolean" +function boolean(p::Parser, st::Int) + ch = '\x00' + + i = 0 + word = "true" + while !eof(p) && i0 + msec = Base.parse(Int, String(fsec)) + end + end + + # time zone + tzhour=0 + tzminute=0 + tzplus = true + tzminus = false + tzsign = true + if valid && !consume(p, 'Z') + tzplus = consume(p, '+') + if !tzplus + tzminus = consume(p, '-') + end + valid = valid && (tzplus || tzminus) + tzhour, valid = parsetwodigits(p, valid) + valid = valid && consume(p, ':') + tzminute, valid = parsetwodigits(p, valid) + + tzsign = tzplus + end + + if valid + dt = DateTime(year, month, day, + hour + (tzsign ? tzhour : -tzhour), + minute + (tzsign ? tzminute : -tzminute), + second, msec) + return SOME(dt) + else + error(p, st, position(p), "malformed date literal") + return NONE() + end +end + +"Parses a single or multi-line string" +function basicstring(p::Parser, st::Int) + !expect(p, '"') && return NONE(String) + + multiline = false + + if consume(p, '"') + if consume(p, '"') + multiline = true + newline(p) + else + return SOME("") + end + end + + basicstring(p, st, multiline) +end + +"Finish parsing a basic string after the opening quote has been seen" +function basicstring(p::Parser, st::Int, multiline::Bool) + ret = Char[] + while true + while multiline && newline(p) + push!(ret, '\n') + end + pos = position(p) + if eof(p) + error(p, st, pos, "unterminated string literal") + return NONE(String) + else + ch = read(p) + if ch == '"' + if multiline + if !consume(p, '"') + push!(ret, '"') + continue + end + if !consume(p, '"') + push!(ret, '"') + push!(ret, '"') + continue + end + end + return SOME(String(ret)) + elseif ch == '\\' + ec = escape(p, pos, multiline) + !isnull(ec) && push!(ret, get(ec)) + elseif ch < '\x1f' + error(p, st, pos, "control character `$ch` must be escaped") + else + push!(ret, ch) + end + end + end +end + +"Reads character(s) after `\\` and transforms them into proper character" +function escape(p::Parser, st::Int, multiline::Bool) + if multiline && newline(p) + while whitespace(p) || newline(p) end + return NONE() + end + pos = position(p) + if eof(p) + error(p, st, pos, "unterminated escape sequence") + return NONE() + else + ch = read(p) + if ch == 'b' + SOME('\b') + elseif ch == 't' + SOME('\t') + elseif ch == 'n' + SOME('\n') + elseif ch == 'f' + SOME('\f') + elseif ch == 'r' + SOME('\r') + elseif ch == '"' + SOME('\"') + elseif ch == '\\' + SOME('\\') + elseif ch == 'u' || ch == 'U' + len = ch == 'u' ? 4 : 8 + ucstr = ch == 'u' ? "\\u" : "\\U" + snum = String(read(p.input, len)) + try + if length(snum) < len + error(p, st, st+len, "expected $len hex digits after a `$ch` escape") + thorw() + end + if !all(isxdigit, snum) + error(p, st, st+len, "unknown string escape: `$snum`") + thorw() + end + c = unescape_string(ucstr * snum)[1] + SOME(c) + catch + error(p, st, st+len, "codepoint `$snum` is not a valid unicode codepoint") + rewind(p, len) + NONE() + end + else + error(p, st, position(p), "unknown string escape: `$("\\x"*hex(ch,2))`") + NONE() + end + end +end + +"Parses a single or multi-line literal string" +function literalstring(p::Parser, st::Int) + !expect(p, '\'') && return NONE(String) + + multiline = false + + if consume(p, '\'') + if consume(p, '\'') + multiline = true + newline(p) + else + return SOME("") + end + end + + literalstring(p, st, multiline) +end + +function literalstring(p::Parser, st::Int, multiline::Bool) + ret = UInt8[] + while true + if !multiline && newline(p) + npos = nextpos(p) + error(p, st, npos, "literal strings cannot contain newlines") + return NONE(String) + end + if eof(p) + error(p, st, position(p), "unterminated string literal") + return NONE(String) + else + ch = read(p.input, UInt8) + if ch == 0x27 + if multiline + if !consume(p, '\'') + push!(ret, 0x27) + continue + end + if !consume(p, '\'') + push!(ret, 0x27) + push!(ret, 0x27) + continue + end + end + return SOME(String(ret)) + else + push!(ret, ch) + end + end + end +end + +function array(p::Parser, st::Int) + !expect(p, '[') && return NONE() + ret = Any[] + rettype = Any + expected = Any + while true + + # Break out early if we see the closing bracket + ignore(p) + consume(p, ']') && return SOME(ret) + + # Attempt to parse a value, triggering an error if it's the wrong type. + pstart = nextpos(p) + npvalue = value(p) + isnull(npvalue) && return NONE() + pvalue = get(npvalue) + + pend = nextpos(p) + valtype = isa(pvalue, Array) ? Array : typeof(pvalue) + expected = rettype === Any ? valtype : expected + if valtype != expected + error(p, pstart, pend, "expected type `$expected`, found type `$valtype`") + else + rettype = expected + push!(ret, pvalue) + end + + # Look for a comma. If we don't find one we're done + ignore(p) + !consume(p, ',') && break + end + ignore(p) + !expect(p, ']') && return NONE() + return SOME(convert(Vector{rettype}, ret)) +end + +function inlinetable(p::Parser, st::Int) + !expect(p, '{') && return NONE() + whitespace(p) + + ret = Table(true) + consume(p, '}') && return SOME(ret) + + while true + npos = nextpos(p) + k = keyname(p) + isnull(k) && return NONE() + !separator(p) && return NONE() + v = value(p) + isnull(v) && return NONE() + insertpair(p, ret, get(k), get(v), npos) + + whitespace(p) + consume(p, '}') && break + !expect(p, ',') && return NONE() + whitespace(p) + end + + return SOME(ret) +end + +"Parses a value" +function value(p::Parser) + whitespace(p) + c = peek(p) + isnull(c) && return NONE() + ch = get(c) + pos = position(p)+1 + if ch == '"' + return basicstring(p, pos) + elseif ch == '\'' + return literalstring(p, pos) + elseif ch == 't' || ch == 'f' + return boolean(p, pos) + elseif ch == '[' + return array(p, pos) + elseif ch == '{' + return inlinetable(p, pos) + elseif ch == '-' || ch == '+' || isdigit(ch) + return numdatetime(p, pos) + else + error(p, pos, pos+1, "expected a value") + return NONE() + end +end + +"Parses the key-values and fills the given dictionary. Returns true in case of success and false in case of error." +function keyvalues(p::Parser, tbl::Table) + while true + whitespace(p) + newline(p) && continue + comment(p) && continue + nc = peek(p) + isnull(nc) && break + get(nc) == '[' && break + + # get key + klo = nextpos(p) + k = keyname(p) + isnull(k) && return false + + # skip kv separator + !separator(p) && return false + + # get value + v = value(p) + isnull(v) && return false + vend = nextpos(p) + + # insert kv into result table + insertpair(p, tbl, get(k), get(v), klo) + + whitespace(p) + if !comment(p) && !newline(p) + pc = peek(p) + isnull(pc) && return true + error(p, klo, vend, "expected a newline after a key") + return false + end + end + return true +end + +"Construct nested structures from keys" +function nested(p, into, ks, kstart) + cnode = into + kend = 0 + for k in ks[1:end-1] + kend += length(k)+1 + if !haskey(cnode, k) + cnode.values[k] = Table(false) + cnode = cnode[k] + else + tmp = cnode[k] + if isa(tmp, Table) + cnode = tmp + elseif isa(tmp, Array) + if length(tmp)>0 && typeof(tmp[end]) === Table + cnode = tmp[end] + else + error(p, kstart, kstart+kend, "array `$k` does not contain tables") + return NONE(), kend + end + else + error(p, kstart, kstart+kend, "key `$k` was not previously a table") + return NONE(), kend + end + end + end + return SOME(cnode), kend +end + +function addtable(p::Parser, into::Table, ks::Vector{String}, tbl::Table, kstart) + + cnode, kend = nested(p, into, ks, kstart) + isnull(cnode) && return + cur = get(cnode) + + # fill last level with values + tkey = ks[end] + if haskey(cur, tkey) + ctbl = cur[tkey] + if isa(ctbl, Table) + ctbl.defined && error(p, kstart, kstart+kend+length(tkey), "redefinition of table `$tkey`") + + for (k,v) in tbl.values + insertpair(p, ctbl, k, v, kstart) + end + else + error(p, kstart, kstart+kend+length(tkey), "key `$tkey` was not previously a table") + end + else + cur.values[tkey] = tbl + end + +end + +function addarray(p::Parser, into::Table, ks::Vector{String}, val, kstart) + + cnode, kend = nested(p, into, ks, kstart) + isnull(cnode) && return + cur = get(cnode) + + akey = ks[end] + if haskey(cur, akey) + vec = cur[akey] + if isa(vec, Array) + if isa(val, eltype(vec)) + push!(vec, val) + else + error(p, kstart, kstart+kend+length(akey), "expected type `$(typeof(val))`, found type `$(eltype(vec))`") + end + else + error(p, kstart, kstart+kend+length(akey), "key `$akey` was previously not an array") + end + else + cur.values[akey] = Any[val] + end + +end + + +"""Executes the parser, parsing the string contained within. + +This function will return the `Table` instance if parsing is successful, or it will return `nothing` if any parse error or invalid TOML error occurs. + +If an error occurs, the `errors` field of this parser can be consulted to determine the cause of the parse failure. +""" +function parse(p::Parser) + ret = Table(false) + while !eof(p) + whitespace(p) + newline(p) && continue + comment(p) && continue + + # parse section + if consume(p, '[') + arr = consume(p, '[') + npos = nextpos(p) + + # parse the name of the section + ks = String[] + while true + whitespace(p) + s = keyname(p) + !isnull(s) && push!(ks, get(s)) + whitespace(p) + if consume(p, ']') + arr && !expect(p, ']') && return NONE(Table) + break + end + !expect(p, '.') && return NONE() + end + isempty(ks) && return NONE(Table) + + # build the section + section = Table(true) + !keyvalues(p, section) && return NONE(Table) + if arr + addarray(p, ret, ks, section, npos) + else + addtable(p, ret, ks, section, npos) + end + else + !keyvalues(p, ret) && return NONE(Table) + end + end + + length(p.errors) != 0 && return NONE(Table) + + return SOME(ret) +end diff --git a/stdlib/Pkg3/ext/TOML/src/print.jl b/stdlib/Pkg3/ext/TOML/src/print.jl new file mode 100644 index 0000000000000..efdb78645b235 --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/src/print.jl @@ -0,0 +1,97 @@ +"Identify if character in subset of bare key symbols" +isbare(c::Char) = 'A' <= c <= 'Z' || 'a' <= c <= 'z' || isdigit(c) || c == '-' || c == '_' + +function printkey(io::IO, keys::Vector{String}) + for (i, k) in enumerate(keys) + i != 1 && Base.print(io, ".") + if length(k) == 0 + # empty key + Base.print(io, "\"\"") + elseif !all([isbare(c) for c in k]) + # quoted key + Base.print(io, "\"$(escape_string(k))\"") + else + Base.print(io, k) + end + end +end + +function printvalue(io::IO, value; sorted=false) + if isa(value, AbstractDict) + _print(io, value, sorted=sorted) + elseif isa(value, Array) + Base.print(io, "[") + for (i, x) in enumerate(value) + i != 1 && Base.print(io, ", ") + if isa(x, AbstractDict) + _print(io, x, sorted=sorted) + else + printvalue(io, x, sorted=sorted) + end + end + Base.print(io, "]") + elseif isa(value, AbstractString) + Base.print(io, "\"$(escape_string(value))\"") + elseif isa(value, DateTime) + Base.print(io, Dates.format(value, "YYYY-mm-ddTHH:MM:SS.sssZ")) + else + Base.print(io, value) + end +end + +function _print(io::IO, a::AbstractDict, ks=String[]; sorted=false) + akeys = keys(a) + if sorted + akeys = sort!(collect(akeys)) + end + first_block = true + + for key in akeys + value = a[key] + # skip tables + isa(value, AbstractDict) && continue # skip tables + # skip arrays of tabels + isa(value, Array) && length(value)>0 && isa(value[1], AbstractDict) && continue + + Base.print(io, repeat(" ", max(0, length(ks)-1))) + printkey(io, [key]) + Base.print(io, " = ") # print separator + printvalue(io, value, sorted=sorted) + Base.print(io, "\n") # new line? + first_block = false + end + + indent = repeat(" ", length(ks)) + for key in akeys + value = a[key] + if isa(value, AbstractDict) + # print table + first_block || println(io) + first_block = false + push!(ks, key) + Base.print(io, indent) + Base.print(io,"[") + printkey(io, ks) + Base.print(io,"]\n") + _print(io, value, ks, sorted=sorted) + pop!(ks) + elseif isa(value, Array) && length(value)>0 && isa(value[1], AbstractDict) + # print array of tables + first_block || println(io) + first_block = false + push!(ks, key) + for v in value + Base.print(io, indent) + Base.print(io,"[[") + printkey(io, ks) + Base.print(io,"]]\n") + !isa(v, AbstractDict) && error("array should contain only tables") + _print(io, v, ks, sorted=sorted) + end + pop!(ks) + end + end +end + +print(io::IO, a::AbstractDict; sorted=false) = _print(io, a, sorted=sorted) +print(a::AbstractDict; sorted=false) = print(STDOUT, a, sorted=sorted) diff --git a/stdlib/Pkg3/ext/TOML/test/runtests.jl b/stdlib/Pkg3/ext/TOML/test/runtests.jl new file mode 100644 index 0000000000000..1600e2512426a --- /dev/null +++ b/stdlib/Pkg3/ext/TOML/test/runtests.jl @@ -0,0 +1,671 @@ +using TOML +import TOML: linecol, whitespace, comment, newline, expect, lookup, Parser, parse + +if Base.isdeprecated(Base, :Test) + using Test +else + using Base.Test +end + +macro testval(s, v) + f = "foo = $s" + :( @test get(parse(Parser($f)))["foo"] == $v ) +end + +macro fail(s...) + teststr = s[1] + errstr = "" + debug = false + if length(s) == 2 + if isa(s[2], String) + errstr = s[2] + elseif isa(s[2], Expr) + debug = s[2].args[1] == :debug + end + end + if length(s) == 3 + errstr = s[2] + debug = s[3].args[1] == :debug + end + + # macro vars + pvar = :pv + ppvar = :ppv + + # debuging report + dbgexp = if debug + quote + println("\nTEST FAIL: ", escape_string($teststr)) + if length($pvar.errors) > 0 + println("ERRORS:") + for e in $pvar.errors + println(e) + end + end + if !isnull($ppvar) + println("RESULT:") + println(get($ppvar)) + end + end + else + :() + end + + # error for comparison + errtsts = if !isempty(errstr) + quote + @test length($pvar.errors)>0 + @test findlast(m->m==$errstr, map(e->e.msg, $pvar.errors)) != 0 + end + else + :() + end + + quote + local $pvar = Parser($teststr) + local $ppvar = parse($pvar) + $dbgexp + $errtsts + @test isnull($ppvar) + end +end + +macro success(s...) + teststr = s[1] + debug = false + if length(s) == 2 && isa(s[2], Expr) + debug = s[2].args[1] == :debug + end + + # macro vars + pvar = :pv + ppvar = :ppv + + # debuging report + dbgexp = if debug + quote + println("\nTEST SUCCESS: ", escape_string($teststr)) + if length($pvar.errors) > 0 + println("ERRORS:") + for e in $pvar.errors + println(e) + end + end + if !isnull($ppvar) + println("RESULT:") + println(get($ppvar)) + end + end + else + :() + end + + quote + local $pvar = Parser($teststr) + local $ppvar = parse($pvar) + $dbgexp + @test !isnull($ppvar) + end +end + +@testset "TOML parser" begin + + @testset "Parser internal functions" begin + test = """ + #[test]\r + [test] + foo = "bar" +""" + p = Parser(test) + @test whitespace(p) + @test position(p) == 4 + @test comment(p) + @test position(p) == 13 + @test whitespace(p) + @test position(p) == 16 + @test !expect(p, 'a') + @test expect(p, '[') + @test position(p) == 17 + end + + + @testset "Lookups" begin + p = Parser("""hello."world\\t".a.0.'escaped'.value""") + @testset for (p, s) in zip(get(lookup(p)), ["hello"; "world\t"; "a"; "0"; "escaped"; "value"]) + @test p == s + end + + p = Parser("") + @test get(lookup(p)) == String[] + + p = Parser("value") + @test get(lookup(p)) == String["value"] + + p = Parser("\"\"") + #TODO: @test get(lookup(p)) == String[""] + + end + + @testset "New line" begin + @success(""" +[project.A]\r +name = \"splay2\"\r +\r +[project]\r +\r +name = \"splay\"\r +version = \"0.1.0\"\r +authors = [\"alex@crichton.co\"]\r +\r +[[lib]]\r +\r +path = \"lib.rs\"\r +name = \"splay\"\r +description = \"\"\" +A Rust implementation of a TAR file reader and writer. This library does not\r +currently handle compression, but it is abstract over all I/O readers and\r +writers. Additionally, great lengths are taken to ensure that the entire\r +contents are never required to be entirely resident in memory all at once.\r +\"\"\" +[[lib.aaa]]\r +bbb = \"aaa\"\r +""") + + @fail("\r") + + @fail("a = [ \r ]") + + @fail("a = \"\"\"\r\"\"\"") + + @fail("a = \"\"\"\\ \r \"\"\"") + + @success("a = '''\r'''") + + @success("a = '\r'") + + @fail("a = \"\n\"") + + @fail("a = '\n'") + + p = Parser(" + foo = \"\"\"\\\r\n\"\"\" + bar = \"\"\"\\\r\n \r\n \r\n a\"\"\" + ") + res = get(parse(p)) + @test res["foo"] == "" + @test res["bar"] == "a" + + @fail("0=0r=false", "expected a newline after a key") + + @fail(""" +0=""o=""m=""r=""00="0"q=\"\"\"0\"\"\"e=\"\"\"0\"\"\" +""", "expected a newline after a key") + + @fail(""" +[[0000l0]] +0="0"[[0000l0]] +0="0"[[0000l0]] +0="0"l="0" +""", "expected a newline after a key") + + @fail(""" +0=[0]00=[0,0,0]t=["0","0","0"]s=[1000-00-00T00:00:00Z,2000-00-00T00:00:00Z] +""", "expected a newline after a key") + + @fail(""" +0=0r0=0r=false +""", "expected a newline after a key") + + @fail(""" +0=0r0=0r=falsefal=false +""", "expected a newline after a key") + + end + + @testset "Offset->(Line, Col) " begin + p = Parser("ab\ncde\nf") + @test linecol(p, 0) == (1,0) + @test linecol(p, 1) == (1,1) + @test linecol(p, 4) == (2,1) + @test linecol(p, 5) == (2,2) + @test linecol(p, 8) == (3,1) + @test linecol(p, 9) == (3,0) + end + + @testset "Strings" begin + p = Parser(""" +bar = "\\U00000000" +key1 = "One\\nTwo" +key2 = \"\"\"One\nTwo\"\"\" +key3 = \"\"\" +One +Two\"\"\" + +key4 = "The quick brown fox jumps over the lazy dog." +key5 = \"\"\" +The quick brown \\ + + + fox jumps over \\ + the lazy dog.\"\"\" +key6 = \"\"\"\\ + The quick brown \\ + fox jumps over \\ + the lazy dog.\\ + \"\"\" + +# What you see is what you get. +winpath = 'C:\\Users\\nodejs\\templates' +winpath2 = '\\\\ServerX\\admin\$\\system32\\' +quoted = 'Tom "Dubs" Preston-Werner' +regex = '<\\i\\c*\\s*>' +regex2 = '''I [dw]on't need \\d{2} apples''' +lines = ''' +The first newline is +trimmed in raw strings. + All other whitespace + is preserved. +''' +""") + res = get(parse(p)) + + @test res["bar"] == "\0" + @test res["key1"] == "One\nTwo" + @test res["key2"] == "One\nTwo" + @test res["key3"] == "One\nTwo" + + msg = "The quick brown fox jumps over the lazy dog." + @test res["key4"] == msg + @test res["key5"] == msg + @test res["key6"] == msg + + @test res["winpath"] == "C:\\Users\\nodejs\\templates" + @test res["winpath2"] == "\\\\ServerX\\admin\$\\system32\\" + @test res["quoted"] == """Tom "Dubs" Preston-Werner""" + @test res["regex"] == """<\\i\\c*\\s*>""" + @test res["regex2"] == """I [dw]on't need \\d{2} apples""" + + @test res["lines"] == "The first newline is\ntrimmed in raw strings.\n All other whitespace\n is preserved.\n" + + + @testval("''", "") + @testval("\"\"", "") + @testval("\"\"\"\n\n\n\"\"\"", "\n\n") + + #@fail("foo = \"\\uD800\"") + + @fail("foo = \"\\uxx\"") + @fail("foo = \"\\u\"") + @fail("foo = \"\\") + @fail("foo = '") + + end + + @testset "Numbers" begin + @fail("a = 00") + @fail("a = -00") + @fail("a = +00") + @fail("a = 00.0") + @fail("a = -00.0") + @fail("a = +00.0") + @fail("a = 9223372036854775808") + @fail("a = -9223372036854775809") + + @fail("a = 0.") + @fail("a = 0.e") + @fail("a = 0.E") + @fail("a = 0.0E") + @fail("a = 0.0e") + @fail("a = 0.0e-") + @fail("a = 0.0e+") + @fail("a = 0.0e+00") + + @testval("1.0", 1.0) + @testval("1.0e0", 1.0) + @testval("1.0e+0", 1.0) + @testval("1.0e-0", 1.0) + @testval("1.001e-0", 1.001) + @testval("2e10", 2e10) + @testval("2e+10", 2e10) + @testval("2e-10", 2e-10) + @testval("2_0.0", 20.0) + @testval("2_0.0_0e0_0", 20.0) + @testval("2_0.1_0e1_0", 20.1e10) + + @fail("4") + + @testval("1_0", 10) + @testval("1_0_0", 100) + @testval("1_000", 1000) + @testval("+1_000", 1000) + @testval("-1_000", -1000) + + @fail("foo = 0_") + @fail("foo = 0__0") + @fail("foo = __0") + @fail("foo = 1_0_") + + end + + @testset "Booleans" begin + + @testval("true", true) + @testval("false", false) + + @fail("foo = true2") + @fail("foo = false2") + @fail("foo = t1") + @fail("foo = f1") + + end + + @testset "Datetime" begin + + @testval("2016-09-09T09:09:09Z", DateTime(2016,9,9,9,9,9)) + @testval("2016-09-09T09:09:09.0Z", DateTime(2016,9,9,9,9,9)) + @testval("2016-09-09T09:09:09.0+10:00", DateTime(2016,9,9,19,9,9)) + @testval("2016-09-09T09:09:09.012-02:00", DateTime(2016,9,9,7,9,9,12)) + + @fail("foo = 2016-09-09T09:09:09.Z", "malformed date literal") + @fail("foo = 2016-9-09T09:09:09Z", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09+2:00", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09-2:00", "malformed date literal") + @fail("foo = 2016-09-09T09:09:09Z-2:00", "expected a newline after a key") + + end + + + @testset "Keys" begin + + p = Parser(" + foo = 3 + foo_3 = 3 + foo_-2--3--r23f--4-f2-4 = 3 + _ = 3 + - = 3 + 8 = 8 + \"a\" = 3 + \"!\" = 3 + \"a^b\" = 3 + \"\\\\\\\"\" = 3 + \"character encoding\" = \"value\" + 'ʎǝʞ' = \"value\" + ") + res = get(parse(p)) + + @test haskey(res, "foo") + @test haskey(res, "-") + @test haskey(res, "_") + @test haskey(res, "8") + @test haskey(res, "foo_3") + @test haskey(res, "foo_-2--3--r23f--4-f2-4") + @test haskey(res, "a") + @test haskey(res, "!") + @test haskey(res, "\\\"") + @test haskey(res, "character encoding") + @test haskey(res, "ʎǝʞ") + + @fail("key\n=3") + @fail("key=\n3") + @fail("key|=3") + @fail("\"\"=3") + @fail("=3") + @fail("\"\"|=3") + @fail("\"\n\"|=3") + @fail("\"\r\"|=3") + + end + + + @testset "Tables" begin + + @fail("[]") + @fail("[.]") + @fail("[\"\".\"\"]") + @fail("[a.]") + @fail("[\"\"]") + @fail("[!]") + @fail("[\"\n\"]") + @fail("[a.b]\n[a.\"b\"]") + @fail("[']") + @fail("[''']") + @fail("['''''']") + @fail("['\n']") + @fail("['\r\n']") + + p = Parser(" + [a.\"b\"] + [\"f f\"] + [\"f.f\"] + [\"\\\\\\\"\"] + ['a.a'] + ['\"\"'] + ") + res = get(parse(p)) + @test haskey(res, "a.a") + @test haskey(res, "f f") + @test haskey(res, "f.f") + @test haskey(res, "\\\"") + @test haskey(res, "\"\"") + @test haskey(res["a"], "b") + + + @test haskey(get(parse(Parser("[foo]"))), "foo") + + + @testset "Inline Tables" begin + + @success("a = {}") + @success("a = {b=1}") + @success("a = { b = 1 }") + @success("a = {a=1,b=2}") + @success("a = {a=1,b=2,c={}}") + @fail("a = {a=1,}") + @fail("a = {,}") + @fail("a = {a=1,a=1}") + @fail("a = {\n}") + @fail("a = {") + @success("a = {a=[\n]}") + @success("a = {\"a\"=[\n]}") + @success("a = [\n{},\n{},\n]") + + end + + + @testset "Redefinition" begin + @fail(" + [a] + foo=\"bar\" + [a.b] + foo=\"bar\" + [a] + ", "redefinition of table `a`") + @fail(" + [a] + foo=\"bar\" + b = { foo = \"bar\" } + [a] + ", "redefinition of table `a`") + @success(" + [a.b] + c = {} + [a] + d = 1 + ") + @fail(" + [a.b] + c = 1 + [a] + b = {} + ", "duplicate key `b`") + @fail(" + [a] + b = {} + [a] + ", "redefinition of table `a`") + end + + @testset "Nesting" begin + @fail(" + a = [2] + [[a]] + b = 5 + ", "expected type `TOML.Table`, found type `$(Int)`") + @fail(" + a = 1 + [a.b] + ", "key `a` was not previously a table") + @fail(" + a = [] + [a.b] + ", "array `a` does not contain tables") + @success(" + a = [{}] + [a.b] + ") + @fail(" + a = [] + [[a.b]] + ", "array `a` does not contain tables") + @fail(" + [a] + b = { c = 2, d = {} } + [a.b] + c = 2 + ", "duplicate key `c`") + end + end + + @testset "Arrays" begin + + p = Parser(""" +[[foo]] + #… + [foo.bar] + #… +[[foo]] # ... + #… + [foo.bar] + #... +""") + res = get(parse(p)) + @test haskey(res, "foo") + arr = res["foo"] + @test length(arr) == 2 + @test isa(arr[1], TOML.Table) + @test haskey(arr[1], "bar") + @test haskey(arr[2], "bar") + + p = Parser(""" +[[fruit]] + name = "apple" + [fruit.physical] + color = "red" + shape = "round" + [[fruit.variety]] + name = "red delicious" + [[fruit.variety]] + name = "granny smith" +[[fruit]] + name = "banana" + [[fruit.variety]] + name = "plantain" +""") + res = get(parse(p)) + @test haskey(res, "fruit") + fruit = res["fruit"] + @test length(fruit) == 2 + @test isa(fruit[1], TOML.Table) + apple = fruit[1] + banana = fruit[2] + + @test haskey(apple, "name") + @test apple["name"] == "apple" + @test haskey(apple, "physical") + @test apple["physical"]["color"] == "red" + @test apple["physical"]["shape"] == "round" + @test apple["variety"][1]["name"] == "red delicious" + @test apple["variety"][2]["name"] == "granny smith" + + @test haskey(banana, "name") + @test banana["name"] == "banana" + @test banana["variety"][1]["name"] == "plantain" + + res = TOML.parse(""" +[[products]] +name = "Hammer" +sku = 738594937 + +[[products]] + +[[products]] +name = "Nail" +sku = 284758393 +color = "gray" +""") + @test haskey(res, "products") + products = res["products"] + @test isa(products, Array) + @test length(products) == 3 + @test products[1]["name"] == "Hammer" + @test products[1]["sku"] == 738594937 + @test length(products[2]) == 0 + @test products[3]["name"] == "Nail" + @test products[3]["sku"] == 284758393 + @test products[3]["color"] == "gray" + + @fail("""array = [ + # "This might most likely happen in multiline arrays", + # Like here, + # "or here, + # and here" + # ] End of array comment, forgot the # + """) + end + +end + +@testset "TOML printer" begin + res1 = TOML.parse(""" +title = "TOML Example" +[owner] +bio = \"\"\"GitHub Cofounder & CEO +Likes tater tots and beer.\"\"\" +dob = 1979-05-27T07:32:00Z # First class dates? Why not? + +[database] +server = "192.168.1.1" +ports = [ 8001, 8001, 8002 ] +enabled = true + +[servers] + + # You can indent as you please. Tabs or spaces. TOML don't care. + [servers.alpha] + ip = "10.0.0.1" + dc = "eqdc10" + + [servers.beta] + ip = "10.0.0.2" + dc = "eqdc10" + country = "中国" # This should be parsed as UTF-8 + +[clients] +data = [ ["gamma", "delta"], [1, 2] ] # just an update to make sure parsers support it + + [[products]] + name = "Hammer" + sku = 738594937 + + [[products]] + name = "Nail" + sku = 284758393 + color = "gray" +""") + io = IOBuffer() + TOML.print(io, res1) + seekstart(io) + res2 = TOML.parse(io) + @test res1 == res2 + +end diff --git a/stdlib/Pkg3/ext/TerminalMenus/.gitignore b/stdlib/Pkg3/ext/TerminalMenus/.gitignore new file mode 100644 index 0000000000000..cba1e08692383 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/.gitignore @@ -0,0 +1,5 @@ +*.jl.cov +*.jl.*.cov +*.jl.mem +*.o +*.d diff --git a/stdlib/Pkg3/ext/TerminalMenus/.travis.yml b/stdlib/Pkg3/ext/TerminalMenus/.travis.yml new file mode 100644 index 0000000000000..6d6b8101aa76a --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/.travis.yml @@ -0,0 +1,35 @@ +## Documentation: http://docs.travis-ci.com/user/languages/julia/ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false +git: + depth: 99999999 + +## uncomment the following lines to allow failures on nightly julia +## (tests will run but not make your overall status red) +#matrix: +# allow_failures: +# - julia: nightly + +## uncomment and modify the following lines to manually install system packages +#addons: +# apt: # apt-get for linux +# packages: +# - gfortran +#before_script: # homebrew for mac +# - if [ $TRAVIS_OS_NAME = osx ]; then brew install gcc; fi + +## uncomment the following lines to override the default test script +#script: +# - julia -e 'Pkg.clone(pwd()); Pkg.build("TerminalMenus"); Pkg.test("TerminalMenus"; coverage=true)' +after_success: + # push coverage results to Coveralls + - julia -e 'cd(Pkg.dir("TerminalMenus")); Pkg.add("Coverage"); using Coverage; Coveralls.submit(Coveralls.process_folder())' + # push coverage results to Codecov + - julia -e 'cd(Pkg.dir("TerminalMenus")); Pkg.add("Coverage"); using Coverage; Codecov.submit(Codecov.process_folder())' diff --git a/stdlib/Pkg3/ext/TerminalMenus/LICENSE.md b/stdlib/Pkg3/ext/TerminalMenus/LICENSE.md new file mode 100644 index 0000000000000..a5614bca6fbfb --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/LICENSE.md @@ -0,0 +1,22 @@ +The TerminalMenus.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2017: Nick Paul. +> +> Permission is hereby granted, free of charge, to any person obtaining a copy +> of this software and associated documentation files (the "Software"), to deal +> in the Software without restriction, including without limitation the rights +> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +> copies of the Software, and to permit persons to whom the Software is +> furnished to do so, subject to the following conditions: +> +> The above copyright notice and this permission notice shall be included in all +> copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +> SOFTWARE. +> diff --git a/stdlib/Pkg3/ext/TerminalMenus/README.md b/stdlib/Pkg3/ext/TerminalMenus/README.md new file mode 100644 index 0000000000000..ba670102ec2fb --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/README.md @@ -0,0 +1,170 @@ +# TerminalMenus + +[![Build Status](https://travis-ci.org/nick-paul/TerminalMenus.jl.svg?branch=master)](https://travis-ci.org/nick-paul/TerminalMenus.jl) [![Build status](https://ci.appveyor.com/api/projects/status/weaqa64co5boj87g?svg=true)](https://ci.appveyor.com/project/nick-paul/terminalmenus-jl) + +![Demo](http://npaul.co/files/TerminalMenus-demo.gif) + +TerminalMenus.jl enables small, low-profile interactive menus in the terminal. + + +# Installation + +TerminalMenus requires Julia 0.6. Use `Pkg` to install: + +``` +Pkg.add("TerminalMenus") +``` + + +# Examples + +```julia +using TerminalMenus + +options = ["apple", "orange", "grape", "strawberry", + "blueberry", "peach", "lemon", "lime"] + +``` + +## RadioMenu + +The RadioMenu allows the user to select one option from the list. The `request` +function displays the interactive menu and returns the index of the selected +choice. If a user presses 'q' or `ctrl-c`, `request` will return a `-1`. + + +```julia +# `pagesize` is the number of items to be displayed at a time. +# The UI will scroll if the number of options is greater +# than the `pagesize` +menu = RadioMenu(options, pagesize=4) + +# `request` displays the menu and returns the index after the +# user has selected a choice +choice = request("Choose your favorite fruit:", menu) + +if choice != -1 + println("Your favorite fruit is ", options[choice], "!") +else + println("Menu canceled.") +end + +``` + +Output: + +``` +Choose your favorite fruit: +^ grape + strawberry + > blueberry +v peach +Your favorite fruit is blueberry! +``` + +## MultiSelectMenu + +The MultiSelectMenu allows users to select many choices from a list. + +```julia +# here we use the default `pagesize` 10 +menu = MultiSelectMenu(options) + +# `request` returns a `Set` of selected indices +# if the menu us canceled (ctrl-c or q), return an empty set +choices = request("Select the fruits you like:", menu) + +if length(choices) > 0 + println("You like the following fruits:") + for i in choices + println(" - ", options[i]) + end +else + println("Menu canceled.") +end +``` + +Output: + +``` +Select the fruits you like: +[press: d=done, a=all, n=none] + [ ] apple + > [X] orange + [X] grape + [ ] strawberry + [ ] blueberry + [X] peach + [ ] lemon + [ ] lime +You like the following fruits: + - orange + - grape + - peach +``` + +# Customization / Configuation + +All interface customization is done through the keyword only +`TerminalMenus.config()` function. + +## Arguments + + - `charset::Symbol=:na`: ui characters to use (`:ascii` or `:unicode`); overridden by other arguments + - `cursor::Char='>'|'→'`: character to use for cursor + - `up_arrow::Char='^'|'↑'`: character to use for up arrow + - `down_arrow::Char='v'|'↓'`: character to use for down arrow + - `checked::String="[X]"|"✓"`: string to use for checked + - `unchecked::String="[ ]"|"⬚")`: string to use for unchecked + - `scroll::Symbol=:na`: If `:wrap` then wrap the cursor around top and bottom, if :`nowrap` do not wrap cursor + - `supress_output::Bool=false`: For testing. If true, menu will not be printed to console. + - `ctrl_c_interrupt::Bool=true`: If `false`, return empty on ^C, if `true` throw InterruptException() on ^C + +## Examples + +```julia +julia> menu = MultiSelectMenu(options, pagesize=5); + +julia> request(menu) # ASCII is used by default +[press: d=done, a=all, n=none] + [ ] apple + [X] orange + [ ] grape + > [X] strawberry +v [ ] blueberry +Set([4, 2]) + +julia> TerminalMenus.config(charset=:unicode) + +julia> request(menu) +[press: d=done, a=all, n=none] + ⬚ apple + ✓ orange + ⬚ grape + → ✓ strawberry +↓ ⬚ blueberry +Set([4, 2]) + +julia> TerminalMenus.config(checked="YEP!", unchecked="NOPE", cursor='⧐') + +julia> request(menu) +[press: d=done, a=all, n=none] + NOPE apple + YEP! orange + NOPE grape + ⧐ YEP! strawberry +↓ NOPE blueberry +Set([4, 2]) + +``` + +# TODO + + - Nested menus + - More customization? + +--- + +*The interactive menu has been tested on Ubuntu 16.04 and windows 7, 8, & 10. +If there are any issues on your platform, please submit an issue or a pull +request.* diff --git a/stdlib/Pkg3/ext/TerminalMenus/REQUIRE b/stdlib/Pkg3/ext/TerminalMenus/REQUIRE new file mode 100644 index 0000000000000..137767a42af4a --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/REQUIRE @@ -0,0 +1 @@ +julia 0.6 diff --git a/stdlib/Pkg3/ext/TerminalMenus/appveyor.yml b/stdlib/Pkg3/ext/TerminalMenus/appveyor.yml new file mode 100644 index 0000000000000..19b36b92a3aac --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/appveyor.yml @@ -0,0 +1,47 @@ +environment: + matrix: + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe" + - JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" + - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +## uncomment the following lines to allow failures on nightly julia +## (tests will run but not make your overall status red) +#matrix: +# allow_failures: +# - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe" +# - JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe" + +branches: + only: + - master + - /release-.*/ + +notifications: + - provider: Email + on_build_success: false + on_build_failure: false + on_build_status_changed: false + +install: + - ps: "[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12" +# If there's a newer build queued for the same PR, cancel this one + - ps: if ($env:APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER -ne ((Invoke-RestMethod ` + https://ci.appveyor.com/api/projects/$env:APPVEYOR_ACCOUNT_NAME/$env:APPVEYOR_PROJECT_SLUG/history?recordsNumber=50).builds | ` + Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { ` + throw "There are newer queued builds for this pull request, failing early." } +# Download most recent Julia Windows binary + - ps: (new-object net.webclient).DownloadFile( + $env:JULIA_URL, + "C:\projects\julia-binary.exe") +# Run installer silently, output to C:\projects\julia + - C:\projects\julia-binary.exe /S /D=C:\projects\julia + +build_script: +# Need to convert from shallow to complete for Pkg.clone to work + - IF EXIST .git\shallow (git fetch --unshallow) + - C:\projects\julia\bin\julia -e "versioninfo(); + Pkg.clone(pwd(), \"TerminalMenus\"); Pkg.build(\"TerminalMenus\")" + +test_script: + - C:\projects\julia\bin\julia -e "Pkg.test(\"TerminalMenus\")" diff --git a/stdlib/Pkg3/ext/TerminalMenus/changelog.md b/stdlib/Pkg3/ext/TerminalMenus/changelog.md new file mode 100644 index 0000000000000..28dc7daf74044 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/changelog.md @@ -0,0 +1,10 @@ +# 0.0.2 + + - Add menu customization + - Add unicode and ascii UI sets + - Add wrap around top and bottom of menu (optional) + - Add better documentation and more comprehensive test cases + +# 0.0.1 + +Initial release. Includes RadioMenu and MultiSelectMenu diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/AbstractMenu.jl b/stdlib/Pkg3/ext/TerminalMenus/src/AbstractMenu.jl new file mode 100644 index 0000000000000..20cc52659d219 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/AbstractMenu.jl @@ -0,0 +1,262 @@ +""" + + AbstractMenu + +The supertype for all Menu types. +See AbstractMenu.jl for descriptions of functions mentioned in this +doc string. + + +# Functions + +The following functions can be called on all <:AbstractMenu types. +Details can be found in + +## Exported + + - `request(m::AbstractMenu)` + - `request(msg::AbstractString, m::AbstractMenu)` + +## Hidden + + - `printMenu(m::AbstractMenu, cursor::Int; init::Bool=false)` + + +# Subtypes + +All subtypes must contain the feilds `pagesize::Int` and +`pageoffset::Int`. They must also implement the following functions. + +## Necessary Functions + +These functions must be implemented for all subtypes of AbstractMenu. + + - `pick(m::AbstractMenu, cursor::Int)` + - `cancel(m::AbstractMenu)` + - `options(m::AbstractMenu)` + - `writeLine(buf::IOBuffer, m::AbstractMenu, idx::Int, cur::Bool)` + +## Optional Functions + +These functions do not need to be implemented for all AbstractMenu +subtypes. + + - `header(m::AbstractMenu)` + - `keypress(m::AbstractMenu, i::UInt32)` + +""" +abstract type AbstractMenu end + + + +# NECESSARY FUNCTIONS +# These functions must be implemented for all subtypes of AbstractMenu +###################################################################### + +# This function must be implemented for all menu types. It defines what +# happens when a user presses the Enter key while the menu is open. +# If this function returns true, `request()` will exit. +pick(m::AbstractMenu, cursor::Int) = error("unimplemented") + +# This function must be implemented for all menu types. It defines what +# happends when a user cancels ('q' or ctrl-c) a menu. `request()` will +# always exit after calling this function. +cancel(m::AbstractMenu) = error("unimplemented") + +# This function must be implemented for all menu types. It should return +# a list of strings to be displayed as options in the current page. +options(m::AbstractMenu) = error("unimplemented") + +# This function must be implemented for all menu types. It should write +# the option at index `idx` to the buffer. If cursor is `true` it +# should also display the cursor +function writeLine(buf::IOBuffer, m::AbstractMenu, idx::Int, cur::Bool) + error("unimplemented") +end + + + +# OPTIONAL FUNCTIONS +# These functions do not need to be implemented for all Menu types +################################################################## + +# If `header()` is defined for a specific menu type, display the header +# above the menu when it is rendered to the screen. +header(m::AbstractMenu) = "" + +# If `keypress()` is defined for a specific menu type, send any +# non-standard keypres event to this function. If the function returns +# true, `request()` will exit. +keypress(m::AbstractMenu, i::UInt32) = false + + + + +""" + + request(m::AbstractMenu) + +Display the menu and enter interactive mode. Returns `m.selected` which +varies based on menu type. +""" +request(m::AbstractMenu) = request(terminal, m) + +function request(term::REPL.Terminals.TTYTerminal, m::AbstractMenu) + cursor = 1 + + menu_header = header(m) + if !CONFIG[:supress_output] && menu_header != "" + println(term.out_stream, menu_header) + end + + printMenu(term.out_stream, m, cursor, init=true) + + raw_mode_enabled = enableRawMode(term) + raw_mode_enabled && print(term.out_stream, "\x1b[?25l") # hide the cursor + try + while true + c = readKey(term.in_stream) + + if c == Int(ARROW_UP) + + if cursor > 1 + # move selection up + cursor -= 1 + # scroll the page + if cursor < (2+m.pageoffset) && m.pageoffset > 0 + m.pageoffset -= 1 + end + elseif CONFIG[:scroll_wrap] + # wrap to bottom + cursor = length(options(m)) + m.pageoffset = length(options(m)) - m.pagesize + end + + elseif c == Int(ARROW_DOWN) + + if cursor < length(options(m)) + # move selection up + cursor += 1 + # scroll page + if cursor >= m.pagesize + m.pageoffset && m.pagesize + m.pageoffset < length(options(m)) + m.pageoffset += 1 + end + elseif CONFIG[:scroll_wrap] + # wrap to top + cursor = 1 + m.pageoffset = 0 + end + + elseif c == Int(PAGE_UP) + # If we're at the bottom, move the page 1 less to move the cursor up from + # the bottom entry, since we try to avoid putting the cursor at bounds. + m.pageoffset -= m.pagesize - (cursor == length(options(m)) ? 1 : 0) + m.pageoffset = max(m.pageoffset, 0) + cursor -= m.pagesize + cursor = max(cursor, 1) + + elseif c == Int(PAGE_DOWN) + m.pageoffset += m.pagesize - (cursor == 1 ? 1 : 0) + m.pageoffset = min(m.pageoffset, length(options(m)) - m.pagesize) + cursor += m.pagesize + cursor = min(cursor, length(options(m))) + + elseif c == Int(HOME_KEY) + cursor = 1 + m.pageoffset = 0 + + elseif c == Int(END_KEY) + cursor = length(options(m)) + m.pageoffset = length(options(m)) - m.pagesize + + elseif c == 13 # + # will break if pick returns true + pick(m, cursor) && break + elseif c == UInt32('q') + cancel(m) + break + elseif c == 3 # ctrl-c + cancel(m) + if CONFIG[:ctrl_c_interrupt] + throw(InterruptException()) + else + break + end + else + # will break if keypress returns true + keypress(m, c) && break + end + + printMenu(term.out_stream, m, cursor) + end + finally + # always disable raw mode even even if there is an + # exception in the above loop + if raw_mode_enabled + print(term.out_stream, "\x1b[?25h") # unhide cursor + disableRawMode(term) + end + end + println(term.out_stream) + + return m.selected +end + + +""" + + request([term,] msg::AbstractString, m::AbstractMenu) + +Shorthand for `println(msg); request(m)`. +""" +request(msg::AbstractString, m::AbstractMenu) = + request(terminal, msg, m) + +function request(term::REPL.Terminals.TTYTerminal, + msg::AbstractString, m::AbstractMenu) + println(term.out_stream, msg) + request(term, m) +end + + + +# The generic printMenu function is used for displaying the state of a +# menu to the screen. Menus must implement `writeLine` and `options` +# and have fields `pagesize::Int` and `pageoffset::Int` as part of +# their type definition +function printMenu(out, m::AbstractMenu, cursor::Int; init::Bool=false) + CONFIG[:supress_output] && return + + buf = IOBuffer() + + # Move the cursor to the beginning of where it should print + # Don't do this on the initial print + lines = m.pagesize-1 + if init + m.pageoffset = 0 + else + print(buf, "\x1b[999D\x1b[$(lines)A") + end + + for i in (m.pageoffset+1):(m.pageoffset + m.pagesize) + print(buf, "\x1b[2K") + + if i == m.pageoffset+1 && m.pageoffset > 0 + # first line && scrolled past first entry + print(buf, CONFIG[:up_arrow]) + elseif i == m.pagesize+m.pageoffset && i != length(options(m)) + # last line && not last option + print(buf, CONFIG[:down_arrow]) + else + # non special line + print(buf, " ") + end + + writeLine(buf, m, i, i == cursor) + + # dont print an \r\n on the last line + i != (m.pagesize+m.pageoffset) && print(buf, "\r\n") + end + + print(out, String(take!(buf))) +end diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/MultiSelectMenu.jl b/stdlib/Pkg3/ext/TerminalMenus/src/MultiSelectMenu.jl new file mode 100644 index 0000000000000..686749f5455ff --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/MultiSelectMenu.jl @@ -0,0 +1,112 @@ +""" + + MultiSelectMenu + +A menu that allows a user to select a multiple options from a list. + +# Sample Output + +```julia +julia> request(MultiSelectMenu(options)) +Select the fruits you like: +[press: d=done, a=all, n=none] + [ ] apple + > [X] orange + [X] grape + [ ] strawberry + [ ] blueberry + [X] peach + [ ] lemon + [ ] lime +You like the following fruits: + - orange + - grape + - peach +``` + +""" +mutable struct MultiSelectMenu <: AbstractMenu + options::Array{String,1} + pagesize::Int + pageoffset::Int + selected::Set{Int} +end + + +""" + + MultiSelectMenu(options::Array{String,1}; pagesize::Int=10) + +Create a MultiSelectMenu object. Use `request(menu::MultiSelectMenu)` to get +user input. `request()` returns a `Set` containing the indices of options that +were selected by the user. + +# Arguments + + - `options::Array{String, 1}`: Options to be displayed + - `pagesize::Int=10`: The number of options to be displayed at one time, the menu will scroll if length(options) > pagesize +""" +function MultiSelectMenu(options::Array{String,1}; pagesize::Int=10) + length(options) < 2 && error("MultiSelectMenu must have at least two options") + + # if pagesize is -1, use automatic paging + pagesize = pagesize == -1 ? length(options) : pagesize + # pagesize shouldn't be bigger than options + pagesize = min(length(options), pagesize) + # after other checks, pagesize must be greater than 2 + pagesize < 2 && error("pagesize must be >= 2") + + pageoffset = 0 + selected = Set{Int}() # none + + MultiSelectMenu(options, pagesize, pageoffset, selected) +end + + + +# AbstractMenu implementation functions +# See AbstractMenu.jl +####################################### + +header(m::MultiSelectMenu) = "[press: d=done, a=all, n=none]" + +options(m::MultiSelectMenu) = m.options + +cancel(m::MultiSelectMenu) = m.selected = Set{Int}() + +# Do not exit menu when a user selects one of the options +function pick(menu::MultiSelectMenu, cursor::Int) + if cursor in menu.selected + delete!(menu.selected, cursor) + else + push!(menu.selected, cursor) + end + + return false #break out of the menu +end + +function writeLine(buf::IOBuffer, menu::MultiSelectMenu, idx::Int, cursor::Bool) + # print a ">" on the selected entry + cursor ? print(buf, CONFIG[:cursor]," ") : print(buf, " ") + if idx in menu.selected + print(buf, CONFIG[:checked], " ") + else + print(buf, CONFIG[:unchecked], " ") + end + + print(buf, replace(menu.options[idx], "\n" => "\\n")) +end + +# d: Done, return from request +# a: Select all +# n: Deselect all +function keypress(menu::MultiSelectMenu, key::UInt32) + if key == UInt32('d') || key == UInt32('D') + return true # break + elseif key == UInt32('a') || key == UInt32('A') + menu.selected = Set(1:length(menu.options)) + elseif key == UInt32('n') || key == UInt32('N') + menu.selected = Set{Int}() + end + false # don't break +end diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/RadioMenu.jl b/stdlib/Pkg3/ext/TerminalMenus/src/RadioMenu.jl new file mode 100644 index 0000000000000..04f2937a06049 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/RadioMenu.jl @@ -0,0 +1,77 @@ +""" + + RadioMenu + +A menu that allows a user to select a single option from a list. + +# Sample Output + +```julia +julia> request(RadioMenu(options, pagesize=4)) +Choose your favorite fruit: +^ grape + strawberry + > blueberry +v peach +Your favorite fruit is blueberry! +``` + +""" +mutable struct RadioMenu <: AbstractMenu + options::Array{String,1} + pagesize::Int + pageoffset::Int + selected::Int +end + + +""" + + RadioMenu(options::Array{String,1}; pagesize::Int=10) + +Create a RadioMenu object. Use `request(menu::RadioMenu)` to get user input. +`request()` returns an `Int` which is the index of the option selected by the +user. + +# Arguments + + - `options::Array{String, 1}`: Options to be displayed + - `pagesize::Int=10`: The number of options to be displayed at one time, the menu will scroll if length(options) > pagesize +""" +function RadioMenu(options::Array{String,1}; pagesize::Int=10) + length(options) < 2 && error("RadioMenu must have at least two options") + + # if pagesize is -1, use automatic paging + pagesize = pagesize == -1 ? length(options) : pagesize + # pagesize shouldn't be bigger than options + pagesize = min(length(options), pagesize) + # after other checks, pagesize must be greater than 2 + pagesize < 2 && error("pagesize must be >= 2") + + pageoffset = 0 + selected = -1 # none + + RadioMenu(options, pagesize, pageoffset, selected) +end + + + +# AbstractMenu implementation functions +# See AbstractMenu.jl +####################################### + +options(m::RadioMenu) = m.options + +cancel(m::RadioMenu) = m.selected = -1 + +function pick(menu::RadioMenu, cursor::Int) + menu.selected = cursor + return true #break out of the menu +end + +function writeLine(buf::IOBuffer, menu::RadioMenu, idx::Int, cursor::Bool) + # print a ">" on the selected entry + cursor ? print(buf, CONFIG[:cursor] ," ") : print(buf, " ") + + print(buf, replace(menu.options[idx], "\n" => "\\n")) +end diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/TerminalMenus.jl b/stdlib/Pkg3/ext/TerminalMenus/src/TerminalMenus.jl new file mode 100644 index 0000000000000..16084481018dd --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/TerminalMenus.jl @@ -0,0 +1,24 @@ +module TerminalMenus + +import REPL + +terminal = nothing # The user terminal + +function __init__() + global terminal + terminal = REPL.Terminals.TTYTerminal(get(ENV, "TERM", Sys.iswindows() ? "" : "dumb"), STDIN, STDOUT, STDERR) +end + +include("util.jl") +include("config.jl") + +include("AbstractMenu.jl") +include("RadioMenu.jl") +include("MultiSelectMenu.jl") + +export + RadioMenu, + MultiSelectMenu, + request + +end # module diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/config.jl b/stdlib/Pkg3/ext/TerminalMenus/src/config.jl new file mode 100644 index 0000000000000..ce9b479e86c5e --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/config.jl @@ -0,0 +1,79 @@ +"""global menu configuration parameters""" +CONFIG = Dict() + + +""" + + config( ) + +Keyword-only function to configure global menu parameters + +# Arguments + - `charset::Symbol=:na`: ui characters to use (`:ascii` or `:unicode`); overridden by other arguments + - `cursor::Char='>'|'→'`: character to use for cursor + - `up_arrow::Char='^'|'↑'`: character to use for up arrow + - `down_arrow::Char='v'|'↓'`: character to use for down arrow + - `checked::String="[X]"|"✓"`: string to use for checked + - `unchecked::String="[ ]"|"⬚")`: string to use for unchecked + - `scroll::Symbol=:nowrap`: If `:wrap` then wrap the cursor around top and bottom, if :`nowrap` do not wrap cursor + - `supress_output::Bool=false`: For testing. If true, menu will not be printed to console. + - `ctrl_c_interrupt::Bool=true`: If `false`, return empty on ^C, if `true` throw InterruptException() on ^C +""" +function config(;charset::Symbol = :na, + scroll::Symbol = :na, + cursor::Char = '\0', + up_arrow::Char = '\0', + down_arrow::Char = '\0', + checked::String = "", + unchecked::String = "", + supress_output::Union{Nothing, Bool}=nothing, + ctrl_c_interrupt::Union{Nothing, Bool}=nothing) + + if !(charset in [:na, :ascii, :unicode]) + error("charset should be :ascii or :unicode, recieved $charset") + end + + if !(scroll in [:na, :wrap, :nowrap]) + error("scroll must be :wrap or :nowrap, recieved $scroll") + end + + if scroll == :wrap + CONFIG[:scroll_wrap] = true + elseif scroll == :nowrap + CONFIG[:scroll_wrap] = false + end + + if charset == :ascii + cursor = '>' + up_arrow = '^' + down_arrow = 'v' + checked = "[X]" + unchecked = "[ ]" + elseif charset == :unicode + cursor = '→' + up_arrow = '↑' + down_arrow = '↓' + checked = "✓" + unchecked = "⬚" + end + + if isa(supress_output, Bool) + CONFIG[:supress_output] = supress_output + end + + if isa(ctrl_c_interrupt, Bool) + CONFIG[:ctrl_c_interrupt] = ctrl_c_interrupt + end + + cursor != '\0' && (CONFIG[:cursor] = cursor) + up_arrow != '\0' && (CONFIG[:up_arrow] = up_arrow) + down_arrow != '\0' && (CONFIG[:down_arrow] = down_arrow) + checked != "" && (CONFIG[:checked] = checked) + unchecked != "" && (CONFIG[:unchecked] = unchecked) + + # Don't return anything + nothing +end + +# Set up defaults +config(charset=:ascii, scroll=:nowrap, supress_output=false, ctrl_c_interrupt=true) diff --git a/stdlib/Pkg3/ext/TerminalMenus/src/util.jl b/stdlib/Pkg3/ext/TerminalMenus/src/util.jl new file mode 100644 index 0000000000000..89daf156ff08a --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/src/util.jl @@ -0,0 +1,123 @@ +# Enum for escaped (multi-byte) keys such as the arrows or the home/end keys +@enum(Key, + ARROW_LEFT = 1000, + ARROW_RIGHT, + ARROW_UP, + ARROW_DOWN, + DEL_KEY, + HOME_KEY, + END_KEY, + PAGE_UP, + PAGE_DOWN) + +# Enable raw mode. Allows us to process keyboard inputs directly. +function enableRawMode(term) + try + REPL.Terminals.raw!(term, true) + return true + catch err + warn("TerminalMenus: Unable to enter raw mode: $err") + end + return false +end + +# Disable raw mode. Give control back to Julia REPL if interactive session. +function disableRawMode(term) + try + REPL.Terminals.raw!(term, false) + return true + catch err + warn("TerminalMenus: Unable to disable raw mode: $err") + end + return false +end + + +# Reads a single byte from STDIN +readNextChar(stream::IO=STDIN) = Char(read(stream,1)[1]) + +# Read the next key from STDIN. It is also able to read several bytes for +# escaped keys such as the arrow keys, home/end keys, etc. +# Escaped keys are returned using the `Key` enum. +function readKey(stream::IO=STDIN) ::UInt32 + c = readNextChar(stream) + + # Escape characters + if c == '\x1b' + stream.buffer.size < 2 && return '\x1b' + esc_a = readNextChar(stream) + + if esc_a == 'v' # M-v + return PAGE_UP + elseif esc_a == '<' # M-< + return HOME_KEY + elseif esc_a == '>' # M-> + return END_KEY + end + + stream.buffer.size < 3 && return '\x1b' + esc_b = readNextChar(stream) + + if esc_a == '[' + if esc_b >= '0' && esc_b <= '9' + stream.buffer.size < 4 && return '\x1b' + esc_c = readNextChar(stream) + + if esc_c == '~' + if esc_b == '1' + return HOME_KEY + elseif esc_b == '4' + return END_KEY + elseif esc_b == '3' + return DEL_KEY + elseif esc_b == '5' + return PAGE_UP + elseif esc_b == '6' + return PAGE_DOWN + elseif esc_b == '7' + return HOME_KEY + elseif esc_b == '8' + return END_KEY + else + return '\x1b' + end + end + + else + # Arrow keys + if esc_b == 'A' + return ARROW_UP + elseif esc_b == 'B' + return ARROW_DOWN + elseif esc_b == 'C' + return ARROW_RIGHT + elseif esc_b == 'D' + return ARROW_LEFT + elseif esc_b == 'H' + return HOME_KEY + elseif esc_b == 'F' + return END_KEY + else + return '\x1b' + end + end + elseif esc_a == 'O' + if esc_a == 'H' + return HOME_KEY + elseif esc_a == 'F' + return END_KEY + end + end + + return '\x1b' + + elseif c == '\x16' # C-v + return PAGE_DOWN + elseif c == '\x10' # C-p + return ARROW_UP + elseif c == '\x0e' # C-n + return ARROW_DOWN + else + return c + end +end diff --git a/stdlib/Pkg3/ext/TerminalMenus/test/multiselect_menu.jl b/stdlib/Pkg3/ext/TerminalMenus/test/multiselect_menu.jl new file mode 100644 index 0000000000000..a12ebb23a77c5 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/test/multiselect_menu.jl @@ -0,0 +1,35 @@ +# Check to make sure types are imported properly +@test MultiSelectMenu <: TerminalMenus.AbstractMenu + +# Invalid Menu Params +@test_throws ErrorException MultiSelectMenu(["one"]) +@test_throws ErrorException MultiSelectMenu(["one", "two", "three"], pagesize=1) + +# Constructor +@test MultiSelectMenu(["one", "two", "three"]).pagesize == 3 +@test MultiSelectMenu(string.(1:30), pagesize=-1).pagesize == 30 +@test MultiSelectMenu(string.(1:4), pagesize=10).pagesize == 4 +@test MultiSelectMenu(string.(1:100)).pagesize == 10 + +multi_menu = MultiSelectMenu(string.(1:20)) +@test TerminalMenus.options(multi_menu) == string.(1:20) +@test TerminalMenus.header(multi_menu) == "[press: d=done, a=all, n=none]" + +# Output +TerminalMenus.config() # Use default chars +CONFIG = TerminalMenus.CONFIG + +multi_menu = MultiSelectMenu(string.(1:10)) +buf = IOBuffer() +TerminalMenus.writeLine(buf, multi_menu, 1, true) +@test String(take!(buf)) == string(CONFIG[:cursor], " ", CONFIG[:unchecked], " 1") +TerminalMenus.config(cursor='+') +TerminalMenus.writeLine(buf, multi_menu, 1, true) +@test String(take!(buf)) == string("+ ", CONFIG[:unchecked], " 1") +TerminalMenus.config(charset=:unicode) +TerminalMenus.writeLine(buf, multi_menu, 1, true) +@test String(take!(buf)) == string(CONFIG[:cursor], " ", CONFIG[:unchecked], " 1") + +# Test SDTIN +multi_menu = MultiSelectMenu(string.(1:10)) +@test simulateInput(Set([1,2]), multi_menu, :enter, :down, :enter, 'd') diff --git a/stdlib/Pkg3/ext/TerminalMenus/test/radio_menu.jl b/stdlib/Pkg3/ext/TerminalMenus/test/radio_menu.jl new file mode 100644 index 0000000000000..05d73605d2799 --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/test/radio_menu.jl @@ -0,0 +1,38 @@ +# Check to make sure types are imported properly +@test RadioMenu <: TerminalMenus.AbstractMenu + +# Invalid Menu Params +@test_throws ErrorException RadioMenu(["one"]) +@test_throws ErrorException RadioMenu(["one", "two", "three"], pagesize=1) + +# Constructor +@test RadioMenu(["one", "two", "three"]).pagesize == 3 +@test RadioMenu(string.(1:30), pagesize=-1).pagesize == 30 +@test RadioMenu(string.(1:4), pagesize=10).pagesize == 4 +@test RadioMenu(string.(1:100)).pagesize == 10 + +radio_menu = RadioMenu(string.(1:20)) +@test TerminalMenus.options(radio_menu) == string.(1:20) +radio_menu.selected = 2 +TerminalMenus.cancel(radio_menu) +@test radio_menu.selected == -1 +@test TerminalMenus.header(radio_menu) == "" + +# Output +TerminalMenus.config() # Use default chars +CONFIG = TerminalMenus.CONFIG + +radio_menu = RadioMenu(string.(1:10)) +buf = IOBuffer() +TerminalMenus.writeLine(buf, radio_menu, 1, true) +@test String(take!(buf)) == string(CONFIG[:cursor], " 1") +TerminalMenus.config(cursor='+') +TerminalMenus.writeLine(buf, radio_menu, 1, true) +@test String(take!(buf)) == "+ 1" +TerminalMenus.config(charset=:unicode) +TerminalMenus.writeLine(buf, radio_menu, 1, true) +@test String(take!(buf)) == string(CONFIG[:cursor], " 1") + +# Test using STDIN +radio_menu = RadioMenu(string.(1:10)) +@test simulateInput(3, radio_menu, :down, :down, :enter) diff --git a/stdlib/Pkg3/ext/TerminalMenus/test/runtests.jl b/stdlib/Pkg3/ext/TerminalMenus/test/runtests.jl new file mode 100644 index 0000000000000..5e9dce14c6a1b --- /dev/null +++ b/stdlib/Pkg3/ext/TerminalMenus/test/runtests.jl @@ -0,0 +1,41 @@ +using TerminalMenus +using Base.Test + +TerminalMenus.config(supress_output=true) + +function simulateInput(expectedResult, menu::TerminalMenus.AbstractMenu, keys...) + # If we cannot write to the buffer, skip the test + !(:buffer in fieldnames(STDIN)) && return true + + keydict = Dict(:up => "\e[A", + :down => "\e[B", + :enter => "\r") + + for key in keys + if isa(key, Symbol) + write(STDIN.buffer, keydict[key]) + else + write(STDIN.buffer, "$key") + end + end + + request(menu) == expectedResult +end + +include("radio_menu.jl") +include("multiselect_menu.jl") + +# Other test + +# scroll must only accept symbols +@test_throws TypeError TerminalMenus.config(scroll=true) +# :foo is not a valid scroll option +@test_throws ErrorException TerminalMenus.config(scroll=:foo) +# Test scroll wrap +TerminalMenus.config(scroll=:wrap) +@test TerminalMenus.CONFIG[:scroll_wrap] == true +# Updating some params shouldn't change other ones +TerminalMenus.config(charset=:ascii) +@test TerminalMenus.CONFIG[:scroll_wrap] == true +TerminalMenus.config(scroll=:nowrap) +@test TerminalMenus.CONFIG[:scroll_wrap] == false diff --git a/stdlib/Pkg3/src/API.jl b/stdlib/Pkg3/src/API.jl new file mode 100644 index 0000000000000..fe56419b49893 --- /dev/null +++ b/stdlib/Pkg3/src/API.jl @@ -0,0 +1,290 @@ +module API + +using UUIDs +using Printf +import Random +import Dates +import LibGit2 + +import Pkg3 +import Pkg3: depots, logdir, Display.DiffEntry +using Pkg3.Types +using Pkg3.TOML + + +previewmode_info() = @info("In preview mode") + +add(pkg::String; kwargs...) = add([pkg]; kwargs...) +add(pkgs::Vector{String}; kwargs...) = add([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +add(pkgs::Vector{PackageSpec}; kwargs...) = add(EnvCache(), pkgs; kwargs...) + +function add(env::EnvCache, pkgs::Vector{PackageSpec}; preview::Bool=env.preview[]) + env.preview[] = preview + preview && previewmode_info() + project_resolve!(env, pkgs) + registry_resolve!(env, pkgs) + ensure_resolved(env, pkgs, true) + Pkg3.Operations.add(env, pkgs) +end + + +rm(pkg::String; kwargs...) = rm([pkg]; kwargs...) +rm(pkgs::Vector{String}; kwargs...) = rm([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +rm(pkgs::Vector{PackageSpec}; kwargs...) = rm(EnvCache(), pkgs; kwargs...) + +function rm(env::EnvCache, pkgs::Vector{PackageSpec}; preview::Bool=env.preview[]) + env.preview[] = preview + preview && previewmode_info() + project_resolve!(env, pkgs) + manifest_resolve!(env, pkgs) + Pkg3.Operations.rm(env, pkgs) +end + + +up(;kwargs...) = up(PackageSpec[], kwargs...) +up(pkg::String; kwargs...) = up([pkg]; kwargs...) +up(pkgs::Vector{String}; kwargs...) = up([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +up(pkgs::Vector{PackageSpec}; kwargs...) = up(EnvCache(), pkgs; kwargs...) + +function up(env::EnvCache, pkgs::Vector{PackageSpec}; + level::UpgradeLevel=UpgradeLevel(:major), mode::Symbol=:project, preview::Bool=env.preview[]) + env.preview[] = preview + preview && previewmode_info() + + # Update the registry + errors = Tuple{String, String}[] + if env.preview[] + info("Skipping updating registry in preview mode") + else + for reg in registries() + if !isdir(joinpath(reg, ".git")) + @info("Registry at $reg is not a git repo, skipping update") + end + @info("Updating registry at $reg") + LibGit2.with(LibGit2.GitRepo, reg) do repo + if LibGit2.isdirty(repo) + push!(errors, (reg, "registry dirty")) + return + end + if !LibGit2.isattached(repo) + push!(errors, (reg, "registry detached")) + return + end + branch = LibGit2.headname(repo) + LibGit2.fetch(repo) + ff_succeeded = try + LibGit2.merge!(repo; branch="refs/remotes/origin/$branch", fastforward=true) + catch e + e isa LibGit2.GitError && e.code == LibGit2.Error.ENOTFOUND || rethrow(e) + push!(errors, (reg, "branch origin/$branch not found")) + return + end + + if !ff_succeeded + try LibGit2.rebase!(repo, "origin/$branch") + catch e + e isa LibGit2.GitError || rethrow(e) + push!(errors, (reg, "registry failed to rebase on origin/$branch")) + return + end + end + end + end + end + + if !isempty(errors) + warn_str = "Some registries failed to update:" + for (reg, err) in errors + warn_str *= "\n — $reg — $err" + end + @warn warn_str + end + + if isempty(pkgs) + if mode == :project + for (name::String, uuidstr::String) in env.project["deps"] + uuid = UUID(uuidstr) + push!(pkgs, PackageSpec(name, uuid, level)) + end + elseif mode == :manifest + for (name, infos) in env.manifest, info in infos + uuid = UUID(info["uuid"]) + push!(pkgs, PackageSpec(name, uuid, level)) + end + end + else + project_resolve!(env, pkgs) + manifest_resolve!(env, pkgs) + ensure_resolved(env, pkgs) + end + Pkg3.Operations.up(env, pkgs) +end + +test(;kwargs...) = test(PackageSpec[], kwargs...) +test(pkg::String; kwargs...) = test([pkg]; kwargs...) +test(pkgs::Vector{String}; kwargs...) = test([PackageSpec(pkg) for pkg in pkgs]; kwargs...) +test(pkgs::Vector{PackageSpec}; kwargs...) = test(EnvCache(), pkgs; kwargs...) + +function test(env::EnvCache, pkgs::Vector{PackageSpec}; coverage=false, preview=env.preview[]) + env.preview[] = preview + preview && previewmode_info() + project_resolve!(env, pkgs) + manifest_resolve!(env, pkgs) + ensure_resolved(env, pkgs) + Pkg3.Operations.test(env, pkgs; coverage=coverage) +end + + +function convert(::Type{Dict{String, VersionNumber}}, diffs::Union{Array{DiffEntry}, Nothing}) + version_status = Dict{String, VersionNumber}() + diffs == nothing && return version_status + for entry in diffs + version_status[entry.name] = entry.new.ver + end + return version_status +end + +function installed(mode::Symbol=:manifest)::Dict{String, VersionNumber} + diff = Pkg3.Display.status(EnvCache(), mode, true) + convert(Dict{String, VersionNumber}, diff) +end + +function recursive_dir_size(path) + sz = 0 + for (root, dirs, files) in walkdir(path) + for file in files + sz += stat(joinpath(root, file)).size + end + end + return sz +end + +function gc(env::EnvCache=EnvCache(); period = Week(6), preview=env.preview[]) + env.preview[] = preview + preview && previewmode_info() + + # If the manifest was not used + gc_time = Dates.now() - period + usage_file = joinpath(logdir(), "usage.toml") + + # Collect only the manifest that is least recently used + manifest_date = Dict{String, Dates.DateTime}() + for (manifest_file, infos) in TOML.parse(String(read(usage_file))) + for info in infos + date = info["time"] + manifest_date[manifest_file] = haskey(manifest_date, date) ? max(manifest_date[date], date) : date + end + end + + # Find all reachable packages through manifests recently used + new_usage = Dict{String, Any}() + paths_to_keep = String[] + for (manifestfile, date) in manifest_date + !isfile(manifestfile) && continue + if date < gc_time + continue + end + infos = read_manifest(manifestfile) + new_usage[manifestfile] = [Dict("time" => date)] + for entry in infos + entry isa Pair || continue + name, _stanzas = entry + @assert length(_stanzas) == 1 + stanzas = _stanzas[1] + if stanzas isa Dict && haskey(stanzas, "uuid") && haskey(stanzas, "git-tree-sha1") + push!(paths_to_keep, Pkg3.Operations.find_installed(UUID(stanzas["uuid"]), SHA1(stanzas["git-tree-sha1"]))) + end + end + end + + # Collect the paths to delete (everything that is not reachable) + paths_to_delete = String[] + for depot in depots() + packagedir = abspath(depot, "packages") + if isdir(packagedir) + for uuidslug in readdir(packagedir) + for shaslug in readdir(joinpath(packagedir, uuidslug)) + versiondir = joinpath(packagedir, uuidslug, shaslug) + if !(versiondir in paths_to_keep) + push!(paths_to_delete, versiondir) + end + end + end + end + end + + # Delete paths for noreachable package versions and compute size saved + sz = 0 + for path in paths_to_delete + sz += recursive_dir_size(path) + if !env.preview[] + Base.rm(path; recursive=true) + end + end + + # Delete package paths that are now empty + for depot in depots() + packagedir = abspath(depot, "packages") + if isdir(packagedir) + for uuidslug in readdir(packagedir) + uuidslug_path = joinpath(packagedir, uuidslug) + if isempty(readdir(uuidslug_path)) + !env.preview[] && Base.rm(uuidslug_path) + end + end + end + end + + # Write the new condensed usage file + if !env.preview[] + open(usage_file, "w") do io + TOML.print(io, new_usage, sorted=true) + end + end + bytes, mb = Base.prettyprint_getunits(sz, length(Base._mem_units), Int64(1024)) + byte_save_str = length(paths_to_delete) == 0 ? "" : (" saving " * @sprintf("%.3f %s", bytes, Base._mem_units[mb])) + info("Deleted $(length(paths_to_delete)) package installations", byte_save_str) +end + +function _get_deps!(env::EnvCache, pkgs::Vector{PackageSpec}, uuids::Vector{UUID}) + for pkg in pkgs + info = manifest_info(env, pkg.uuid) + pkg.uuid in uuids && continue + push!(uuids, pkg.uuid) + if haskey(info, "deps") + pkgs = [PackageSpec(name, UUID(uuid)) for (name, uuid) in info["deps"]] + _get_deps!(env, pkgs, uuids) + end + end +end + + +build(pkgs...) = build([PackageSpec(pkg) for pkg in pkgs]) +build(pkg::Array{Union{}, 1}) = build(PackageSpec[]) +build(pkg::PackageSpec) = build([pkg]) +build(pkgs::Vector{PackageSpec}) = build(EnvCache(), pkgs) + +function build(env::EnvCache, pkgs::Vector{PackageSpec}) + if isempty(pkgs) + for (name, infos) in env.manifest, info in infos + uuid = UUID(info["uuid"]) + push!(pkgs, PackageSpec(name, uuid)) + end + end + for pkg in pkgs + pkg.mode = :manifest + end + manifest_resolve!(env, pkgs) + ensure_resolved(env, pkgs) + uuids = Random.UUID[] + _get_deps!(env, pkgs, uuids) + length(uuids) == 0 && (info("No packages to build!"); return) + Pkg3.Operations.build_versions(env, uuids) +end + + +function init(path = pwd()) + Pkg3.Operations.init(path) +end + +end # module diff --git a/stdlib/Pkg3/src/Display.jl b/stdlib/Pkg3/src/Display.jl new file mode 100644 index 0000000000000..4c2559cce4bd6 --- /dev/null +++ b/stdlib/Pkg3/src/Display.jl @@ -0,0 +1,197 @@ +module Display + +using UUIDs +import LibGit2 + +using Pkg3.Types +import Pkg3: @info, Nothing + + +const colors = Dict( + ' ' => :white, + '+' => :light_green, + '-' => :light_red, + '↑' => :light_yellow, + '~' => :light_yellow, + '↓' => :light_magenta, + '?' => :red, +) +const color_dark = :light_black + +function status(env::EnvCache, mode::Symbol, use_as_api=false) + project₀ = project₁ = env.project + manifest₀ = manifest₁ = env.manifest + diff = nothing + + if env.git != nothing + git_path = LibGit2.path(env.git) + project_path = relpath(env.project_file, git_path) + manifest_path = relpath(env.manifest_file, git_path) + project₀ = read_project(git_file_stream(env.git, "HEAD:$project_path", fakeit=true)) + manifest₀ = read_manifest(git_file_stream(env.git, "HEAD:$manifest_path", fakeit=true)) + end + if mode == :project || mode == :combined + # TODO: handle project deps missing from manifest + m₀ = filter_manifest(in_project(project₀["deps"]), manifest₀) + m₁ = filter_manifest(in_project(project₁["deps"]), manifest₁) + @info "Status $(pathrepr(env, env.project_file))" + diff = manifest_diff(m₀, m₁) + use_as_api || print_diff(diff) + end + if mode == :manifest + @info "Status $(pathrepr(env, env.manifest_file))" + diff = manifest_diff(manifest₀, manifest₁) + use_as_api || print_diff(diff) + elseif mode == :combined + p = !in_project(merge(project₀["deps"], project₁["deps"])) + m₀ = filter_manifest(p, manifest₀) + m₁ = filter_manifest(p, manifest₁) + c_diff = filter!(x->x.old != x.new, manifest_diff(m₀, m₁)) + if !isempty(c_diff) + @info "Status $(pathrepr(env, env.manifest_file))" + use_as_api || print_diff(c_diff) + diff = Base.vcat(c_diff, diff) + end + end + return diff +end + +function print_project_diff(env₀::EnvCache, env₁::EnvCache) + pm₀ = filter_manifest(in_project(env₀.project["deps"]), env₀.manifest) + pm₁ = filter_manifest(in_project(env₁.project["deps"]), env₁.manifest) + diff = filter!(x->x.old != x.new, manifest_diff(pm₀, pm₁)) + if isempty(diff) + printstyled(color = color_dark, " [no changes]\n") + else + print_diff(diff) + end +end + +function print_manifest_diff(env₀::EnvCache, env₁::EnvCache) + diff = manifest_diff(env₀.manifest, env₁.manifest) + diff = filter!(x->x.old != x.new, diff) + if isempty(diff) + printstyled(color = color_dark, " [no changes]\n") + else + print_diff(diff) + end +end + +struct VerInfo + hash::SHA1 + ver::Union{VersionNumber,Nothing} +end + +vstring(a::VerInfo) = + a.ver == nothing ? "[$(string(a.hash)[1:16])]" : "v$(a.ver)" + +Base.:(==)(a::VerInfo, b::VerInfo) = + a.hash == b.hash && a.ver == b.ver + +≈(a::VerInfo, b::VerInfo) = a.hash == b.hash && + (a.ver == nothing || b.ver == nothing || a.ver == b.ver) + +struct DiffEntry + uuid::UUID + name::String + old::Union{VerInfo,Nothing} + new::Union{VerInfo,Nothing} +end + +function print_diff(io::IO, diff::Vector{DiffEntry}) + same = all(x.old == x.new for x in diff) + for x in diff + warnings = String[] + if x.old != nothing && x.new != nothing + if x.old ≈ x.new + verb = ' ' + vstr = vstring(x.new) + else + if x.old.hash != x.new.hash && x.old.ver != x.new.ver + verb = x.old.ver == nothing || x.new.ver == nothing || + x.old.ver == x.new.ver ? '~' : + x.old.ver < x.new.ver ? '↑' : '↓' + else + verb = '?' + msg = x.old.hash == x.new.hash ? + "hashes match but versions don't: $(x.old.ver) ≠ $(x.new.ver)" : + "versions match but hashes don't: $(x.old.hash) ≠ $(x.new.hash)" + push!(warnings, msg) + end + vstr = x.old.ver == x.new.ver ? vstring(x.new) : + vstring(x.old) * " ⇒ " * vstring(x.new) + end + elseif x.new != nothing + verb = '+' + vstr = vstring(x.new) + elseif x.old != nothing + verb = '-' + vstr = vstring(x.old) + else + verb = '?' + vstr = "[unknown]" + end + v = same ? "" : " $verb" + printstyled(color = color_dark, " [$(string(x.uuid)[1:8])]") + printstyled(color = colors[verb], "$v $(x.name) $vstr\n") + end +end +print_diff(diff::Vector{DiffEntry}) = print_diff(STDOUT, diff) + +function manifest_by_uuid(manifest::Dict) + entries = Dict{UUID,Dict}() + for (name, infos) in manifest, info in infos + uuid = UUID(info["uuid"]) + haskey(entries, uuid) && @warn("Duplicate UUID in manifest: $uuid") + entries[uuid] = merge(info, Dict("name" => name)) + end + return entries +end + +function name_ver_info(info::Dict) + name = info["name"] + hash = haskey(info, "git-tree-sha1") ? SHA1(info["git-tree-sha1"]) : nothing + ver = haskey(info, "version") ? VersionNumber(info["version"]) : nothing + name, VerInfo(hash, ver) +end + +function manifest_diff(manifest₀::Dict, manifest₁::Dict) + diff = DiffEntry[] + entries₀ = manifest_by_uuid(manifest₀) + entries₁ = manifest_by_uuid(manifest₁) + for uuid in union(keys(entries₀), keys(entries₁)) + name₀ = name₁ = v₀ = v₁ = nothing + haskey(entries₀, uuid) && ((name₀, v₀) = name_ver_info(entries₀[uuid])) + haskey(entries₁, uuid) && ((name₁, v₁) = name_ver_info(entries₁[uuid])) + name₀ == nothing && (name₀ = name₁) + name₁ == nothing && (name₁ = name₀) + if name₀ == name₁ + push!(diff, DiffEntry(uuid, name₀, v₀, v₁)) + else + push!(diff, DiffEntry(uuid, name₀, v₀, nothing)) + push!(diff, DiffEntry(uuid, name₁, nothing, v₁)) + end + end + sort!(diff, by=x->(x.name, x.uuid)) +end + +function filter_manifest!(predicate::Function, manifest::Dict) + empty = String[] + for (name, infos) in manifest + filter!(infos) do info + predicate(name, info) + end + isempty(infos) && push!(empty, name) + end + for name in empty + pop!(manifest, name) + end + return manifest +end +filter_manifest(predicate::Function, manifest::Dict) = + filter_manifest!(predicate, deepcopy(manifest)) + +in_project(deps::Dict) = (name::String, info::Dict) -> + haskey(deps, name) && haskey(info, "uuid") && deps[name] == info["uuid"] + +end # module diff --git a/stdlib/Pkg3/src/GraphType.jl b/stdlib/Pkg3/src/GraphType.jl new file mode 100644 index 0000000000000..076e95013c429 --- /dev/null +++ b/stdlib/Pkg3/src/GraphType.jl @@ -0,0 +1,1448 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module GraphType + +import ..Pkg3 +using Pkg3.Types +import Pkg3: equalto, Nothing, Types.uuid_julia + +export Graph, ResolveLog, add_reqs!, add_fixed!, simplify_graph!, simplify_graph_soft!, + get_resolve_log, showlog, push_snapshot!, pop_snapshot!, wipe_snapshots! + +# The ResolveLog is used to keep track of events that take place during the +# resolution process. We use one ResolveLogEntry per package, and record all events +# associated with that package. An event consists of two items: another +# entry representing another package's influence (or `nothing`) and +# a message for the log. +# +# Specialized functions called `log_event_[...]!` are used to store the +# various events. The events are also recorded in orded in a shared +# ResolveJournal, which is used to provide a plain chronological view. +# +# The `showlog` functions are used for display, and called to create messages +# in case of resolution errors. + +const UUID0 = UUID(UInt128(0)) + +const ResolveJournal = Vector{Tuple{UUID,String}} + +mutable struct ResolveLogEntry + journal::ResolveJournal # shared with all other entries + pkg::UUID + header::String + events::Vector{Tuple{Any,String}} # here Any should ideally be Union{ResolveLogEntry,Nothing} + ResolveLogEntry(journal::ResolveJournal, pkg::UUID, header::String = "") = new(journal, pkg, header, []) +end + +function Base.push!(entry::ResolveLogEntry, reason::Tuple{Union{ResolveLogEntry,Nothing},String}, to_journal::Bool = true) + push!(entry.events, reason) + to_journal && entry.pkg ≠ uuid_julia && push!(entry.journal, (entry.pkg, reason[2])) + return entry +end + +mutable struct ResolveLog + # init: used to keep track of all package entries which were created during + # intialization, since the `pool` can be pruned during the resolution + # process. + init::ResolveLogEntry + + # globals: records global events not associated to any particular package + globals::ResolveLogEntry + + # pool: records entries associated to each package + pool::Dict{UUID,ResolveLogEntry} + + # journal: record all messages in order (shared between all entries) + journal::Vector{Tuple{UUID,String}} + + # exact: keeps track of whether the resolve process is still exact, or + # heuristics have been employed + exact::Bool + + # verbose: print global events messages on screen + verbose::Bool + + # UUID to names + uuid_to_name::Dict{UUID,String} + + function ResolveLog(uuid_to_name::Dict{UUID,String}, verbose::Bool = false) + journal = ResolveJournal() + init = ResolveLogEntry(journal, UUID0, "") + globals = ResolveLogEntry(journal, UUID0, "Global events:") + return new(init, globals, Dict(), journal, true, verbose, uuid_to_name) + end +end + +# Installation state: either a version, or uninstalled +const InstState = Union{VersionNumber,Nothing} + + +# GraphData is basically a part of Graph that collects data structures useful +# for interfacing the internal abstract representation of Graph with the +# input/output (e.g. converts between package UUIDs and node numbers, etc.) +mutable struct GraphData + # packages list + pkgs::Vector{UUID} + + # number of packages + np::Int + + # states per package: one per version + uninstalled + spp::Vector{Int} + + # pakage dict: associates an index to each package id + pdict::Dict{UUID,Int} + + # package versions: for each package, keep the list of the + # possible version numbers; this defines a + # mapping from version numbers of a package + # to indices + pvers::Vector{Vector{VersionNumber}} + + # versions dict: associates a version index to each package + # version; such that + # pvers[p0][vdict[p0][vn]] = vn + vdict::Vector{Dict{VersionNumber,Int}} + + # UUID to names + uuid_to_name::Dict{UUID,String} + + # pruned packages: during graph simplification, packages that + # only have one allowed version are pruned. + # This keeps track of them, so that they may + # be returned in the solution (unless they + # were explicitly fixed) + pruned::Dict{UUID,VersionNumber} + + # equivalence classes: for each package and each of its possible + # states, keep track of other equivalent states + eq_classes::Dict{UUID,Dict{InstState,Set{InstState}}} + + # resolve log: keep track of the resolution process + rlog::ResolveLog + + function GraphData( + versions::Dict{UUID,Set{VersionNumber}}, + deps::Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + compat::Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + uuid_to_name::Dict{UUID,String}; + verbose::Bool = false + ) + # generate pkgs + pkgs = sort!(collect(keys(versions))) + np = length(pkgs) + + # generate pdict + pdict = Dict{UUID,Int}(pkgs[p0] => p0 for p0 = 1:np) + + # generate spp and pvers + pvers = [sort!(collect(versions[pkgs[p0]])) for p0 = 1:np] + spp = length.(pvers) .+ 1 + + # generate vdict + vdict = [Dict{VersionNumber,Int}(vn => i for (i,vn) in enumerate(pvers[p0])) for p0 = 1:np] + + # nothing is pruned yet, of course + pruned = Dict{UUID,VersionNumber}() + + # equivalence classes (at the beginning each state represents just itself) + eq_vn(v0, p0) = (v0 == spp[p0] ? nothing : pvers[p0][v0]) + eq_classes = Dict(pkgs[p0] => Dict(eq_vn(v0,p0) => Set([eq_vn(v0,p0)]) for v0 = 1:spp[p0]) for p0 = 1:np) + + # the resolution log is actually initialized below + rlog = ResolveLog(uuid_to_name, verbose) + + data = new(pkgs, np, spp, pdict, pvers, vdict, uuid_to_name, pruned, eq_classes, rlog) + + init_log!(data) + + return data + end + + function Base.copy(data::GraphData) + pkgs = copy(data.pkgs) + np = data.np + spp = copy(data.spp) + pdict = copy(data.pdict) + pvers = [copy(data.pvers[p0]) for p0 = 1:np] + vdict = [copy(data.vdict[p0]) for p0 = 1:np] + pruned = copy(data.pruned) + eq_classes = Dict(p => copy(eq) for (p,eq) in data.eq_classes) + rlog = deepcopy(data.rlog) + uuid_to_name = rlog.uuid_to_name + + return new(pkgs, np, spp, pdict, pvers, vdict, uuid_to_name, pruned, eq_classes, rlog) + end +end + +mutable struct Graph + # data: + # stores all the structures required to map between + # parsed items (names, UUIDS, version numbers...) and + # the numeric representation used in the main Graph data + # structure. + data::GraphData + + # adjacency matrix: + # for each package, has the list of neighbors + # indices + gadj::Vector{Vector{Int}} + + # compatibility mask: + # for each package p0 has a list of bool masks. + # Each entry in the list gmsk[p0] is relative to the + # package p1 as read from gadj[p0]. + # Each mask has dimension spp1 × spp0, where + # spp0 is the number of states of p0, and + # spp1 is the number of states of p1. + gmsk::Vector{Vector{BitMatrix}} + + # constraints: + # a mask of allowed states for each package (e.g. to express + # requirements) + gconstr::Vector{BitVector} + + # adjacency dict: + # allows one to retrieve the indices in gadj, so that + # gadj[p0][adjdict[p1][p0]] = p1 + # ("At which index does package p1 appear in gadj[p0]?") + adjdict::Vector{Dict{Int,Int}} + + # indices of the packages that were *explicitly* required + # used to favor their versions at resolution + req_inds::Set{Int} + + # indices of the packages that were *explicitly* fixed + # used to avoid returning them in the solution + fix_inds::Set{Int} + + ignored::BitVector + + # stack of constraints/ignored packages: + # allows to keep a sort of "versioning" of the constraints + # such that the solver can implement tentative solutions + solve_stack::Vector{Tuple{Vector{BitVector},BitVector}} + + # states per package: same as in GraphData + spp::Vector{Int} + + # number of packages (all Vectors above have this length) + np::Int + + function Graph( + versions::Dict{UUID,Set{VersionNumber}}, + deps::Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}, + compat::Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}, + uuid_to_name::Dict{UUID,String}, + reqs::Requires = Requires(), + fixed::Dict{UUID,Fixed} = Dict{UUID,Fixed}(uuid_julia=>Fixed(VERSION)); + verbose::Bool = false + ) + + extra_uuids = union(keys(reqs), keys(fixed), map(fx->keys(fx.requires), values(fixed))...) + extra_uuids ⊆ keys(versions) || error("unknown UUID found in reqs/fixed") # TODO? + + data = GraphData(versions, deps, compat, uuid_to_name, verbose = verbose) + pkgs, np, spp, pdict, pvers, vdict, rlog = data.pkgs, data.np, data.spp, data.pdict, data.pvers, data.vdict, data.rlog + + extended_deps = [[Dict{Int,BitVector}() for v0 = 1:(spp[p0]-1)] for p0 = 1:np] + for p0 = 1:np, v0 = 1:(spp[p0]-1) + n2u = Dict{String,UUID}() + vn = pvers[p0][v0] + for (vr,vrmap) in deps[pkgs[p0]] + vn ∈ vr || continue + for (name,uuid) in vrmap + # check conflicts ?? + n2u[name] = uuid + end + end + req = Dict{Int,VersionSpec}() + for (vr,vrmap) in compat[pkgs[p0]] + vn ∈ vr || continue + for (name,vs) in vrmap + haskey(n2u, name) || error("Unknown package $name found in the compatibility requirements of $(pkgID(pkgs[p0], uuid_to_name))") + uuid = n2u[name] + p1 = pdict[uuid] + p1 == p0 && error("Package $(pkgID(pkgs[p0], uuid_to_name)) version $vn has a dependency with itself") + # check conflicts instead of intersecting? + # (intersecting is used by fixed packages though...) + req_p1 = get!(req, p1) do; VersionSpec() end + req[p1] = req_p1 ∩ vs + end + end + # The remaining dependencies do not have compatibility constraints + for uuid in values(n2u) + get!(req, pdict[uuid]) do; VersionSpec() end + end + # Translate the requirements into bit masks + req_msk = Dict(p1 => (pvers[p1][1:(spp[p1]-1)] .∈ vs) for (p1,vs) in req) + extended_deps[p0][v0] = req_msk + end + + gadj = [Int[] for p0 = 1:np] + gmsk = [BitMatrix[] for p0 = 1:np] + gconstr = [trues(spp[p0]) for p0 = 1:np] + adjdict = [Dict{Int,Int}() for p0 = 1:np] + + for p0 = 1:np, v0 = 1:(spp[p0]-1), (p1,rmsk1) in extended_deps[p0][v0] + j0 = get(adjdict[p1], p0, length(gadj[p0]) + 1) + j1 = get(adjdict[p0], p1, length(gadj[p1]) + 1) + + @assert (j0 > length(gadj[p0]) && j1 > length(gadj[p1])) || + (j0 ≤ length(gadj[p0]) && j1 ≤ length(gadj[p1])) + + if j0 > length(gadj[p0]) + push!(gadj[p0], p1) + push!(gadj[p1], p0) + j0 = length(gadj[p0]) + j1 = length(gadj[p1]) + + adjdict[p1][p0] = j0 + adjdict[p0][p1] = j1 + + bm = trues(spp[p1], spp[p0]) + bmt = copy(transpose(bm)) + + push!(gmsk[p0], bm) + push!(gmsk[p1], bmt) + else + bm = gmsk[p0][j0] + bmt = gmsk[p1][j1] + end + + for v1 = 1:(spp[p1]-1) + rmsk1[v1] && continue + bm[v1, v0] = false + bmt[v0, v1] = false + end + bm[end,v0] = false + bmt[v0,end] = false + end + + req_inds = Set{Int}() + fix_inds = Set{Int}() + + ignored = falses(np) + solve_stack = Tuple{Vector{BitVector},BitVector}[] + + graph = new(data, gadj, gmsk, gconstr, adjdict, req_inds, fix_inds, ignored, solve_stack, spp, np) + + _add_fixed!(graph, fixed) + _add_reqs!(graph, reqs, :explicit_requirement) + + @assert check_consistency(graph) + check_constraints(graph) + + return graph + end + + function Base.copy(graph::Graph) + data = copy(graph.data) + np = graph.np + spp = data.spp + gadj = [copy(graph.gadj[p0]) for p0 = 1:np] + gmsk = [[copy(graph.gmsk[p0][j0]) for j0 = 1:length(gadj[p0])] for p0 = 1:np] + gconstr = [copy(graph.gconstr[p0]) for p0 = 1:np] + adjdict = [copy(graph.adjdict[p0]) for p0 = 1:np] + req_inds = copy(graph.req_inds) + fix_inds = copy(graph.fix_inds) + ignored = copy(graph.ignored) + solve_stack = [([copy(gc0) for gc0 in sav_gconstr],copy(sav_ignored)) for (sav_gconstr,sav_ignored) in graph.solve_stack] + + return new(data, gadj, gmsk, gconstr, adjdict, req_inds, fix_inds, ignored, solve_stack, spp, np) + end +end + + +""" +Add explicit requirements to the graph. +""" +function add_reqs!(graph::Graph, reqs::Requires) + _add_reqs!(graph, reqs, :explicit_requirement) + check_constraints(graph) + # TODO: add reqs to graph data? + return graph +end + +function _add_reqs!(graph::Graph, reqs::Requires, reason) + gconstr = graph.gconstr + spp = graph.spp + req_inds = graph.req_inds + pdict = graph.data.pdict + pvers = graph.data.pvers + + for (rp,rvs) in reqs + haskey(pdict, rp) || error("unknown required package $(pkgID(rp, graph))") + rp0 = pdict[rp] + new_constr = trues(spp[rp0]) + for rv0 = 1:(spp[rp0]-1) + rvn = pvers[rp0][rv0] + rvn ∈ rvs || (new_constr[rv0] = false) + end + new_constr[end] = false + old_constr = copy(gconstr[rp0]) + gconstr[rp0] .&= new_constr + reason ≡ :explicit_requirement && push!(req_inds, rp0) + old_constr ≠ gconstr[rp0] && log_event_req!(graph, rp, rvs, reason) + end + return graph +end + +"Add fixed packages to the graph, and their requirements." +function add_fixed!(graph::Graph, fixed::Dict{UUID,Fixed}) + _add_fixed!(graph, fixed) + check_constraints(graph) + # TODO: add fixed to graph data? + return graph +end + +function _add_fixed!(graph::Graph, fixed::Dict{UUID,Fixed}) + gconstr = graph.gconstr + spp = graph.spp + fix_inds = graph.fix_inds + pdict = graph.data.pdict + vdict = graph.data.vdict + + for (fp,fx) in fixed + haskey(pdict, fp) || error("unknown fixed package $(pkgID(fp, graph))") + fp0 = pdict[fp] + fv0 = vdict[fp0][fx.version] + new_constr = falses(spp[fp0]) + new_constr[fv0] = true + gconstr[fp0] .&= new_constr + push!(fix_inds, fp0) + bkitem = log_event_fixed!(graph, fp, fx) + _add_reqs!(graph, fx.requires, (fp, bkitem)) + end + return graph +end + +Types.pkgID(p::UUID, rlog::ResolveLog) = pkgID(p, rlog.uuid_to_name) +Types.pkgID(p::UUID, data::GraphData) = pkgID(p, data.uuid_to_name) +Types.pkgID(p0::Int, data::GraphData) = pkgID(data.pkgs[p0], data) +Types.pkgID(p, graph::Graph) = pkgID(p, graph.data) + +function check_consistency(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + req_inds = graph.req_inds + fix_inds = graph.fix_inds + ignored = graph.ignored + solve_stack = graph.solve_stack + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + vdict = data.vdict + pruned = data.pruned + eq_classes = data.eq_classes + rlog = data.rlog + # TODO: check ignored and solve_stack + + @assert np ≥ 0 + for x in [spp, gadj, gmsk, gconstr, adjdict, ignored, rlog.pool, pkgs, pdict, pvers, vdict] + @assert length(x) == np + end + for p0 = 1:np + @assert pdict[pkgs[p0]] == p0 + spp0 = spp[p0] + @assert spp0 ≥ 1 + pvers0 = pvers[p0] + vdict0 = vdict[p0] + @assert length(pvers0) == spp0 - 1 + for v0 = 1:(spp0-1) + @assert vdict0[pvers0[v0]] == v0 + end + for (vn,v0) in vdict0 + @assert 1 ≤ v0 ≤ spp0-1 + @assert pvers0[v0] == vn + end + gconstr0 = gconstr[p0] + @assert length(gconstr0) == spp0 + + gadj0 = gadj[p0] + gmsk0 = gmsk[p0] + adjdict0 = adjdict[p0] + @assert length(gmsk0) == length(gadj0) + @assert length(adjdict0) == length(gadj0) + for (j0,p1) in enumerate(gadj0) + @assert p1 ≠ p0 + @assert adjdict[p1][p0] == j0 + spp1 = spp[p1] + @assert size(gmsk0[j0]) == (spp1,spp0) + j1 = adjdict0[p1] + gmsk1 = gmsk[p1] + @assert gmsk1[j1] == copy(transpose(gmsk0[j0])) + end + end + for (p,p0) in pdict + @assert 1 ≤ p0 ≤ np + @assert pkgs[p0] == p + @assert !haskey(pruned, p) + end + for p0 in req_inds + @assert 1 ≤ p0 ≤ np + @assert !gconstr[p0][end] + end + for p0 in fix_inds + @assert 1 ≤ p0 ≤ np + @assert !gconstr[p0][end] + @assert count(gconstr[p0]) == 1 + end + + for (p,eq_cl) in eq_classes, (rvn,rvs) in eq_cl + @assert rvn ∈ rvs + end + + for (sav_gconstr,sav_ignored) in solve_stack + @assert length(sav_ignored) == np + @assert length(sav_gconstr) == np + for p0 = 1:np + @assert length(sav_gconstr[p0]) == spp[p0] + end + end + + return true +end + +function push_snapshot!(graph::Graph) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + solve_stack = graph.solve_stack + sav_gconstr = [copy(gc0) for gc0 in gconstr] + sav_ignored = copy(ignored) + push!(solve_stack, (gconstr, ignored)) + graph.gconstr = sav_gconstr + graph.ignored = sav_ignored + return graph +end + +function pop_snapshot!(graph::Graph) + np = graph.np + solve_stack = graph.solve_stack + @assert length(solve_stack) > 0 + sav_gconstr, sav_ignored = pop!(graph.solve_stack) + graph.gconstr = sav_gconstr + graph.ignored = sav_ignored + return graph +end + +function wipe_snapshots!(graph::Graph) + np = graph.np + solve_stack = graph.solve_stack + if length(solve_stack) > 0 + graph.gconstr, graph.ignored = first(solve_stack) + empty!(solve_stack) + end + return graph +end + +function init_log!(data::GraphData) + np = data.np + pkgs = data.pkgs + pvers = data.pvers + rlog = data.rlog + for p0 = 1:np + p = pkgs[p0] + id = pkgID(p0, data) + versions = pvers[p0] + if isempty(versions) + msg = "$id has no known versions!" # This shouldn't happen? + else + msg = "possible versions are: $(VersionSpec(VersionRange.(versions))) or uninstalled" + end + first_entry = get!(rlog.pool, p) do; ResolveLogEntry(rlog.journal, p, "$id log:") end + + if p ≠ uuid_julia + push!(first_entry, (nothing, msg)) + push!(rlog.init, (first_entry, ""), false) + end + end + return data +end + +function log_event_fixed!(graph::Graph, fp::UUID, fx::Fixed) + rlog = graph.data.rlog + id = pkgID(fp, rlog) + msg = "$id is fixed to version $(fx.version)" + entry = rlog.pool[fp] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_req!(graph::Graph, rp::UUID, rvs::VersionSpec, reason) + rlog = graph.data.rlog + gconstr = graph.gconstr + pdict = graph.data.pdict + pvers = graph.data.pvers + id = pkgID(rp, rlog) + msg = "restricted to versions $rvs by " + if reason isa Symbol + @assert reason == :explicit_requirement + other_entry = nothing + msg *= "an explicit requirement" + else + other_p, other_entry = reason::Tuple{UUID,ResolveLogEntry} + if other_p == uuid_julia + msg *= "julia compatibility requirements" + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "$other_id" + end + end + rp0 = pdict[rp] + @assert !gconstr[rp0][end] + if any(gconstr[rp0]) + msg *= ", leaving only versions $(VersionSpec(VersionRange.(pvers[rp0][gconstr[rp0][1:(end-1)]])))" + else + msg *= " — no versions left" + end + entry = rlog.pool[rp] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_global!(graph::Graph, msg::String) + rlog = graph.data.rlog + rlog.verbose && info(msg) + push!(rlog.globals, (nothing, msg)) +end + +function log_event_implicit_req!(graph::Graph, p1::Int, vmask::BitVector, p0::Int) + rlog = graph.data.rlog + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + function vs_string(p0::Int, vmask::BitVector) + if any(vmask[1:(end-1)]) + vns = string(VersionSpec(VersionRange.(pvers[p0][vmask[1:(end-1)]]))) + vmask[end] && (vns *= " or uninstalled") + else + @assert vmask[end] + vns = "uninstalled" + end + return vns + end + + p = pkgs[p1] + id = pkgID(p, rlog) + other_p, other_entry = pkgs[p0], rlog.pool[pkgs[p0]] + other_id = pkgID(other_p, rlog) + if any(vmask) + msg = "restricted by " + if other_p == uuid_julia + msg *= "julia compatibility requirements " + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "compatibility requirements with $other_id " + end + msg *= "to versions: $(vs_string(p1, vmask))" + if vmask ≠ gconstr[p1] + if any(gconstr[p1]) + msg *= ", leaving only versions: $(vs_string(p1, gconstr[p1]))" + else + msg *= " — no versions left" + end + end + else + msg = "found to have no compatible versions left with " + if other_p == uuid_julia + msg *= "julia" + other_entry = nothing # don't propagate the log + else + other_id = pkgID(other_p, rlog) + msg *= "$other_id " + end + end + entry = rlog.pool[p] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_pruned!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + msg = "determined to be unneeded during graph pruning" + else + msg = "fixed during graph pruning to its only remaining available version, $(pvers[p0][s0])" + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_greedysolved!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + msg = "determined to be unneeded by the solver" + else + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0])" + else + msg = "set by the solver to the maximum version compatible with the constraints: $(pvers[p0][s0])" + end + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumsolved!(graph::Graph, p0::Int, s0::Int, why::Symbol) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + if s0 == spp[p0] + @assert why == :uninst + msg = "determined to be unneeded by the solver" + else + @assert why == :constr + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0])" + else + msg = "set by the solver to version: $(pvers[p0][s0]) (version $(pvers[p0][s0+1]) would violate its constraints)" + end + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumsolved!(graph::Graph, p0::Int, s0::Int, p1::Int) + rlog = graph.data.rlog + spp = graph.spp + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + p = pkgs[p0] + id = pkgID(p, rlog) + other_id = pkgID(pkgs[p1], rlog) + @assert s0 ≠ spp[p0] + if s0 == spp[p0] - 1 + msg = "set by the solver to its maximum version: $(pvers[p0][s0]) (installation is required by $other_id)" + else + msg = "set by the solver version: $(pvers[p0][s0]) (version $(pvers[p0][s0+1]) would violate a dependecy relation with $other_id)" + end + other_entry = rlog.pool[pkgs[p1]] + entry = rlog.pool[p] + push!(entry, (other_entry, msg)) + return entry +end + +function log_event_eq_classes!(graph::Graph, p0::Int) + rlog = graph.data.rlog + spp = graph.spp + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + + if any(gconstr[p0][1:(end-1)]) + vns = string(VersionSpec(VersionRange.(pvers[p0][gconstr[p0][1:(end-1)]]))) + gconstr[p0][end] && (vns *= " or uninstalled") + elseif gconstr[p0][end] + vns = "uninstalled" + else + vns = "no version" + end + + p = pkgs[p0] + id = pkgID(p, rlog) + msg = "versions reduced by equivalence to: $vns" + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +function log_event_maxsumtrace!(graph::Graph, p0::Int, s0::Int) + rlog = graph.data.rlog + rlog.exact = false + p = graph.data.pkgs[p0] + id = pkgID(p, rlog) + if s0 < graph.spp[p0] + msg = "fixed by the MaxSum heuristic to version $(graph.data.pvers[p0][s0])" + else + msg = "determined to be unneeded by the MaxSum heuristic" + end + entry = rlog.pool[p] + push!(entry, (nothing, msg)) + return entry +end + +"Get the resolution log, detached" +get_resolve_log(graph::Graph) = deepcopy(graph.data.rlog) + +const _logindent = " " + +showlog(graph::Graph, args...; kw...) = showlog(STDOUT, graph, args...; kw...) +showlog(io::IO, graph::Graph, args...; kw...) = showlog(io, graph.data.rlog, args...; kw...) +showlog(rlog::ResolveLog, args...; kw...) = showlog(STDOUT, rlog, args...; kw...) + +""" +Show the full resolution log. The `view` keyword controls how the events are displayed/grouped: + + * `:plain` for a shallow view, grouped by package, alphabetically (the default) + * `:tree` for a tree view in which the log of a package is displayed as soon as it appears + in the process (the top-level is still grouped by package, alphabetically) + * `:chronological` for a flat view of all events in chronological order +""" +function showlog(io::IO, rlog::ResolveLog; view::Symbol = :plain) + view ∈ [:plain, :tree, :chronological] || throw(ArgumentError("the view argument should be `:plain`, `:tree` or `:chronological`")) + println(io, "Resolve log:") + view == :chronological && return showlogjournal(io, rlog) + seen = IdDict() + recursive = (view == :tree) + _show(io, rlog, rlog.globals, _logindent, seen, false) + initentries = [event[1] for event in rlog.init.events] + for entry in sort!(initentries, by=(entry->pkgID(entry.pkg, rlog))) + seen[entry] = true + _show(io, rlog, entry, _logindent, seen, recursive) + end +end + +function showlogjournal(io::IO, rlog::ResolveLog) + journal = rlog.journal + id(p) = p == UUID0 ? "[global event]" : pkgID(p, rlog) + padding = maximum(length(id(p)) for (p,_) in journal) + for (p,msg) in journal + println(io, ' ', rpad(id(p), padding), ": ", msg) + end +end + +""" +Show the resolution log for some package, and all the other packages that affected +it during resolution. The `view` option can be either `:plain` or `:tree` (works +the same as for `showlog(io, rlog)`); the default is `:tree`. +""" +function showlog(io::IO, rlog::ResolveLog, p::UUID; view::Symbol = :tree) + view ∈ [:plain, :tree] || throw(ArgumentError("the view argument should be `:plain` or `:tree`")) + entry = rlog.pool[p] + if view == :tree + _show(io, rlog, entry, _logindent, IdDict(entry=>true), true) + else + entries = ResolveLogEntry[entry] + function getentries(entry) + for (other_entry,_) in entry.events + (other_entry ≡ nothing || other_entry ∈ entries) && continue + push!(entries, other_entry) + getentries(other_entry) + end + end + getentries(entry) + for entry in entries + _show(io, rlog, entry, _logindent, IdDict(), false) + end + end +end + +# Show a recursive tree with requirements applied to a package, either directly or indirectly +function _show(io::IO, rlog::ResolveLog, entry::ResolveLogEntry, indent::String, seen::IdDict, recursive::Bool) + toplevel = (indent == _logindent) + firstglyph = toplevel ? "" : "└─" + pre = toplevel ? "" : " " + println(io, indent, firstglyph, entry.header) + l = length(entry.events) + for (i,(otheritem,msg)) in enumerate(entry.events) + if !isempty(msg) + print(io, indent * pre, (i==l ? '└' : '├'), '─') + println(io, msg) + newindent = indent * pre * (i==l ? " " : "│ ") + else + newindent = indent + end + otheritem ≡ nothing && continue + recursive || continue + if otheritem ∈ keys(seen) + println(io, newindent, "└─", otheritem.header, " see above") + continue + end + seen[otheritem] = true + _show(io, rlog, otheritem, newindent, seen, recursive) + end +end + +is_julia(graph::Graph, p0::Int) = graph.data.pkgs[p0] == uuid_julia + +"Check for contradictions in the constraints." +function check_constraints(graph::Graph) + np = graph.np + gconstr = graph.gconstr + pkgs = graph.data.pkgs + pvers = graph.data.pvers + rlog = graph.data.rlog + exact = graph.data.rlog.exact + + id(p0::Int) = pkgID(p0, graph) + + for p0 = 1:np + any(gconstr[p0]) && continue + if exact + err_msg = "Unsatisfiable requirements detected for package $(id(p0)):\n" + else + err_msg = "Resolve failed to satisfy requirements for package $(id(p0)):\n" + end + err_msg *= sprint(showlog, rlog, pkgs[p0]) + throw(PkgError(err_msg)) + end + return true +end + +""" +Propagates current constraints, determining new implicit constraints. +Throws an error in case impossible requirements are detected, printing +a log trace. +""" +function propagate_constraints!(graph::Graph, sources::Set{Int} = Set{Int}(); log_events::Bool = true) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + ignored = graph.ignored + pkgs = graph.data.pkgs + pvers = graph.data.pvers + rlog = graph.data.rlog + exact = rlog.exact + + id(p0::Int) = pkgID(pkgs[p0], graph) + + log_events && log_event_global!(graph, "propagating constraints") + + # unless otherwise specified, start from packages which + # are not allowed to be uninstalled + staged = isempty(sources) ? + Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) : + sources + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + gconstr0 = gconstr[p0] + for (j1,p1) in enumerate(gadj[p0]) + # if p1 is ignored, the relation between it and all its neighbors + # has already been propagated + ignored[p1] && continue + + # we don't propagate to julia (purely to have better error messages) + pkgs[p1] == uuid_julia && continue + + msk = gmsk[p0][j1] + # consider the sub-mask with only allowed versions of p0 + sub_msk = msk[:,gconstr0] + # if an entire row of the sub-mask is false, that version of p1 + # is effectively forbidden + # (this is just like calling `any` row-wise) + added_constr1 = any!(BitVector(uninitialized, spp[p1]), sub_msk) + # apply the new constraints, checking for contradictions + # (keep the old ones for comparison) + gconstr1 = gconstr[p1] + old_gconstr1 = copy(gconstr1) + gconstr1 .&= added_constr1 + # if the new constraints are more restrictive than the + # previous ones, record it and propagate them next + if gconstr1 ≠ old_gconstr1 + push!(staged_next, p1) + log_events && log_event_implicit_req!(graph, p1, added_constr1, p0) + end + if !any(gconstr1) + if exact + err_msg = "Unsatisfiable requirements detected for package $(id(p1)):\n" + else + err_msg = "Resolve failed to satisfy requirements for package $(id(p1)):\n" + end + err_msg *= sprint(showlog, rlog, pkgs[p1]) + throw(PkgError(err_msg)) + end + end + end + staged = staged_next + end + return graph +end + +""" +Enforce the uninstalled state on all packages that are not reachable from the required ones +or from the packages in the `sources` argument. +""" +function disable_unreachable!(graph::Graph, sources::Set{Int} = Set{Int}()) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + pkgs = graph.data.pkgs + + log_event_global!(graph, "disabling unreachable nodes") + + # 2nd argument are packages which are not allowed to be uninstalled + staged = union(sources, Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end])) + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + gconstr0idx = findall(gconstr[p0][1:(end-1)]) + for (j1,p1) in enumerate(gadj[p0]) + all(gmsk[p0][j1][end,gconstr0idx]) && continue # the package is not required by any of the allowed versions of p0 + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + # Force uninstalled state for all unseen packages + for p0 = 1:np + p0 ∈ seen && continue + gconstr0 = gconstr[p0] + @assert gconstr0[end] + fill!(gconstr0, false) + gconstr0[end] = true + end + + return graph +end + +function deep_clean!(graph::Graph) + np = graph.np + spp = graph.spp + + log_event_global!(graph, "cleaning graph") + + sumspp = sum(count(graph.gconstr[p0]) for p0 = 1:np) + + while true + gconstr_msk = [trues(spp[p0]) for p0 = 1:np] + + str_len = 0 + + for p0 = 1:np, v0 in findall(graph.gconstr[p0]) + print("\r" * " "^str_len * "\r") + msg = "> $p0 / $np" + print(msg) + str_len = length(msg) + push_snapshot!(graph) + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][v0] = true + try + propagate_constraints!(graph, Set{Int}([p0]), log_events = false) + catch err + err isa PkgError || rethrow(err) + gconstr_msk[p0][v0] = false + end + pop_snapshot!(graph) + end + + println() + + affected = Int[] + for p0 = 1:np + gconstr0 = graph.gconstr[p0] + old_gconstr0 = copy(gconstr0) + gconstr0 .&= gconstr_msk[p0] + if old_gconstr0 ≠ gconstr0 + push!(affected, p0) + #TODO : log event + end + if !any(gconstr0) + # TODO : what should we do here?? + # throw(PkgError("aaaaaaaaaaaaaahhhhhhhh")) # XXX + end + end + println("> affected = $(length(affected))") + isempty(affected) && break + end + + sumspp_new = sum(count(graph.gconstr[p0]) for p0 = 1:np) + + log_event_global!(graph, "cleaned graph, stats (total n. of states): before = $(sumspp) after = $(sumspp_new) diff = $(sumspp-sumspp_new)") + + return graph +end + +""" +Reduce the number of versions in the graph by putting all the versions of +a package that behave identically into equivalence classes, keeping only +the highest version of the class as representative. +""" +function compute_eq_classes!(graph::Graph) + log_event_global!(graph, "computing version equivalence classes") + + np = graph.np + sumspp = sum(graph.spp) + for p0 = 1:np + build_eq_classes1!(graph, p0) + end + + log_event_global!(graph, "computed version equivalence classes, stats (total n. of states): before = $(sumspp) after = $(sum(graph.spp))") + + @assert check_consistency(graph) + + return graph +end + +function build_eq_classes1!(graph::Graph, p0::Int) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + data = graph.data + pkgs = data.pkgs + pvers = data.pvers + vdict = data.vdict + eq_classes = data.eq_classes + rlog = data.rlog + + # concatenate all the constraints; the columns of the + # result encode the behavior of each version + cmat = vcat(BitMatrix(copy(transpose(gconstr[p0]))), gmsk[p0]...) + cvecs = [cmat[:,v0] for v0 = 1:spp[p0]] + + # find unique behaviors + repr_vecs = unique(cvecs) + + # number of equivaent classes + neq = length(repr_vecs) + + neq == spp[p0] && return # nothing to do here + + # group versions into sets that behave identically + eq_sets = [Set{Int}(v0 for v0 in 1:spp[p0] if cvecs[v0] == rvec) for rvec in repr_vecs] + sort!(eq_sets, by=maximum) + + # each set is represented by its highest-valued member + repr_vers = map(maximum, eq_sets) + # the last representative must always be the uninstalled state + @assert repr_vers[end] == spp[p0] + + # update equivalence classes + eq_vn(v0) = (v0 == spp[p0] ? nothing : pvers[p0][v0]) + eq_classes0 = eq_classes[pkgs[p0]] + for (v0,rvs) in zip(repr_vers, eq_sets) + @assert v0 ∈ rvs + vn0 = eq_vn(v0) + for v1 in rvs + v1 == v0 && continue + vn1 = eq_vn(v1) + @assert vn1 ≢ nothing + union!(eq_classes0[vn0], eq_classes0[vn1]) + delete!(eq_classes0, vn1) + end + end + + # reduce the constraints and the interaction matrices + spp[p0] = neq + gconstr[p0] = gconstr[p0][repr_vers] + for (j1,p1) in enumerate(gadj[p0]) + gmsk[p0][j1] = gmsk[p0][j1][:,repr_vers] + + j0 = adjdict[p0][p1] + gmsk[p1][j0] = gmsk[p1][j0][repr_vers,:] + end + + # reduce/rebuild version dictionaries + pvers[p0] = pvers[p0][repr_vers[1:(end-1)]] + vdict[p0] = Dict(vn => i for (i,vn) in enumerate(pvers[p0])) + + # put a record in the log + log_event_eq_classes!(graph, p0) + + return +end + +function compute_eq_classes_soft!(graph::Graph; log_events::Bool = true) + log_events && log_event_global!(graph, "computing version equivalence classes") + + np = graph.np + + np == 0 && return graph + + ignored = graph.ignored + gconstr = graph.gconstr + sumspp = sum(count(gconstr[p0]) for p0 = 1:np) + for p0 = 1:np + ignored[p0] && continue + build_eq_classes_soft1!(graph, p0) + end + sumspp_new = sum(count(gconstr[p0]) for p0 = 1:np) + + log_events && log_event_global!(graph, "computed version equivalence classes, stats (total n. of states): before = $(sumspp) after = $(sumspp_new) diff = $(sumspp_new-sumspp)") + + @assert check_consistency(graph) + + return graph +end + +function build_eq_classes_soft1!(graph::Graph, p0::Int) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + ignored = graph.ignored + + # concatenate all the constraints; the columns of the + # result encode the behavior of each version + gadj0 = gadj[p0] + gmsk0 = gmsk[p0] + gconstr0 = gconstr[p0] + eff_spp0 = count(gconstr0) + cvecs = BitVector[vcat(BitVector(), (gmsk0[j1][gconstr[gadj0[j1]],v0] for j1 = 1:length(gadj0) if !ignored[gadj0[j1]])...) for v0 in findall(gconstr0)] + + @assert length(cvecs) == eff_spp0 + + # find unique behaviors + repr_vecs = unique(cvecs) + + # number of equivaent classes + neq = length(repr_vecs) + + neq == eff_spp0 && return # nothing to do here + + # group versions into sets that behave identically + # each set is represented by its highest-valued member + repr_vers = sort!(Int[findlast(equalto(repr_vecs[w0]), cvecs) for w0 = 1:neq]) + @assert all(repr_vers .> 0) + @assert repr_vers[end] == eff_spp0 + + # convert the version numbers into the original numbering + repr_vers = findall(gconstr0)[repr_vers] + + @assert all(gconstr0[repr_vers]) + + # disable the other versions by introducing additional constraints + fill!(gconstr0, false) + gconstr0[repr_vers] = true + + return +end + +function update_ignored!(graph::Graph) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + + for p0 = 1:np + ignored[p0] = (count(gconstr[p0]) == 1) + end + + return graph +end + +""" +Prune away fixed and unnecessary packages, and the +disallowed versions for the remaining packages. +""" +function prune_graph!(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + adjdict = graph.adjdict + req_inds = graph.req_inds + fix_inds = graph.fix_inds + ignored = graph.ignored + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + vdict = data.vdict + pruned = data.pruned + rlog = data.rlog + + # We will remove all packages that only have one allowed state + # (includes fixed packages and forbidden packages) + pkg_mask = BitArray(count(gconstr[p0]) ≠ 1 for p0 = 1:np) + new_np = count(pkg_mask) + + # a map that translates the new index ∈ 1:new_np into its + # corresponding old index ∈ 1:np + old_idx = findall(pkg_mask) + # the reverse of the above + new_idx = Dict{Int,Int}() + for new_p0 = 1:new_np + new_idx[old_idx[new_p0]] = new_p0 + end + + # Update requirement indices + new_req_inds = Set{Int}() + for p0 in req_inds + pkg_mask[p0] || continue + push!(new_req_inds, new_idx[p0]) + end + + # Fixed packages will all be pruned + new_fix_inds = Set{Int}() + for p0 in fix_inds + @assert !pkg_mask[p0] + end + + # Record which packages we are going to prune + for p0 in findall(.~(pkg_mask)) + # Find the version + s0 = findfirst(gconstr[p0]) + # We don't record fixed packages + p0 ∈ fix_inds && (@assert s0 ≠ spp[p0]; continue) + p0 ∈ req_inds && @assert s0 ≠ spp[p0] + log_event_pruned!(graph, p0, s0) + # We don't record as pruned packages that are not going to be installed + s0 == spp[p0] && continue + @assert !haskey(pruned, pkgs[p0]) + pruned[pkgs[p0]] = pvers[p0][s0] + end + + # Update packages records + new_pkgs = pkgs[pkg_mask] + new_pdict = Dict(new_pkgs[new_p0]=>new_p0 for new_p0 = 1:new_np) + new_ignored = ignored[pkg_mask] + empty!(graph.solve_stack) + + # For each package (unless it's going to be pruned) we will remove all + # versions that aren't allowed (but not the "uninstalled" state) + function keep_vers(new_p0) + p0 = old_idx[new_p0] + return BitArray((v0 == spp[p0]) | gconstr[p0][v0] for v0 = 1:spp[p0]) + end + vers_mask = [keep_vers(new_p0) for new_p0 = 1:new_np] + + # Update number of states per package + new_spp = Int[count(vers_mask[new_p0]) for new_p0 = 1:new_np] + + # Update versions maps + function compute_pvers(new_p0) + p0 = old_idx[new_p0] + pvers0 = pvers[p0] + vmsk0 = vers_mask[new_p0] + return pvers0[vmsk0[1:(end-1)]] + end + new_pvers = [compute_pvers(new_p0) for new_p0 = 1:new_np] + new_vdict = [Dict(vn => v0 for (v0,vn) in enumerate(new_pvers[new_p0])) for new_p0 = 1:new_np] + + # The new constraints are all going to be `true`, except possibly + # for the "uninstalled" state, which we copy over from the old + function compute_gconstr(new_p0) + p0 = old_idx[new_p0] + new_gconstr0 = trues(new_spp[new_p0]) + new_gconstr0[end] = gconstr[p0][end] + return new_gconstr0 + end + new_gconstr = [compute_gconstr(new_p0) for new_p0 = 1:new_np] + + # Recreate the graph adjacency list, skipping some packages + new_gadj = [Int[] for new_p0 = 1:new_np] + new_adjdict = [Dict{Int,Int}() for new_p0 = 1:new_np] + + for new_p0 = 1:new_np, (j1,p1) in enumerate(gadj[old_idx[new_p0]]) + pkg_mask[p1] || continue + new_p1 = new_idx[p1] + + new_j0 = get(new_adjdict[new_p1], new_p0, length(new_gadj[new_p0]) + 1) + new_j1 = get(new_adjdict[new_p0], new_p1, length(new_gadj[new_p1]) + 1) + + @assert (new_j0 > length(new_gadj[new_p0]) && new_j1 > length(new_gadj[new_p1])) || + (new_j0 ≤ length(new_gadj[new_p0]) && new_j1 ≤ length(new_gadj[new_p1])) + + new_j0 > length(new_gadj[new_p0]) || continue + push!(new_gadj[new_p0], new_p1) + push!(new_gadj[new_p1], new_p0) + new_j0 = length(new_gadj[new_p0]) + new_j1 = length(new_gadj[new_p1]) + + new_adjdict[new_p1][new_p0] = new_j0 + new_adjdict[new_p0][new_p1] = new_j1 + end + + # Recompute compatibility masks on the new adjacency list, and filtering out some versions + function compute_gmsk(new_p0, new_j0) + p0 = old_idx[new_p0] + new_p1 = new_gadj[new_p0][new_j0] + p1 = old_idx[new_p1] + j0 = adjdict[p1][p0] + return gmsk[p0][j0][vers_mask[new_p1],vers_mask[new_p0]] + end + new_gmsk = [[compute_gmsk(new_p0, new_j0) for new_j0 = 1:length(new_gadj[new_p0])] for new_p0 = 1:new_np] + + # Reduce log pool (the other items are still reachable through rlog.init) + rlog.pool = Dict(p=>rlog.pool[p] for p in new_pkgs) + + # Done + + log_event_global!(graph, "pruned graph — stats (n. of packages, mean connectivity): before = ($np,$(mean(spp))) after = ($new_np,$(mean(new_spp)))") + + # Replace old data with new + data.pkgs = new_pkgs + data.np = new_np + data.spp = new_spp + data.pdict = new_pdict + data.pvers = new_pvers + data.vdict = new_vdict + # Notes: + # * uuid_to_name, eq_classes are unchanged + # * pruned and rlog were updated in-place + + # Replace old structures with new ones + graph.gadj = new_gadj + graph.gmsk = new_gmsk + graph.gconstr = new_gconstr + graph.adjdict = new_adjdict + graph.req_inds = new_req_inds + graph.fix_inds = new_fix_inds + graph.ignored = new_ignored + graph.spp = new_spp + graph.np = new_np + # Note: solve_stack was emptied in-place + + @assert check_consistency(graph) + + return graph +end + +""" +Simplifies the graph by propagating constraints, disabling unreachable versions, pruning +and grouping versions into equivalence classes. +""" +function simplify_graph!(graph::Graph, sources::Set{Int} = Set{Int}(); clean_graph::Bool = false) + propagate_constraints!(graph) + disable_unreachable!(graph, sources) + clean_graph && deep_clean!(graph) + prune_graph!(graph) + compute_eq_classes!(graph) + return graph +end + +function simplify_graph_soft!(graph::Graph, sources::Set{Int} = Set{Int}(); log_events = true) + propagate_constraints!(graph, sources, log_events = log_events) + update_ignored!(graph) + compute_eq_classes_soft!(graph, log_events = log_events) + update_ignored!(graph) + return graph +end + +end # module diff --git a/stdlib/Pkg3/src/Operations.jl b/stdlib/Pkg3/src/Operations.jl new file mode 100644 index 0000000000000..cc883f3659de6 --- /dev/null +++ b/stdlib/Pkg3/src/Operations.jl @@ -0,0 +1,739 @@ +module Operations + +using UUIDs +using Random: randstring +import LibGit2 + +using Pkg3.TerminalMenus +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Resolve + +import Pkg3: GLOBAL_SETTINGS, depots, BinaryProvider, @info, Nothing +import Pkg3.Types: uuid_julia + +const SlugInt = UInt32 # max p = 4 +const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" +const nchars = SlugInt(length(chars)) +const max_p = floor(Int, log(nchars, typemax(SlugInt) >>> 8)) + +function slug(x::SlugInt, p::Int) + 1 ≤ p ≤ max_p || # otherwise previous steps are wrong + error("invalid slug size: $p (need 1 ≤ p ≤ $max_p)") + return sprint() do io + for i = 1:p + x, d = divrem(x, nchars) + write(io, chars[1+d]) + end + end +end +slug(x::Integer, p::Int) = slug(SlugInt(x), p) + +function slug(bytes::Vector{UInt8}, p::Int) + n = nchars^p + x = zero(SlugInt) + for (i, b) in enumerate(bytes) + x = (x + b*powermod(2, 8(i-1), n)) % n + end + slug(x, p) +end + +slug(uuid::UUID, p::Int=4) = slug(uuid.value % nchars^p, p) +slug(sha1::SHA1, p::Int=4) = slug(sha1.bytes, p) + +version_slug(uuid::UUID, sha1::SHA1) = joinpath(slug(uuid), slug(sha1)) + +function find_installed(uuid::UUID, sha1::SHA1) + slug = version_slug(uuid, sha1) + for depot in depots() + path = abspath(depot, "packages", slug) + ispath(path) && return path + end + return abspath(depots()[1], "packages", slug) +end + +function package_env_info(pkg::String, env::EnvCache = EnvCache(); verb::String = "choose") + project = env.project + manifest = env.manifest + haskey(manifest, pkg) || return nothing + infos = manifest[pkg] + isempty(infos) && return nothing + if haskey(project, "deps") && haskey(project["deps"], pkg) + uuid = project["deps"][pkg] + filter!(infos) do info + haskey(info, "uuid") && info["uuid"] == uuid + end + length(infos) < 1 && + cmderror("manifest has no stanza for $pkg/$uuid") + length(infos) > 1 && + cmderror("manifest has multiple stanzas for $pkg/$uuid") + return first(infos) + elseif length(infos) == 1 + return first(infos) + else + options = String[] + paths = convert(Dict{String,Vector{String}}, find_registered(pkg)) + for info in infos + uuid = info["uuid"] + option = uuid + if haskey(paths, uuid) + for path in paths[uuid] + info′ = parse_toml(path, "package.toml") + option *= " – $(info′["repo"])" + break + end + else + option *= " – (unregistred)" + end + push!(options, option) + end + menu = RadioMenu(options) + choice = request("Which $pkg package do you want to use:", menu) + choice == -1 && cmderror("Package load aborted") + return infos[choice] + end +end + +get_or_make(::Type{T}, d::Dict{K}, k::K) where {T,K} = + haskey(d, k) ? convert(T, d[k]) : T() + +get_or_make!(d::Dict{K,V}, k::K) where {K,V} = get!(d, k) do; V() end + +function load_versions(path::String) + toml = parse_toml(path, "versions.toml") + Dict(VersionNumber(ver) => SHA1(info["git-tree-sha1"]) for (ver, info) in toml) +end + +function load_package_data(f::Base.Callable, path::String, versions) + toml = parse_toml(path, fakeit=true) + data = Dict{VersionNumber,Dict{String,Any}}() + for ver in versions + ver::VersionNumber + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + ver in vr || continue + dict = get!(data, ver, Dict{String,Any}()) + haskey(dict, key) && cmderror("$ver/$key is duplicated in $path") + dict[key] = f(value) + end + end + return data +end + +load_package_data(f::Base.Callable, path::String, version::VersionNumber) = + get(load_package_data(f, path, [version]), version, nothing) + +function load_package_data_raw(T::Type, path::String) + toml = parse_toml(path, fakeit=true) + data = Dict{VersionRange,Dict{String,T}}() + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + dict = get!(data, vr, Dict{String,T}()) + haskey(dict, key) && cmderror("$vr/$key is duplicated in $path") + dict[key] = T(value) + end + return data +end + +function deps_graph(env::EnvCache, uuid_to_name::Dict{UUID,String}, reqs::Requires, fixed::Dict{UUID,Fixed}) + uuids = collect(union(keys(reqs), keys(fixed), map(fx->keys(fx.requires), values(fixed))...)) + seen = UUID[] + + all_versions = Dict{UUID,Set{VersionNumber}}(fp => Set([fx.version]) for (fp,fx) in fixed) + all_deps = Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}(fp => Dict(VersionRange(fx.version) => Dict()) for (fp,fx) in fixed) + all_compat = Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}(fp => Dict(VersionRange(fx.version) => Dict()) for (fp,fx) in fixed) + while true + unseen = setdiff(uuids, seen) + isempty(unseen) && break + for uuid in unseen + push!(seen, uuid) + all_versions_u = get_or_make!(all_versions, uuid) + all_deps_u = get_or_make!(all_deps, uuid) + all_compat_u = get_or_make!(all_compat, uuid) + # make sure all versions of all packages know about julia uuid + if uuid ≠ uuid_julia + deps_u_allvers = get_or_make!(all_deps_u, VersionRange()) + deps_u_allvers["julia"] = uuid_julia + end + for path in registered_paths(env, uuid) + version_info = load_versions(path) + versions = sort!(collect(keys(version_info))) + deps_data = load_package_data_raw(UUID, joinpath(path, "dependencies.toml")) + compatibility_data = load_package_data_raw(VersionSpec, joinpath(path, "compatibility.toml")) + + union!(all_versions_u, versions) + for (vr,dd) in deps_data + all_deps_u_vr = get_or_make!(all_deps_u, vr) + for (name,other_uuid) in dd + # check conflicts?? + all_deps_u_vr[name] = other_uuid + other_uuid in uuids || push!(uuids, other_uuid) + end + end + for (vr,cd) in compatibility_data + all_compat_u_vr = get_or_make!(all_compat_u, vr) + for (name,vs) in cd + # check conflicts?? + all_compat_u_vr[name] = vs + end + end + end + end + find_registered!(env, uuids) + end + + for uuid in uuids + uuid == uuid_julia && continue + try + uuid_to_name[uuid] = registered_name(env, uuid) + end + info = manifest_info(env, uuid) + info ≡ nothing && continue + uuid_to_name[UUID(info["uuid"])] = info["name"] + end + + return Graph(all_versions, all_deps, all_compat, uuid_to_name, reqs, fixed) +end + +"Resolve a set of versions given package version specs" +function resolve_versions!(env::EnvCache, pkgs::Vector{PackageSpec})::Dict{UUID,VersionNumber} + @info("Resolving package versions") + # anything not mentioned is fixed + uuids = UUID[pkg.uuid for pkg in pkgs] + uuid_to_name = Dict{UUID,String}(uuid_julia => "julia") + for (name::String, uuidstr::String) in env.project["deps"] + uuid = UUID(uuidstr) + uuid_to_name[uuid] = name + uuid in uuids && continue + info = manifest_info(env, uuid) + haskey(info, "version") || continue + ver = VersionNumber(info["version"]) + push!(pkgs, PackageSpec(name, uuid, ver)) + end + # construct data structures for resolver and call it + reqs = Requires(pkg.uuid => VersionSpec(pkg.version) for pkg in pkgs if pkg.uuid ≠ uuid_julia) + fixed = Dict([uuid_julia => Fixed(VERSION)]) + graph = deps_graph(env, uuid_to_name, reqs, fixed) + + simplify_graph!(graph) + vers = resolve(graph) + find_registered!(env, collect(keys(vers))) + # update vector of package versions + for pkg in pkgs + # Fixed packages are not returned by resolve (they already have their version set) + haskey(vers, pkg.uuid) && (pkg.version = vers[pkg.uuid]) + end + uuids = UUID[pkg.uuid for pkg in pkgs] + for (uuid, ver) in vers + uuid in uuids && continue + name = registered_name(env, uuid) + push!(pkgs, PackageSpec(name, uuid, ver)) + end + return vers +end + +"Find names, repos and hashes for each package UUID & version" +function version_data(env::EnvCache, pkgs::Vector{PackageSpec}) + names = Dict{UUID,String}() + hashes = Dict{UUID,SHA1}() + upstreams = Dict{UUID,Vector{String}}() + for pkg in pkgs + uuid = pkg.uuid + ver = pkg.version::VersionNumber + upstreams[uuid] = String[] + for path in registered_paths(env, uuid) + info = parse_toml(path, "package.toml") + if haskey(names, uuid) + names[uuid] == info["name"] || + cmderror("$uuid: name mismatch between registries: ", + "$(names[uuid]) vs. $(info["name"])") + else + names[uuid] = info["name"] + end + repo = info["repo"] + repo in upstreams[uuid] || push!(upstreams[uuid], repo) + vers = load_versions(path) + if haskey(vers, ver) + h = vers[ver] + if haskey(hashes, uuid) + h == hashes[uuid] || + @warn "$uuid: hash mismatch for version $ver!" + else + hashes[uuid] = h + end + end + end + @assert haskey(hashes, uuid) + end + foreach(sort!, values(upstreams)) + return names, hashes, upstreams +end + +const refspecs = ["+refs/*:refs/remotes/cache/*"] + +function get_archive_url_for_version(url::String, version) + if (m = match(r"https://github.com/(.*?)/(.*?).git", url)) != nothing + return "https://github.com/$(m.captures[1])/$(m.captures[2])/archive/v$(version).tar.gz" + end + return nothing +end + +function install( + env::EnvCache, + uuid::UUID, + name::String, + hash::SHA1, + urls::Vector{String}, + version::Union{VersionNumber,Nothing} = nothing +)::Tuple{String,Bool} + # returns path to version & if it's newly installed + version_path = find_installed(uuid, hash) + ispath(version_path) && return version_path, false + http_download_successful = false + env.preview[] && return version_path, true + if !GLOBAL_SETTINGS.use_libgit2_for_all_downloads && version != nothing + for url in urls + archive_url = get_archive_url_for_version(url, version) + if archive_url != nothing + path = joinpath(tempdir(), name * "_" * randstring(6) * ".tar.gz") + url_success = true + try + cmd = BinaryProvider.gen_download_cmd(archive_url, path); + run(cmd, (DevNull, DevNull, DevNull)) + catch e + e isa InterruptException && rethrow(e) + url_success = false + end + url_success || continue + http_download_successful = true + dir = joinpath(tempdir(), randstring(12)) + mkpath(dir) + cmd = BinaryProvider.gen_unpack_cmd(path, dir); + run(cmd, (DevNull, DevNull, DevNull)) + dirs = readdir(dir) + # 7z on Win might create this spurious file + filter!(x -> x != "pax_global_header", dirs) + @assert length(dirs) == 1 + !isdir(version_path) && mkpath(version_path) + mv(joinpath(dir, dirs[1]), version_path; remove_destination=true) + Base.rm(path; force = true) + break # object was found, we can stop + end + end + end + if !http_download_successful || GLOBAL_SETTINGS.use_libgit2_for_all_downloads + upstream_dir = joinpath(depots()[1], "upstream") + ispath(upstream_dir) || mkpath(upstream_dir) + repo_path = joinpath(upstream_dir, string(uuid)) + repo = ispath(repo_path) ? LibGit2.GitRepo(repo_path) : begin + # info("Cloning [$uuid] $name") + LibGit2.clone(urls[1], repo_path, isbare=true) + end + git_hash = LibGit2.GitHash(hash.bytes) + for i = 2:length(urls) + try LibGit2.GitObject(repo, git_hash) + break # object was found, we can stop + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + end + url = urls[i] + LibGit2.fetch(repo, remoteurl=url, refspecs=refspecs) + end + tree = try + LibGit2.GitObject(repo, git_hash) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + error("$name: git object $(string(hash)) could not be found") + end + tree isa LibGit2.GitTree || + error("$name: git object $(string(hash)) should be a tree, not $(typeof(tree))") + mkpath(version_path) + opts = LibGit2.CheckoutOptions( + checkout_strategy = LibGit2.Consts.CHECKOUT_FORCE, + target_directory = Base.unsafe_convert(Cstring, version_path) + ) + h = string(hash)[1:16] + LibGit2.checkout_tree(repo, tree, options=opts) + end + return version_path, true +end + +function update_manifest(env::EnvCache, uuid::UUID, name::String, hash::SHA1, version::VersionNumber) + infos = get!(env.manifest, name, Dict{String,Any}[]) + info = nothing + for i in infos + UUID(i["uuid"]) == uuid || continue + info = i + break + end + if info == nothing + info = Dict{String,Any}("uuid" => string(uuid)) + push!(infos, info) + end + info["version"] = string(version) + info["git-tree-sha1"] = string(hash) + delete!(info, "deps") + for path in registered_paths(env, uuid) + data = load_package_data(UUID, joinpath(path, "dependencies.toml"), version) + data == nothing && continue + info["deps"] = Dict(string(k) => string(v) for (k,v) in data) + break + end + return info +end + +function prune_manifest(env::EnvCache) + keep = map(UUID, values(env.project["deps"])) + while !isempty(keep) + clean = true + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") && haskey(info, "deps") || continue + UUID(info["uuid"]) ∈ keep || continue + for dep in map(UUID, values(info["deps"])) + dep ∈ keep && continue + push!(keep, dep) + clean = false + end + end + clean && break + end + if VERSION < v"0.7.0-DEV.1393" + filter!(env.manifest) do _, infos + filter!(infos) do info + haskey(info, "uuid") && UUID(info["uuid"]) ∈ keep + end + !isempty(infos) + end + else + filter!(env.manifest) do _infos # (_, info) doesn't parse on 0.6 + _, infos = _infos + filter!(infos) do info + haskey(info, "uuid") && UUID(info["uuid"]) ∈ keep + end + !isempty(infos) + end + end +end + +function apply_versions(env::EnvCache, pkgs::Vector{PackageSpec})::Vector{UUID} + names, hashes, urls = version_data(env, pkgs) + # install & update manifest + new_versions = UUID[] + + jobs = Channel(GLOBAL_SETTINGS.num_concurrent_downloads); + results = Channel(GLOBAL_SETTINGS.num_concurrent_downloads); + @schedule begin + for pkg in pkgs + put!(jobs, pkg) + end + end + + for i in 1:GLOBAL_SETTINGS.num_concurrent_downloads + @schedule begin + for pkg in jobs + uuid = pkg.uuid + version = pkg.version::VersionNumber + name, hash = names[uuid], hashes[uuid] + try + version_path, new = install(env, uuid, name, hash, urls[uuid], version) + put!(results, (pkg, version_path, version, hash, new)) + catch e + put!(results, e) + end + end + end + end + + textwidth = VERSION < v"0.7.0-DEV.1930" ? Base.strwidth : Base.textwidth + widths = [textwidth(names[pkg.uuid]) for pkg in pkgs if haskey(names, pkg.uuid)] + max_name = length(widths) == 0 ? 0 : maximum(widths) + + for _ in 1:length(pkgs) + r = take!(results) + r isa Exception && cmderror("Error when installing packages:\n", sprint(Base.showerror, r)) + pkg, path, version, hash, new = r + if new + vstr = version != nothing ? "v$version" : "[$h]" + new && @info "Installed $(rpad(names[pkg.uuid] * " ", max_name + 2, "─")) $vstr" + end + uuid = pkg.uuid + version = pkg.version::VersionNumber + name, hash = names[uuid], hashes[uuid] + update_manifest(env, uuid, name, hash, version) + new && push!(new_versions, uuid) + end + prune_manifest(env) + return new_versions +end + +function dependency_order_uuids(env::EnvCache, uuids::Vector{UUID})::Dict{UUID,Int} + order = Dict{UUID,Int}() + seen = UUID[] + k::Int = 0 + function visit(uuid::UUID) + uuid in seen && + return @warn("Dependency graph not a DAG, linearizing anyway") + haskey(order, uuid) && return + push!(seen, uuid) + info = manifest_info(env, uuid) + haskey(info, "deps") && + foreach(visit, values(info["deps"])) + pop!(seen) + order[uuid] = k += 1 + end + visit(uuid::String) = visit(UUID(uuid)) + foreach(visit, uuids) + return order +end + +function build_versions(env::EnvCache, uuids::Vector{UUID}) + # collect builds for UUIDs with `deps/build.jl` files + env.preview[] && (@info "Skipping building in preview mode"; return) + builds = Tuple{UUID,String,SHA1,String}[] + for uuid in uuids + info = manifest_info(env, uuid) + name = info["name"] + # TODO: handle development packages? + haskey(info, "git-tree-sha1") || continue + hash = SHA1(info["git-tree-sha1"]) + path = find_installed(uuid, hash) + ispath(path) || error("Build path for $name does not exist: $path") + build_file = joinpath(path, "deps", "build.jl") + ispath(build_file) && push!(builds, (uuid, name, hash, build_file)) + end + # toposort builds by dependencies + order = dependency_order_uuids(env, map(first, builds)) + sort!(builds, by = build -> order[first(build)]) + # build each package verions in a child process + withenv("JULIA_ENV" => env.project_file) do + for (uuid, name, hash, build_file) in builds + log_file = splitext(build_file)[1] * ".log" + @info "Building $name [$(string(hash)[1:16])]..." + @info " → $log_file" + code = """ + empty!(Base.LOAD_PATH) + append!(Base.LOAD_PATH, $(repr(LOAD_PATH, :module => nothing))) + empty!(Base.DEPOT_PATH) + append!(Base.DEPOT_PATH, $(repr(DEPOT_PATH))) + empty!(Base.LOAD_CACHE_PATH) + append!(Base.LOAD_CACHE_PATH, $(repr(Base.LOAD_CACHE_PATH))) + empty!(Base.DL_LOAD_PATH) + append!(Base.DL_LOAD_PATH, $(repr(Base.DL_LOAD_PATH))) + cd($(repr(dirname(build_file)))) + include($(repr(build_file))) + """ + cmd = ``` + $(Base.julia_cmd()) -O0 --color=no --history-file=no + --startup-file=$(Base.JLOptions().startupfile != 2 ? "yes" : "no") + --compilecache=$((VERSION < v"0.7.0-DEV.1735" ? Base.JLOptions().use_compilecache : + Base.JLOptions().use_compiled_modules) != 0 ? "yes" : "no") + --eval $code + ``` + open(log_file, "w") do log + success(pipeline(cmd, stdout=log, stderr=log)) + end ? Base.rm(log_file, force=true) : + @warn("Error building `$name`; see log file for further info") + end + end + return +end + +function rm(env::EnvCache, pkgs::Vector{PackageSpec}) + drop = UUID[] + # find manifest-mode drops + for pkg in pkgs + pkg.mode == :manifest || continue + info = manifest_info(env, pkg.uuid) + if info != nothing + pkg.uuid in drop || push!(drop, pkg.uuid) + else + str = has_name(pkg) ? pkg.name : string(pkg.uuid) + @warn("`$str` not in manifest, ignoring") + end + end + # drop reverse dependencies + while !isempty(drop) + clean = true + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") && haskey(info, "deps") || continue + deps = map(UUID, values(info["deps"])) + isempty(drop ∩ deps) && continue + uuid = UUID(info["uuid"]) + uuid ∉ drop || continue + push!(drop, uuid) + clean = false + end + clean && break + end + # find project-mode drops + for pkg in pkgs + pkg.mode == :project || continue + found = false + for (name::String, uuidstr::String) in env.project["deps"] + uuid = UUID(uuidstr) + has_name(pkg) && pkg.name == name || + has_uuid(pkg) && pkg.uuid == uuid || continue + !has_name(pkg) || pkg.name == name || + error("project file name mismatch for `$uuid`: $(pkg.name) ≠ $name") + !has_uuid(pkg) || pkg.uuid == uuid || + error("project file UUID mismatch for `$name`: $(pkg.uuid) ≠ $uuid") + uuid in drop || push!(drop, uuid) + found = true + break + end + found && continue + str = has_name(pkg) ? pkg.name : string(pkg.uuid) + @warn("`$str` not in project, ignoring") + end + # delete drops from project + n = length(env.project["deps"]) + if VERSION < v"0.7.0-DEV.1393" + filter!(env.project["deps"]) do _, uuid + UUID(uuid) ∉ drop + end + else + filter!(env.project["deps"]) do _uuid # (_, uuid) doesn't parse on 0.6 + _, uuid = _uuid + UUID(uuid) ∉ drop + end + end + if length(env.project["deps"]) == n + @info "No changes" + return + end + # only keep reachable manifest entires + prune_manifest(env) + # update project & manifest + write_env(env) +end + +function add(env::EnvCache, pkgs::Vector{PackageSpec}) + # if julia is passed as a package the solver gets tricked; + # this catches the error early on + any(pkg->(pkg.uuid == uuid_julia), pkgs) && + error("Trying to add julia as a package") + # copy added name/UUIDs into project + for pkg in pkgs + env.project["deps"][pkg.name] = string(pkg.uuid) + end + # if a package is in the project file and + # the manifest version in the specified version set + # then leave the package as is at the installed version + for (name::String, uuidstr::String) in env.project["deps"] + uuid = UUID(uuidstr) + info = manifest_info(env, uuid) + info != nothing && haskey(info, "version") || continue + version = VersionNumber(info["version"]) + for pkg in pkgs + pkg.uuid == uuid && version ∈ pkg.version || continue + pkg.version = version + end + end + # resolve & apply package versions + resolve_versions!(env, pkgs) + new = apply_versions(env, pkgs) + write_env(env) # write env before building + build_versions(env, new) +end + +function up(env::EnvCache, pkgs::Vector{PackageSpec}) + # resolve upgrade levels to version specs + for pkg in pkgs + pkg.version isa UpgradeLevel || continue + level = pkg.version + info = manifest_info(env, pkg.uuid) + ver = VersionNumber(info["version"]) + if level == UpgradeLevel(:fixed) + pkg.version = VersionNumber(info["version"]) + else + r = level == UpgradeLevel(:patch) ? VersionRange(ver.major, ver.minor) : + level == UpgradeLevel(:minor) ? VersionRange(ver.major) : + level == UpgradeLevel(:major) ? VersionRange() : + error("unexpected upgrade level: $level") + pkg.version = VersionSpec(r) + end + end + # resolve & apply package versions + resolve_versions!(env, pkgs) + new = apply_versions(env, pkgs) + write_env(env) # write env before building + build_versions(env, new) +end + +function test(env::EnvCache, pkgs::Vector{PackageSpec}; coverage=false) + # See if we can find the test files for all packages + missing_runtests = String[] + testfiles = String[] + version_paths = String[] + for pkg in pkgs + info = manifest_info(env, pkg.uuid) + haskey(info, "git-tree-sha1") || cmderror("Could not find git-tree-sha1 for package $(pkg.name)") + version_path = find_installed(pkg.uuid, SHA1(info["git-tree-sha1"])) + testfile = joinpath(version_path, "test", "runtests.jl") + if !isfile(testfile) + push!(missing_runtests, pkg.name) + end + push!(version_paths, version_path) + push!(testfiles, testfile) + end + if !isempty(missing_runtests) + cmderror(length(missing_runtests) == 1 ? "Package " : "Packages ", + join(missing_runtests, ", "), + " did not provide a `test/runtests.jl` file") + end + + pkgs_errored = [] + for (pkg, testfile, version_path) in zip(pkgs, testfiles, version_paths) + @info("Testing $(pkg.name) located at $version_path") + if env.preview[] + @info("In preview mode, skipping tests for $(pkg.name)") + continue + end + # TODO, cd to test folder (need to be careful with getting the same EnvCache + # as for this session in that case + compilemod_opt, compilemod_val = VERSION < v"0.7.0-DEV.1735" ? + ("compilecache" , Base.JLOptions().use_compilecache) : + ("compiled-modules", Base.JLOptions().use_compiled_modules) + + testcmd = `"import Pkg3; include(\"$testfile\")"` + cmd = ``` + $(Base.julia_cmd()) + --code-coverage=$(coverage ? "user" : "none") + --color=$(Base.have_color ? "yes" : "no") + --$compilemod_opt=$(Bool(compilemod_val) ? "yes" : "no") + --check-bounds=yes + --startup-file=$(Base.JLOptions().startupfile != 2 ? "yes" : "no") + $testfile + ``` + try + run(cmd) + @info("$(pkg.name) tests passed") + catch err + push!(pkgs_errored, pkg.name) + end + + end + + if !isempty(pkgs_errored) + cmderror(length(pkgs_errored) == 1 ? "Package " : "Packages ", + join(pkgs_errored, ", "), + " errored during testing") + end +end + +function init(path::String) + gitpath = nothing + try + gitpath = git_discover(path, ceiling = homedir()) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + end + path = gitpath == nothing ? path : dirname(dirname(gitpath)) + mkpath(path) + isfile(joinpath(path, "Project.toml")) && cmderror("Environment already initialized at $path") + touch(joinpath(path, "Project.toml")) + @info("Initialized environment in $path by creating the file Project.toml") +end + +end # module + diff --git a/stdlib/Pkg3/src/Pkg3.jl b/stdlib/Pkg3/src/Pkg3.jl new file mode 100644 index 0000000000000..d0fc4ecdf3042 --- /dev/null +++ b/stdlib/Pkg3/src/Pkg3.jl @@ -0,0 +1,74 @@ +__precompile__(true) +module Pkg3 + +import Random + +@enum LoadErrorChoice LOAD_ERROR_QUERY LOAD_ERROR_INSTALL LOAD_ERROR_ERROR + +Base.@kwdef mutable struct GlobalSettings + load_error_choice::LoadErrorChoice = LOAD_ERROR_QUERY # query, install, or error, when not finding package on import + use_libgit2_for_all_downloads::Bool = false + num_concurrent_downloads::Int = 8 + depots::Vector{String} = [joinpath(homedir(), ".julia")] +end + +const GLOBAL_SETTINGS = GlobalSettings() + +depots() = GLOBAL_SETTINGS.depots +logdir() = joinpath(depots()[1], "logs") + +# load snapshotted dependencies +include("../ext/BinaryProvider/src/BinaryProvider.jl") +include("../ext/TOML/src/TOML.jl") +include("../ext/TerminalMenus/src/TerminalMenus.jl") + +include("Types.jl") +include("GraphType.jl") +include("Resolve.jl") +include("Display.jl") +include("Operations.jl") +include("REPLMode.jl") +include("API.jl") + +import .API: add, rm, up, test, gc, init, build, installed +const update = up + +function __init__() + if isdefined(Base, :active_repl) + REPLMode.repl_init(Base.active_repl) + else + atreplinit() do repl + repl.interface = Base.REPL.setup_interface(repl) + REPLMode.repl_init(repl) + end + end +end + +function _query_if_interactive(base, name) + env = Types.EnvCache() + pkgspec = [Types.PackageSpec(base)] + + r = Operations.registry_resolve!(env, pkgspec) + Types.has_uuid(r[1]) || return nothing + + GLOBAL_SETTINGS.load_error_choice == LOAD_ERROR_INSTALL && @goto install + GLOBAL_SETTINGS.load_error_choice == LOAD_ERROR_ERROR && return nothing + + choice = TerminalMenus.request("Could not find package \e[1m$(base)\e[22m, do you want to install it?", + TerminalMenus.RadioMenu(["yes", "yes (remember)", "no", "no (remember)"])) + + if choice == 3 || choice == 4 + choice == 4 && (GLOBAL_SETTINGS.load_error_choice = LOAD_ERROR_ERROR) + return nothing + end + + choice == 2 && (GLOBAL_SETTINGS.load_error_choice = LOAD_ERROR_INSTALL) + @label install + Pkg3.Operations.ensure_resolved(env, pkgspec, true) + Pkg3.Operations.add(env, pkgspec) + return _find_package(name) +end + +const query_if_interactive = Ref{Any}(_query_if_interactive) + +end # module diff --git a/stdlib/Pkg3/src/REPLMode.jl b/stdlib/Pkg3/src/REPLMode.jl new file mode 100644 index 0000000000000..5bac930cb4dba --- /dev/null +++ b/stdlib/Pkg3/src/REPLMode.jl @@ -0,0 +1,549 @@ +module REPLMode + +using Markdown +using UUIDs + +import REPL +import REPL: LineEdit, REPLCompletions + +import Pkg3 +using Pkg3.Types +using Pkg3.Display +using Pkg3.Operations + +const cmds = Dict( + "help" => :help, + "?" => :help, + "status" => :status, + "st" => :status, + "." => :status, + "search" => :search, + "find" => :search, + "/" => :search, + "add" => :add, + "install" => :add, + "+" => :add, + "rm" => :rm, + "remove" => :rm, + "uninstall" => :rm, + "-" => :rm, + "up" => :up, + "update" => :up, + "upgrade" => :up, + "test" => :test, + "gc" => :gc, + "fsck" => :fsck, + "preview" => :preview, + "init" => :init, + "build" => :build, +) + +const opts = Dict( + "env" => :env, + "project" => :project, + "p" => :project, + "manifest" => :manifest, + "m" => :manifest, + "major" => :major, + "minor" => :minor, + "patch" => :patch, + "fixed" => :fixed, + "coverage" => :coverage, +) + +function parse_option(word::AbstractString) + m = match(r"^(?: -([a-z]) | --([a-z]{2,})(?:\s*=\s*(\S*))? )$"ix, word) + m == nothing && cmderror("invalid option: ", repr(word)) + k = m.captures[1] != nothing ? m.captures[1] : m.captures[2] + haskey(opts, k) || cmderror("invalid option: ", repr(word)) + m.captures[3] == nothing ? + (:opt, opts[k]) : (:opt, opts[k], String(m.captures[3])) +end + +let uuid = raw"(?i)[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}(?-i)", + name = raw"(\w+)(?:\.jl)?" + global const name_re = Regex("^$name\$") + global const uuid_re = Regex("^$uuid\$") + global const name_uuid_re = Regex("^$name\\s*=\\s*($uuid)\$") +end + +const lex_re = r"^[\?\./\+\-](?!\-) | [^@\s]+\s*=\s*[^@\s]+ | @\s*[^@\s]* | [^@\s]+"x + +function tokenize(cmd::String)::Vector{Tuple{Symbol,Vararg{Any}}} + tokens = Tuple{Symbol,Vararg{Any}}[] + # TODO: handle string-quoted values, e.g. path names + words = map(m->m.match, eachmatch(lex_re, cmd)) + help_mode = false + while !isempty(words) + word = popfirst!(words) + if word[1] == '-' && length(word) > 1 + push!(tokens, parse_option(word)) + else + word in keys(cmds) || cmderror("invalid command: ", repr(word)) + push!(tokens, (:cmd, cmds[word])) + help_mode || cmds[word] != :help && break + help_mode = true + end + end + if isempty(tokens) || tokens[end][1] != :cmd + cmderror("no package command given") + end + while !isempty(words) + word = popfirst!(words) + if word[1] == '-' + push!(tokens, parse_option(word)) + elseif word[1] == '@' + push!(tokens, (:ver, VersionRange(strip(word[2:end])))) + elseif contains(word, uuid_re) + push!(tokens, (:pkg, UUID(word))) + elseif contains(word, name_re) + push!(tokens, (:pkg, String(match(name_re, word).captures[1]))) + elseif contains(word, name_uuid_re) + m = match(name_uuid_re, word) + push!(tokens, (:pkg, String(m.captures[1]), UUID(m.captures[2]))) + else + cmderror("invalid argument: ", repr(word)) + end + end + return tokens +end + +function do_cmd(repl::REPL.AbstractREPL, input::String) + try + tokens = tokenize(input) + do_cmd!(tokens, repl) + catch err + if err isa CommandError + Base.display_error(repl.t.err_stream, ErrorException(err.msg), Ptr{Nothing}[]) + else + Base.display_error(repl.t.err_stream, err, Base.catch_backtrace()) + end + end +end + +function do_cmd!(tokens, repl; preview = false) + local cmd::Symbol + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :cmd + cmd = token[2] + break + elseif token[1] == :opt + if token[2] == :env + length(token) == 3 || + cmderror("the `--env` option requires a value") + env_opt = token[3] + else + cmderror("unrecognized option: `--$(token[2])`") + end + else + cmderror("misplaced token: ", token) + end + end + cmd == :init && return do_init!(tokens) + cmd == :preview && return do_preview!(tokens, repl) + local env_opt::Union{String,Nothing} = get(ENV, "JULIA_ENV", nothing) + env = EnvCache(env_opt) + preview && (env.preview[] = true) + cmd == :help ? do_help!(env, tokens, repl) : + cmd == :rm ? do_rm!(env, tokens) : + cmd == :add ? do_add!(env, tokens) : + cmd == :up ? do_up!(env, tokens) : + cmd == :status ? do_status!(env, tokens) : + cmd == :test ? do_test!(env, tokens) : + cmd == :gc ? do_gc!(env, tokens) : + cmd == :build ? do_build!(env, tokens) : + cmderror("`$cmd` command not yet implemented") +end + +function do_preview!(tokens, repl) + isempty(tokens) && cmderror("`preview` needs a command") + word = tokens[1][2] + word in keys(cmds) || cmderror("invalid command: ", repr(word)) + cmds[word] == :init && cmderror("cannot run `init` in preview mode") + tokens[1] = (:cmd, cmds[word]) + do_cmd!(tokens, repl, preview = true) +end + +const help = Markdown.parse(""" + **Synopsis** + + pkg> [--env=...] cmd [opts] [args] + + **Environment** + + The `--env` meta option determines which project environment to manipulate. By + default, this looks for a git repo in the parents directories of the current + working directory, and if it finds one, it uses that as an environment. Otherwise, + it uses a named environment (typically found in `~/.julia/environments`) looking + for environments named `v$(VERSION.major).$(VERSION.minor).$(VERSION.patch)`, + `v$(VERSION.major).$(VERSION.minor)`, `v$(VERSION.major)` or `default` in order. + + **Commands** + + What action you want the package manager to take: + + `help`: show this message + + `status`: summarize contents of and changes to environment + + `add`: add packages to project + + `rm`: remove packages from project or manifest + + `up`: update packages in manifest + + `preview`: previews a subsequent command without affecting the current state + + `test`: run tests for packages + + `gc`: garbage collect packages not used for a significant time + + `init` initializes an environment in the current, or git base, directory + + `build` run the build script for packages + """) + +const helps = Dict( + :help => md""" + + help + + Display this message. + + help cmd ... + + Display usage information for commands listed. + + Available commands: `help`, `status`, `add`, `rm`, `up` + """, :status => md""" + + status + status [-p|--project] + status [-m|--manifest] + + Show the status of the current environment. By default, the full contents of + the project file is summarized, showing what version each package is on and + how it has changed since the last git commit (if in a git repo), as well as + any changes to manifest packages not already listed. In `--project` mode, the + status of the project file is summarized. In `--project` mode, the status of + the project file is summarized. + """, :add => md""" + + add pkg[=uuid] [@version] ... + + Add package `pkg` to the current project file. If `pkg` could refer to + multiple different packages, specifying `uuid` allows you to disambiguate. + `@version` optionally allows specifying which versions of packages. Versions + may be specified by `@1`, `@1.2`, `@1.2.3`, allowing any version with a prefix + that matches, or ranges thereof, such as `@1.2-3.4.5`. + """, :rm => md""" + + rm [-p|--project] pkg[=uuid] ... + + Remove package `pkg` from the project file. Since the name `pkg` can only + refer to one package in a project this is unambiguous, but you can specify + a `uuid` anyway, and the command is ignored, with a warning if package name + and UUID do not mactch. When a package is removed from the project file, it + may still remain in the manifest if it is required by some other package in + the project. Project mode operation is the default, so passing `-p` or + `--project` is optional unless it is preceded by the `-m` or `--manifest` + options at some earlier point. + + rm [-m|--manifest] pkg[=uuid] ... + + Remove package `pkg` from the manifest file. If the name `pkg` refers to + multiple packages in the manifest, `uuid` disambiguates it. Removing a package + from the manifest forces the removal of all packages that depend on it, as well + as any no-longer-necessary manifest packages due to project package removals. + """, :up => md""" + + up [-p|project] [opts] pkg[=uuid] [@version] ... + up [-m|manifest] [opts] pkg[=uuid] [@version] ... + + opts: --major | --minor | --patch | --fixed + + Update the indicated package within the constraints of the indicated version + specifications. Versions may be specified by `@1`, `@1.2`, `@1.2.3`, allowing + any version with a prefix that matches, or ranges thereof, such as `@1.2-3.4.5`. + In `--project` mode, package specifications only match project packages, while + in `manifest` mode they match any manifest package. Bound level options force + the following packages to be upgraded only within the current major, minor, + patch version; if the `--fixed` upgrade level is given, then the following + packages will not be upgraded at all. + """, :preview => md""" + + preview cmd + + Runs the command `cmd` in preview mode. This is defined such that no side effects + will take place i.e. no packages are downloaded and neither the project nor manifest + is modified. + """, :test => md""" + + test [opts] pkg[=uuid] ... + + opts: --coverage + + Run the tests for package `pkg`. This is done by running the file `test/runtests.jl` + in the package directory. The option `--coverage` can be used to run the tests with + coverage enabled. + """, :gc => md""" + + Deletes packages that are not reached from any environment used within the last 6 weeks. + """, :init => md""" + + init + + Creates an environment in the current directory, or the git base directory if the current directory + is in a git repository. + """, :build =>md""" + + build pkg[=uuid] ... + + Run the build script in deps/build.jl for each package in pkgs and all of their dependencies in depth-first recursive order. + If no packages are given, runs the build scripts for all packages in the manifest. + """, +) + +function do_help!( + env::EnvCache, + tokens::Vector{Tuple{Symbol,Vararg{Any}}}, + repl::REPL.AbstractREPL, +) + disp = REPL.REPLDisplay(repl) + if isempty(tokens) + Base.display(disp, help) + return + end + help_md = md"" + for token in tokens + if token[1] == :cmd + if haskey(helps, token[2]) + isempty(help_md.content) || + push!(help_md.content, md"---") + push!(help_md.content, helps[token[2]].content) + else + cmderror("Sorry, I don't have any help for the `$(token[2])` command.") + end + else + error("This should not happen") + end + end + Base.display(disp, help_md) +end + +function do_rm!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + # tokens: package names and/or uuids + mode = :project + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :pkg + push!(pkgs, PackageSpec(token[2:end]...)) + pkgs[end].mode = mode + elseif token[1] == :ver + cmderror("`rm` does not take version specs") + elseif token[1] == :opt + if token[2] in (:project, :manifest) + length(token) == 2 || + cmderror("the --$(token[2]) option does not take an argument") + mode = token[2] + else + cmderror("invalid option for `rm`: --$(token[2])") + end + end + end + isempty(pkgs) && + cmderror("`rm` – list packages to remove") + Pkg3.API.rm(env, pkgs) +end + +function do_add!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + # tokens: package names and/or uuids, optionally followed by version specs + isempty(tokens) && + cmderror("`add` – list packages to add") + tokens[1][1] == :ver && + cmderror("package name/uuid must precede version spec `@$(tokens[1][2])`") + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :pkg + push!(pkgs, PackageSpec(token[2:end]...)) + elseif token[1] == :ver + pkgs[end].version = VersionSpec(token[2]) + isempty(tokens) || tokens[1][1] == :pkg || + cmderror("package name/uuid must precede version spec `@$(tokens[1][2])`") + elseif token[1] == :opt + cmderror("`add` doesn't take options: --$(join(token[2:end], '='))") + end + end + Pkg3.API.add(env, pkgs) +end + +function do_up!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + # tokens: + # - upgrade levels as options: --[fixed|patch|minor|major] + # - package names and/or uuids, optionally followed by version specs + mode = :project + pkgs = PackageSpec[] + level = UpgradeLevel(:major) + last_token_type = :cmd + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :pkg + push!(pkgs, PackageSpec(token[2:end]..., level)) + pkgs[end].mode = mode + elseif token[1] == :ver + pkgs[end].version = VersionSpec(token[2]) + last_token_type == :pkg || + cmderror("package name/uuid must precede version spec `@$(token[2])`") + elseif token[1] == :opt + if token[2] in (:project, :manifest) + length(token) == 2 || + cmderror("the --$(token[2]) option does not take an argument") + mode = token[2] + elseif token[2] in (:major, :minor, :patch, :fixed) + length(token) == 2 || + cmderror("the --$(token[2]) option does not take an argument") + level = UpgradeLevel(token[2]) + else + cmderror("invalid option for `up`: --$(token[2])") + end + end + last_token_type = token[1] + end + Pkg3.API.up(env, pkgs; level=level, mode=mode) +end + +function do_status!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + mode = :combined + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :opt + if token[2] in (:project, :manifest) + length(token) == 2 || + cmderror("the --$(token[2]) option does not take an argument") + mode = token[2] + else + cmderror("invalid option for `status`: --$(token[2])") + end + else + cmderror("`status` does not take arguments") + end + end + Pkg3.Display.status(env, mode) +end + +# TODO , test recursive dependencies as on option. +function do_test!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + pkgs = PackageSpec[] + coverage = false + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :pkg + if length(token) == 2 + pkg = PackageSpec(token[2]) + pkg.mode = :manifest + push!(pkgs, pkg) + else + cmderror("`test` only takes a set of packages to test") + end + elseif token[1] == :opt + if token[2] == :coverage + coverage = true + else + cmderror("invalid option for `test`: --$(token[2])") + end + else + # TODO: Better error message + cmderror("invalid usage for `test`") + end + end + isempty(pkgs) && cmderror("`test` takes a set of packages") + Pkg3.API.test(env, pkgs; coverage = coverage) +end + +function do_gc!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + !isempty(tokens) && cmderror("`gc` does not take any arguments") + Pkg3.API.gc(env) +end + +function do_build!(env::EnvCache, tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + pkgs = PackageSpec[] + while !isempty(tokens) + token = popfirst!(tokens) + if token[1] == :pkg + push!(pkgs, PackageSpec(token[2:end]...)) + else + cmderror("`build` only takes a list of packages") + end + end + Pkg3.API.build(env, pkgs) +end + +function do_init!(tokens::Vector{Tuple{Symbol,Vararg{Any}}}) + if !isempty(tokens) + cmderror("`init` does currently not take any arguments") + end + Pkg3.API.init(pwd()) +end + + +function create_mode(repl, main) + pkg_mode = LineEdit.Prompt("pkg> "; + prompt_prefix = Base.text_colors[:blue], + prompt_suffix = "", + sticky = true) + + if VERSION >= v"0.7.0-DEV.1747" + pkg_mode.repl = repl + end + + hp = main.hist + hp.mode_mapping[:pkg] = pkg_mode + pkg_mode.hist = hp + + search_prompt, skeymap = LineEdit.setup_search_keymap(hp) + prefix_prompt, prefix_keymap = LineEdit.setup_prefix_keymap(hp, pkg_mode) + + pkg_mode.on_done = (s, buf, ok) -> begin + ok || return REPL.transition(s, :abort) + input = String(take!(buf)) + REPL.reset(repl) + do_cmd(repl, input) + REPL.prepare_next(repl) + REPL.reset_state(s) + s.current_mode.sticky || REPL.transition(s, main) + end + + mk = REPL.mode_keymap(main) + + b = Dict{Any,Any}[ + skeymap, mk, prefix_keymap, LineEdit.history_keymap, + LineEdit.default_keymap, LineEdit.escape_defaults + ] + pkg_mode.keymap_dict = LineEdit.keymap(b) + return pkg_mode +end + +function repl_init(repl) + main_mode = repl.interface.modes[1] + pkg_mode = create_mode(repl, main_mode) + push!(repl.interface.modes, pkg_mode) + keymap = Dict{Any,Any}( + ']' => function (s,args...) + if isempty(s) || position(LineEdit.buffer(s)) == 0 + buf = copy(LineEdit.buffer(s)) + LineEdit.transition(s, pkg_mode) do + LineEdit.state(s, pkg_mode).input_buffer = buf + end + else + LineEdit.edit_insert(s, ']') + end + end + ) + main_mode.keymap_dict = LineEdit.keymap_merge(main_mode.keymap_dict, keymap) + return +end + +end diff --git a/stdlib/Pkg3/src/Resolve.jl b/stdlib/Pkg3/src/Resolve.jl new file mode 100644 index 0000000000000..44f6b4f663b40 --- /dev/null +++ b/stdlib/Pkg3/src/Resolve.jl @@ -0,0 +1,417 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module Resolve + +include(joinpath("resolve", "VersionWeights.jl")) +include(joinpath("resolve", "MaxSum.jl")) + +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Resolve.MaxSum +import Pkg3.Types: uuid_julia +import Pkg3.GraphType: is_julia, check_constraints, log_event_global!, log_event_greedysolved!, log_event_maxsumsolved!, log_event_maxsumtrace! + +if Base.isdeprecated(Base, Symbol("@sprintf")) + using Printf +end + +export resolve, sanity_check + +"Resolve package dependencies." +function resolve(graph::Graph) + # attempt trivial solution first + greedy_ok, sol = greedysolver(graph) + + greedy_ok && @goto solved + + log_event_global!(graph, "greedy solver failed") + + # trivial solution failed, use maxsum solver + maxsum_ok, sol, staged = maxsum(graph) + + maxsum_ok && @goto solved + + log_event_global!(graph, "maxsum solver failed") + + # the problem is unsat, force-trigger a failure + # in order to produce a log - this will contain + # information about the best that the solver could + # achieve + trigger_failure!(graph, sol, staged) + + @label solved + + # verify solution (debug code) and enforce its optimality + @assert verify_solution(sol, graph) + greedy_ok || enforce_optimality!(sol, graph) + + log_event_global!(graph, "the solver found $(greedy_ok ? "an optimal" : "a feasible") configuration") + + # return the solution as a Dict mapping UUID => VersionNumber + return compute_output_dict(sol, graph) +end + +""" +Scan the graph for (explicit or implicit) contradictions. Returns a list of problematic +(package,version) combinations. +""" +function sanity_check(graph::Graph, sources::Set{UUID} = Set{UUID}(); verbose = true) + req_inds = graph.req_inds + fix_inds = graph.fix_inds + + id(p) = pkgID(p, graph) + + isempty(req_inds) || @warn("sanity check called on a graph with non-empty requirements") + if !any(is_julia(graph, fp0) for fp0 in fix_inds) + @warn("sanity check called on a graph without julia requirement, adding it") + add_fixed!(graph, Dict(uuid_julia=>Fixed(VERSION))) + end + if length(fix_inds) ≠ 1 + @warn("sanity check called on a graph with extra fixed requirements (besides julia)") + end + + isources = isempty(sources) ? + Set{Int}(1:graph.np) : + Set{Int}(graph.data.pdict[p] for p in sources) + + simplify_graph!(graph, isources) + + np = graph.np + spp = graph.spp + gadj = graph.gadj + data = graph.data + pkgs = data.pkgs + pdict = data.pdict + pvers = data.pvers + eq_classes = data.eq_classes + + problematic = Tuple{String,VersionNumber}[] + + np == 0 && return problematic + + vers = [(pkgs[p0],pvers[p0][v0]) for p0 = 1:np for v0 = 1:(spp[p0]-1)] + sort!(vers, by=pv->(-length(gadj[pdict[pv[1]]]))) + + nv = length(vers) + + svdict = Dict{Tuple{UUID,VersionNumber},Int}(vers[i] => i for i = 1:nv) + + checked = falses(nv) + + last_str_len = 0 + + for (i,(p,vn)) in enumerate(vers) + if verbose + frac_compl = i / nv + print("\r", " "^last_str_len, "\r") + progr_msg = @sprintf("%.3i/%.3i (%i%%) — problematic so far: %i", i, nv, round(Int, 100 * frac_compl), length(problematic)) + print(progr_msg) + last_str_len = length(progr_msg) + end + + length(gadj[pdict[p]]) == 0 && break + checked[i] && continue + + push_snapshot!(graph) + + # enforce package version + # TODO: use add_reqs! instead... + p0 = graph.data.pdict[p] + v0 = graph.data.vdict[p0][vn] + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][v0] = true + push!(graph.req_inds, p0) + + ok = false + try + simplify_graph_soft!(graph, Set{Int}([p0]), log_events = false) + catch err + isa(err, PkgError) || rethrow(err) + @goto done + end + + ok, sol = greedysolver(graph) + ok && @goto done + ok, sol = maxsum(graph) + + @label done + + if !ok + for vneq in eq_classes[p][vn] + push!(problematic, (id(p), vneq)) + end + else + @assert verify_solution(sol, graph) + sol_dict = compute_output_dict(sol, graph) + for (sp,svn) in sol_dict + j = svdict[sp,svn] + checked[j] = true + end + end + + # state reset + empty!(graph.req_inds) + pop_snapshot!(graph) + end + if verbose + print("\r", " "^last_str_len, "\r") + println("found $(length(problematic)) problematic versions") + end + return sort!(problematic) +end + +""" +Translate the solver output (a Vector{Int} of package states) into a Dict which +associates a VersionNumber to each installed package UUID. +""" +function compute_output_dict(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + fix_inds = graph.fix_inds + pkgs = graph.data.pkgs + pvers = graph.data.pvers + pruned = graph.data.pruned + + want = Dict{UUID,VersionNumber}() + for p0 = 1:np + p0 ∈ fix_inds && continue + p = pkgs[p0] + s0 = sol[p0] + s0 == spp[p0] && continue + vn = pvers[p0][s0] + want[p] = vn + end + for (p,vn) in pruned + @assert !haskey(want, p) + want[p] = vn + end + + return want +end + +""" +Preliminary solver attempt: tries to maximize each version; bails out as soon as +some non-trivial requirement is detected. +""" +function greedysolver(graph::Graph) + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + np = graph.np + + push_snapshot!(graph) + gconstr = graph.gconstr + + # initialize solution: all uninstalled + sol = [spp[p0] for p0 = 1:np] + + # packages which are not allowed to be uninstalled + # (NOTE: this is potentially a superset of graph.req_inds, + # since it may include implicit requirements) + req_inds = Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) + + # set up required packages to their highest allowed versions + for rp0 in req_inds + # look for the highest version which satisfies the requirements + rv0 = findlast(gconstr[rp0]) + @assert rv0 ≠ 0 && rv0 ≠ spp[rp0] + sol[rp0] = rv0 + fill!(gconstr[rp0], false) + gconstr[rp0][rv0] = true + end + + # propagate the requirements + try + simplify_graph_soft!(graph, req_inds, log_events = false) + catch err + err isa PkgError || rethrow(err) + pop_snapshot!(graph) + return (false, Int[]) + end + + # we start from required packages and explore the graph + # following dependencies + staged = req_inds + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + s0 = sol[p0] + @assert s0 < spp[p0] + + # scan dependencies + for (j1,p1) in enumerate(gadj[p0]) + msk = gmsk[p0][j1] + # look for the highest version which satisfies the requirements + v1 = findlast(msk[:,s0] .& gconstr[p1]) + v1 == spp[p1] && continue # p1 is not required by p0's current version + # if we found a version, and the package was uninstalled + # or the same version was already selected, we're ok; + # otherwise we can't be sure what the optimal configuration is + # and we bail out + if v1 > 0 && (sol[p1] == spp[p1] || sol[p1] == v1) + sol[p1] = v1 + else + pop_snapshot!(graph) + return (false, Int[]) + end + + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + pop_snapshot!(graph) + + for p0 = 1:np + log_event_greedysolved!(graph, p0, sol[p0]) + end + + return true, sol +end + +""" +Verifies that the solver solution fulfills all hard constraints +(requirements and dependencies). This is intended as debug code. +""" +function verify_solution(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + + @assert length(sol) == np + @assert all(sol .> 0) + + # verify constraints and dependencies + for p0 = 1:np + s0 = sol[p0] + gconstr[p0][s0] || (@warn("gconstr[$p0][$s0] fail"); return false) + for (j1,p1) in enumerate(gadj[p0]) + msk = gmsk[p0][j1] + s1 = sol[p1] + msk[s1,s0] || (@warn("gmsk[$p0][$p1][$s1,$s0] fail"); return false) + end + end + return true +end + +""" +Push the given solution to a local optimium if needed: keeps increasing +the states of the given solution as long as no constraints are violated. +It also removes unnecessary parts of the solution which are unconnected +to the required packages. +""" +function enforce_optimality!(sol::Vector{Int}, graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gmsk = graph.gmsk + gconstr = graph.gconstr + pkgs = graph.data.pkgs + + # keep a track for the log + why = Union{Symbol,Int}[0 for p0 = 1:np] + + restart = true + while restart + restart = false + for p0 = 1:np + s0 = sol[p0] + s0 == spp[p0] && (why[p0] = :uninst; continue) # the package is not installed + + # check if bumping to the higher version would violate a constraint + gconstr[p0][s0+1] || (why[p0] = :constr; continue) + + # check if bumping to the higher version would violate a constraint + viol = false + for (j1,p1) in enumerate(gadj[p0]) + s1 = sol[p1] + msk = gmsk[p0][j1] + if !msk[s1, s0+1] + viol = true + why[p0] = p1 + break + end + end + viol && continue + + # So the solution is non-optimal: we bump it manually + sol[p0] += 1 + restart = true + end + end + + # Finally uninstall unneeded packages: + # start from the required ones and keep only + # the packages reachable from them along the graph. + # (These should have been removed in the previous step, but in principle + # an unconnected yet self-sustaining cycle may have survived.) + uninst = trues(np) + staged = Set{Int}(p0 for p0 = 1:np if !gconstr[p0][end]) + seen = copy(staged) + + while !isempty(staged) + staged_next = Set{Int}() + for p0 in staged + s0 = sol[p0] + @assert s0 < spp[p0] + uninst[p0] = false + for (j1,p1) in enumerate(gadj[p0]) + gmsk[p0][j1][end,s0] && continue # the package is not required by p0 at version s0 + p1 ∈ seen || push!(staged_next, p1) + end + end + union!(seen, staged_next) + staged = staged_next + end + + for p0 in findall(uninst) + sol[p0] = spp[p0] + why[p0] = :uninst + end + + @assert verify_solution(sol, graph) + + for p0 = 1:np + log_event_maxsumsolved!(graph, p0, sol[p0], why[p0]) + end +end + +function apply_maxsum_trace!(graph::Graph, sol::Vector{Int}) + gconstr = graph.gconstr + + for (p0,s0) in enumerate(sol) + s0 == 0 && continue + gconstr0 = gconstr[p0] + old_constr = copy(gconstr0) + @assert old_constr[s0] + fill!(gconstr0, false) + gconstr0[s0] = true + gconstr0 ≠ old_constr && log_event_maxsumtrace!(graph, p0, s0) + end +end + +function trigger_failure!(graph::Graph, sol::Vector{Int}, staged::Tuple{Int,Int}) + apply_maxsum_trace!(graph, sol) + simplify_graph_soft!(graph, Set(findall(sol .> 0)), log_events = true) # this may throw an error... + + np = graph.np + gconstr = graph.gconstr + p0, v0 = staged + + @assert gconstr[p0][v0] + fill!(gconstr[p0], false) + gconstr[p0][v0] = true + log_event_maxsumtrace!(graph, p0, v0) + simplify_graph!(graph) # this may throw an error... + outdict = resolve(graph) # ...otherwise, this MUST throw an error + open(io->showlog(io, graph, view=:chronological), "logchrono.errresolve.txt", "w") + error("this is not supposed to happen... $(Dict(pkgID(p, graph) => vn for (p,vn) in outdict))") +end + +end # module diff --git a/stdlib/Pkg3/src/Types.jl b/stdlib/Pkg3/src/Types.jl new file mode 100644 index 0000000000000..dca2ec67120c8 --- /dev/null +++ b/stdlib/Pkg3/src/Types.jl @@ -0,0 +1,1012 @@ +module Types + +using UUIDs +using Random +using Dates +import LibGit2 + +using Pkg3.TOML +using Pkg3.TerminalMenus +import Pkg3 +import Pkg3: depots, logdir + +using SHA + +export UUID, pkgID, SHA1, VersionRange, VersionSpec, empty_versionspec, + Requires, Fixed, merge_requires!, satisfies, PkgError, + PackageSpec, UpgradeLevel, EnvCache, + CommandError, cmderror, has_name, has_uuid, write_env, parse_toml, find_registered!, + project_resolve!, manifest_resolve!, registry_resolve!, ensure_resolved, + manifest_info, registered_uuids, registered_paths, registered_uuid, registered_name, + git_file_stream, git_discover, read_project, read_manifest, pathrepr, registries + + +## ordering of UUIDs ## + +Base.isless(a::UUID, b::UUID) = a.value < b.value + +## Computing UUID5 values from (namespace, key) pairs ## +function uuid5(namespace::UUID, key::String) + data = [reinterpret(UInt8, [namespace.value]); codeunits(key)] + u = reinterpret(UInt128, sha1(data)[1:16])[1] + u &= 0xffffffffffff0fff3fffffffffffffff + u |= 0x00000000000050008000000000000000 + return UUID(u) +end +uuid5(namespace::UUID, key::AbstractString) = uuid5(namespace, String(key)) + +const uuid_dns = UUID(0x6ba7b810_9dad_11d1_80b4_00c04fd430c8) +const uuid_julia = uuid5(uuid_dns, "julialang.org") +const uuid_package = uuid5(uuid_julia, "package") +const uuid_registry = uuid5(uuid_julia, "registry") + + +## user-friendly representation of package IDs ## + +function pkgID(p::UUID, uuid_to_name::Dict{UUID,String}) + name = get(uuid_to_name, p, "UNKNOWN") + uuid_short = string(p)[1:8] + return "$name [$uuid_short]" +end + +## SHA1 ## + +struct SHA1 + bytes::Vector{UInt8} + function SHA1(bytes::Vector{UInt8}) + length(bytes) == 20 || + throw(ArgumentError("wrong number of bytes for SHA1 hash: $(length(bytes))")) + return new(bytes) + end + SHA1(s::String) = SHA1(hex2bytes(s)) +end + +Base.string(hash::SHA1) = bytes2hex(hash.bytes) +Base.show(io::IO, hash::SHA1) = print(io, "SHA1(", String(hash.bytes), ")") +Base.isless(a::SHA1, b::SHA1) = lexless(a.bytes, b.bytes) +Base.hash(a::SHA1, h::UInt) = hash((SHA1, a.bytes), h) +Base.:(==)(a::SHA1, b::SHA1) = a.bytes == b.bytes + +## VersionRange ## + +struct VersionBound{n} + t::NTuple{n,Int} + function VersionBound{n}(t::NTuple{n,Integer}) where n + n <= 3 || throw(ArgumentError("VersionBound: you can only specify major, minor and patch versions")) + return new(t) + end +end +VersionBound(t::Integer...) = VersionBound{length(t)}(t) + +VersionBound(v::VersionNumber) = VersionBound(v.major, v.minor, v.patch) + +Base.getindex(b::VersionBound, i::Int) = b.t[i] + +≲(v::VersionNumber, b::VersionBound{0}) = true +≲(v::VersionNumber, b::VersionBound{1}) = v.major <= b[1] +≲(v::VersionNumber, b::VersionBound{2}) = (v.major, v.minor) <= (b[1], b[2]) +≲(v::VersionNumber, b::VersionBound{3}) = (v.major, v.minor, v.patch) <= (b[1], b[2], b[3]) + +≲(b::VersionBound{0}, v::VersionNumber) = true +≲(b::VersionBound{1}, v::VersionNumber) = v.major >= b[1] +≲(b::VersionBound{2}, v::VersionNumber) = (v.major, v.minor) >= (b[1], b[2]) +≲(b::VersionBound{3}, v::VersionNumber) = (v.major, v.minor, v.patch) >= (b[1], b[2], b[3]) + +≳(v::VersionNumber, b::VersionBound) = v ≲ b +≳(b::VersionBound, v::VersionNumber) = b ≲ v + +# Comparison between two lower bounds +# (could be done with generated functions, or even manually unrolled...) +function isless_ll(a::VersionBound{m}, b::VersionBound{n}) where {m,n} + for i = 1:min(m,n) + a[i] < b[i] && return true + a[i] > b[i] && return false + end + return m < n +end + +stricterlower(a::VersionBound, b::VersionBound) = isless_ll(a, b) ? b : a + +# Comparison between two upper bounds +# (could be done with generated functions, or even manually unrolled...) +function isless_uu(a::VersionBound{m}, b::VersionBound{n}) where {m,n} + for i = 1:min(m,n) + a[i] < b[i] && return true + a[i] > b[i] && return false + end + return m > n +end + +stricterupper(a::VersionBound, b::VersionBound) = isless_uu(a, b) ? a : b + +# `isjoinable` compares an upper bound of a range with the lower bound of the next range +# to determine if they can be joined, as in [1.5-2.8, 2.5-3] -> [1.5-3]. Used by `union!`. +# The equal-length-bounds case is special since e.g. `1.5` can be joined with `1.6`, +# `2.3.4` can be joined with `2.3.5` etc. + +isjoinable(up::VersionBound{0}, lo::VersionBound{0}) = true + +function isjoinable(up::VersionBound{n}, lo::VersionBound{n}) where {n} + for i = 1:(n - 1) + up[i] > lo[i] && return true + up[i] < lo[i] && return false + end + up[n] < lo[n] - 1 && return false + return true +end + +function isjoinable(up::VersionBound{m}, lo::VersionBound{n}) where {m,n} + l = min(m,n) + for i = 1:l + up[i] > lo[i] && return true + up[i] < lo[i] && return false + end + return true +end + + +Base.hash(r::VersionBound, h::UInt) = hash(r.t, h) + +VersionBound(s::AbstractString) = + s == "*" ? VersionBound() : VersionBound(map(x->parse(Int, x), split(s, '.'))...) + +struct VersionRange{m,n} + lower::VersionBound{m} + upper::VersionBound{n} + # NOTE: ranges are allowed to be empty; they are ignored by VersionSpec anyway +end +VersionRange(b::VersionBound=VersionBound()) = VersionRange(b, b) +VersionRange(t::Integer...) = VersionRange(VersionBound(t...)) +VersionRange(v::VersionNumber) = VersionRange(VersionBound(v)) +function VersionRange(s::AbstractString) + m = match(r"^\s*((?:\d+(?:\.\d+)?(?:\.\d+)?)|\*)(?:\s*-\s*((?:\d+(?:\.\d+)?(?:\.\d+)?)|\*))?\s*$", s) + m == nothing && throw(ArgumentError("invalid version range: $(repr(s))")) + lower = VersionBound(m.captures[1]) + upper = m.captures[2] != nothing ? VersionBound(m.captures[2]) : lower + return VersionRange(lower, upper) +end + +function Base.isempty(r::VersionRange{m,n}) where {m,n} + for i = 1:min(m,n) + r.lower[i] > r.upper[i] && return true + r.lower[i] < r.upper[i] && return false + end + return false +end + +Base.print(io::IO, r::VersionRange{0,0}) = print(io, '*') +function Base.print(io::IO, r::VersionRange{0,n}) where {n} + print(io, "0-") + join(io, r.upper.t, '.') +end +function Base.print(io::IO, r::VersionRange{m,0}) where {m} + join(io, r.lower.t, '.') + print(io, "-*") +end +function Base.print(io::IO, r::VersionRange) + join(io, r.lower.t, '.') + if r.lower != r.upper + print(io, '-') + join(io, r.upper.t, '.') + end +end +Base.show(io::IO, r::VersionRange) = print(io, "VersionRange(\"", r, "\")") + +Base.in(v::VersionNumber, r::VersionRange) = r.lower ≲ v ≲ r.upper +Base.in(v::VersionNumber, r::VersionNumber) = v == r + +Base.intersect(a::VersionRange, b::VersionRange) = VersionRange(stricterlower(a.lower,b.lower), stricterupper(a.upper,b.upper)) + +function Base.union!(ranges::Vector{<:VersionRange}) + l = length(ranges) + l == 0 && return ranges + + sort!(ranges, lt=(a,b)->(isless_ll(a.lower, b.lower) || (a.lower == b.lower && isless_uu(a.upper, b.upper)))) + + k0 = 1 + ks = findfirst(!isempty, ranges) + ks == 0 && return empty!(ranges) + + lo, up, k0 = ranges[ks].lower, ranges[ks].upper, 1 + for k = (ks+1):l + isempty(ranges[k]) && continue + lo1, up1 = ranges[k].lower, ranges[k].upper + if isjoinable(up, lo1) + isless_uu(up, up1) && (up = up1) + continue + end + vr = VersionRange(lo, up) + @assert !isempty(vr) + ranges[k0] = vr + k0 += 1 + lo, up = lo1, up1 + end + vr = VersionRange(lo, up) + if !isempty(vr) + ranges[k0] = vr + k0 += 1 + end + resize!(ranges, k0 - 1) + return ranges +end + +struct VersionSpec + ranges::Vector{VersionRange} + VersionSpec(r::Vector{<:VersionRange}) = new(union!(r)) + VersionSpec(vs::VersionSpec) = new(copy(vs.ranges)) +end + +VersionSpec() = VersionSpec(VersionRange()) +VersionSpec(v::VersionNumber) = VersionSpec(VersionRange(v)) +VersionSpec(r::VersionRange) = VersionSpec(VersionRange[r]) +VersionSpec(s::AbstractString) = VersionSpec(VersionRange(s)) +VersionSpec(v::AbstractVector) = VersionSpec(map(VersionRange, v)) + +Base.copy(vs::VersionSpec) = VersionSpec(vs) + +Base.in(v::VersionNumber, s::VersionSpec) = any(v in r for r in s.ranges) + +const empty_versionspec = VersionSpec(VersionRange[]) +# Windows console doesn't like Unicode +const _empty_symbol = @static Sys.iswindows() ? "empty" : "∅" + +Base.isempty(s::VersionSpec) = all(isempty, s.ranges) +@assert isempty(empty_versionspec) +function Base.intersect(A::VersionSpec, B::VersionSpec) + (isempty(A) || isempty(B)) && return copy(empty_versionspec) + ranges = [intersect(a,b) for a in A.ranges for b in B.ranges] + VersionSpec(ranges) +end + +Base.union(A::VersionSpec, B::VersionSpec) = union!(copy(A), B) +function Base.union!(A::VersionSpec, B::VersionSpec) + A == B && return A + append!(A.ranges, B.ranges) + union!(A.ranges) + return A +end + +Base.:(==)(A::VersionSpec, B::VersionSpec) = A.ranges == B.ranges +Base.hash(s::VersionSpec, h::UInt) = hash(s.ranges, h + (0x2fd2ca6efa023f44 % UInt)) +Base.deepcopy_internal(vs::VersionSpec, ::IdDict) = copy(vs) + +function Base.print(io::IO, s::VersionSpec) + isempty(s) && return print(io, _empty_symbol) + length(s.ranges) == 1 && return print(io, s.ranges[1]) + print(io, '[') + for i = 1:length(s.ranges) + 1 < i && print(io, ", ") + print(io, s.ranges[i]) + end + print(io, ']') +end +Base.show(io::IO, s::VersionSpec) = print(io, "VersionSpec(\"", s, "\")") + +const Requires = Dict{UUID,VersionSpec} + +function merge_requires!(A::Requires, B::Requires) + for (pkg,vers) in B + A[pkg] = haskey(A,pkg) ? intersect(A[pkg],vers) : vers + end + return A +end + +satisfies(pkg::UUID, ver::VersionNumber, reqs::Requires) = + !haskey(reqs, pkg) || in(ver, reqs[pkg]) + +struct Fixed + version::VersionNumber + requires::Requires +end +Fixed(v::VersionNumber) = Fixed(v,Requires()) + +Base.:(==)(a::Fixed, b::Fixed) = a.version == b.version && a.requires == b.requires +Base.hash(f::Fixed, h::UInt) = hash((f.version, f.requires), h + (0x68628b809fd417ca % UInt)) + +Base.show(io::IO, f::Fixed) = isempty(f.requires) ? + print(io, "Fixed(", repr(f.version), ")") : + print(io, "Fixed(", repr(f.version), ",", f.requires, ")") + + +struct PkgError <: Exception + msg::AbstractString + ex::Union{Exception, Nothing} +end +PkgError(msg::AbstractString) = PkgError(msg, nothing) + +function Base.showerror(io::IO, pkgerr::PkgError) + print(io, pkgerr.msg) + if pkgerr.ex !== nothing + pkgex = pkgerr.ex + if isa(pkgex, CompositeException) + for cex in pkgex + print(io, "\n=> ") + showerror(io, cex) + end + else + print(io, "\n") + showerror(io, pkgex) + end + end +end + +## command errors (no stacktrace) ## + +struct CommandError <: Exception + msg::String +end +cmderror(msg::String...) = throw(CommandError(join(msg))) + +Base.showerror(io::IO, ex::CommandError) = showerror(io, ex, []) +function Base.showerror(io::IO, ex::CommandError, bt; backtrace=true) + printstyled(color = Base.error_color(), io, string(ex.msg)) +end + +## type for expressing operations ## + +@enum UpgradeLevel fixed=0 patch=1 minor=2 major=3 + +function UpgradeLevel(s::Symbol) + s == :fixed ? fixed : + s == :patch ? patch : + s == :minor ? minor : + s == :major ? major : + throw(ArgumentError("invalid upgrade bound: $s")) +end +UpgradeLevel(s::String) = UpgradeLevel(Symbol(s)) + +const VersionTypes = Union{VersionNumber,VersionSpec,UpgradeLevel} + +mutable struct PackageSpec + name::String + uuid::UUID + version::VersionTypes + mode::Symbol + PackageSpec(name::String, uuid::UUID, version::VersionTypes) = + new(name, uuid, version, :project) +end +PackageSpec(name::String, uuid::UUID) = + PackageSpec(name, uuid, VersionSpec()) +PackageSpec(name::AbstractString, version::VersionTypes=VersionSpec()) = + PackageSpec(name, UUID(zero(UInt128)), version) +PackageSpec(uuid::UUID, version::VersionTypes=VersionSpec()) = + PackageSpec("", uuid, version) + +has_name(pkg::PackageSpec) = !isempty(pkg.name) +has_uuid(pkg::PackageSpec) = pkg.uuid != UUID(zero(UInt128)) + +function Base.show(io::IO, pkg::PackageSpec) + print(io, "PackageSpec(") + has_name(pkg) && show(io, pkg.name) + has_name(pkg) && has_uuid(pkg) && print(io, ", ") + has_uuid(pkg) && show(io, pkg.uuid) + vstr = repr(pkg.version) + if vstr != "VersionSpec(\"*\")" + (has_name(pkg) || has_uuid(pkg)) && print(io, ", ") + print(io, vstr) + end + print(io, ")") +end + +## environment & registry loading & caching ## + +function parse_toml(path::String...; fakeit::Bool=false) + p = joinpath(path...) + !fakeit || isfile(p) ? TOML.parsefile(p) : Dict{String,Any}() +end + +const project_names = ["JuliaProject.toml", "Project.toml"] +const manifest_names = ["JuliaManifest.toml", "Manifest.toml"] +const default_envs = [ + "v$(VERSION.major).$(VERSION.minor).$(VERSION.patch)", + "v$(VERSION.major).$(VERSION.minor)", + "v$(VERSION.major)", + "default", +] + +struct EnvCache + # environment info: + env::Union{Nothing,String} + git::Union{Nothing,LibGit2.GitRepo} + + # paths for files: + project_file::String + manifest_file::String + + # cache of metadata: + project::Dict + manifest::Dict + + # registered package info: + uuids::Dict{String,Vector{UUID}} + paths::Dict{UUID,Vector{String}} + + preview::Ref{Bool} + + function EnvCache(env::Union{Nothing,String}) + project_file, git_repo = find_project(env) + project = read_project(project_file) + if haskey(project, "manifest") + manifest_file = abspath(project["manifest"]) + else + dir = abspath(dirname(project_file)) + for name in manifest_names + manifest_file = joinpath(dir, name) + isfile(manifest_file) && break + end + end + write_env_usage(manifest_file) + manifest = read_manifest(manifest_file) + uuids = Dict{String,Vector{UUID}}() + paths = Dict{UUID,Vector{String}}() + preview = Ref(false) + return new( + env, + git_repo, + project_file, + manifest_file, + project, + manifest, + uuids, + paths, + preview, + ) + end +end +EnvCache() = EnvCache(get(ENV, "JULIA_ENV", nothing)) + +function write_env_usage(manifest_file::AbstractString) + !ispath(logdir()) && mkpath(logdir()) + usage_file = joinpath(logdir(), "usage.toml") + touch(usage_file) + !isfile(manifest_file) && return + open(usage_file, "a") do io + println(io, "[[\"", escape_string(manifest_file), "\"]]") + println(io, "time = ", now(), 'Z') + end +end + +function read_project(io::IO) + project = TOML.parse(io) + if !haskey(project, "deps") + project["deps"] = Dict{String,Any}() + end + return project +end +function read_project(file::String) + isfile(file) ? open(read_project, file) : read_project(DevNull) +end + +function read_manifest(io::IO) + manifest = TOML.parse(io) + for (name, infos) in manifest, info in infos + haskey(info, "deps") || continue + info["deps"] isa AbstractVector || continue + for dep in info["deps"] + length(manifest[dep]) == 1 || + error("ambiguious dependency for $name: $dep") + end + info["deps"] = Dict(d => manifest[d][1]["uuid"] for d in info["deps"]) + end + return manifest +end +function read_manifest(file::String) + try isfile(file) ? open(read_manifest, file) : read_manifest(DevNull) + catch err + err isa ErrorException && startswith(err.msg, "ambiguious dependency") || rethrow(err) + err.msg *= "In manifest file: $file" + rethrow(err) + end +end + +function write_env(env::EnvCache) + # load old environment for comparison + old_env = EnvCache(env.env) + # update the project file + project = deepcopy(env.project) + isempty(project["deps"]) && delete!(project, "deps") + if !isempty(project) || ispath(env.project_file) + @info "Updating $(pathrepr(env, env.project_file))" + Pkg3.Display.print_project_diff(old_env, env) + if !env.preview[] + mkpath(dirname(env.project_file)) + open(env.project_file, "w") do io + TOML.print(io, project, sorted=true) + end + end + end + # update the manifest file + if !isempty(env.manifest) || ispath(env.manifest_file) + @info "Updating $(pathrepr(env, env.manifest_file))" + Pkg3.Display.print_manifest_diff(old_env, env) + manifest = deepcopy(env.manifest) + uniques = sort!(collect(keys(manifest)), by=lowercase) + filter!(name->length(manifest[name]) == 1, uniques) + uuids = Dict(name => UUID(manifest[name][1]["uuid"]) for name in uniques) + for (name, infos) in manifest, info in infos + haskey(info, "deps") || continue + deps = Dict{String,UUID}(n => UUID(u) for (n, u) in info["deps"]) + all(d in uniques && uuids[d] == u for (d, u) in deps) || continue + info["deps"] = sort!(collect(keys(deps))) + end + if !env.preview[] + open(env.manifest_file, "w") do io + TOML.print(io, manifest, sorted=true) + end + end + end +end + +# finding the current project file + +function git_discover( + start_path::AbstractString = pwd(); + ceiling::Union{AbstractString,Vector} = "", + across_fs::Bool = false, +) + sep = @static Sys.iswindows() ? ";" : ":" + ceil = ceiling isa AbstractString ? ceiling : + join(convert(Vector{String}, ceiling), sep) + buf_ref = Ref(LibGit2.Buffer()) + @LibGit2.check ccall( + (:git_repository_discover, :libgit2), Cint, + (Ptr{LibGit2.Buffer}, Cstring, Cint, Cstring), + buf_ref, start_path, across_fs, ceil) + buf = buf_ref[] + str = unsafe_string(buf.ptr, buf.size) + LibGit2.free(buf_ref) + return str +end + +function find_git_repo(path::String) + while !ispath(path) + prev = path + path = dirname(path) + path == prev && break + end + try return LibGit2.GitRepo(git_discover(path)) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + end + return nothing +end + +function git_file_stream(repo::LibGit2.GitRepo, spec::String; fakeit::Bool=false)::IO + blob = try LibGit2.GitBlob(repo, spec) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + fakeit && return DevNull + end + return IOBuffer(LibGit2.rawcontent(blob)) +end + +function find_local_env(start_path::String) + work = nothing + repo = nothing + try + gitpath = git_discover(start_path, ceiling = homedir()) + repo = LibGit2.GitRepo(gitpath) + work = LibGit2.workdir(repo) + catch err + err isa LibGit2.GitError && err.code == LibGit2.Error.ENOTFOUND || rethrow(err) + end + work = (work != nothing) ? work : start_path + for name in project_names + path = abspath(work, name) + isfile(path) && return path, repo + end + return nothing, repo +end + +function find_named_env() + for depot in depots(), env in default_envs, name in project_names + path = abspath(depot, "environments", env, name) + isfile(path) && return path, find_git_repo(path) + end + env = VERSION.major == 0 ? default_envs[2] : default_envs[3] + path = abspath(depots()[1], "environments", env, project_names[end]) + return path, find_git_repo(path) +end + +function find_project(env::String) + if isempty(env) + cmderror("invalid environment name: \"\"") + elseif env == "/" + return find_named_env() + elseif env == "." + path, gitrepo = find_local_env(pwd()) + path == nothing && return init_if_interactive(pwd()), gitrepo + return path, gitrepo + elseif startswith(env, "/") || startswith(env, "./") + # path to project file or project directory + if splitext(env)[2] == ".toml" + path = abspath(env) + if isfile(env) + return path, find_git_repo(path) + else + return init_if_interactive(dirname(path)), find_git_repo(path) + end + end + for name in project_names + path = abspath(env, name) + isfile(path) && return path, find_git_repo(path) + end + return init_if_interactive(env), find_git_repo(path) + else # named environment + for depot in depots() + path = abspath(depot, "environments", env, project_names[end]) + isfile(path) && return path, find_git_repo(path) + end + path = abspath(depots()[1], "environments", env, project_names[end]) + return path, find_git_repo(path) + end +end + +function init_if_interactive(path::String) + if isinteractive() + choice = TerminalMenus.request("Could not find local environment in $(path), do you want to create it?", + TerminalMenus.RadioMenu(["yes", "no"])) + if choice == 1 + Pkg3.Operations.init(path) + path, gitrepo = find_project(path) + return path + end + end + cmderror("did not find a local environment at $(path), run `init` to create one") +end + +function find_project(::Nothing) + path, gitrepo = find_local_env(pwd()) + path != nothing && return path, gitrepo + path, gitrepo = find_named_env() + return path, gitrepo +end + +## resolving packages from name or uuid ## + +""" +Disambiguate name/uuid package specifications using project info. +""" +function project_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + uuids = env.project["deps"] + names = Dict(uuid => name for (uuid, name) in uuids) + length(uuids) < length(names) && # TODO: handle this somehow? + @warn "duplicate UUID found in project file's [deps] section" + for pkg in pkgs + pkg.mode == :project || continue + if has_name(pkg) && !has_uuid(pkg) && pkg.name in keys(uuids) + pkg.uuid = UUID(uuids[pkg.name]) + end + if has_uuid(pkg) && !has_name(pkg) && pkg.uuid in keys(names) + pkg.name = names[pkg.uuid] + end + end + return pkgs +end + +""" +Disambiguate name/uuid package specifications using manifest info. +""" +function manifest_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + uuids = Dict{String,Vector{String}}() + names = Dict{String,String}() + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") || continue + uuid = info["uuid"] + push!(get!(uuids, name, String[]), uuid) + names[uuid] = name # can be duplicate but doesn't matter + end + for pkg in pkgs + pkg.mode == :manifest || continue + if has_name(pkg) && !has_uuid(pkg) && pkg.name in keys(uuids) + length(uuids[pkg.name]) == 1 && (pkg.uuid = UUID(uuids[pkg.name][1])) + end + if has_uuid(pkg) && !has_name(pkg) && pkg.uuid in keys(names) + pkg.name = names[pkg.uuid] + end + end + return pkgs +end + +""" +Disambiguate name/uuid package specifications using registry info. +""" +function registry_resolve!(env::EnvCache, pkgs::AbstractVector{PackageSpec}) + # if there are no half-specified packages, return early + any(pkg->has_name(pkg) ⊻ has_uuid(pkg), pkgs) || return + # collect all names and uuids since we're looking anyway + names = [pkg.name for pkg in pkgs if has_name(pkg)] + uuids = [pkg.uuid for pkg in pkgs if has_uuid(pkg)] + find_registered!(env, names, uuids) + for pkg in pkgs + @assert has_name(pkg) || has_uuid(pkg) + if has_name(pkg) && !has_uuid(pkg) + pkg.uuid = registered_uuid(env, pkg.name) + end + if has_uuid(pkg) && !has_name(pkg) + pkg.name = registered_name(env, pkg.uuid) + end + end + return pkgs +end + +"Ensure that all packages are fully resolved" +function ensure_resolved( + env::EnvCache, + pkgs::AbstractVector{PackageSpec}, + registry::Bool = false, +)::Nothing + unresolved = Dict{String,Vector{UUID}}() + for pkg in pkgs + has_uuid(pkg) && continue + uuids = UUID[] + for (name, infos) in env.manifest, info in infos + name == pkg.name && haskey(info, "uuid") || continue + uuid = UUID(info["uuid"]) + uuid in uuids || push!(uuids, uuid) + end + sort!(uuids, by=uuid->uuid.value) + unresolved[pkg.name] = uuids + end + isempty(unresolved) && return + msg = sprint() do io + println(io, "The following package names could not be resolved:") + for (name, uuids) in sort!(collect(unresolved), by=lowercase∘first) + print(io, " * $name (") + if length(uuids) == 0 + what = ["project", "manifest"] + registry && push!(what, "registry") + print(io, "not found in ") + join(io, what, ", ", " or ") + else + join(io, uuids, ", ", " or ") + print(io, " in manifest but not in project") + end + println(io, ")") + end + print(io, "Please specify by known `name=uuid`.") + end + cmderror(msg) +end + +const DEFAULT_REGISTRIES = Dict( + "Uncurated" => "https://github.com/JuliaRegistries/Uncurated.git" +) + +"Return paths of all registries in a depot" +function registries(depot::String)::Vector{String} + d = joinpath(depot, "registries") + ispath(d) || return String[] + regs = filter!(readdir(d)) do r + isfile(joinpath(d, r, "registry.toml")) + end + String[joinpath(depot, "registries", r) for r in regs] +end + +"Return paths of all registries in all depots" +function registries()::Vector{String} + isempty(depots()) && return String[] + user_regs = abspath(depots()[1], "registries") + if !ispath(user_regs) + mkpath(user_regs) + @info "Cloning default registries into $user_regs" + for (reg, url) in DEFAULT_REGISTRIES + @info " [+] $reg = $(repr(url))" + path = joinpath(user_regs, reg) + LibGit2.clone(url, path) + end + end + return [r for d in depots() for r in registries(d)] +end + +const line_re = r""" + ^ \s* + ([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) + \s* = \s* \{ + \s* name \s* = \s* "([^"]*)" \s*, + \s* path \s* = \s* "([^"]*)" \s*,? + \s* \} \s* $ +"""x + +""" +Lookup package names & uuids in a single pass through registries +""" +function find_registered!( + env::EnvCache, + names::Vector{String}, + uuids::Vector{UUID} = UUID[]; + force::Bool = false, +)::Nothing + # only look if there's something new to see (or force == true) + names = filter(name->!haskey(env.uuids, name), names) + uuids = filter(uuid->!haskey(env.paths, uuid), uuids) + !force && isempty(names) && isempty(uuids) && return + + # since we're looking anyway, look for everything + save(name::String) = + name in names || haskey(env.uuids, name) || push!(names, name) + save(uuid::UUID) = + uuid in uuids || haskey(env.paths, uuid) || push!(uuids, uuid) + + # lookup any dependency in the project file + for (name, uuid) in env.project["deps"] + save(name); save(UUID(uuid)) + end + # lookup anything mentioned in the manifest file + for (name, infos) in env.manifest, info in infos + save(name) + haskey(info, "uuid") && save(UUID(info["uuid"])) + haskey(info, "deps") || continue + for (n, u) in info["deps"] + save(n); save(UUID(u)) + end + end + # if there's still nothing to look for, return early + isempty(names) && isempty(uuids) && return + + # build regexs for names and uuids + uuid_re = sprint() do io + if !isempty(uuids) + print(io, raw"^( ") + for (i, uuid) in enumerate(uuids) + 1 < i && print(io, " | ") + print(io, raw"\Q", uuid, raw"\E") + end + print(io, raw" )\b") + end + end + name_re = sprint() do io + if !isempty(names) + print(io, raw"\bname \s* = \s* \"( ") + for (i, name) in enumerate(names) + 1 < i && print(io, " | ") + print(io, raw"\Q", name, raw"\E") + end + print(io, raw" )\"") + end + end + regex = if !isempty(uuids) && !isempty(names) + Regex("( $uuid_re | $name_re )", "x") + elseif !isempty(uuids) + Regex(uuid_re, "x") + elseif !isempty(names) + Regex(name_re, "x") + else + error("this should not happen") + end + + # initialize env entries for names and uuids + for name in names; env.uuids[name] = UUID[]; end + for uuid in uuids; env.paths[uuid] = String[]; end + # note: empty vectors will be left for names & uuids that aren't found + + # search through all registries + for registry in registries() + open(joinpath(registry, "registry.toml")) do io + # skip forward until [packages] section + for line in eachline(io) + contains(line, r"^ \s* \[ \s* packages \s* \] \s* $"x) && break + end + # find lines with uuid or name we're looking for + for line in eachline(io) + contains(line,regex) || continue + m = match(line_re, line) + m == nothing && + error("misformatted registry.toml package entry: $line") + uuid = UUID(m.captures[1]) + name = Base.unescape_string(m.captures[2]) + path = abspath(registry, Base.unescape_string(m.captures[3])) + push!(get!(env.uuids, name, typeof(uuid)[]), uuid) + push!(get!(env.paths, uuid, typeof(path)[]), path) + end + end + end +end + +find_registered!(env::EnvCache, uuids::Vector{UUID}; force::Bool=false)::Nothing = + find_registered!(env, String[], uuids, force=force) + +"Lookup all packages in project & manifest files" +find_registered!(env::EnvCache)::Nothing = + find_registered!(env, String[], UUID[], force=true) + +"Get registered uuids associated with a package name" +function registered_uuids(env::EnvCache, name::String)::Vector{UUID} + find_registered!(env, [name], UUID[]) + return unique(env.uuids[name]) +end + +"Get registered paths associated with a package uuid" +function registered_paths(env::EnvCache, uuid::UUID)::Vector{String} + find_registered!(env, String[], [uuid]) + return env.paths[uuid] +end + +"Get registered names associated with a package uuid" +function registered_names(env::EnvCache, uuid::UUID)::Vector{String} + find_registered!(env, String[], [uuid]) + String[n for (n, uuids) in env.uuids for u in uuids if u == uuid] +end + +"Determine a single UUID for a given name, prompting if needed" +function registered_uuid(env::EnvCache, name::String)::UUID + uuids = registered_uuids(env, name) + length(uuids) == 0 && return UUID(zero(UInt128)) + choices::Vector{String} = [] + choices_cache::Vector{Tuple{UUID, String}} = [] + for uuid in uuids + values = registered_info(env, uuid, "repo") + for value in values + push!(choices, "Registry: $(basename(dirname(dirname(value[1])))) - Path: $(value[2])") + push!(choices_cache, (uuid, value[1])) + end + end + length(choices_cache) == 1 && return choices_cache[1][1] + # prompt for which UUID was intended: + menu = RadioMenu(choices) + choice = request("There are multiple registered `$name` packages, choose one:", menu) + choice == -1 && return UUID(zero(UInt128)) + env.paths[choices_cache[choice][1]] = [choices_cache[choice][2]] + return choices_cache[choice][1] +end + +"Determine current name for a given package UUID" +function registered_name(env::EnvCache, uuid::UUID)::String + names = registered_names(env, uuid) + length(names) == 0 && return "" + length(names) == 1 && return names[1] + values = registered_info(env, uuid, "name") + name = nothing + for value in values + name == nothing && (name = value[2]) + name != value[2] && cmderror("package `$uuid` has multiple registered name values: $name, $(value[2])") + end + return name +end + +"Return most current package info for a registered UUID" +function registered_info(env::EnvCache, uuid::UUID, key::String) + paths = env.paths[uuid] + isempty(paths) && cmderror("`$uuid` is not registered") + values = [] + for path in paths + info = parse_toml(path, "package.toml") + value = get(info, key, nothing) + push!(values, (path, value)) + end + return values +end + +"Find package by UUID in the manifest file" +function manifest_info(env::EnvCache, uuid::UUID)::Union{Dict{String,Any},Nothing} + uuid in values(env.uuids) || find_registered!(env, [uuid]) + for (name, infos) in env.manifest, info in infos + haskey(info, "uuid") && uuid == UUID(info["uuid"]) || continue + return merge!(Dict{String,Any}("name" => name), info) + end + return nothing +end + +"Give a short path string representation" +function pathrepr(env::EnvCache, path::String, base::String=pwd()) + path = abspath(base, path) + if env.git != nothing + repo = LibGit2.path(env.git) + if startswith(base, repo) + # we're in the repo => path relative to pwd() + path = relpath(path, base) + elseif startswith(path, repo) + # we're not in repo but path is => path relative to repo + path = relpath(path, repo) + end + end + if !Sys.iswindows() && isabspath(path) + home = joinpath(homedir(), "") + if startswith(path, home) + path = joinpath("~", path[nextind(path,endof(home)):end]) + end + end + return repr(path) +end + +end # module diff --git a/stdlib/Pkg3/src/resolve/FieldValues.jl b/stdlib/Pkg3/src/resolve/FieldValues.jl new file mode 100644 index 0000000000000..abf3e2abd39e5 --- /dev/null +++ b/stdlib/Pkg3/src/resolve/FieldValues.jl @@ -0,0 +1,108 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module FieldValues + +using ...VersionWeights + +export FieldValue, Field, validmax, secondmax + +# FieldValue is a hierarchical numeric type with 5 levels. +# When summing two FieldValues, the levels are summed independently. +# When comparing them, lower levels take precedence. +# The levels are used as such: +# l0 : for hard constraints (dependencies and requirements) +# l1 : for favoring higher versions of the explicitly required +# packages +# l2 : for favoring higher versions of all other packages +# l3 : for favoring uninstallation of non-needed packages +# +struct FieldValue + l0::Int64 + l1::VersionWeight + l2::VersionWeight + l3::Int64 + FieldValue(l0::Integer = 0, + l1::VersionWeight = zero(VersionWeight), + l2::VersionWeight = zero(VersionWeight), + l3::Integer = 0) = new(l0, l1, l2, l3) +end + +# This isn't nice, but it's for debugging only anyway +function Base.show(io::IO, a::FieldValue) + print(io, a.l0) + a == FieldValue(a.l0) && return + print(io, ".", a.l1) + a == FieldValue(a.l0, a.l1) && return + print(io, ".", a.l2) + a == FieldValue(a.l0, a.l1, a.l2) && return + print(io, ".", a.l3) + return +end + +const Field = Vector{FieldValue} + +Base.zero(::Type{FieldValue}) = FieldValue() + +Base.typemin(::Type{FieldValue}) = (x=typemin(Int64); y=typemin(VersionWeight); FieldValue(x, y, y, x)) + +Base.:-(a::FieldValue, b::FieldValue) = FieldValue(a.l0-b.l0, a.l1-b.l1, a.l2-b.l2, a.l3-b.l3) +Base.:+(a::FieldValue, b::FieldValue) = FieldValue(a.l0+b.l0, a.l1+b.l1, a.l2+b.l2, a.l3+b.l3) + +function Base.isless(a::FieldValue, b::FieldValue) + a.l0 < b.l0 && return true + a.l0 > b.l0 && return false + c = cmp(a.l1, b.l1) + c < 0 && return true + c > 0 && return false + c = cmp(a.l2, b.l2) + c < 0 && return true + c > 0 && return false + a.l3 < b.l3 && return true + return false +end + +Base.:(==)(a::FieldValue, b::FieldValue) = + a.l0 == b.l0 && a.l1 == b.l1 && a.l2 == b.l2 && a.l3 == b.l3 + +Base.abs(a::FieldValue) = FieldValue(abs(a.l0), abs(a.l1), abs(a.l2), abs(a.l3)) + +Base.copy(a::FieldValue) = FieldValue(a.l0, copy(a.l1), copy(a.l2), a.l3) + +# if the maximum field has l0 < 0, it means that +# some hard constraint is being violated +validmax(a::FieldValue) = a.l0 >= 0 + +# like usual indmax, but favors the highest indices +# in case of a tie +function Base.indmax(f::Field) + m = typemin(FieldValue) + mi = 0 + for j = length(f):-1:1 + if f[j] > m + m = f[j] + mi = j + end + end + @assert mi != 0 + return mi +end + +# secondmax returns the (normalized) value of the second maximum in a +# field. It's used to determine the most polarized field. +function secondmax(f::Field, msk::BitVector = trues(length(f))) + m = typemin(FieldValue) + m2 = typemin(FieldValue) + for i = 1:length(f) + msk[i] || continue + a = f[i] + if a > m + m2 = m + m = a + elseif a > m2 + m2 = a + end + end + return m2 - m +end + +end diff --git a/stdlib/Pkg3/src/resolve/MaxSum.jl b/stdlib/Pkg3/src/resolve/MaxSum.jl new file mode 100644 index 0000000000000..977f2896be386 --- /dev/null +++ b/stdlib/Pkg3/src/resolve/MaxSum.jl @@ -0,0 +1,482 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module MaxSum + +using Random + +include("FieldValues.jl") + +using .FieldValues, ..VersionWeights, ...Types, ...GraphType + +export UnsatError, Messages, maxsum + +# An exception type used internally to signal that an unsatisfiable +# constraint was detected +struct UnsatError <: Exception + p0::Int +end + +# Some parameters to drive the decimation process +mutable struct MaxSumParams + dec_interval # number of iterations between decimations + dec_fraction # fraction of nodes to decimate at every decimation + # step + + function MaxSumParams() + accuracy = parse(Int, get(ENV, "JULIA_PKGRESOLVE_ACCURACY", "1")) + accuracy > 0 || error("JULIA_PKGRESOLVE_ACCURACY must be > 0") + dec_interval = accuracy * 5 + dec_fraction = 0.05 / accuracy + return new(dec_interval, dec_fraction) + end +end + +# Messages has the cavity messages and the total fields, and +# gets updated iteratively (and occasionally decimated) until +# convergence +mutable struct Messages + # cavity incoming messages: for each package p0, + # for each neighbor p1 of p0, + # msg[p0][p1] is a vector of length spp[p0] + # messages are normalized (i.e. the max is always 0) + msg::Vector{Vector{Field}} + + # overall fields: for each package p0, + # fld[p0] is a vector of length spp[p0] + # fields are not normalized + fld::Vector{Field} + + # backup of the initial value of fld, to be used when resetting + initial_fld::Vector{Field} + + function Messages(graph::Graph) + np = graph.np + spp = graph.spp + gadj = graph.gadj + gconstr = graph.gconstr + req_inds = graph.req_inds + ignored = graph.ignored + pvers = graph.data.pvers + pdict = graph.data.pdict + + ## generate wveights (v0 == spp[p0] is the "uninstalled" state) + vweight = [[VersionWeight(v0 < spp[p0] ? pvers[p0][v0] : v"0") for v0 = 1:spp[p0]] for p0 = 1:np] + + # external fields: favor newest versions over older, and no-version over all; + # explicit requirements use level l1 instead of l2 + fv(p0, v0) = p0 ∈ req_inds ? + FieldValue(0, vweight[p0][v0], zero(VersionWeight), (v0==spp[p0])) : + FieldValue(0, zero(VersionWeight), vweight[p0][v0], (v0==spp[p0])) + fld = [[fv(p0, v0) for v0 = 1:spp[p0]] for p0 = 1:np] + + initial_fld = [copy(f0) for f0 in fld] + + # allocate cavity messages + msg = [[Field(spp[p0]) for j1 = 1:length(gadj[p0])] for p0 = 1:np] + + msgs = new(msg, fld, initial_fld) + + reset_messages!(msgs, graph) + + return msgs + end +end + +# enforce constraints and normalize fields; +# zero out all cavity messages +function reset_messages!(msgs::Messages, graph::Graph) + msg = msgs.msg + fld = msgs.fld + initial_fld = msgs.initial_fld + np = graph.np + spp = graph.spp + gconstr = graph.gconstr + ignored = graph.ignored + for p0 = 1:np + ignored[p0] && continue + map(m->fill!(m, zero(FieldValue)), msg[p0]) + copyto!(fld[p0], initial_fld[p0]) + gconstr0 = gconstr[p0] + for v0 = 1:spp[p0] + gconstr0[v0] || (fld[p0][v0] = FieldValue(-1)) + end + fld[p0] .-= maximum(fld[p0]) + end + return msgs +end + +mutable struct SolutionTrace + # the solution is built progressively by a decimation process + solution::Vector{Int} + num_nondecimated::Int + + best::Vector{Int} + staged::Union{Tuple{Int,Int},Nothing} + + function SolutionTrace(graph::Graph) + np = graph.np + solution = zeros(Int, np) + num_nondecimated = np + + best = zeros(Int, np) + staged = nothing + + return new(solution, num_nondecimated, best, staged) + end +end + +function update_solution!(strace::SolutionTrace, graph::Graph) + np = graph.np + ignored = graph.ignored + gconstr = graph.gconstr + solution = strace.solution + best = strace.best + nnd = np + fill!(solution, 0) + for p0 in findall(ignored) + s0 = findfirst(gconstr[p0]) + solution[p0] = s0 + nnd -= 1 + end + strace.num_nondecimated = nnd + if nnd ≤ sum(best .== 0) + copyto!(best, solution) + strace.staged = nothing + return true + else + return false + end +end + +# This is the core of the max-sum solver: +# for a given node p0 (i.e. a package) updates all +# input cavity messages and fields of its neighbors +function update!(p0::Int, graph::Graph, msgs::Messages) + gadj = graph.gadj + gmsk = graph.gmsk + adjdict = graph.adjdict + ignored = graph.ignored + spp = graph.spp + np = graph.np + msg = msgs.msg + fld = msgs.fld + + maxdiff = zero(FieldValue) + + gadj0 = gadj[p0] + msg0 = msg[p0] + fld0 = fld[p0] + spp0 = spp[p0] + adjdict0 = adjdict[p0] + + # iterate over all neighbors of p0 + for j0 in 1:length(gadj0) + + p1 = gadj0[j0] + ignored[p1] && continue + j1 = adjdict0[p1] + #@assert j0 == adjdict[p1][p0] + bm1 = gmsk[p1][j1] + spp1 = spp[p1] + msg1 = msg[p1] + + # compute the output cavity field p0->p1 + cavfld = fld0 - msg0[j0] + + # keep the old input cavity message p0->p1 + oldmsg = msg1[j1] + + # init the new message to minus infinity + newmsg = [FieldValue(-1) for v1 = 1:spp1] + + # compute the new message by passing cavfld + # through the constraint encoded in the bitmask + # (equivalent to: + # newmsg = [maximum(cavfld[bm1[:,v1]]) for v1 = 1:spp1] + # ) + for v1 = 1:spp1, v0 = 1:spp0 + bm1[v0, v1] || continue + newmsg[v1] = max(newmsg[v1], cavfld[v0]) + end + m = maximum(newmsg) + validmax(m) || throw(UnsatError(p0)) # No state available without violating some + # hard constraint + + # normalize the new message + newmsg .-= m + + diff = newmsg - oldmsg + maxdiff = max(maxdiff, maximum(abs.(diff))) + + # update the field of p1 + fld[p1] .+= diff + + # put the newly computed message in place + msg1[j1] = newmsg + end + return maxdiff +end + +# A simple shuffling machinery for the update order in iterate!() +# (wouldn't pass any random quality test but it's arguably enough) +mutable struct NodePerm + p::Vector{Int} + step::Int64 + NodePerm(np::Integer) = new(collect(1:np), 1) +end + +function Random.shuffle!(perm::NodePerm) + p = perm.p + for j = length(p):-1:2 + k = perm.step % j + 1 + p[j], p[k] = p[k], p[j] + perm.step += isodd(j) ? 1 : k + end + #@assert isperm(p) +end + +Base.start(perm::NodePerm) = start(perm.p) +Base.next(perm::NodePerm, x) = next(perm.p, x) +Base.done(perm::NodePerm, x) = done(perm.p, x) + +# Call update for all nodes (i.e. packages) in +# random order +function iterate!(graph::Graph, msgs::Messages, perm::NodePerm) + maxdiff = zero(FieldValue) + shuffle!(perm) + for p0 in perm + graph.ignored[p0] && continue + maxdiff0 = update!(p0, graph, msgs) + maxdiff = max(maxdiff, maxdiff0) + end + return maxdiff +end + +function decimate1!(p0::Int, graph::Graph, strace::SolutionTrace, msgs::Messages) + solution = strace.solution + fld = msgs.fld + adjdict = graph.adjdict + gmsk = graph.gmsk + gconstr = graph.gconstr + + @assert solution[p0] == 0 + @assert !graph.ignored[p0] + fld0 = fld[p0] + s0 = indmax(fld0) + # only do the decimation if it is consistent with + # the constraints... + gconstr[p0][s0] || return 0 + # ...and with the previously decimated nodes + for p1 in findall(solution .> 0) + haskey(adjdict[p0], p1) || continue + s1 = solution[p1] + j1 = adjdict[p0][p1] + gmsk[p1][j1][s0,s1] || return 0 + end + solution[p0] = s0 + strace.num_nondecimated -= 1 + return s0 +end + +function decimate!(graph::Graph, strace::SolutionTrace, msgs::Messages, n::Integer) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + fld = msgs.fld + + @assert n ≥ 1 + dtrace = Tuple{Int,Int}[] + dec = 0 + + fldorder = sort(findall(.!(ignored)), by=p0->secondmax(fld[p0], gconstr[p0])) + for p0 in fldorder + s0 = decimate1!(p0, graph, strace, msgs) + s0 == 0 && continue + push!(dtrace, (p0,s0)) + dec += 1 + dec == n && break + end + + return dtrace +end + +function clean_forbidden!(graph::Graph, msgs::Messages) + np = graph.np + gconstr = graph.gconstr + ignored = graph.ignored + fld = msgs.fld + affected = Tuple{Int,Int}[] + removed = 0 + + for p0 = 1:np + ignored[p0] && continue + fld0 = fld[p0] + gconstr0 = gconstr[p0] + for v0 in findall(gconstr0) + validmax(fld0[v0]) && continue + push!(affected, (p0,v0)) + removed += 1 + end + end + return affected +end + +# Iterative solver: run iterate!() until convergence +# (occasionally calling decimate()) +function maxsum(graph::Graph) + params = MaxSumParams() + + perm = NodePerm(graph.np) + strace = SolutionTrace(graph) + msgs = Messages(graph) + + push_snapshot!(graph) + # gconstr_sav = graph.gconstr + # ignored_sav = graph.ignored + ok = converge!(graph, msgs, strace, perm, params) + # @assert graph.gconstr ≡ gconstr_sav + # @assert graph.ignored ≡ ignored_sav + pop_snapshot!(graph) + if ok + @assert strace.best == strace.solution + @assert strace.num_nondecimated == 0 + @assert all(strace.solution .> 0) + @assert strace.staged ≡ nothing + else + @assert strace.staged ≢ nothing + end + return ok, strace.best, strace.staged +end + +function try_simplify_graph_soft!(graph, sources) + try + simplify_graph_soft!(graph, sources, log_events = false) + catch err + err isa PkgError || rethrow(err) + return false + end + return true +end + +function converge!(graph::Graph, msgs::Messages, strace::SolutionTrace, perm::NodePerm, params::MaxSumParams) + is_best_sofar = update_solution!(strace, graph) + + # this is the base of the recursion: the case when + # the solver has succeeded in decimating everything + strace.num_nondecimated == 0 && return true + + reset_messages!(msgs, graph) + + # perform some maxsum iterations, then decimate one node. + # If failure happens during this process, we bail (return false) + it = 0 + for it = 1:params.dec_interval + local maxdiff::FieldValue + try + maxdiff = iterate!(graph, msgs, perm) + catch err + err isa UnsatError || rethrow(err) + if is_best_sofar + p0 = err.p0 + s0 = findlast(graph.gconstr[p0]) + strace.staged = (p0, s0) + end + return false + end + maxdiff == zero(FieldValue) && break + end + + # if maxsum has found some forbidden states, remove + # them and propagate the effect + affected = clean_forbidden!(graph, msgs) + + isempty(affected) && @goto decimate + + sources = Set{Int}() + for (p0,v0) in affected + graph.gconstr[p0][v0] = false + push!(sources, p0) + end + + if !try_simplify_graph_soft!(graph, sources) + # found an implicit contradiction + is_best_sofar && (strace.staged = first(affected)) + return false + end + return converge!(graph, msgs, strace, perm, params) + + @label decimate + + ndec = max(1, round(Int, params.dec_fraction * strace.num_nondecimated)) + dtrace = decimate!(graph, strace, msgs, ndec) + if isempty(dtrace) + # decimation has failed, all candidate states are forbidden + # (which shouldn't really happen, this is a failsafe) + if is_best_sofar + # pick the first decimation candidate + smx(p1) = secondmax(msgs.fld[p1], graph.gconstr[p1]) + p0 = reduce((p1,p2)->(smx(p1)≤smx(p2) ? p1 : p2), findall(.!(graph.ignored))) + s0 = indmax(fld[p0]) + strace.staged = dec_firstcandidate(graph, msgs) + end + return false + end + + while true + # decimation has succeeded, at least nominally. + # We need to propagate its effects and check for contradictions + + lentr = length(dtrace) + if lentr == 1 && is_best_sofar + strace.staged = dtrace[1] + end + + push_snapshot!(graph) + # info("setting dtrace=$dtrace") + for (p0,s0) in dtrace + @assert !graph.ignored[p0] + @assert graph.gconstr[p0][s0] + fill!(graph.gconstr[p0], false) + graph.gconstr[p0][s0] = true + graph.ignored[p0] = true + end + + # if decimation has produced an implicit contradiction, backtrack + try_simplify_graph_soft!(graph, Set{Int}(first.(dtrace))) || @goto backtrack + + # otherwise, keep going... + converge!(graph, msgs, strace, perm, params) && (pop_snapshot!(graph); return true) + + @label backtrack + + # warn("reverting dtrace=$dtrace") + + # if we're here, the last decimation step has been proven to lead + # to an unsat situation at some point, we need to roll it back + + # revert the state of the constraints + pop_snapshot!(graph) + + lentr == 1 && break + # halve the dtrace + deleteat!(dtrace, ((lentr÷2)+1):lentr) + end + + @assert length(dtrace) == 1 + p0, s0 = dtrace[1] + + is_best_sofar && @assert strace.staged ≢ nothing + + # forbid the state used in the last attempt + # (note that we're working on the "entry" snapshot here!) + graph.gconstr[p0][s0] = false + # check if we have finished all available possibilities + any(graph.gconstr[p0]) || return false + # if neither the s0 state nor its negation are valid, give up + try_simplify_graph_soft!(graph, Set{Int}([p0])) || return false + + # keep going, with one possible state less... + return converge!(graph, msgs, strace, perm, params) +end + +end diff --git a/stdlib/Pkg3/src/resolve/VersionWeights.jl b/stdlib/Pkg3/src/resolve/VersionWeights.jl new file mode 100644 index 0000000000000..f931a895ba522 --- /dev/null +++ b/stdlib/Pkg3/src/resolve/VersionWeights.jl @@ -0,0 +1,58 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module VersionWeights + +export VersionWeight + +# The numeric type used to determine how the different +# versions of a package should be weighed +struct VersionWeight + major::Int64 + minor::Int64 + patch::Int64 +end +VersionWeight(major::Integer, minor::Integer) = VersionWeight(major, minor, 0) +VersionWeight(major::Integer) = VersionWeight(major, 0) +VersionWeight() = VersionWeight(0) + +Base.convert(::Type{VersionWeight}, vn::VersionNumber) = VersionWeight(vn.major, vn.minor, vn.patch) + +Base.zero(::Type{VersionWeight}) = VersionWeight() + +Base.typemin(::Type{VersionWeight}) = (x=typemin(Int64); VersionWeight(x, x, x)) + +Base.:(-)(a::VersionWeight, b::VersionWeight) = + VersionWeight(a.major-b.major, a.minor-b.minor, a.patch-b.patch) + +Base.:(+)(a::VersionWeight, b::VersionWeight) = + VersionWeight(a.major+b.major, a.minor+b.minor, a.patch+b.patch) + +Base.:(-)(a::VersionWeight) = + VersionWeight(-a.major, -a.minor, -a.patch) + +function Base.cmp(a::VersionWeight, b::VersionWeight) + c = cmp(a.major, b.major); c != 0 && return c + c = cmp(a.minor, b.minor); c != 0 && return c + return cmp(a.patch, b.patch) +end +Base.isless(a::VersionWeight, b::VersionWeight) = cmp(a,b) < 0 +Base.:(==)(a::VersionWeight, b::VersionWeight) = cmp(a,b) == 0 + +Base.abs(a::VersionWeight) = + VersionWeight(abs(a.major), abs(a.minor), abs(a.patch)) + +Base.copy(a::VersionWeight) = + VersionWeight(a.major, a.minor, a.patch) + +# This isn't nice, but it's for debugging only anyway +function Base.show(io::IO, a::VersionWeight) + print(io, "(", a.major) + a == VersionWeight(a.major) && @goto done + print(io, ".", a.minor) + a == VersionWeight(a.major, a.minor) && @goto done + print(io, ".", a.patch) + @label done + print(io, ")") +end + +end diff --git a/stdlib/Pkg3/test/NastyGenerator.jl b/stdlib/Pkg3/test/NastyGenerator.jl new file mode 100644 index 0000000000000..d39de1a00091e --- /dev/null +++ b/stdlib/Pkg3/test/NastyGenerator.jl @@ -0,0 +1,96 @@ +module NastyGenerator + +pn(i) = "P$i" +randvers(k::Int) = VersionNumber(rand(0:k), rand(0:k), rand(0:k)) + +function randvspec(k::Int) + lb, ub = randvers(k), randvers(k) + if lb > ub + lb, ub = ub, lb + end + + slb = rand() < 0.1 ? "0" : string(lb) + sub = rand() < 0.1 ? "*" : string(ub) + + return "$slb-$sub" +end + +""" +Generates a random graph with 2 planted solutions (or quasi-solutions if sat==false). +With the right parameters, this is quite hard to solve for large sizes. +For added fun, the two planted solutions are cycles. +We want the solver to find the best of the two, of course. +This is an extremely unrealistic scenario and it's only intended to stress-test the solver. +Note that the "problematic" output assumes that all non-planted versions will be +uninstallable, which is only the case for some regimes of the parameters (e.g. large +enough d). +""" +function generate_nasty(n::Int, # size of planted solutions + m::Int; # size of the graph + k::Int = 10, # version number limit + q::Int = 10, # versions per package (upper bound) + d::Int = 10, # neighbors per package + seed::Integer = 32524, + sat::Bool = true # create a satisfiable problem? + ) + @assert m ≥ n + d ≤ m-1 || @warn "d=$d, should be ≤ m-1=$(m-1)" + + srand(seed) + + allvers = [sort(unique(randvers(k) for j = 1:q)) for i = 1:m] + + planted1 = [rand(2:length(allvers[i])) for i = 1:n] + + planted2 = [rand(1:(planted1[i]-1)) for i = 1:n] + + deps = [] + problematic = [] + + # random dependencies + for i = 1:m, j = 1:length(allvers[i]) + if i ≤ n && (planted1[i] == j || planted2[i] == j) + if j == planted1[i] + if i < n + push!(deps, [pn(i), allvers[i][j], pn(i+1), "$(allvers[i+1][planted1[i+1]])-*"]) + else + if !sat + push!(deps, [pn(i), allvers[i][j], pn(1), "0-$(allvers[1][planted2[1]])"]) + else + push!(deps, [pn(i), allvers[i][j], pn(1), "0-*"]) + end + end + else # j == planted2[i] + if i < n + push!(deps, [pn(i), allvers[i][j], pn(i+1), "0-$(allvers[i+1][planted2[i+1]])"]) + else + if !sat + push!(deps, [pn(i), allvers[i][j], pn(1), "$(allvers[1][planted1[1]])-*"]) + else + push!(deps, [pn(i), allvers[i][j], pn(1), "0-*"]) + end + end + end + sat || push!(problematic, [pn(i), allvers[i][j]]) + continue + end + + s = shuffle([1:(i-1); (i+1):m])[1:min(d,m-1)] + for a in s + push!(deps, [pn(i), allvers[i][j], pn(a), randvspec(k)]) + end + push!(problematic, [pn(i), allvers[i][j]]) + end + + reqs = [[pn(1), "*"]] + # reqs = [[pn(1), string(allvers[1][planted1[1]])]] + + # info("SOLUTION: $([(i,planted1[i]) for i = 1:n])") + # info("REST: $([(i,length(allvers[i])+1) for i = (n+1):m])") + + want = Dict(pn(i) => allvers[i][planted1[i]] for i = 1:n) + + return deps, reqs, want, problematic +end + +end # module diff --git a/stdlib/Pkg3/test/operations.jl b/stdlib/Pkg3/test/operations.jl new file mode 100644 index 0000000000000..aacf41f92ff19 --- /dev/null +++ b/stdlib/Pkg3/test/operations.jl @@ -0,0 +1,86 @@ +module OperationsTest + +import Random: randstring +using Test + +using Pkg3 +using Pkg3.Types + +function temp_pkg_dir(fn::Function) + local project_path + try + # TODO: Use a temporary depot + project_path = joinpath(tempdir(), randstring()) + push!(LOAD_PATH, project_path) + fn(project_path) + finally + project_path in LOAD_PATH && (deleteat!(LOAD_PATH, findfirst(equalto(project_path), LOAD_PATH))) + rm(project_path, recursive=true, force=true) + end +end + +isinstalled(pkg) = Base.find_package(pkg) != nothing + +# Tests for Example.jl fail on master, +# so let's use another small package +# in the meantime +const TEST_PKG = "Crayons" + +temp_pkg_dir() do project_path + Pkg3.init(project_path) + Pkg3.add(TEST_PKG; preview = true) + # @test_warn "not in project" Pkg3.API.rm("Example") + Pkg3.add(TEST_PKG) + println("Going to import") + @eval import $(Symbol(TEST_PKG)) + println("Imported...") + Pkg3.up() + Pkg3.rm(TEST_PKG; preview = true) + @test isinstalled(TEST_PKG) + # TODO: Check coverage kwargs + # TODO: Check that preview = true doesn't actually execute the test + # by creating a package with a test file that fails. + + @test_broken Pkg3.test(TEST_PKG) + Pkg3.test(TEST_PKG; preview = true) + + Pkg3.GLOBAL_SETTINGS.use_libgit2_for_all_downloads = true + Pkg3.add("Example") + Pkg3.GLOBAL_SETTINGS.use_libgit2_for_all_downloads = false + + try + Pkg3.add([PackageSpec(TEST_PKG, VersionSpec(v"55"))]) + catch e + @test contains(sprint(showerror, e), TEST_PKG) + end + + usage = Pkg3.TOML.parse(String(read(joinpath(Pkg3.logdir(), "usage.toml")))) + @test any(x -> startswith(x, joinpath(project_path, "Manifest.toml")), keys(usage)) + + nonexisting_pkg = randstring(14) + @test_throws CommandError Pkg3.add(nonexisting_pkg) + @test_throws CommandError Pkg3.up(nonexisting_pkg) + # @test_warn "not in project" Pkg3.rm(nonexisting_pkg) + + mktempdir() do tmp + LibGit2.init(tmp) + mkdir(joinpath(tmp, "subfolder")) + cd(joinpath(tmp, "subfolder")) do + # Haven't initialized here so using the default env + @test isinstalled(TEST_PKG) + withenv("JULIA_ENV" => nothing) do + Pkg3.init() + @test !isinstalled(TEST_PKG) + @test isfile(joinpath(tmp, "Project.toml")) + Pkg3.add(TEST_PKG) + @test isinstalled(TEST_PKG) + end + end + end + + Pkg3.rm(TEST_PKG) + @test !isinstalled(TEST_PKG) + +end + +end # module diff --git a/stdlib/Pkg3/test/resolve.jl b/stdlib/Pkg3/test/resolve.jl new file mode 100644 index 0000000000000..64c4c85809131 --- /dev/null +++ b/stdlib/Pkg3/test/resolve.jl @@ -0,0 +1,587 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +module ResolveTest + +using Test +using Pkg3.Types +using Pkg3.GraphType +using Pkg3.Types: VersionBound +using Pkg3.Resolve +using Pkg3.Resolve.VersionWeights +import Pkg3.Types: uuid5, uuid_package + +# print info, stats etc. +const VERBOSE = false + +# Check that VersionWeight keeps the same ordering as VersionNumber + +vlst = [ + v"0.0.0", + v"0.0.1", + v"0.1.0", + v"0.1.1", + v"1.0.0", + v"1.0.1", + v"1.1.0", + v"1.1.1" + ] + +for v1 in vlst, v2 in vlst + vw1 = VersionWeight(v1) + vw2 = VersionWeight(v2) + clt = v1 < v2 + @test clt == (vw1 < vw2) + ceq = v1 == v2 + @test ceq == (vw1 == vw2) +end + +# auxiliary functions +pkguuid(p::String) = uuid5(uuid_package, p) +function storeuuid(p::String, uuid_to_name::Dict{UUID,String}) + uuid = p == "julia" ? Types.uuid_julia : pkguuid(p) + if haskey(uuid_to_name, uuid) + @assert uuid_to_name[uuid] == p + else + uuid_to_name[uuid] = p + end + return uuid +end +wantuuids(want_data) = Dict{UUID,VersionNumber}(pkguuid(p) => v for (p,v) in want_data) + +function load_package_data_raw(T::Type, input::String) + toml = Types.TOML.parse(input) + data = Dict{VersionRange,Dict{String,T}}() + for (v, d) in toml, (key, value) in d + vr = VersionRange(v) + dict = get!(data, vr, Dict{String,T}()) + haskey(dict, key) && cmderror("$ver/$key is duplicated in $path") + dict[key] = T(value) + end + return data +end + +function gen_versionranges(dict::Dict{K,Set{VersionNumber}}, srtvers::Vector{VersionNumber}) where {K} + vranges = Dict{K,Vector{VersionRange}}() + for (vreq,vset) in dict + vranges[vreq] = VersionRange[] + while !isempty(vset) + vn0 = minimum(vset) + i = findfirst(equalto(vn0), srtvers) + @assert i ≠ 0 + pop!(vset, vn0) + vn1 = vn0 + pushed = false + j = i + 1 + while j ≤ length(srtvers) + vn = srtvers[j] + if vn ∈ vset + pop!(vset, vn) + vn1 = vn + j += 1 + else + # vn1 = srtvers[j-1] + push!(vranges[vreq], VersionRange(VersionBound(vn0),VersionBound(vn1))) + pushed = true + break + end + end + !pushed && push!(vranges[vreq], VersionRange(VersionBound(vn0),VersionBound(vn1))) + end + end + allvranges = unique(vcat(collect(values(vranges))...)) + return vranges, allvranges +end + +function graph_from_data(deps_data, uuid_to_name = Dict{UUID,String}(Types.uuid_julia=>"julia")) + uuid(p) = storeuuid(p, uuid_to_name) + # deps = DepsGraph(uuid_to_name) + fixed = Dict(Types.uuid_julia => Fixed(VERSION)) + all_versions = Dict{UUID,Set{VersionNumber}}(fp => Set([fx.version]) for (fp,fx) in fixed) + all_deps = Dict{UUID,Dict{VersionRange,Dict{String,UUID}}}(fp => Dict(VersionRange(fx.version)=>Dict()) for (fp,fx) in fixed) + all_compat = Dict{UUID,Dict{VersionRange,Dict{String,VersionSpec}}}(fp => Dict(VersionRange(fx.version)=>Dict()) for (fp,fx) in fixed) + + deps = Dict{String,Dict{VersionNumber,Dict{String,VersionSpec}}}() + for d in deps_data + p, vn, r = d[1], d[2], d[3:end] + if !haskey(deps, p) + deps[p] = Dict{VersionNumber,Dict{String,VersionSpec}}() + end + if !haskey(deps[p], vn) + deps[p][vn] = Dict{String,VersionSpec}() + end + isempty(r) && continue + rp = r[1] + rvs = VersionSpec(r[2:end]) + deps[p][vn][rp] = rvs + end + for p in keys(deps) + u = uuid(p) + all_versions[u] = Set(keys(deps[p])) + srtvers = sort!(collect(keys(deps[p]))) + + deps_pkgs = Dict{String,Set{VersionNumber}}() + for (vn,vreq) in deps[p], rp in keys(vreq) + push!(get!(deps_pkgs, rp, Set{VersionNumber}()), vn) + end + vranges, allvranges = gen_versionranges(deps_pkgs, srtvers) + all_deps[u] = Dict{VersionRange,Dict{String,UUID}}(VersionRange()=>Dict{String,UUID}("julia"=>Types.uuid_julia)) + for vrng in allvranges + all_deps[u][vrng] = Dict{String,UUID}() + for (rp,vvr) in vranges + vrng ∈ vvr || continue + all_deps[u][vrng][rp] = uuid(rp) + end + end + + deps_reqs = Dict{Pair{String,VersionSpec},Set{VersionNumber}}() + for (vn,vreq) in deps[p], (rp,rvs) in vreq + push!(get!(deps_reqs, (rp=>rvs), Set{VersionNumber}()), vn) + end + vranges, allvranges = gen_versionranges(deps_reqs, srtvers) + all_compat[u] = Dict{VersionRange,Dict{String,VersionSpec}}() + for vrng in allvranges + all_compat[u][vrng] = Dict{String,VersionSpec}() + for (req,vvr) in vranges + vrng ∈ vvr || continue + rp,rvs = req + all_compat[u][vrng][rp] = rvs + end + end + end + return Graph(all_versions, all_deps, all_compat, uuid_to_name, Requires(), fixed; verbose = VERBOSE) +end +function reqs_from_data(reqs_data, graph::Graph) + reqs = Dict{UUID,VersionSpec}() + function uuid_check(p) + uuid = pkguuid(p) + @assert graph.data.uuid_to_name[uuid] == p + return uuid + end + for r in reqs_data + p = uuid_check(r[1]) + reqs[p] = VersionSpec(r[2:end]) + end + reqs +end +function sanity_tst(deps_data, expected_result; pkgs=[]) + if VERBOSE + println() + info("sanity check") + # @show deps_data + # @show pkgs + end + graph = graph_from_data(deps_data) + id(p) = pkgID(pkguuid(p), graph) + result = sanity_check(graph, Set(pkguuid(p) for p in pkgs), verbose = VERBOSE) + + length(result) == length(expected_result) || return false + expected_result_uuid = [(id(p), vn) for (p,vn) in expected_result] + for r in result + r ∈ expected_result_uuid || return false + end + return true +end +sanity_tst(deps_data; kw...) = sanity_tst(deps_data, []; kw...) + +function resolve_tst(deps_data, reqs_data, want_data = nothing; clean_graph = false) + if VERBOSE + println() + info("resolving") + # @show deps_data + # @show reqs_data + end + graph = graph_from_data(deps_data) + reqs = reqs_from_data(reqs_data, graph) + add_reqs!(graph, reqs) + simplify_graph!(graph, clean_graph = clean_graph) + want = resolve(graph) + return want == wantuuids(want_data) +end + +VERBOSE && info("SCHEME 1") +## DEPENDENCY SCHEME 1: TWO PACKAGES, DAG +deps_data = Any[ + ["A", v"1", "B", "1-*"], + ["A", v"2", "B", "2-*"], + ["B", v"1"], + ["B", v"2"] +] + +@test sanity_tst(deps_data) +@test sanity_tst(deps_data, pkgs=["A", "B"]) +@test sanity_tst(deps_data, pkgs=["B"]) +@test sanity_tst(deps_data, pkgs=["A"]) + +# require just B +reqs_data = Any[ + ["B", "*"] +] + +want_data = Dict("B"=>v"2") +resolve_tst(deps_data, reqs_data, want_data) +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just A: must bring in B +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"2", "B"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + + +VERBOSE && info("SCHEME 2") +## DEPENDENCY SCHEME 2: TWO PACKAGES, CYCLIC +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1-*"], + ["B", v"1", "A", "2-*"], + ["B", v"2", "A", "1-*"] +] + +@test sanity_tst(deps_data) + +# require just A +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"2", "B"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just B, force lower version +reqs_data = Any[ + ["B", "1"] +] +want_data = Dict("A"=>v"2", "B"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just A, force lower version +reqs_data = Any[ + ["A", "1"] +] +want_data = Dict("A"=>v"1", "B"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + + +VERBOSE && info("SCHEME 3") +## DEPENDENCY SCHEME 3: THREE PACKAGES, CYCLIC, TWO MUTUALLY EXCLUSIVE SOLUTIONS +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "1"], + ["C", v"1", "A", "1"], + ["C", v"2", "A", "2-*"] +] + +@test sanity_tst(deps_data) + +# require just A (must choose solution which has the highest version for A) +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"2", "B"=>v"1", "C"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just B (must choose solution which has the highest version for B) +reqs_data = Any[ + ["B", "*"] +] +want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just A, force lower version +reqs_data = Any[ + ["A", "1"] +] +want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require A and C, incompatible versions +reqs_data = Any[ + ["A", "1"], + ["C", "2-*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + + +VERBOSE && info("SCHEME 4") +## DEPENDENCY SCHEME 4: TWO PACKAGES, DAG, WITH TRIVIAL INCONSISTENCY +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["B", v"1"] +] + +@test sanity_tst(deps_data, [("A", v"1")]) +@test sanity_tst(deps_data, pkgs=["B"]) + +# require B (must not give errors) +reqs_data = Any[ + ["B", "*"] +] +want_data = Dict("B"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + + +VERBOSE && info("SCHEME 5") +## DEPENDENCY SCHEME 5: THREE PACKAGES, DAG, WITH IMPLICIT INCONSISTENCY +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"1", "C", "2-*"], + # ["A", v"1", "julia", "10"], + ["A", v"2", "B", "1"], + ["A", v"2", "C", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "2-*"], + ["C", v"1"], + ["C", v"2"] +] + +@test sanity_tst(deps_data, [("A", v"2")]) +@test sanity_tst(deps_data, pkgs=["B"]) +@test sanity_tst(deps_data, pkgs=["C"]) + +# require A, any version (must use the highest non-inconsistent) +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require A, force highest version (impossible) +reqs_data = Any[ + ["A", "2-*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + + +VERBOSE && info("SCHEME 6") +## DEPENDENCY SCHEME 6: TWO PACKAGES, CYCLIC, TOTALLY INCONSISTENT +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"2", "B", "1"], + ["B", v"1", "A", "1"], + ["B", v"2", "A", "2-*"] +] + +@test sanity_tst(deps_data, [("A", v"1"), ("A", v"2"), + ("B", v"1"), ("B", v"2")]) + +# require A (impossible) +reqs_data = Any[ + ["A", "*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + +# require B (impossible) +reqs_data = Any[ + ["B", "*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + + +VERBOSE && info("SCHEME 7") +## DEPENDENCY SCHEME 7: THREE PACKAGES, CYCLIC, WITH INCONSISTENCY +deps_data = Any[ + ["A", v"1", "B", "1"], + ["A", v"2", "B", "2-*"], + ["B", v"1", "C", "1"], + ["B", v"2", "C", "2-*"], + ["C", v"1", "A", "2-*"], + ["C", v"2", "A", "2-*"], +] + +@test sanity_tst(deps_data, [("A", v"1"), ("B", v"1"), + ("C", v"1")]) + +# require A +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require C +reqs_data = Any[ + ["C", "*"] +] +want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require C, lowest version (impossible) +reqs_data = Any[ + ["C", "1"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + + +VERBOSE && info("SCHEME 8") +## DEPENDENCY SCHEME 8: THREE PACKAGES, CYCLIC, TOTALLY INCONSISTENT +deps_data = Any[ + ["A", v"1", "B", "1"], + ["A", v"2", "B", "2-*"], + ["B", v"1", "C", "1"], + ["B", v"2", "C", "2-*"], + ["C", v"1", "A", "2-*"], + ["C", v"2", "A", "1"], +] + +@test sanity_tst(deps_data, [("A", v"1"), ("A", v"2"), + ("B", v"1"), ("B", v"2"), + ("C", v"1"), ("C", v"2")]) + +# require A (impossible) +reqs_data = Any[ + ["A", "*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + +# require B (impossible) +reqs_data = Any[ + ["B", "*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + +# require C (impossible) +reqs_data = Any[ + ["C", "*"] +] +@test_throws PkgError resolve_tst(deps_data, reqs_data) + +VERBOSE && info("SCHEME 9") +## DEPENDENCY SCHEME 9: SIX PACKAGES, DAG +deps_data = Any[ + ["A", v"1"], + ["A", v"2"], + ["A", v"3"], + ["B", v"1", "A", "1"], + ["B", v"2", "A", "*"], + ["C", v"1", "A", "2"], + ["C", v"2", "A", "2-*"], + ["D", v"1", "B", "1-*"], + ["D", v"2", "B", "2-*"], + ["E", v"1", "D", "*"], + ["F", v"1", "A", "1-2"], + ["F", v"1", "E", "*"], + ["F", v"2", "C", "2-*"], + ["F", v"2", "E", "*"], +] + +@test sanity_tst(deps_data) + +# require just F +reqs_data = Any[ + ["F", "*"] +] +want_data = Dict("A"=>v"3", "B"=>v"2", "C"=>v"2", + "D"=>v"2", "E"=>v"1", "F"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just F, lower version +reqs_data = Any[ + ["F", "1"] +] +want_data = Dict("A"=>v"2", "B"=>v"2", "D"=>v"2", + "E"=>v"1", "F"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require F and B; force lower B version -> must bring down F, A, and D versions too +reqs_data = Any[ + ["F", "*"], + ["B", "1"] +] +want_data = Dict("A"=>v"1", "B"=>v"1", "D"=>v"1", + "E"=>v"1", "F"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require F and D; force lower D version -> must not bring down F version +reqs_data = Any[ + ["F", "*"], + ["D", "1"] +] +want_data = Dict("A"=>v"3", "B"=>v"2", "C"=>v"2", + "D"=>v"1", "E"=>v"1", "F"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require F and C; force lower C version -> must bring down F and A versions +reqs_data = Any[ + ["F", "*"], + ["C", "1"] +] +want_data = Dict("A"=>v"2", "B"=>v"2", "C"=>v"1", + "D"=>v"2", "E"=>v"1", "F"=>v"1") +@test resolve_tst(deps_data, reqs_data, want_data) + +VERBOSE && info("SCHEME 10") +## DEPENDENCY SCHEME 10: FIVE PACKAGES, SAME AS SCHEMES 5 + 1, UNCONNECTED +deps_data = Any[ + ["A", v"1", "B", "2-*"], + ["A", v"1", "C", "2-*"], + ["A", v"2", "B", "1"], + ["A", v"2", "C", "1"], + ["B", v"1", "C", "2-*"], + ["B", v"2", "C", "2-*"], + ["C", v"1"], + ["C", v"2"], + ["D", v"1", "E", "1-*"], + ["D", v"2", "E", "2-*"], + ["E", v"1"], + ["E", v"2"] +] + +@test sanity_tst(deps_data, [("A", v"2")]) +@test sanity_tst(deps_data, pkgs=["B"]) +@test sanity_tst(deps_data, pkgs=["D"]) +@test sanity_tst(deps_data, pkgs=["E"]) +@test sanity_tst(deps_data, pkgs=["B", "D"]) + +# require A, any version (must use the highest non-inconsistent) +reqs_data = Any[ + ["A", "*"] +] +want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +# require just D: must bring in E +reqs_data = Any[ + ["D", "*"] +] +want_data = Dict("D"=>v"2", "E"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + + +# require A and D, must be the merge of the previous two cases +reqs_data = Any[ + ["A", "*"], + ["D", "*"] +] +want_data = Dict("A"=>v"1", "B"=>v"2", "C"=>v"2", "D"=>v"2", "E"=>v"2") +@test resolve_tst(deps_data, reqs_data, want_data) + +@testset "realistic" begin + VERBOSE && info("SCHEME REALISTIC") + ## DEPENDENCY SCHEME 11: A REALISTIC EXAMPLE + ## ref Julia issue #21485 + + include("resolvedata1.jl") + + @test sanity_tst(deps_data, problematic_data) + @test resolve_tst(deps_data, reqs_data, want_data) +end + +@testset "nasty" begin + VERBOSE && info("SCHEME NASTY") + ## DEPENDENCY SCHEME 12: A NASTY CASE + + include("NastyGenerator.jl") + deps_data, reqs_data, want_data, problematic_data = NastyGenerator.generate_nasty(5, 20, q=20, d=4, sat = true) + + @test sanity_tst(deps_data, problematic_data) + @test resolve_tst(deps_data, reqs_data, want_data) + + deps_data, reqs_data, want_data, problematic_data = NastyGenerator.generate_nasty(5, 20, q=20, d=4, sat = false) + + @test sanity_tst(deps_data, problematic_data) + @test_throws PkgError resolve_tst(deps_data, reqs_data) +end + +end # module diff --git a/stdlib/Pkg3/test/resolvedata1.jl b/stdlib/Pkg3/test/resolvedata1.jl new file mode 100644 index 0000000000000..db2784b575da6 --- /dev/null +++ b/stdlib/Pkg3/test/resolvedata1.jl @@ -0,0 +1,2853 @@ +# This file is a part of Julia. License is MIT: https://julialang.org/license + +deps_data = Any[ + ["ASTInterpreter", v"0.0.1", "AbstractTrees", "0.0.1-0.0" ], + ["ASTInterpreter", v"0.0.1", "JuliaParser", "0.7.1-*" ], + ["ASTInterpreter", v"0.0.3", "AbstractTrees", "0.0.2-0.0" ], + ["ASTInterpreter", v"0.0.3", "JuliaParser", "0.7.2-*" ], + ["ASTInterpreter", v"0.0.4", "AbstractTrees", "0.0.4-0.0" ], + ["ASTInterpreter", v"0.0.4", "JuliaParser", "0.7.2-*" ], + ["AbstractTrees", v"0.0.1" ], + ["AbstractTrees", v"0.0.3" ], + ["AbstractTrees", v"0.0.4" ], + ["AbstractTrees", v"0.1.0", "Compat", "0.17.0-*" ], + ["AlgebraicDiffEq", v"0.0.1", "DiffEqBase", "*" ], + ["AlgebraicDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["AlgebraicDiffEq", v"0.0.1", "Sundials", "0.3.0-*" ], + ["AlgebraicDiffEq", v"0.0.2", "DiffEqBase", "*" ], + ["AlgebraicDiffEq", v"0.0.2", "Parameters", "0.5.0-*" ], + ["AlgebraicDiffEq", v"0.0.2", "Sundials", "0.3.0-*" ], + ["AlgebraicDiffEq", v"0.1.0", "DiffEqBase", "0.2.0-*" ], + ["AlgebraicDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["AnsiColor", v"0.0.2" ], + ["ArgParse", v"0.2.9", "Options", "*" ], + ["ArgParse", v"0.2.9", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.10", "Compat", "*" ], + ["ArgParse", v"0.2.10", "Options", "*" ], + ["ArgParse", v"0.2.10", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.12", "Options", "*" ], + ["ArgParse", v"0.2.12", "Compat", "0.2.9-*" ], + ["ArgParse", v"0.2.12", "TextWrap", "0.1.0-*" ], + ["ArgParse", v"0.2.13", "Options", "*" ], + ["ArgParse", v"0.2.13", "Compat", "0.7.3-*" ], + ["ArgParse", v"0.2.13", "TextWrap", "0.1.4-*" ], + ["ArgParse", v"0.3.0", "Compat", "0.7.3-*" ], + ["ArgParse", v"0.3.0", "TextWrap", "0.1.4-*" ], + ["ArgParse", v"0.4.0", "Compat", "0.8.0-*" ], + ["ArgParse", v"0.4.0", "TextWrap", "0.1.4-*" ], + ["ArrayViews", v"0.1.1" ], + ["ArrayViews", v"0.3.0" ], + ["ArrayViews", v"0.4.5" ], + ["ArrayViews", v"0.4.7" ], + ["ArrayViews", v"0.4.8" ], + ["ArrayViews", v"0.4.9" ], + ["ArrayViews", v"0.4.11" ], + ["ArrayViews", v"0.6.3" ], + ["ArrayViews", v"0.6.4", "Compat", "*" ], + ["Atom", v"0.2.1", "CodeTools", "*" ], + ["Atom", v"0.2.1", "Hiccup", "*" ], + ["Atom", v"0.2.1", "JSON", "*" ], + ["Atom", v"0.2.1", "LNR", "*" ], + ["Atom", v"0.2.1", "Lazy", "*" ], + ["Atom", v"0.2.1", "Media", "*" ], + ["Atom", v"0.4.0", "Blink", "*" ], + ["Atom", v"0.4.0", "CodeTools", "*" ], + ["Atom", v"0.4.0", "Hiccup", "*" ], + ["Atom", v"0.4.0", "JSON", "*" ], + ["Atom", v"0.4.0", "LNR", "*" ], + ["Atom", v"0.4.0", "Lazy", "*" ], + ["Atom", v"0.4.0", "Media", "*" ], + ["Atom", v"0.4.0", "Reexport", "*" ], + ["Atom", v"0.4.6", "Blink", "*" ], + ["Atom", v"0.4.6", "CodeTools", "*" ], + ["Atom", v"0.4.6", "Hiccup", "*" ], + ["Atom", v"0.4.6", "JSON", "*" ], + ["Atom", v"0.4.6", "LNR", "*" ], + ["Atom", v"0.4.6", "Lazy", "*" ], + ["Atom", v"0.4.6", "MacroTools", "*" ], + ["Atom", v"0.4.6", "Media", "*" ], + ["Atom", v"0.4.6", "Reexport", "*" ], + ["Atom", v"0.4.6", "Requires", "*" ], + ["Atom", v"0.5.0", "ASTInterpreter", "*" ], + ["Atom", v"0.5.0", "Blink", "*" ], + ["Atom", v"0.5.0", "CodeTools", "*" ], + ["Atom", v"0.5.0", "Gallium", "*" ], + ["Atom", v"0.5.0", "Hiccup", "*" ], + ["Atom", v"0.5.0", "JSON", "*" ], + ["Atom", v"0.5.0", "LNR", "*" ], + ["Atom", v"0.5.0", "Lazy", "*" ], + ["Atom", v"0.5.0", "MacroTools", "*" ], + ["Atom", v"0.5.0", "Media", "*" ], + ["Atom", v"0.5.0", "Reexport", "*" ], + ["Atom", v"0.5.0", "Requires", "*" ], + ["Atom", v"0.5.2", "ASTInterpreter", "*" ], + ["Atom", v"0.5.2", "Blink", "*" ], + ["Atom", v"0.5.2", "CodeTools", "*" ], + ["Atom", v"0.5.2", "Gallium", "*" ], + ["Atom", v"0.5.2", "Hiccup", "*" ], + ["Atom", v"0.5.2", "JSON", "*" ], + ["Atom", v"0.5.2", "Juno", "*" ], + ["Atom", v"0.5.2", "LNR", "*" ], + ["Atom", v"0.5.2", "Lazy", "*" ], + ["Atom", v"0.5.2", "MacroTools", "*" ], + ["Atom", v"0.5.2", "Media", "*" ], + ["Atom", v"0.5.2", "Reexport", "*" ], + ["Atom", v"0.5.2", "Requires", "*" ], + ["Atom", v"0.5.8", "ASTInterpreter", "*" ], + ["Atom", v"0.5.8", "Blink", "*" ], + ["Atom", v"0.5.8", "CodeTools", "*" ], + ["Atom", v"0.5.8", "Gallium", "*" ], + ["Atom", v"0.5.8", "Hiccup", "*" ], + ["Atom", v"0.5.8", "JSON", "*" ], + ["Atom", v"0.5.8", "Juno", "*" ], + ["Atom", v"0.5.8", "LNR", "*" ], + ["Atom", v"0.5.8", "MacroTools", "*" ], + ["Atom", v"0.5.8", "Media", "*" ], + ["Atom", v"0.5.8", "Reexport", "*" ], + ["Atom", v"0.5.8", "Lazy", "0.11.3-*" ], + ["Atom", v"0.5.10", "ASTInterpreter", "*" ], + ["Atom", v"0.5.10", "Blink", "*" ], + ["Atom", v"0.5.10", "CodeTools", "*" ], + ["Atom", v"0.5.10", "Gallium", "*" ], + ["Atom", v"0.5.10", "Hiccup", "*" ], + ["Atom", v"0.5.10", "JSON", "*" ], + ["Atom", v"0.5.10", "LNR", "*" ], + ["Atom", v"0.5.10", "MacroTools", "*" ], + ["Atom", v"0.5.10", "Media", "*" ], + ["Atom", v"0.5.10", "Reexport", "*" ], + ["Atom", v"0.5.10", "Juno", "0.2.6-*" ], + ["Atom", v"0.5.10", "Lazy", "0.11.3-*" ], + ["AxisAlgorithms", v"0.1.6", "WoodburyMatrices", "*" ], + ["AxisAlgorithms", v"0.1.6", "Compat", "0.8.0-*" ], + ["AxisArrays", v"0.0.3", "IntervalSets", "*" ], + ["AxisArrays", v"0.0.3", "Iterators", "*" ], + ["AxisArrays", v"0.0.3", "RangeArrays", "*" ], + ["AxisArrays", v"0.1.2", "Compat", "0.19.0-*" ], + ["AxisArrays", v"0.1.2", "IntervalSets", "*" ], + ["AxisArrays", v"0.1.2", "Iterators", "*" ], + ["AxisArrays", v"0.1.2", "RangeArrays", "*" ], + ["BinDeps", v"0.2.0" ], + ["BinDeps", v"0.2.4", "URIParser", "*" ], + ["BinDeps", v"0.2.14", "URIParser", "*" ], + ["BinDeps", v"0.3.4", "URIParser", "*" ], + ["BinDeps", v"0.3.4", "SHA", "0.0.0-0.0.2" ], + ["BinDeps", v"0.3.5", "URIParser", "*" ], + ["BinDeps", v"0.3.5", "SHA", "0.0.3-*" ], + ["BinDeps", v"0.3.8", "SHA", "*" ], + ["BinDeps", v"0.3.8", "URIParser", "*" ], + ["BinDeps", v"0.3.10", "Compat", "0.3.6-*" ], + ["BinDeps", v"0.3.10", "SHA", "*" ], + ["BinDeps", v"0.3.10", "URIParser", "*" ], + ["BinDeps", v"0.3.15", "Compat", "0.4.0-*" ], + ["BinDeps", v"0.3.15", "SHA", "*" ], + ["BinDeps", v"0.3.15", "URIParser", "*" ], + ["BinDeps", v"0.3.21", "Compat", "0.7.1-*" ], + ["BinDeps", v"0.3.21", "SHA", "*" ], + ["BinDeps", v"0.3.21", "URIParser", "*" ], + ["BinDeps", v"0.3.23", "URIParser", "*" ], + ["BinDeps", v"0.3.23", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.3.23", "SHA", "*" ], + ["BinDeps", v"0.4.2", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.4.2", "SHA", "*" ], + ["BinDeps", v"0.4.2", "URIParser", "*" ], + ["BinDeps", v"0.4.5", "Compat", "0.8.4-*" ], + ["BinDeps", v"0.4.5", "SHA", "*" ], + ["BinDeps", v"0.4.5", "URIParser", "*" ], + ["BinDeps", v"0.4.7", "Compat", "0.17.0-*" ], + ["BinDeps", v"0.4.7", "SHA", "*" ], + ["BinDeps", v"0.4.7", "URIParser", "*" ], + ["Blink", v"0.1.4", "JSON", "*" ], + ["Blink", v"0.1.4", "Lazy", "*" ], + ["Blink", v"0.1.4", "Requires", "*" ], + ["Blink", v"0.1.5", "JSON", "*" ], + ["Blink", v"0.1.5", "Lazy", "*" ], + ["Blink", v"0.1.5", "MacroTools", "*" ], + ["Blink", v"0.1.5", "Requires", "*" ], + ["Blink", v"0.2.0", "HttpServer", "*" ], + ["Blink", v"0.2.0", "JSON", "*" ], + ["Blink", v"0.2.0", "Lazy", "*" ], + ["Blink", v"0.2.0", "MacroTools", "*" ], + ["Blink", v"0.2.0", "Mustache", "*" ], + ["Blink", v"0.2.0", "Reexport", "*" ], + ["Blink", v"0.2.0", "Requires", "*" ], + ["Blink", v"0.2.0", "WebSockets", "*" ], + ["Blink", v"0.2.1", "HttpServer", "*" ], + ["Blink", v"0.2.1", "JSON", "*" ], + ["Blink", v"0.2.1", "Lazy", "*" ], + ["Blink", v"0.2.1", "MacroTools", "*" ], + ["Blink", v"0.2.1", "Mustache", "*" ], + ["Blink", v"0.2.1", "Mux", "*" ], + ["Blink", v"0.2.1", "Reexport", "*" ], + ["Blink", v"0.2.1", "Requires", "*" ], + ["Blink", v"0.2.1", "WebSockets", "*" ], + ["Blink", v"0.3.4", "BinDeps", "*" ], + ["Blink", v"0.3.4", "HttpServer", "*" ], + ["Blink", v"0.3.4", "JSON", "*" ], + ["Blink", v"0.3.4", "Lazy", "*" ], + ["Blink", v"0.3.4", "MacroTools", "*" ], + ["Blink", v"0.3.4", "Mustache", "*" ], + ["Blink", v"0.3.4", "Mux", "*" ], + ["Blink", v"0.3.4", "Reexport", "*" ], + ["Blink", v"0.3.4", "Requires", "*" ], + ["Blink", v"0.3.4", "WebSockets", "*" ], + ["Blink", v"0.4.1", "BinDeps", "*" ], + ["Blink", v"0.4.1", "HttpServer", "*" ], + ["Blink", v"0.4.1", "Mustache", "*" ], + ["Blink", v"0.4.1", "Reexport", "*" ], + ["Blink", v"0.4.1", "Requires", "*" ], + ["Blink", v"0.4.1", "Compat", "0.8.6-*" ], + ["Blink", v"0.4.1", "JSON", "*" ], + ["Blink", v"0.4.1", "Lazy", "*" ], + ["Blink", v"0.4.1", "MacroTools", "*" ], + ["Blink", v"0.4.1", "Mux", "*" ], + ["Blink", v"0.4.1", "WebSockets", "*" ], + ["Blink", v"0.5.1", "BinDeps", "*" ], + ["Blink", v"0.5.1", "HttpServer", "*" ], + ["Blink", v"0.5.1", "Compat", "0.8.6-*" ], + ["Blink", v"0.5.1", "JSON", "*" ], + ["Blink", v"0.5.1", "MacroTools", "*" ], + ["Blink", v"0.5.1", "Mustache", "*" ], + ["Blink", v"0.5.1", "Lazy", "0.11.3-*" ], + ["Blink", v"0.5.1", "Mux", "*" ], + ["Blink", v"0.5.1", "Reexport", "*" ], + ["Blink", v"0.5.1", "WebSockets", "*" ], + ["Blocks", v"0.0.4" ], + ["Blocks", v"0.1.0", "Compat", "*" ], + ["Blosc", v"0.1.1", "BinDeps", "*" ], + ["Blosc", v"0.1.5", "BinDeps", "*" ], + ["Blosc", v"0.1.5", "Compat", "*" ], + ["Blosc", v"0.2.0", "BinDeps", "*" ], + ["Blosc", v"0.2.0", "Compat", "0.8.0-*" ], + ["COFF", v"0.0.2", "DWARF", "*" ], + ["COFF", v"0.0.2", "ObjFileBase", "*" ], + ["COFF", v"0.0.2", "StructIO", "*" ], + ["CRC", v"0.1.0", "ArgParse", "*" ], + ["CRC", v"0.1.0", "Zlib", "*" ], + ["CRC", v"1.1.1", "ArgParse", "*" ], + ["CRC", v"1.1.1", "Compat", "*" ], + ["CRC", v"1.2.0", "ArgParse", "*" ], + ["Calculus", v"0.1.5" ], + ["Calculus", v"0.1.6", "Compat", "*" ], + ["Calculus", v"0.1.14", "Compat", "0.4.0-*" ], + ["Calculus", v"0.1.15", "Compat", "0.4.0-*" ], + ["Calculus", v"0.2.0", "Compat", "0.4.0-*" ], + ["Calculus", v"0.2.2", "Compat", "0.17.0-*" ], + ["Calendar", v"0.4.3", "ICU", "*" ], + ["CatIndices", v"0.0.2", "CustomUnitRanges", "*" ], + ["CatIndices", v"0.0.2", "OffsetArrays", "*" ], + ["ChunkedArrays", v"0.0.1", "Compat", "*" ], + ["ChunkedArrays", v"0.0.1", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.0.2", "Compat", "*" ], + ["ChunkedArrays", v"0.0.2", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.1.0", "Compat", "*" ], + ["ChunkedArrays", v"0.1.0", "EllipsisNotation", "*" ], + ["ChunkedArrays", v"0.1.1", "EllipsisNotation", "0.0.2-*" ], + ["CodeTools", v"0.1.0", "JuliaParser", "*" ], + ["CodeTools", v"0.1.0", "LNR", "*" ], + ["CodeTools", v"0.1.0", "Lazy", "*" ], + ["CodeTools", v"0.1.0", "MacroTools", "*" ], + ["CodeTools", v"0.2.0", "Compat", "*" ], + ["CodeTools", v"0.2.0", "JuliaParser", "*" ], + ["CodeTools", v"0.2.0", "LNR", "*" ], + ["CodeTools", v"0.2.0", "Lazy", "*" ], + ["CodeTools", v"0.2.0", "MacroTools", "*" ], + ["CodeTools", v"0.4.1", "Compat", "*" ], + ["CodeTools", v"0.4.1", "JuliaParser", "*" ], + ["CodeTools", v"0.4.1", "LNR", "*" ], + ["CodeTools", v"0.4.1", "Lazy", "*" ], + ["CodeTools", v"0.4.1", "MacroTools", "*" ], + ["CodeTools", v"0.4.1", "Requires", "*" ], + ["CodeTools", v"0.4.3", "LNR", "*" ], + ["CodeTools", v"0.4.3", "Lazy", "*" ], + ["CodeTools", v"0.4.3", "MacroTools", "*" ], + ["Codecs", v"0.1.0", "Iterators", "*" ], + ["Codecs", v"0.1.3" ], + ["Codecs", v"0.1.5", "Compat", "*" ], + ["Codecs", v"0.2.0", "Compat", "0.7.20-*" ], + ["Codecs", v"0.3.0", "Compat", "0.17.0-*" ], + ["ColorTypes", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorTypes", v"0.0.1", "FixedSizeArrays", "*" ], + ["ColorTypes", v"0.1.7", "Compat", "*" ], + ["ColorTypes", v"0.1.7", "Docile", "*" ], + ["ColorTypes", v"0.1.7", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorTypes", v"0.2.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.2.8", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.2.12", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorTypes", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.2", "Compat", "0.16.0-*" ], + ["ColorTypes", v"0.3.2", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.3", "Compat", "0.17.0-*" ], + ["ColorTypes", v"0.3.3", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.3.5", "Compat", "0.18.0-*" ], + ["ColorTypes", v"0.3.5", "FixedPointNumbers", "0.3.0-*" ], + ["ColorTypes", v"0.4.1", "Compat", "0.18.0-*" ], + ["ColorTypes", v"0.4.1", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.0.5", "ColorTypes", "*" ], + ["ColorVectorSpace", v"0.0.5", "Compat", "*" ], + ["ColorVectorSpace", v"0.0.5", "FixedPointNumbers", "0.0.0-0.2" ], + ["ColorVectorSpace", v"0.1.7", "ColorTypes", "0.2.0-*" ], + ["ColorVectorSpace", v"0.1.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorVectorSpace", v"0.1.8", "ColorTypes", "0.2.0-*" ], + ["ColorVectorSpace", v"0.1.8", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.8", "FixedPointNumbers", "0.1.0-0.2" ], + ["ColorVectorSpace", v"0.1.10", "ColorTypes", "0.2.7-*" ], + ["ColorVectorSpace", v"0.1.10", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.10", "FixedPointNumbers", "0.1.8-0.2" ], + ["ColorVectorSpace", v"0.1.12", "ColorTypes", "0.2.7-*" ], + ["ColorVectorSpace", v"0.1.12", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.1.12", "FixedPointNumbers", "0.1.8-0.2" ], + ["ColorVectorSpace", v"0.2.0", "ColorTypes", "0.3.0-*" ], + ["ColorVectorSpace", v"0.2.0", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.3.0", "ColorTypes", "0.3.3-*" ], + ["ColorVectorSpace", v"0.3.0", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.3.0", "Compat", "0.9.1-*" ], + ["ColorVectorSpace", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.3.0", "StatsBase", "0.8.2-*" ], + ["ColorVectorSpace", v"0.4.0", "ColorTypes", "0.3.3-*" ], + ["ColorVectorSpace", v"0.4.0", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.4.0", "Compat", "0.18.0-*" ], + ["ColorVectorSpace", v"0.4.0", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.4.0", "StatsBase", "0.8.2-*" ], + ["ColorVectorSpace", v"0.4.2", "ColorTypes", "0.4.0-*" ], + ["ColorVectorSpace", v"0.4.2", "Colors", "0.7.1-*" ], + ["ColorVectorSpace", v"0.4.2", "Compat", "0.18.0-*" ], + ["ColorVectorSpace", v"0.4.2", "FixedPointNumbers", "0.3.0-*" ], + ["ColorVectorSpace", v"0.4.2", "StatsBase", "0.8.2-*" ], + ["Colors", v"0.4.7", "Compat", "0.2.0-*" ], + ["Colors", v"0.4.7", "Graphics", "0.1.0-*" ], + ["Colors", v"0.4.7", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.5.0", "ColorTypes", "*" ], + ["Colors", v"0.5.0", "Reexport", "*" ], + ["Colors", v"0.5.0", "Compat", "0.2.0-*" ], + ["Colors", v"0.5.0", "Graphics", "0.1.0-*" ], + ["Colors", v"0.5.0", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.5.4", "ColorTypes", "*" ], + ["Colors", v"0.5.4", "Reexport", "*" ], + ["Colors", v"0.5.4", "Compat", "0.2.0-*" ], + ["Colors", v"0.5.4", "FixedPointNumbers", "0.0.0-0.2" ], + ["Colors", v"0.6.2", "Reexport", "*" ], + ["Colors", v"0.6.2", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.2", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.4", "Compat", "*" ], + ["Colors", v"0.6.4", "Reexport", "*" ], + ["Colors", v"0.6.4", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.4", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.6", "Reexport", "*" ], + ["Colors", v"0.6.6", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.6", "Compat", "0.8.0-*" ], + ["Colors", v"0.6.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.7", "Reexport", "*" ], + ["Colors", v"0.6.7", "ColorTypes", "0.2.0-*" ], + ["Colors", v"0.6.7", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["Colors", v"0.6.8", "Reexport", "*" ], + ["Colors", v"0.6.8", "ColorTypes", "0.2.7-*" ], + ["Colors", v"0.6.8", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.8", "FixedPointNumbers", "0.1.8-0.2" ], + ["Colors", v"0.6.9", "Reexport", "*" ], + ["Colors", v"0.6.9", "ColorTypes", "0.2.9-*" ], + ["Colors", v"0.6.9", "Compat", "0.9.1-*" ], + ["Colors", v"0.6.9", "FixedPointNumbers", "0.1.8-0.2" ], + ["Colors", v"0.7.0", "Reexport", "*" ], + ["Colors", v"0.7.0", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.0", "Compat", "0.9.1-*" ], + ["Colors", v"0.7.0", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.1", "Reexport", "*" ], + ["Colors", v"0.7.1", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.1", "Compat", "0.9.1-*" ], + ["Colors", v"0.7.1", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.2", "Reexport", "*" ], + ["Colors", v"0.7.2", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.2", "Compat", "0.17.0-*" ], + ["Colors", v"0.7.2", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.3", "ColorTypes", "0.3.0-*" ], + ["Colors", v"0.7.3", "Compat", "0.18.0-*" ], + ["Colors", v"0.7.3", "FixedPointNumbers", "0.3.0-*" ], + ["Colors", v"0.7.3", "Reexport", "*" ], + ["Combinatorics", v"0.2.0", "Compat", "*" ], + ["Combinatorics", v"0.2.0", "Iterators", "*" ], + ["Combinatorics", v"0.2.0", "Polynomials", "*" ], + ["Combinatorics", v"0.3.2", "Iterators", "*" ], + ["Combinatorics", v"0.3.2", "Polynomials", "*" ], + ["Combinatorics", v"0.4.0", "Compat", "0.18.0-*" ], + ["Combinatorics", v"0.4.0", "Iterators", "*" ], + ["Combinatorics", v"0.4.0", "Polynomials", "*" ], + ["Compat", v"0.8.1" ], + ["Compat", v"0.8.3" ], + ["Compat", v"0.8.4" ], + ["Compat", v"0.8.5" ], + ["Compat", v"0.8.6" ], + ["Compat", v"0.8.7" ], + ["Compat", v"0.8.8" ], + ["Compat", v"0.9.0" ], + ["Compat", v"0.9.1" ], + ["Compat", v"0.9.3" ], + ["Compat", v"0.9.4" ], + ["Compat", v"0.10.0" ], + ["Compat", v"0.11.0" ], + ["Compat", v"0.12.0" ], + ["Compat", v"0.13.0" ], + ["Compat", v"0.15.0" ], + ["Compat", v"0.16.2" ], + ["Compat", v"0.17.0" ], + ["Compat", v"0.18.0" ], + ["Compat", v"0.23.0" ], + ["Compat", v"0.24.0" ], + ["ComputationalResources", v"0.0.1" ], + ["ComputationalResources", v"0.0.2", "Compat", "0.17.0-*" ], + ["Conda", v"0.1.5", "BinDeps", "*" ], + ["Conda", v"0.1.5", "Compat", "*" ], + ["Conda", v"0.1.5", "JSON", "*" ], + ["Conda", v"0.1.9", "BinDeps", "*" ], + ["Conda", v"0.1.9", "Compat", "*" ], + ["Conda", v"0.1.9", "JSON", "*" ], + ["Conda", v"0.2.2", "BinDeps", "*" ], + ["Conda", v"0.2.2", "Compat", "0.7.15-*" ], + ["Conda", v"0.2.2", "JSON", "*" ], + ["Conda", v"0.2.4", "BinDeps", "*" ], + ["Conda", v"0.2.4", "Compat", "0.8.0-*" ], + ["Conda", v"0.2.4", "JSON", "*" ], + ["Conda", v"0.2.5", "BinDeps", "*" ], + ["Conda", v"0.2.5", "Compat", "0.7.20-*" ], + ["Conda", v"0.2.5", "JSON", "*" ], + ["Conda", v"0.3.2", "BinDeps", "*" ], + ["Conda", v"0.3.2", "Compat", "0.8.0-*" ], + ["Conda", v"0.3.2", "JSON", "*" ], + ["Conda", v"0.5.3", "BinDeps", "*" ], + ["Conda", v"0.5.3", "Compat", "0.8.0-*" ], + ["Conda", v"0.5.3", "JSON", "*" ], + ["CoordinateTransformations", v"0.1.0", "FixedSizeArrays", "*" ], + ["CoordinateTransformations", v"0.1.0", "Rotations", "*" ], + ["CoordinateTransformations", v"0.2.0", "Compat", "0.8.0-0.10" ], + ["CoordinateTransformations", v"0.2.0", "FixedSizeArrays", "0.2.2-*" ], + ["CoordinateTransformations", v"0.2.0", "Rotations", "0.1.0-0.2.0" ], + ["CoordinateTransformations", v"0.3.2", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.3.2", "StaticArrays", "*" ], + ["CoordinateTransformations", v"0.4.0", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.4.0", "StaticArrays", "*" ], + ["CoordinateTransformations", v"0.4.1", "Compat", "0.17.0-*" ], + ["CoordinateTransformations", v"0.4.1", "Rotations", "0.3.0-*" ], + ["CoordinateTransformations", v"0.4.1", "StaticArrays", "*" ], + ["CustomUnitRanges", v"0.0.4" ], + ["DWARF", v"0.0.0", "ELF", "*" ], + ["DWARF", v"0.0.0", "StrPack", "*" ], + ["DWARF", v"0.1.0", "AbstractTrees", "*" ], + ["DWARF", v"0.1.0", "ObjFileBase", "*" ], + ["DWARF", v"0.1.0", "StructIO", "*" ], + ["DataArrays", v"0.4.0", "Reexport", "*" ], + ["DataArrays", v"0.4.0", "SpecialFunctions", "*" ], + ["DataArrays", v"0.4.0", "Compat", "0.8.6-*" ], + ["DataArrays", v"0.4.0", "StatsBase", "0.3.0-*" ], + ["DataFrames", v"0.0.0", "Options", "*" ], + ["DataFrames", v"0.0.0", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.2.2", "GZip", "*" ], + ["DataFrames", v"0.2.2", "Options", "*" ], + ["DataFrames", v"0.2.2", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.10", "GZip", "*" ], + ["DataFrames", v"0.3.10", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.11", "Blocks", "*" ], + ["DataFrames", v"0.3.11", "GZip", "*" ], + ["DataFrames", v"0.3.11", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.3.16", "Blocks", "*" ], + ["DataFrames", v"0.3.16", "GZip", "*" ], + ["DataFrames", v"0.3.16", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.3.16", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.4.2", "Blocks", "*" ], + ["DataFrames", v"0.4.2", "DataArrays", "*" ], + ["DataFrames", v"0.4.2", "GZip", "*" ], + ["DataFrames", v"0.4.2", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.4.2", "Stats", "*" ], + ["DataFrames", v"0.5.0", "Blocks", "*" ], + ["DataFrames", v"0.5.0", "GZip", "*" ], + ["DataFrames", v"0.5.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.0", "DataArrays", "0.1.0-*" ], + ["DataFrames", v"0.5.0", "StatsBase", "0.3.0-0.8.2" ], + ["DataFrames", v"0.5.3", "Blocks", "*" ], + ["DataFrames", v"0.5.3", "DataArrays", "*" ], + ["DataFrames", v"0.5.3", "GZip", "*" ], + ["DataFrames", v"0.5.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.3", "StatsBase", "0.0.0-0.8.2" ], + ["DataFrames", v"0.5.4", "Blocks", "*" ], + ["DataFrames", v"0.5.4", "DataArrays", "*" ], + ["DataFrames", v"0.5.4", "GZip", "*" ], + ["DataFrames", v"0.5.4", "Reexport", "*" ], + ["DataFrames", v"0.5.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.4", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.5.11", "DataArrays", "*" ], + ["DataFrames", v"0.5.11", "GZip", "*" ], + ["DataFrames", v"0.5.11", "Reexport", "*" ], + ["DataFrames", v"0.5.11", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.5.11", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.1", "Compat", "*" ], + ["DataFrames", v"0.6.1", "DataArrays", "*" ], + ["DataFrames", v"0.6.1", "GZip", "*" ], + ["DataFrames", v"0.6.1", "Reexport", "*" ], + ["DataFrames", v"0.6.1", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.1", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.5", "Compat", "*" ], + ["DataFrames", v"0.6.5", "DataArrays", "*" ], + ["DataFrames", v"0.6.5", "Docile", "*" ], + ["DataFrames", v"0.6.5", "GZip", "*" ], + ["DataFrames", v"0.6.5", "Reexport", "*" ], + ["DataFrames", v"0.6.5", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.5", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.6.10", "Compat", "*" ], + ["DataFrames", v"0.6.10", "Docile", "*" ], + ["DataFrames", v"0.6.10", "GZip", "*" ], + ["DataFrames", v"0.6.10", "Reexport", "*" ], + ["DataFrames", v"0.6.10", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.6.10", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.6.10", "StatsBase", "0.3.10-0.8.2" ], + ["DataFrames", v"0.7.0", "Docile", "*" ], + ["DataFrames", v"0.7.0", "GZip", "*" ], + ["DataFrames", v"0.7.0", "Reexport", "*" ], + ["DataFrames", v"0.7.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.0", "Compat", "0.7.12-*" ], + ["DataFrames", v"0.7.0", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.0", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.2", "Docile", "*" ], + ["DataFrames", v"0.7.2", "GZip", "*" ], + ["DataFrames", v"0.7.2", "Reexport", "*" ], + ["DataFrames", v"0.7.2", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.2", "Compat", "0.7.17-*" ], + ["DataFrames", v"0.7.2", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.2", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.3", "Docile", "*" ], + ["DataFrames", v"0.7.3", "GZip", "*" ], + ["DataFrames", v"0.7.3", "Reexport", "*" ], + ["DataFrames", v"0.7.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.3", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.3", "DataArrays", "0.2.15-*" ], + ["DataFrames", v"0.7.3", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.4", "Docile", "*" ], + ["DataFrames", v"0.7.4", "GZip", "*" ], + ["DataFrames", v"0.7.4", "Reexport", "*" ], + ["DataFrames", v"0.7.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.4", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.4", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.4", "StatsBase", "0.8.0-0.8.2" ], + ["DataFrames", v"0.7.6", "Docile", "*" ], + ["DataFrames", v"0.7.6", "GZip", "*" ], + ["DataFrames", v"0.7.6", "Reexport", "*" ], + ["DataFrames", v"0.7.6", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.6", "Compat", "0.7.19-*" ], + ["DataFrames", v"0.7.6", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.6", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.7.8", "GZip", "*" ], + ["DataFrames", v"0.7.8", "Reexport", "*" ], + ["DataFrames", v"0.7.8", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.7.8", "Compat", "0.8.0-*" ], + ["DataFrames", v"0.7.8", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.7.8", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.0", "GZip", "*" ], + ["DataFrames", v"0.8.0", "Reexport", "*" ], + ["DataFrames", v"0.8.0", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.0", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.0", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.0", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.3", "GZip", "*" ], + ["DataFrames", v"0.8.3", "Reexport", "*" ], + ["DataFrames", v"0.8.3", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.3", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.3", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.3", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.3", "StatsBase", "0.8.3-*" ], + ["DataFrames", v"0.8.4", "GZip", "*" ], + ["DataFrames", v"0.8.4", "Reexport", "*" ], + ["DataFrames", v"0.8.4", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.4", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.4", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.4", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.4", "StatsBase", "0.11.0-*" ], + ["DataFrames", v"0.8.5", "GZip", "*" ], + ["DataFrames", v"0.8.5", "Reexport", "*" ], + ["DataFrames", v"0.8.5", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.8.5", "Compat", "0.8.4-*" ], + ["DataFrames", v"0.8.5", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.8.5", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.8.5", "Juno", "0.2.4-*" ], + ["DataFrames", v"0.8.5", "StatsBase", "0.11.0-*" ], + ["DataFrames", v"0.9.1", "GZip", "*" ], + ["DataFrames", v"0.9.1", "Reexport", "*" ], + ["DataFrames", v"0.9.1", "SortingAlgorithms", "*" ], + ["DataFrames", v"0.9.1", "Compat", "0.18.0-*" ], + ["DataFrames", v"0.9.1", "DataArrays", "0.3.4-*" ], + ["DataFrames", v"0.9.1", "FileIO", "0.1.2-*" ], + ["DataFrames", v"0.9.1", "StatsBase", "0.11.0-*" ], + ["DataStructures", v"0.4.5" ], + ["DataStructures", v"0.4.6", "Compat", "0.8.5-*" ], + ["DataStructures", v"0.5.1", "Compat", "0.9.4-*" ], + ["DataStructures", v"0.5.2", "Compat", "0.9.4-*" ], + ["DataStructures", v"0.5.3", "Compat", "0.17.0-*" ], + ["Dates", v"0.4.4" ], + ["DelayDiffEq", v"0.0.1", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.0.1", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.0.1", "DiffEqBase", "0.5.0-0.6" ], + ["DelayDiffEq", v"0.0.1", "RecursiveArrayTools", "0.1.2-*" ], + ["DelayDiffEq", v"0.0.1", "OrdinaryDiffEq", "1.0.0-1.1" ], + ["DelayDiffEq", v"0.1.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.1.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.1.0", "DiffEqBase", "0.8.0-0.14" ], + ["DelayDiffEq", v"0.1.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DelayDiffEq", v"0.1.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DelayDiffEq", v"0.2.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.2.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.2.0", "DiffEqBase", "0.8.0-0.14" ], + ["DelayDiffEq", v"0.2.0", "OrdinaryDiffEq", "1.6.0-*" ], + ["DelayDiffEq", v"0.2.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DelayDiffEq", v"0.3.0", "Combinatorics", "*" ], + ["DelayDiffEq", v"0.3.0", "DataStructures", "0.4.6-*" ], + ["DelayDiffEq", v"0.3.0", "DiffEqBase", "0.15.0-*" ], + ["DelayDiffEq", v"0.3.0", "OrdinaryDiffEq", "1.6.0-*" ], + ["DelayDiffEq", v"0.3.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffBase", v"0.0.2", "Compat", "0.7.15-*" ], + ["DiffBase", v"0.1.0", "Compat", "0.7.15-*" ], + ["DiffEqBase", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.0.4", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.0.4", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.0", "Parameters", "*" ], + ["DiffEqBase", v"0.1.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.0", "RecursiveArrayTools", "*" ], + ["DiffEqBase", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.1", "Parameters", "*" ], + ["DiffEqBase", v"0.1.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.1", "RecursiveArrayTools", "*" ], + ["DiffEqBase", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.2", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.1.2", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.2", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.1.3", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.1.3", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.1.3", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.1.3", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.2.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.2.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.3.2", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.3.2", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.3.2", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.3.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.3.2", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.4.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.4.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.4.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.4.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.4.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.4.1", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.4.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.4.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.4.1", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.4.1", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.5.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.5.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.5.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.5.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.6.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.6.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.6.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.6.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.7.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.7.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.7.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.7.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqBase", v"0.7.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.10.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.10.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.10.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.10.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.10.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.11.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.11.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.11.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.11.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.11.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.12.1", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.12.1", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.12.1", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.12.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.12.1", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.12.1", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.13.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.13.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.13.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.13.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.13.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.13.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.14.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.14.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.14.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.14.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.14.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.14.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBase", v"0.15.0", "Compat", "0.19.0-*" ], + ["DiffEqBase", v"0.15.0", "Parameters", "0.5.0-*" ], + ["DiffEqBase", v"0.15.0", "Ranges", "0.0.1-*" ], + ["DiffEqBase", v"0.15.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqBase", v"0.15.0", "RecursiveArrayTools", "0.2.0-*" ], + ["DiffEqBase", v"0.15.0", "SimpleTraits", "0.1.1-*" ], + ["DiffEqBiological", v"0.0.1", "DiffEqBase", "*" ], + ["DiffEqBiological", v"0.0.1", "DiffEqJump", "*" ], + ["DiffEqCallbacks", v"0.0.2", "DiffEqBase", "0.6.0-*" ], + ["DiffEqDevTools", v"0.0.1", "DiffEqBase", "0.0.0-0.4" ], + ["DiffEqDevTools", v"0.0.1", "FiniteElementDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqDevTools", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.0", "DiffEqBase", "0.0.0-0.4" ], + ["DiffEqDevTools", v"0.1.0", "FiniteElementDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "OrdinaryDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "RecursiveArrayTools", "*" ], + ["DiffEqDevTools", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqDevTools", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.1", "DiffEqBase", "0.1.3-0.4" ], + ["DiffEqDevTools", v"0.1.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.1.1", "OrdinaryDiffEq", "0.1.1-*" ], + ["DiffEqDevTools", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.1.1", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.1.1", "StochasticDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.2.0", "DiffEqBase", "0.2.0-0.4" ], + ["DiffEqDevTools", v"0.2.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqDevTools", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.3.0", "DiffEqBase", "0.3.0-0.4" ], + ["DiffEqDevTools", v"0.3.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.3.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqDevTools", v"0.4.0", "DiffEqBase", "0.4.0-0.4" ], + ["DiffEqDevTools", v"0.4.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.4.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.5.0", "DiffEqBase", "0.4.0-0.4" ], + ["DiffEqDevTools", v"0.5.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.5.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.6.0", "DiffEqBase", "0.5.0-0.14" ], + ["DiffEqDevTools", v"0.6.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.6.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqDevTools", v"0.7.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqDevTools", v"0.7.0", "DiffEqPDEBase", "*" ], + ["DiffEqDevTools", v"0.7.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqDevTools", v"0.7.0", "RecursiveArrayTools", "0.1.2-*" ], + ["DiffEqFinancial", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqFinancial", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqFinancial", v"0.1.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqFinancial", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqJump", v"0.0.1", "DiffEqBase", "*" ], + ["DiffEqJump", v"0.2.0", "DiffEqBase", "*" ], + ["DiffEqJump", v"0.2.0", "RecursiveArrayTools", "*" ], + ["DiffEqJump", v"0.3.0", "DiffEqBase", "0.13.0-*" ], + ["DiffEqJump", v"0.3.0", "RecursiveArrayTools", "*" ], + ["DiffEqMonteCarlo", v"0.1.0", "DiffEqBase", "0.6.0-0.13" ], + ["DiffEqMonteCarlo", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["DiffEqMonteCarlo", v"0.2.0", "DiffEqBase", "0.14.0-*" ], + ["DiffEqPDEBase", v"0.0.1", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqPDEBase", v"0.0.1", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.0.1", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.0.3", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.0.3", "DiffEqBase", "0.4.1-0.14" ], + ["DiffEqPDEBase", v"0.0.3", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.0.3", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.1.0", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.1.0", "Compat", "0.17.0-*" ], + ["DiffEqPDEBase", v"0.1.0", "DiffEqBase", "0.4.1-0.14" ], + ["DiffEqPDEBase", v"0.1.0", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.1.0", "VectorizedRoutines", "*" ], + ["DiffEqPDEBase", v"0.2.0", "ChunkedArrays", "*" ], + ["DiffEqPDEBase", v"0.2.0", "Compat", "0.17.0-*" ], + ["DiffEqPDEBase", v"0.2.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqPDEBase", v"0.2.0", "RecipesBase", "*" ], + ["DiffEqPDEBase", v"0.2.0", "VectorizedRoutines", "*" ], + ["DiffEqParamEstim", v"0.0.1", "DiffEqBase", "0.0.0-0.13" ], + ["DiffEqParamEstim", v"0.0.1", "LossFunctions", "*" ], + ["DiffEqParamEstim", v"0.0.1", "LsqFit", "*" ], + ["DiffEqParamEstim", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqParamEstim", v"0.0.1", "RecursiveArrayTools", "*" ], + ["DiffEqParamEstim", v"0.0.2", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.0.2", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.2", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.2", "OrdinaryDiffEq", "0.1.1-*" ], + ["DiffEqParamEstim", v"0.0.2", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.0.4", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.0.4", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "Calculus", "*" ], + ["DiffEqParamEstim", v"0.1.0", "DiffEqBase", "0.1.2-0.13" ], + ["DiffEqParamEstim", v"0.1.0", "ForwardDiff", "*" ], + ["DiffEqParamEstim", v"0.1.0", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.1.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "Calculus", "*" ], + ["DiffEqParamEstim", v"0.2.0", "Optim", "*" ], + ["DiffEqParamEstim", v"0.2.0", "Compat", "0.17.0-*" ], + ["DiffEqParamEstim", v"0.2.0", "DiffEqBase", "0.14.0-*" ], + ["DiffEqParamEstim", v"0.2.0", "ForwardDiff", "*" ], + ["DiffEqParamEstim", v"0.2.0", "LossFunctions", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "LsqFit", "0.0.2-*" ], + ["DiffEqParamEstim", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "AlgebraicDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqProblemLibrary", v"0.0.1", "FiniteElementDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "OrdinaryDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.0.1", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.0.1", "StochasticDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "AlgebraicDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqProblemLibrary", v"0.1.0", "FiniteElementDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.1.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.1.0", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.1.0", "StochasticDiffEq", "*" ], + ["DiffEqProblemLibrary", v"0.2.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.2.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.2.0", "StochasticDiffEq", "0.1.0-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "AlgebraicDiffEq", "0.0.2-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.3.2", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.3.2", "ParameterizedFunctions", "0.2.0-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqProblemLibrary", v"0.4.0", "DiffEqPDEBase", "*" ], + ["DiffEqProblemLibrary", v"0.4.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.4.0", "ParameterizedFunctions", "0.5.0-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "DiffEqBase", "0.15.0-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "DiffEqPDEBase", "*" ], + ["DiffEqProblemLibrary", v"0.5.0", "JLD", "0.6.5-*" ], + ["DiffEqProblemLibrary", v"0.5.0", "ParameterizedFunctions", "0.5.0-*" ], + ["DiffEqSensitivity", v"0.0.1", "DiffEqBase", "0.0.0-0.14" ], + ["DiffEqSensitivity", v"0.0.2", "DiffEqBase", "0.1.2-0.14" ], + ["DiffEqSensitivity", v"0.0.4", "DiffEqBase", "0.2.0-0.14" ], + ["DiffEqSensitivity", v"0.1.0", "DiffEqBase", "0.15.0-*" ], + ["DifferentialEquations", v"0.4.0", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.0", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.4.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.4.0", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.4.0", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.0", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.4.0", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.4.0", "Parameters", "0.3.1-*" ], + ["DifferentialEquations", v"0.4.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.4.0", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.4.0", "SIUnits", "0.0.6-*" ], + ["DifferentialEquations", v"0.4.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.4.2", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.2", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.4.2", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.4.2", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.4.2", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.4.2", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.4.2", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.4.2", "Parameters", "0.5.0-*" ], + ["DifferentialEquations", v"0.4.2", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.4.2", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.4.2", "SIUnits", "0.0.6-*" ], + ["DifferentialEquations", v"0.4.2", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.5.0", "ChunkedArrays", "0.0.2-*" ], + ["DifferentialEquations", v"0.5.0", "Compat", "0.8.8-*" ], + ["DifferentialEquations", v"0.5.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"0.5.0", "ForwardDiff", "0.2.4-*" ], + ["DifferentialEquations", v"0.5.0", "GenericSVD", "0.0.2-*" ], + ["DifferentialEquations", v"0.5.0", "InplaceOps", "0.0.5-*" ], + ["DifferentialEquations", v"0.5.0", "IterativeSolvers", "0.2.2-*" ], + ["DifferentialEquations", v"0.5.0", "NLsolve", "0.7.3-*" ], + ["DifferentialEquations", v"0.5.0", "Parameters", "0.5.0-*" ], + ["DifferentialEquations", v"0.5.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"0.5.0", "Plots", "0.9.2-*" ], + ["DifferentialEquations", v"0.5.0", "Ranges", "0.0.1-*" ], + ["DifferentialEquations", v"0.5.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"0.5.0", "Sundials", "0.3.0-*" ], + ["DifferentialEquations", v"1.0.0", "AlgebraicDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqDevTools", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqParamEstim", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqSensitivity", "*" ], + ["DifferentialEquations", v"1.0.0", "FiniteElementDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "Reexport", "*" ], + ["DifferentialEquations", v"1.0.0", "DiffEqBase", "0.0.0-0.14" ], + ["DifferentialEquations", v"1.0.0", "OrdinaryDiffEq", "0.0.0-1.1" ], + ["DifferentialEquations", v"1.0.0", "StochasticDiffEq", "0.0.0-0" ], + ["DifferentialEquations", v"1.0.0", "StokesDiffEq", "*" ], + ["DifferentialEquations", v"1.0.0", "Sundials", "*" ], + ["DifferentialEquations", v"1.1.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqBase", "0.1.3-0.14" ], + ["DifferentialEquations", v"1.1.0", "DiffEqDevTools", "0.1.1-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.1.0", "OrdinaryDiffEq", "0.1.1-1.1" ], + ["DifferentialEquations", v"1.1.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.1.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.1.0", "StochasticDiffEq", "0.0.5-0" ], + ["DifferentialEquations", v"1.1.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.1.0", "Sundials", "0.3.0-*" ], + ["DifferentialEquations", v"1.4.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.4.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqProblemLibrary", "0.2.0-*" ], + ["DifferentialEquations", v"1.4.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.4.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.4.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.4.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.4.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.4.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.4.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.5.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.5.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.5.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.5.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.5.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.5.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.5.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.5.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.6.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "DelayDiffEq", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqBase", "0.2.0-0.14" ], + ["DifferentialEquations", v"1.6.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.6.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.6.0", "OrdinaryDiffEq", "0.2.0-1.1" ], + ["DifferentialEquations", v"1.6.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.6.0", "StochasticDiffEq", "0.1.0-0" ], + ["DifferentialEquations", v"1.6.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.6.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.7.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.7.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.7.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.7.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.7.0", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.7.0", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.7.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.7.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.9.0", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.9.0", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.9.0", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.9.0", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.9.0", "PyDSTool", "*" ], + ["DifferentialEquations", v"1.9.0", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.9.0", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.9.0", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.9.0", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.0", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.9.1", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqBase", "0.8.0-0.14" ], + ["DifferentialEquations", v"1.9.1", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.9.1", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.9.1", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.9.1", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.9.1", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.9.1", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.9.1", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.9.1", "Sundials", "0.4.1-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqBase", "0.15.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqBiological", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqCallbacks", "*" ], + ["DifferentialEquations", v"1.10.1", "AlgebraicDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqFinancial", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqJump", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqMonteCarlo", "*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqPDEBase", "*" ], + ["DifferentialEquations", v"1.10.1", "MultiScaleArrays", "*" ], + ["DifferentialEquations", v"1.10.1", "DelayDiffEq", "0.1.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqDevTools", "0.2.0-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqParamEstim", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "DiffEqSensitivity", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "FiniteElementDiffEq", "0.0.5-*" ], + ["DifferentialEquations", v"1.10.1", "OrdinaryDiffEq", "1.2.0-*" ], + ["DifferentialEquations", v"1.10.1", "ParameterizedFunctions", "0.3.2-*" ], + ["DifferentialEquations", v"1.10.1", "Reexport", "0.0.3-*" ], + ["DifferentialEquations", v"1.10.1", "StochasticDiffEq", "1.0.0-*" ], + ["DifferentialEquations", v"1.10.1", "StokesDiffEq", "0.0.2-*" ], + ["DifferentialEquations", v"1.10.1", "Sundials", "0.4.1-*" ], + ["Distances", v"0.1.1", "ArrayViews", "0.4.0-*" ], + ["Distances", v"0.2.0", "ArrayViews", "0.4.8-*" ], + ["Distances", v"0.2.2", "Compat", "*" ], + ["Distances", v"0.2.2", "ArrayViews", "0.4.8-*" ], + ["Distances", v"0.3.2", "Compat", "0.8.4-*" ], + ["Distances", v"0.4.0" ], + ["Distances", v"0.4.1", "Compat", "0.18.0-*" ], + ["Distributions", v"0.6.4", "ArrayViews", "0.4.8-*" ], + ["Distributions", v"0.6.4", "Compat", "0.2.4-*" ], + ["Distributions", v"0.6.4", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.4", "StatsBase", "0.6.10-*" ], + ["Distributions", v"0.6.4", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.6.5", "ArrayViews", "0.4.9-*" ], + ["Distributions", v"0.6.5", "Compat", "0.3.1-*" ], + ["Distributions", v"0.6.5", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.5", "StatsBase", "0.6.10-*" ], + ["Distributions", v"0.6.5", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.6.7", "ArrayViews", "0.4.10-*" ], + ["Distributions", v"0.6.7", "Compat", "0.3.2-*" ], + ["Distributions", v"0.6.7", "PDMats", "0.3.1-0.3" ], + ["Distributions", v"0.6.7", "StatsBase", "0.6.13-*" ], + ["Distributions", v"0.6.7", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.7.6", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.7.6", "Compat", "0.4.0-*" ], + ["Distributions", v"0.7.6", "PDMats", "0.3.2-0.3" ], + ["Distributions", v"0.7.6", "StatsBase", "0.6.14-*" ], + ["Distributions", v"0.7.6", "StatsFuns", "0.0.0-0.2" ], + ["Distributions", v"0.8.9", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.8.9", "Compat", "0.4.0-*" ], + ["Distributions", v"0.8.9", "PDMats", "0.3.2-0.3" ], + ["Distributions", v"0.8.9", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.8.9", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.8.10", "ArrayViews", "0.4.12-*" ], + ["Distributions", v"0.8.10", "Compat", "0.4.0-*" ], + ["Distributions", v"0.8.10", "PDMats", "0.4.0-0.4" ], + ["Distributions", v"0.8.10", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.8.10", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.9.0", "Compat", "0.2.17-*" ], + ["Distributions", v"0.9.0", "PDMats", "0.4.1-0.4" ], + ["Distributions", v"0.9.0", "StatsBase", "0.7.0-*" ], + ["Distributions", v"0.9.0", "StatsFuns", "0.1.1-0.2" ], + ["Distributions", v"0.10.2", "Calculus", "*" ], + ["Distributions", v"0.10.2", "Compat", "0.8.4-*" ], + ["Distributions", v"0.10.2", "PDMats", "0.4.2-0.4" ], + ["Distributions", v"0.10.2", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.10.2", "StatsFuns", "0.3.0-*" ], + ["Distributions", v"0.11.1", "Calculus", "*" ], + ["Distributions", v"0.11.1", "Compat", "0.9.2-*" ], + ["Distributions", v"0.11.1", "PDMats", "0.5.0-*" ], + ["Distributions", v"0.11.1", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.11.1", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.0", "Calculus", "*" ], + ["Distributions", v"0.12.0", "Compat", "0.14.0-*" ], + ["Distributions", v"0.12.0", "PDMats", "0.5.4-*" ], + ["Distributions", v"0.12.0", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.0", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.0", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.4", "Calculus", "*" ], + ["Distributions", v"0.12.4", "Compat", "0.18.0-*" ], + ["Distributions", v"0.12.4", "PDMats", "0.5.4-*" ], + ["Distributions", v"0.12.4", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.4", "SpecialFunctions", "0.1.0-*" ], + ["Distributions", v"0.12.4", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.4", "StatsFuns", "0.3.1-*" ], + ["Distributions", v"0.12.5", "Calculus", "*" ], + ["Distributions", v"0.12.5", "Compat", "0.18.0-*" ], + ["Distributions", v"0.12.5", "PDMats", "0.6.0-*" ], + ["Distributions", v"0.12.5", "QuadGK", "0.1.1-*" ], + ["Distributions", v"0.12.5", "SpecialFunctions", "0.1.0-*" ], + ["Distributions", v"0.12.5", "StatsBase", "0.8.3-*" ], + ["Distributions", v"0.12.5", "StatsFuns", "0.3.1-*" ], + ["Docile", v"0.1.0", "AnsiColor", "*" ], + ["Docile", v"0.1.0", "Markdown", "*" ], + ["Docile", v"0.3.1" ], + ["Docile", v"0.3.2", "Compat", "*" ], + ["Docile", v"0.4.6", "Compat", "*" ], + ["Docile", v"0.4.13", "Compat", "0.3.3-*" ], + ["Docile", v"0.5.18", "Compat", "0.3.5-*" ], + ["Docile", v"0.5.23", "Compat", "0.7.1-*" ], + ["DualNumbers", v"0.1.0", "Calculus", "*" ], + ["DualNumbers", v"0.1.3", "Calculus", "*" ], + ["DualNumbers", v"0.1.3", "NaNMath", "*" ], + ["DualNumbers", v"0.1.5", "Calculus", "*" ], + ["DualNumbers", v"0.1.5", "Compat", "*" ], + ["DualNumbers", v"0.1.5", "NaNMath", "*" ], + ["DualNumbers", v"0.2.2", "Calculus", "*" ], + ["DualNumbers", v"0.2.2", "NaNMath", "*" ], + ["DualNumbers", v"0.3.0", "Calculus", "*" ], + ["DualNumbers", v"0.3.0", "NaNMath", "*" ], + ["DualNumbers", v"0.3.0", "Compat", "0.9.1-*" ], + ["ELF", v"0.0.0", "StrPack", "*" ], + ["ELF", v"0.1.0", "DWARF", "*" ], + ["ELF", v"0.1.0", "FileIO", "*" ], + ["ELF", v"0.1.0", "ObjFileBase", "*" ], + ["ELF", v"0.1.0", "StructIO", "*" ], + ["EllipsisNotation", v"0.0.1" ], + ["EllipsisNotation", v"0.1.0" ], + ["FFTViews", v"0.0.1", "CustomUnitRanges", "*" ], + ["FFTViews", v"0.0.2", "CustomUnitRanges", "*" ], + ["FFTViews", v"0.0.2", "Compat", "0.17.0-*" ], + ["FactCheck", v"0.0.0" ], + ["FactCheck", v"0.0.2" ], + ["FactCheck", v"0.2.2" ], + ["FactCheck", v"0.4.2", "Compat", "*" ], + ["FactCheck", v"0.4.3", "Compat", "0.7.18-*" ], + ["FileIO", v"0.0.5", "Compat", "*" ], + ["FileIO", v"0.0.5", "Docile", "*" ], + ["FileIO", v"0.0.6", "Docile", "*" ], + ["FileIO", v"0.0.6", "Compat", "0.7.15-*" ], + ["FileIO", v"0.1.1", "Compat", "0.7.19-*" ], + ["FileIO", v"0.2.1", "Compat", "0.7.19-*" ], + ["FileIO", v"0.3.0", "Compat", "0.9.5-*" ], + ["FileIO", v"0.3.1", "Compat", "0.17.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.14" ], + ["FiniteElementDiffEq", v"0.0.3", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.3", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "Plots", "0.9.2-*" ], + ["FiniteElementDiffEq", v"0.0.3", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.3", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "DiffEqBase", "0.0.0-0.14" ], + ["FiniteElementDiffEq", v"0.0.4", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.4", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.4", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.4", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.4", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "DiffEqBase", "0.1.1-0.14" ], + ["FiniteElementDiffEq", v"0.0.5", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.5", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.0.5", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.0.5", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.0.5", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "DiffEqBase", "0.4.0-0.14" ], + ["FiniteElementDiffEq", v"0.2.0", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.0", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.2.0", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.0", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.2.0", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "RecipesBase", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.0", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.2.1", "DiffEqBase", "0.4.0-0.14" ], + ["FiniteElementDiffEq", v"0.2.1", "DiffEqPDEBase", "*" ], + ["FiniteElementDiffEq", v"0.2.1", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.1", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.2.1", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.2.1", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.2.1", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.2.1", "VectorizedRoutines", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "ChunkedArrays", "0.1.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "DiffEqBase", "0.15.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "DiffEqPDEBase", "*" ], + ["FiniteElementDiffEq", v"0.3.0", "ForwardDiff", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.3.0", "GenericSVD", "0.0.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "IterativeSolvers", "0.2.2-*" ], + ["FiniteElementDiffEq", v"0.3.0", "Juno", "0.2.4-*" ], + ["FiniteElementDiffEq", v"0.3.0", "NLsolve", "0.7.3-*" ], + ["FiniteElementDiffEq", v"0.3.0", "Parameters", "0.5.0-*" ], + ["FiniteElementDiffEq", v"0.3.0", "VectorizedRoutines", "0.0.2-*" ], + ["FixedPointNumbers", v"0.0.5" ], + ["FixedPointNumbers", v"0.0.12", "Compat", "0.2.2-*" ], + ["FixedPointNumbers", v"0.1.2" ], + ["FixedPointNumbers", v"0.1.4", "Compat", "0.7.14-*" ], + ["FixedPointNumbers", v"0.1.7", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.2.1", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.3.0", "Compat", "0.9.1-*" ], + ["FixedPointNumbers", v"0.3.2", "Compat", "0.9.5-*" ], + ["FixedPointNumbers", v"0.3.6", "Compat", "0.17.0-*" ], + ["FixedSizeArrays", v"0.1.0" ], + ["FixedSizeArrays", v"0.1.1", "Compat", "*" ], + ["FixedSizeArrays", v"0.2.1", "Compat", "0.7.15-*" ], + ["FixedSizeArrays", v"0.2.2", "Compat", "0.7.15-*" ], + ["FixedSizeArrays", v"0.2.5", "Compat", "0.8.7-*" ], + ["ForwardDiff", v"0.2.5", "Calculus", "*" ], + ["ForwardDiff", v"0.2.5", "NaNMath", "*" ], + ["ForwardDiff", v"0.2.5", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.4", "Calculus", "0.2.0-*" ], + ["ForwardDiff", v"0.3.4", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.4", "DiffBase", "0.0.3-*" ], + ["ForwardDiff", v"0.3.4", "NaNMath", "0.2.2-*" ], + ["ForwardDiff", v"0.3.5", "Calculus", "0.1.15-*" ], + ["ForwardDiff", v"0.3.5", "Compat", "0.8.6-*" ], + ["ForwardDiff", v"0.3.5", "DiffBase", "0.0.1-*" ], + ["ForwardDiff", v"0.3.5", "NaNMath", "0.2.1-*" ], + ["ForwardDiff", v"0.4.2", "Calculus", "0.2.0-*" ], + ["ForwardDiff", v"0.4.2", "Compat", "0.19.0-*" ], + ["ForwardDiff", v"0.4.2", "DiffBase", "0.0.3-*" ], + ["ForwardDiff", v"0.4.2", "NaNMath", "0.2.2-*" ], + ["ForwardDiff", v"0.4.2", "SpecialFunctions", "0.1.0-*" ], + ["GZip", v"0.2.13" ], + ["GZip", v"0.2.16", "Compat", "*" ], + ["GZip", v"0.2.18", "Compat", "0.4.8-*" ], + ["GZip", v"0.2.19", "Compat", "0.7.9-*" ], + ["GZip", v"0.2.20", "Compat", "0.8.0-*" ], + ["GZip", v"0.3.0", "Compat", "0.9.5-*" ], + ["Gallium", v"0.0.1", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.1", "AbstractTrees", "*" ], + ["Gallium", v"0.0.1", "DWARF", "*" ], + ["Gallium", v"0.0.1", "ELF", "*" ], + ["Gallium", v"0.0.1", "MachO", "*" ], + ["Gallium", v"0.0.1", "TerminalUI", "*" ], + ["Gallium", v"0.0.2", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.2", "AbstractTrees", "*" ], + ["Gallium", v"0.0.2", "DWARF", "*" ], + ["Gallium", v"0.0.2", "ELF", "*" ], + ["Gallium", v"0.0.2", "MachO", "*" ], + ["Gallium", v"0.0.2", "ObjFileBase", "*" ], + ["Gallium", v"0.0.2", "TerminalUI", "*" ], + ["Gallium", v"0.0.4", "ASTInterpreter", "*" ], + ["Gallium", v"0.0.4", "AbstractTrees", "*" ], + ["Gallium", v"0.0.4", "COFF", "*" ], + ["Gallium", v"0.0.4", "CRC", "*" ], + ["Gallium", v"0.0.4", "DWARF", "*" ], + ["Gallium", v"0.0.4", "ELF", "*" ], + ["Gallium", v"0.0.4", "MachO", "*" ], + ["Gallium", v"0.0.4", "ObjFileBase", "*" ], + ["Gallium", v"0.0.4", "TerminalUI", "*" ], + ["GenericSVD", v"0.0.2", "Compat", "0.8.6-*" ], + ["GnuTLS", v"0.0.1", "Nettle", "*" ], + ["GnuTLS", v"0.0.1", "BinDeps", "0.2.1-*" ], + ["GnuTLS", v"0.0.4", "Compat", "*" ], + ["GnuTLS", v"0.0.4", "Nettle", "*" ], + ["GnuTLS", v"0.0.4", "BinDeps", "0.2.1-*" ], + ["GnuTLS", v"0.0.5", "BinDeps", "*" ], + ["GnuTLS", v"0.0.5", "Compat", "*" ], + ["GnuTLS", v"0.0.5", "Nettle", "*" ], + ["Graphics", v"0.1.1" ], + ["Graphics", v"0.1.3", "Colors", "*" ], + ["Graphics", v"0.1.4", "Colors", "*" ], + ["Graphics", v"0.1.4", "Compat", "0.17.0-*" ], + ["Graphics", v"0.2.0", "Colors", "*" ], + ["Graphics", v"0.2.0", "Compat", "0.17.0-*" ], + ["Graphics", v"0.2.0", "NaNMath", "0.2.4-*" ], + ["HDF5", v"0.2.1", "StrPack", "*" ], + ["HDF5", v"0.2.9" ], + ["HDF5", v"0.4.6", "BinDeps", "*" ], + ["HDF5", v"0.5.2", "BinDeps", "*" ], + ["HDF5", v"0.5.2", "Blosc", "*" ], + ["HDF5", v"0.5.2", "Compat", "*" ], + ["HDF5", v"0.5.5", "BinDeps", "*" ], + ["HDF5", v"0.5.5", "Blosc", "*" ], + ["HDF5", v"0.5.5", "Compat", "0.4.11-*" ], + ["HDF5", v"0.6.0", "BinDeps", "*" ], + ["HDF5", v"0.6.0", "Blosc", "*" ], + ["HDF5", v"0.6.0", "Compat", "0.7.1-*" ], + ["HDF5", v"0.6.1", "BinDeps", "*" ], + ["HDF5", v"0.6.1", "Blosc", "*" ], + ["HDF5", v"0.6.1", "Compat", "0.7.16-*" ], + ["HDF5", v"0.7.3", "BinDeps", "*" ], + ["HDF5", v"0.7.3", "Blosc", "*" ], + ["HDF5", v"0.7.3", "Compat", "0.8.0-*" ], + ["HDF5", v"0.8.0", "BinDeps", "*" ], + ["HDF5", v"0.8.0", "Blosc", "*" ], + ["HDF5", v"0.8.0", "Compat", "0.17.0-*" ], + ["Hiccup", v"0.0.0", "Lazy", "*" ], + ["Hiccup", v"0.0.1", "Lazy", "*" ], + ["Hiccup", v"0.0.1", "MacroTools", "*" ], + ["Hiccup", v"0.0.2", "Compat", "*" ], + ["Hiccup", v"0.0.2", "Lazy", "*" ], + ["Hiccup", v"0.0.2", "MacroTools", "*" ], + ["Hiccup", v"0.0.3", "Lazy", "*" ], + ["Hiccup", v"0.0.3", "MacroTools", "*" ], + ["Hiccup", v"0.0.3", "Compat", "0.8.2-*" ], + ["Hiccup", v"0.1.1", "Compat", "0.8.2-*" ], + ["Hiccup", v"0.1.1", "MacroTools", "0.3.4-*" ], + ["HttpCommon", v"0.0.1" ], + ["HttpCommon", v"0.0.2", "Calendar", "*" ], + ["HttpCommon", v"0.0.2", "FactCheck", "0.0.1-*" ], + ["HttpCommon", v"0.0.5", "Calendar", "*" ], + ["HttpCommon", v"0.0.5", "FactCheck", "0.1.0-*" ], + ["HttpCommon", v"0.0.12", "Dates", "*" ], + ["HttpCommon", v"0.1.1", "Compat", "*" ], + ["HttpCommon", v"0.1.1", "Dates", "*" ], + ["HttpCommon", v"0.2.0", "Compat", "*" ], + ["HttpCommon", v"0.2.0", "Dates", "*" ], + ["HttpCommon", v"0.2.0", "URIParser", "*" ], + ["HttpCommon", v"0.2.4", "URIParser", "*" ], + ["HttpCommon", v"0.2.7", "URIParser", "*" ], + ["HttpCommon", v"0.2.7", "Compat", "0.7.20-*" ], + ["HttpParser", v"0.0.0", "HttpCommon", "*" ], + ["HttpParser", v"0.0.1", "BinDeps", "*" ], + ["HttpParser", v"0.0.1", "HttpCommon", "*" ], + ["HttpParser", v"0.0.2" ], + ["HttpParser", v"0.0.3", "HttpCommon", "*" ], + ["HttpParser", v"0.0.3", "BinDeps", "0.2.1-*" ], + ["HttpParser", v"0.0.4", "HttpCommon", "*" ], + ["HttpParser", v"0.0.4", "BinDeps", "0.2.5-*" ], + ["HttpParser", v"0.0.11", "BinDeps", "0.2.5-*" ], + ["HttpParser", v"0.0.11", "HttpCommon", "0.0.3-*" ], + ["HttpParser", v"0.1.0", "BinDeps", "*" ], + ["HttpParser", v"0.1.0", "Compat", "*" ], + ["HttpParser", v"0.1.0", "HttpCommon", "*" ], + ["HttpParser", v"0.1.1", "BinDeps", "*" ], + ["HttpParser", v"0.1.1", "HttpCommon", "*" ], + ["HttpParser", v"0.2.0", "BinDeps", "*" ], + ["HttpParser", v"0.2.0", "HttpCommon", "*" ], + ["HttpParser", v"0.2.0", "Compat", "0.7.20-*" ], + ["HttpServer", v"0.0.1", "HttpCommon", "*" ], + ["HttpServer", v"0.0.1", "HttpParser", "*" ], + ["HttpServer", v"0.0.3", "GnuTLS", "*" ], + ["HttpServer", v"0.0.3", "HttpCommon", "*" ], + ["HttpServer", v"0.0.3", "HttpParser", "*" ], + ["HttpServer", v"0.0.7", "GnuTLS", "*" ], + ["HttpServer", v"0.0.7", "HttpCommon", "0.0.3-*" ], + ["HttpServer", v"0.0.7", "HttpParser", "0.0.5-*" ], + ["HttpServer", v"0.0.8", "GnuTLS", "*" ], + ["HttpServer", v"0.0.8", "HttpCommon", "*" ], + ["HttpServer", v"0.0.8", "HttpParser", "*" ], + ["HttpServer", v"0.0.11", "Docile", "*" ], + ["HttpServer", v"0.0.11", "GnuTLS", "*" ], + ["HttpServer", v"0.0.11", "HttpCommon", "*" ], + ["HttpServer", v"0.0.11", "HttpParser", "*" ], + ["HttpServer", v"0.1.2", "Compat", "*" ], + ["HttpServer", v"0.1.2", "Docile", "*" ], + ["HttpServer", v"0.1.2", "GnuTLS", "*" ], + ["HttpServer", v"0.1.2", "HttpCommon", "*" ], + ["HttpServer", v"0.1.2", "HttpParser", "*" ], + ["HttpServer", v"0.1.5", "HttpCommon", "*" ], + ["HttpServer", v"0.1.5", "HttpParser", "*" ], + ["HttpServer", v"0.1.5", "MbedTLS", "*" ], + ["HttpServer", v"0.1.7", "HttpCommon", "*" ], + ["HttpServer", v"0.1.7", "HttpParser", "*" ], + ["HttpServer", v"0.1.7", "MbedTLS", "*" ], + ["HttpServer", v"0.1.7", "Compat", "0.7.16-*" ], + ["HttpServer", v"0.2.0", "HttpCommon", "*" ], + ["HttpServer", v"0.2.0", "HttpParser", "*" ], + ["HttpServer", v"0.2.0", "MbedTLS", "*" ], + ["HttpServer", v"0.2.0", "Compat", "0.17.0-*" ], + ["ICU", v"0.2.1" ], + ["ICU", v"0.4.4", "BinDeps", "*" ], + ["ImageAxes", v"0.0.2", "AxisArrays", "*" ], + ["ImageAxes", v"0.0.2", "Colors", "*" ], + ["ImageAxes", v"0.0.2", "ImageCore", "*" ], + ["ImageAxes", v"0.0.2", "Reexport", "*" ], + ["ImageAxes", v"0.0.2", "SimpleTraits", "*" ], + ["ImageAxes", v"0.1.1", "AxisArrays", "*" ], + ["ImageAxes", v"0.1.1", "Colors", "*" ], + ["ImageAxes", v"0.1.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageAxes", v"0.1.1", "ImageCore", "*" ], + ["ImageAxes", v"0.1.1", "Reexport", "*" ], + ["ImageAxes", v"0.1.1", "SimpleTraits", "*" ], + ["ImageAxes", v"0.2.1", "AxisArrays", "*" ], + ["ImageAxes", v"0.2.1", "Colors", "*" ], + ["ImageAxes", v"0.2.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageAxes", v"0.2.1", "MappedArrays", "*" ], + ["ImageAxes", v"0.2.1", "Reexport", "*" ], + ["ImageAxes", v"0.2.1", "SimpleTraits", "*" ], + ["ImageAxes", v"0.2.1", "ImageCore", "0.2.0-*" ], + ["ImageCore", v"0.0.3", "Colors", "*" ], + ["ImageCore", v"0.0.3", "Graphics", "*" ], + ["ImageCore", v"0.0.3", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.3", "MappedArrays", "*" ], + ["ImageCore", v"0.0.4", "Colors", "*" ], + ["ImageCore", v"0.0.4", "Graphics", "*" ], + ["ImageCore", v"0.0.4", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.4", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.0.5", "Colors", "*" ], + ["ImageCore", v"0.0.5", "Graphics", "*" ], + ["ImageCore", v"0.0.5", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageCore", v"0.0.5", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.0.5", "OffsetArrays", "*" ], + ["ImageCore", v"0.0.5", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.1", "Colors", "*" ], + ["ImageCore", v"0.1.1", "Graphics", "*" ], + ["ImageCore", v"0.1.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.1", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.1", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.1", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.2", "ColorTypes", "*" ], + ["ImageCore", v"0.1.2", "Colors", "*" ], + ["ImageCore", v"0.1.2", "Graphics", "*" ], + ["ImageCore", v"0.1.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.2", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.2", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.2", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.1.5", "ColorTypes", "*" ], + ["ImageCore", v"0.1.5", "Colors", "*" ], + ["ImageCore", v"0.1.5", "Graphics", "*" ], + ["ImageCore", v"0.1.5", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.1.5", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.1.5", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.1.5", "OffsetArrays", "*" ], + ["ImageCore", v"0.1.5", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.2.0", "ColorTypes", "*" ], + ["ImageCore", v"0.2.0", "Colors", "*" ], + ["ImageCore", v"0.2.0", "Graphics", "*" ], + ["ImageCore", v"0.2.0", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.2.0", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.2.0", "OffsetArrays", "*" ], + ["ImageCore", v"0.2.0", "ShowItLikeYouBuildIt", "*" ], + ["ImageCore", v"0.3.0", "Colors", "*" ], + ["ImageCore", v"0.3.0", "Graphics", "*" ], + ["ImageCore", v"0.3.0", "ColorTypes", "0.4.0-*" ], + ["ImageCore", v"0.3.0", "Compat", "0.19.0-*" ], + ["ImageCore", v"0.3.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageCore", v"0.3.0", "MappedArrays", "0.0.3-*" ], + ["ImageCore", v"0.3.0", "OffsetArrays", "*" ], + ["ImageCore", v"0.3.0", "ShowItLikeYouBuildIt", "*" ], + ["ImageFiltering", v"0.0.2", "CatIndices", "*" ], + ["ImageFiltering", v"0.0.2", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.0.2", "Colors", "*" ], + ["ImageFiltering", v"0.0.2", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.0.2", "ImageCore", "*" ], + ["ImageFiltering", v"0.0.2", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.0.2", "FFTViews", "*" ], + ["ImageFiltering", v"0.0.2", "MappedArrays", "*" ], + ["ImageFiltering", v"0.0.2", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.0.2", "StaticArrays", "0.0.5-*" ], + ["ImageFiltering", v"0.0.2", "TiledIteration", "*" ], + ["ImageFiltering", v"0.0.2", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageFiltering", v"0.1.2", "CatIndices", "*" ], + ["ImageFiltering", v"0.1.2", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.1.2", "Colors", "*" ], + ["ImageFiltering", v"0.1.2", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.1.2", "FFTViews", "*" ], + ["ImageFiltering", v"0.1.2", "ImageCore", "*" ], + ["ImageFiltering", v"0.1.2", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.1.2", "MappedArrays", "*" ], + ["ImageFiltering", v"0.1.2", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.1.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageFiltering", v"0.1.2", "StaticArrays", "0.0.5-*" ], + ["ImageFiltering", v"0.1.2", "TiledIteration", "*" ], + ["ImageFiltering", v"0.1.4", "CatIndices", "*" ], + ["ImageFiltering", v"0.1.4", "ColorVectorSpace", "*" ], + ["ImageFiltering", v"0.1.4", "Colors", "*" ], + ["ImageFiltering", v"0.1.4", "ComputationalResources", "*" ], + ["ImageFiltering", v"0.1.4", "Compat", "0.18.0-*" ], + ["ImageFiltering", v"0.1.4", "DataStructures", "0.4.6-*" ], + ["ImageFiltering", v"0.1.4", "FFTViews", "*" ], + ["ImageFiltering", v"0.1.4", "ImageCore", "*" ], + ["ImageFiltering", v"0.1.4", "MappedArrays", "*" ], + ["ImageFiltering", v"0.1.4", "OffsetArrays", "*" ], + ["ImageFiltering", v"0.1.4", "TiledIteration", "*" ], + ["ImageFiltering", v"0.1.4", "FixedPointNumbers", "0.3.0-*" ], + ["ImageFiltering", v"0.1.4", "StaticArrays", "0.0.5-*" ], + ["ImageMagick", v"0.0.1", "BinDeps", "*" ], + ["ImageMagick", v"0.0.1", "ColorTypes", "*" ], + ["ImageMagick", v"0.0.1", "Compat", "*" ], + ["ImageMagick", v"0.0.1", "FileIO", "*" ], + ["ImageMagick", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageMagick", v"0.0.1", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.3", "BinDeps", "*" ], + ["ImageMagick", v"0.1.3", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.3", "FileIO", "*" ], + ["ImageMagick", v"0.1.3", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.3", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.6", "BinDeps", "*" ], + ["ImageMagick", v"0.1.6", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.6", "Compat", "0.7.7-*" ], + ["ImageMagick", v"0.1.6", "FileIO", "*" ], + ["ImageMagick", v"0.1.6", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.6", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.7", "BinDeps", "*" ], + ["ImageMagick", v"0.1.7", "ColorTypes", "0.2.0-*" ], + ["ImageMagick", v"0.1.7", "Compat", "0.8.4-*" ], + ["ImageMagick", v"0.1.7", "FileIO", "*" ], + ["ImageMagick", v"0.1.7", "FixedPointNumbers", "0.1.0-0.2" ], + ["ImageMagick", v"0.1.7", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.1.8", "BinDeps", "*" ], + ["ImageMagick", v"0.1.8", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.1.8", "Compat", "0.8.4-*" ], + ["ImageMagick", v"0.1.8", "FileIO", "*" ], + ["ImageMagick", v"0.1.8", "FixedPointNumbers", "0.1.8-0.2" ], + ["ImageMagick", v"0.1.8", "Images", "0.0.0-0.5" ], + ["ImageMagick", v"0.2.1", "BinDeps", "*" ], + ["ImageMagick", v"0.2.1", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.1", "FileIO", "*" ], + ["ImageMagick", v"0.2.1", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.3", "BinDeps", "*" ], + ["ImageMagick", v"0.2.3", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.3", "Compat", "0.18.0-*" ], + ["ImageMagick", v"0.2.3", "FileIO", "*" ], + ["ImageMagick", v"0.2.3", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.3", "ImageCore", "0.1.0-*" ], + ["ImageMagick", v"0.2.4", "BinDeps", "*" ], + ["ImageMagick", v"0.2.4", "ColorTypes", "0.2.7-*" ], + ["ImageMagick", v"0.2.4", "Compat", "0.24.0-*" ], + ["ImageMagick", v"0.2.4", "FileIO", "*" ], + ["ImageMagick", v"0.2.4", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMagick", v"0.2.4", "Images", "0.6.0-*" ], + ["ImageMetadata", v"0.0.1", "Colors", "*" ], + ["ImageMetadata", v"0.0.1", "FixedPointNumbers", "0.0.0-0.2" ], + ["ImageMetadata", v"0.0.1", "ImageAxes", "*" ], + ["ImageMetadata", v"0.0.1", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.0.1", "ImageCore", "*" ], + ["ImageMetadata", v"0.0.1", "IndirectArrays", "*" ], + ["ImageMetadata", v"0.2.0", "Colors", "*" ], + ["ImageMetadata", v"0.2.0", "ImageAxes", "*" ], + ["ImageMetadata", v"0.2.0", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.2.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMetadata", v"0.2.0", "ImageCore", "*" ], + ["ImageMetadata", v"0.2.0", "IndirectArrays", "*" ], + ["ImageMetadata", v"0.2.3", "Colors", "*" ], + ["ImageMetadata", v"0.2.3", "ImageAxes", "*" ], + ["ImageMetadata", v"0.2.3", "ColorVectorSpace", "0.1.11-*" ], + ["ImageMetadata", v"0.2.3", "Compat", "0.19.0-*" ], + ["ImageMetadata", v"0.2.3", "FixedPointNumbers", "0.3.0-*" ], + ["ImageMetadata", v"0.2.3", "ImageCore", "*" ], + ["ImageMetadata", v"0.2.3", "IndirectArrays", "*" ], + ["ImageTransformations", v"0.0.1", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.0.1", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.0.1", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.0.1", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.0.1", "Interpolations", "0.3.7-*" ], + ["ImageTransformations", v"0.0.1", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.0.1", "StaticArrays", "*" ], + ["ImageTransformations", v"0.1.0", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.1.0", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.1.0", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.1.0", "FixedPointNumbers", "0.3.0-*" ], + ["ImageTransformations", v"0.1.0", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.1.0", "Interpolations", "0.3.7-*" ], + ["ImageTransformations", v"0.1.0", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.1.0", "StaticArrays", "*" ], + ["ImageTransformations", v"0.2.2", "AxisAlgorithms", "*" ], + ["ImageTransformations", v"0.2.2", "ColorVectorSpace", "0.2.0-*" ], + ["ImageTransformations", v"0.2.2", "Colors", "0.7.0-*" ], + ["ImageTransformations", v"0.2.2", "Compat", "0.18.0-*" ], + ["ImageTransformations", v"0.2.2", "CoordinateTransformations", "0.4.0-*" ], + ["ImageTransformations", v"0.2.2", "OffsetArrays", "*" ], + ["ImageTransformations", v"0.2.2", "StaticArrays", "*" ], + ["ImageTransformations", v"0.2.2", "FixedPointNumbers", "0.3.0-*" ], + ["ImageTransformations", v"0.2.2", "ImageCore", "0.1.2-*" ], + ["ImageTransformations", v"0.2.2", "Interpolations", "0.4.0-*" ], + ["Images", v"0.4.50", "BinDeps", "*" ], + ["Images", v"0.4.50", "ColorVectorSpace", "*" ], + ["Images", v"0.4.50", "Colors", "*" ], + ["Images", v"0.4.50", "SIUnits", "*" ], + ["Images", v"0.4.50", "Compat", "0.4.0-*" ], + ["Images", v"0.4.50", "FixedPointNumbers", "0.0.0-0.2" ], + ["Images", v"0.4.50", "Graphics", "0.1.0-*" ], + ["Images", v"0.4.50", "Zlib", "*" ], + ["Images", v"0.5.4", "FileIO", "*" ], + ["Images", v"0.5.4", "SIUnits", "*" ], + ["Images", v"0.5.4", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.4", "Colors", "0.6.0-*" ], + ["Images", v"0.5.4", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.4", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.4", "Zlib", "*" ], + ["Images", v"0.5.5", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.5", "Colors", "0.6.0-*" ], + ["Images", v"0.5.5", "Compat", "0.7.15-*" ], + ["Images", v"0.5.5", "FileIO", "*" ], + ["Images", v"0.5.5", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.5", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.5", "SIUnits", "*" ], + ["Images", v"0.5.5", "Zlib", "*" ], + ["Images", v"0.5.9", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.9", "Colors", "0.6.0-*" ], + ["Images", v"0.5.9", "Compat", "0.8.4-*" ], + ["Images", v"0.5.9", "FileIO", "*" ], + ["Images", v"0.5.9", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.9", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.9", "SIUnits", "*" ], + ["Images", v"0.5.9", "StatsBase", "*" ], + ["Images", v"0.5.9", "Zlib", "*" ], + ["Images", v"0.5.14", "ColorVectorSpace", "0.1.0-*" ], + ["Images", v"0.5.14", "Colors", "0.6.0-*" ], + ["Images", v"0.5.14", "Compat", "0.9.1-*" ], + ["Images", v"0.5.14", "FileIO", "*" ], + ["Images", v"0.5.14", "Graphics", "0.1.0-*" ], + ["Images", v"0.5.14", "FixedPointNumbers", "0.1.0-0.2" ], + ["Images", v"0.5.14", "SIUnits", "*" ], + ["Images", v"0.5.14", "StatsBase", "*" ], + ["Images", v"0.5.14", "Zlib", "*" ], + ["Images", v"0.6.0", "AxisArrays", "*" ], + ["Images", v"0.6.0", "FileIO", "*" ], + ["Images", v"0.6.0", "ImageAxes", "*" ], + ["Images", v"0.6.0", "ImageCore", "*" ], + ["Images", v"0.6.0", "ImageFiltering", "*" ], + ["Images", v"0.6.0", "ImageMetadata", "*" ], + ["Images", v"0.6.0", "IndirectArrays", "*" ], + ["Images", v"0.6.0", "MappedArrays", "*" ], + ["Images", v"0.6.0", "Reexport", "*" ], + ["Images", v"0.6.0", "SIUnits", "*" ], + ["Images", v"0.6.0", "StatsBase", "*" ], + ["Images", v"0.6.0", "Zlib", "*" ], + ["Images", v"0.6.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.6.0", "Colors", "0.7.0-*" ], + ["Images", v"0.6.0", "Compat", "0.9.1-*" ], + ["Images", v"0.6.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.6.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.7.0", "AxisArrays", "*" ], + ["Images", v"0.7.0", "FileIO", "*" ], + ["Images", v"0.7.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.7.0", "Colors", "0.7.0-*" ], + ["Images", v"0.7.0", "Compat", "0.9.1-*" ], + ["Images", v"0.7.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.7.0", "ImageAxes", "*" ], + ["Images", v"0.7.0", "ImageCore", "*" ], + ["Images", v"0.7.0", "ImageFiltering", "*" ], + ["Images", v"0.7.0", "ImageMetadata", "*" ], + ["Images", v"0.7.0", "IndirectArrays", "*" ], + ["Images", v"0.7.0", "MappedArrays", "*" ], + ["Images", v"0.7.0", "Reexport", "*" ], + ["Images", v"0.7.0", "SIUnits", "*" ], + ["Images", v"0.7.0", "StatsBase", "*" ], + ["Images", v"0.7.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.8.0", "AxisArrays", "*" ], + ["Images", v"0.8.0", "FileIO", "*" ], + ["Images", v"0.8.0", "ImageAxes", "*" ], + ["Images", v"0.8.0", "ImageCore", "*" ], + ["Images", v"0.8.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.8.0", "Colors", "0.7.0-*" ], + ["Images", v"0.8.0", "Compat", "0.9.1-*" ], + ["Images", v"0.8.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.8.0", "ImageFiltering", "*" ], + ["Images", v"0.8.0", "ImageMetadata", "*" ], + ["Images", v"0.8.0", "ImageTransformations", "*" ], + ["Images", v"0.8.0", "IndirectArrays", "*" ], + ["Images", v"0.8.0", "MappedArrays", "*" ], + ["Images", v"0.8.0", "Reexport", "*" ], + ["Images", v"0.8.0", "SIUnits", "*" ], + ["Images", v"0.8.0", "StatsBase", "*" ], + ["Images", v"0.8.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.0", "AxisArrays", "*" ], + ["Images", v"0.9.0", "FileIO", "*" ], + ["Images", v"0.9.0", "Graphics", "0.1.0-*" ], + ["Images", v"0.9.0", "ImageAxes", "*" ], + ["Images", v"0.9.0", "ImageCore", "*" ], + ["Images", v"0.9.0", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.9.0", "Colors", "0.7.0-*" ], + ["Images", v"0.9.0", "Compat", "0.18.0-*" ], + ["Images", v"0.9.0", "ImageFiltering", "*" ], + ["Images", v"0.9.0", "ImageMetadata", "*" ], + ["Images", v"0.9.0", "ImageTransformations", "*" ], + ["Images", v"0.9.0", "IndirectArrays", "*" ], + ["Images", v"0.9.0", "MappedArrays", "*" ], + ["Images", v"0.9.0", "Reexport", "*" ], + ["Images", v"0.9.0", "SIUnits", "*" ], + ["Images", v"0.9.0", "StatsBase", "*" ], + ["Images", v"0.9.0", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.1", "AxisArrays", "*" ], + ["Images", v"0.9.1", "FileIO", "*" ], + ["Images", v"0.9.1", "ImageAxes", "*" ], + ["Images", v"0.9.1", "ImageCore", "*" ], + ["Images", v"0.9.1", "ColorVectorSpace", "0.2.0-*" ], + ["Images", v"0.9.1", "Colors", "0.7.0-*" ], + ["Images", v"0.9.1", "Compat", "0.19.0-*" ], + ["Images", v"0.9.1", "ImageFiltering", "*" ], + ["Images", v"0.9.1", "ImageMetadata", "*" ], + ["Images", v"0.9.1", "ImageTransformations", "*" ], + ["Images", v"0.9.1", "IndirectArrays", "*" ], + ["Images", v"0.9.1", "MappedArrays", "*" ], + ["Images", v"0.9.1", "Reexport", "*" ], + ["Images", v"0.9.1", "SIUnits", "*" ], + ["Images", v"0.9.1", "StatsBase", "*" ], + ["Images", v"0.9.1", "FixedPointNumbers", "0.3.0-*" ], + ["Images", v"0.9.1", "Graphics", "0.1.0-*" ], + ["IndirectArrays", v"0.1.0" ], + ["IndirectArrays", v"0.1.1", "Compat", "0.19.0-*" ], + ["InplaceOps", v"0.1.0" ], + ["Interpolations", v"0.0.1", "Compat", "*" ], + ["Interpolations", v"0.0.1", "WoodburyMatrices", "*" ], + ["Interpolations", v"0.1.0", "WoodburyMatrices", "*" ], + ["Interpolations", v"0.3.4", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.4", "Ratios", "*" ], + ["Interpolations", v"0.3.4", "WoodburyMatrices", "0.1.0-*" ], + ["Interpolations", v"0.3.5", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.5", "Ratios", "*" ], + ["Interpolations", v"0.3.5", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.6", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.6", "Ratios", "*" ], + ["Interpolations", v"0.3.6", "Compat", "0.8.0-*" ], + ["Interpolations", v"0.3.6", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.7", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.7", "DualNumbers", "*" ], + ["Interpolations", v"0.3.7", "Ratios", "*" ], + ["Interpolations", v"0.3.7", "Compat", "0.8.0-*" ], + ["Interpolations", v"0.3.7", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.3.8", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.3.8", "DualNumbers", "*" ], + ["Interpolations", v"0.3.8", "Ratios", "*" ], + ["Interpolations", v"0.3.8", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.3.8", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.4.0", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.4.0", "DualNumbers", "*" ], + ["Interpolations", v"0.4.0", "Ratios", "*" ], + ["Interpolations", v"0.4.0", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.4.0", "WoodburyMatrices", "0.1.5-*" ], + ["Interpolations", v"0.5.0", "AxisAlgorithms", "*" ], + ["Interpolations", v"0.5.0", "DualNumbers", "*" ], + ["Interpolations", v"0.5.0", "Ratios", "*" ], + ["Interpolations", v"0.5.0", "ShowItLikeYouBuildIt", "*" ], + ["Interpolations", v"0.5.0", "Compat", "0.19.0-*" ], + ["Interpolations", v"0.5.0", "WoodburyMatrices", "0.1.5-*" ], + ["IntervalSets", v"0.0.2" ], + ["IntervalSets", v"0.0.5", "Compat", "0.17.0-*" ], + ["IterativeSolvers", v"0.0.1", "Compat", "*" ], + ["IterativeSolvers", v"0.0.1", "Docile", "*" ], + ["IterativeSolvers", v"0.2.1", "Compat", "*" ], + ["IterativeSolvers", v"0.2.2", "Compat", "*" ], + ["Iterators", v"0.1.10", "Compat", "*" ], + ["Iterators", v"0.3.0" ], + ["JLD", v"0.6.4", "Compat", "0.8.0-*" ], + ["JLD", v"0.6.4", "FileIO", "*" ], + ["JLD", v"0.6.4", "HDF5", "*" ], + ["JLD", v"0.6.4", "LegacyStrings", "*" ], + ["JLD", v"0.6.10", "Compat", "0.8.0-*" ], + ["JLD", v"0.6.10", "FileIO", "*" ], + ["JLD", v"0.6.10", "HDF5", "*" ], + ["JLD", v"0.6.10", "LegacyStrings", "*" ], + ["JSON", v"0.3.9" ], + ["JSON", v"0.4.4", "Compat", "*" ], + ["JSON", v"0.4.5", "Compat", "0.4.12-*" ], + ["JSON", v"0.5.0", "Compat", "0.7.1-*" ], + ["JSON", v"0.5.4", "Compat", "0.7.16-*" ], + ["JSON", v"0.6.0", "Compat", "0.7.20-*" ], + ["JSON", v"0.8.0", "Compat", "0.8.4-*" ], + ["JSON", v"0.8.2", "Compat", "0.9.5-*" ], + ["JSON", v"0.8.3", "Compat", "0.17.0-*" ], + ["JSON", v"0.9.0", "Compat", "0.17.0-*" ], + ["JuliaParser", v"0.5.3", "FactCheck", "*" ], + ["JuliaParser", v"0.6.4", "Compat", "*" ], + ["JuliaParser", v"0.6.4", "FactCheck", "*" ], + ["JuliaParser", v"0.7.0", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.0", "Compat", "*" ], + ["JuliaParser", v"0.7.1", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.1", "Compat", "*" ], + ["JuliaParser", v"0.7.4", "AbstractTrees", "*" ], + ["JuliaParser", v"0.7.4", "Compat", "*" ], + ["Juno", v"0.2.3", "Hiccup", "*" ], + ["Juno", v"0.2.3", "MacroTools", "*" ], + ["Juno", v"0.2.3", "Media", "*" ], + ["Juno", v"0.2.4", "Hiccup", "*" ], + ["Juno", v"0.2.4", "MacroTools", "*" ], + ["Juno", v"0.2.4", "Media", "*" ], + ["Juno", v"0.2.5", "Hiccup", "*" ], + ["Juno", v"0.2.5", "MacroTools", "*" ], + ["Juno", v"0.2.5", "Media", "*" ], + ["Juno", v"0.2.7", "Hiccup", "*" ], + ["Juno", v"0.2.7", "MacroTools", "*" ], + ["Juno", v"0.2.7", "Media", "*" ], + ["LNR", v"0.0.0" ], + ["LNR", v"0.0.1", "Lazy", "*" ], + ["LNR", v"0.0.2", "Compat", "*" ], + ["LNR", v"0.0.2", "Lazy", "*" ], + ["Lazy", v"0.9.1" ], + ["Lazy", v"0.10.0", "MacroTools", "*" ], + ["Lazy", v"0.10.1", "Compat", "*" ], + ["Lazy", v"0.10.1", "MacroTools", "*" ], + ["Lazy", v"0.11.2", "MacroTools", "*" ], + ["Lazy", v"0.11.2", "Compat", "0.8.0-*" ], + ["Lazy", v"0.11.6", "MacroTools", "*" ], + ["Lazy", v"0.11.6", "Compat", "0.8.0-*" ], + ["LearnBase", v"0.1.0", "StatsBase", "*" ], + ["LearnBase", v"0.1.1", "Distributions", "*" ], + ["LearnBase", v"0.1.1", "StatsBase", "*" ], + ["LearnBase", v"0.1.2", "Distributions", "*" ], + ["LearnBase", v"0.1.2", "StatsBase", "0.8.0-*" ], + ["LearnBase", v"0.1.3", "Distributions", "*" ], + ["LearnBase", v"0.1.3", "Compat", "0.17.0-*" ], + ["LearnBase", v"0.1.3", "StatsBase", "0.8.0-*" ], + ["LearnBase", v"0.1.5", "Distributions", "*" ], + ["LearnBase", v"0.1.5", "Compat", "0.18.0-*" ], + ["LearnBase", v"0.1.5", "StatsBase", "0.8.0-*" ], + ["LegacyStrings", v"0.1.0" ], + ["LegacyStrings", v"0.2.0", "Compat", "0.8.4-*" ], + ["LegacyStrings", v"0.2.1", "Compat", "0.18.0-*" ], + ["LineSearches", v"0.0.2" ], + ["LineSearches", v"0.1.1" ], + ["LineSearches", v"0.1.5" ], + ["LossFunctions", v"0.0.1", "LearnBase", "0.0.1-0.1" ], + ["LossFunctions", v"0.0.1", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.1", "Reexport", "*" ], + ["LossFunctions", v"0.0.2", "LearnBase", "0.0.1-0.1" ], + ["LossFunctions", v"0.0.2", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.2", "Reexport", "*" ], + ["LossFunctions", v"0.0.3", "LearnBase", "0.1.2-0.1" ], + ["LossFunctions", v"0.0.3", "RecipesBase", "*" ], + ["LossFunctions", v"0.0.3", "StatsBase", "0.8.0-*" ], + ["LossFunctions", v"0.1.0", "LearnBase", "0.1.3-0.1" ], + ["LossFunctions", v"0.1.0", "RecipesBase", "*" ], + ["LossFunctions", v"0.1.0", "StatsBase", "0.8.0-*" ], + ["LsqFit", v"0.0.1", "Calculus", "*" ], + ["LsqFit", v"0.0.1", "Distributions", "*" ], + ["LsqFit", v"0.0.1", "Optim", "0.0.0-0.4" ], + ["LsqFit", v"0.0.2", "Calculus", "*" ], + ["LsqFit", v"0.0.2", "Distributions", "*" ], + ["LsqFit", v"0.0.2", "Optim", "*" ], + ["LsqFit", v"0.1.0", "Calculus", "*" ], + ["LsqFit", v"0.1.0", "Distributions", "*" ], + ["LsqFit", v"0.1.0", "Optim", "0.6.0-*" ], + ["LsqFit", v"0.1.1", "Calculus", "*" ], + ["LsqFit", v"0.1.1", "Distributions", "*" ], + ["LsqFit", v"0.1.1", "Optim", "0.7.0-*" ], + ["LsqFit", v"0.2.0", "Calculus", "*" ], + ["LsqFit", v"0.2.0", "Distributions", "*" ], + ["LsqFit", v"0.2.0", "Compat", "0.9.1-*" ], + ["LsqFit", v"0.2.0", "Optim", "0.7.5-*" ], + ["MachO", v"0.0.4", "ObjFileBase", "*" ], + ["MachO", v"0.0.4", "StructIO", "*" ], + ["MacroTools", v"0.1.0" ], + ["MacroTools", v"0.3.0" ], + ["MacroTools", v"0.3.1", "Compat", "*" ], + ["MacroTools", v"0.3.3", "Compat", "*" ], + ["MacroTools", v"0.3.6", "Compat", "0.7.9-*" ], + ["MappedArrays", v"0.0.2" ], + ["MappedArrays", v"0.0.5" ], + ["MappedArrays", v"0.0.7", "Compat", "0.19.0-*" ], + ["Markdown", v"0.1.0" ], + ["Markdown", v"0.3.0", "Lazy", "*" ], + ["MbedTLS", v"0.2.3", "BinDeps", "*" ], + ["MbedTLS", v"0.2.3", "Compat", "0.7.9-*" ], + ["MbedTLS", v"0.3.0", "BinDeps", "*" ], + ["MbedTLS", v"0.3.0", "Compat", "0.8.0-*" ], + ["MbedTLS", v"0.4.4", "BinDeps", "*" ], + ["MbedTLS", v"0.4.5", "BinDeps", "*" ], + ["MbedTLS", v"0.4.5", "Compat", "0.9.5-*" ], + ["Measures", v"0.0.2" ], + ["Measures", v"0.0.3", "Compat", "0.7.15-*" ], + ["Measures", v"0.1.0", "Compat", "0.18.0-*" ], + ["Media", v"0.1.0", "Lazy", "*" ], + ["Media", v"0.1.0", "Requires", "*" ], + ["Media", v"0.2.2", "Lazy", "*" ], + ["Media", v"0.2.2", "MacroTools", "*" ], + ["Media", v"0.2.2", "Requires", "*" ], + ["Media", v"0.2.3", "MacroTools", "*" ], + ["Media", v"0.2.3", "Lazy", "0.11.3-*" ], + ["Media", v"0.2.7", "MacroTools", "*" ], + ["MultiScaleArrays", v"0.0.1", "Iterators", "*" ], + ["MultiScaleArrays", v"0.0.1", "RecursiveArrayTools", "0.0.2-*" ], + ["MultiScaleArrays", v"0.1.0", "DiffEqBase", "0.11.0-*" ], + ["MultiScaleArrays", v"0.1.0", "Iterators", "*" ], + ["MultiScaleArrays", v"0.1.0", "RecursiveArrayTools", "0.0.2-*" ], + ["Mustache", v"0.0.1", "DataFrames", "*" ], + ["Mustache", v"0.0.7", "Compat", "*" ], + ["Mustache", v"0.0.7", "Requires", "*" ], + ["Mustache", v"0.0.14", "Requires", "*" ], + ["Mustache", v"0.0.14", "Compat", "0.4.0-*" ], + ["Mustache", v"0.1.0" ], + ["Mustache", v"0.1.4", "Compat", "0.7.18-*" ], + ["Mux", v"0.0.0", "Hiccup", "*" ], + ["Mux", v"0.0.0", "HttpServer", "*" ], + ["Mux", v"0.0.0", "Lazy", "*" ], + ["Mux", v"0.0.0", "URIParser", "*" ], + ["Mux", v"0.1.1", "Compat", "*" ], + ["Mux", v"0.1.1", "Hiccup", "*" ], + ["Mux", v"0.1.1", "HttpCommon", "*" ], + ["Mux", v"0.1.1", "HttpServer", "*" ], + ["Mux", v"0.1.1", "Lazy", "*" ], + ["Mux", v"0.1.1", "URIParser", "*" ], + ["Mux", v"0.1.1", "WebSockets", "*" ], + ["Mux", v"0.2.2", "Hiccup", "*" ], + ["Mux", v"0.2.2", "HttpCommon", "*" ], + ["Mux", v"0.2.2", "HttpServer", "*" ], + ["Mux", v"0.2.2", "Lazy", "*" ], + ["Mux", v"0.2.2", "URIParser", "*" ], + ["Mux", v"0.2.2", "WebSockets", "*" ], + ["Mux", v"0.2.3", "Hiccup", "*" ], + ["Mux", v"0.2.3", "HttpCommon", "*" ], + ["Mux", v"0.2.3", "Compat", "0.7.9-*" ], + ["Mux", v"0.2.3", "HttpServer", "*" ], + ["Mux", v"0.2.3", "Lazy", "*" ], + ["Mux", v"0.2.3", "URIParser", "*" ], + ["Mux", v"0.2.3", "WebSockets", "*" ], + ["NLSolversBase", v"2.1.1", "Compat", "0.17.0-*" ], + ["NLsolve", v"0.7.3", "Calculus", "*" ], + ["NLsolve", v"0.7.3", "Distances", "*" ], + ["NLsolve", v"0.7.3", "Optim", "*" ], + ["NLsolve", v"0.7.3", "Compat", "0.8.0-*" ], + ["NLsolve", v"0.7.3", "ForwardDiff", "0.2.0-*" ], + ["NLsolve", v"0.7.3", "LineSearches", "0.0.1-0" ], + ["NLsolve", v"0.8.0", "Calculus", "*" ], + ["NLsolve", v"0.8.0", "Distances", "*" ], + ["NLsolve", v"0.8.0", "Optim", "*" ], + ["NLsolve", v"0.8.0", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.8.0", "ForwardDiff", "0.2.0-*" ], + ["NLsolve", v"0.8.0", "LineSearches", "0.0.1-0" ], + ["NLsolve", v"0.9.0", "Calculus", "*" ], + ["NLsolve", v"0.9.0", "DiffBase", "*" ], + ["NLsolve", v"0.9.0", "Distances", "*" ], + ["NLsolve", v"0.9.0", "Optim", "*" ], + ["NLsolve", v"0.9.0", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.9.0", "ForwardDiff", "0.3.0-*" ], + ["NLsolve", v"0.9.0", "LineSearches", "0.1.2-0" ], + ["NLsolve", v"0.9.1", "Calculus", "*" ], + ["NLsolve", v"0.9.1", "DiffBase", "*" ], + ["NLsolve", v"0.9.1", "Distances", "*" ], + ["NLsolve", v"0.9.1", "Optim", "*" ], + ["NLsolve", v"0.9.1", "Compat", "0.8.4-*" ], + ["NLsolve", v"0.9.1", "ForwardDiff", "0.3.0-*" ], + ["NLsolve", v"0.9.1", "LineSearches", "0.1.2-0" ], + ["NaNMath", v"0.1.1", "Compat", "*" ], + ["NaNMath", v"0.2.0" ], + ["NaNMath", v"0.2.1" ], + ["NaNMath", v"0.2.3", "Compat", "0.9.1-*" ], + ["NaNMath", v"0.2.4", "Compat", "0.9.1-*" ], + ["Nettle", v"0.1.1" ], + ["Nettle", v"0.1.7", "BinDeps", "*" ], + ["Nettle", v"0.1.10", "BinDeps", "*" ], + ["Nettle", v"0.1.10", "Compat", "*" ], + ["Nettle", v"0.2.3", "BinDeps", "*" ], + ["Nettle", v"0.2.3", "Compat", "*" ], + ["Nettle", v"0.3.0", "BinDeps", "*" ], + ["Nettle", v"0.3.0", "Compat", "0.8.0-*" ], + ["NumericExtensions", v"0.3.6" ], + ["NumericExtensions", v"0.4.3", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.5.6", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.6.2", "ArrayViews", "0.2.0-*" ], + ["NumericExtensions", v"0.6.2", "NumericFuns", "0.2.1-*" ], + ["NumericFuns", v"0.2.0" ], + ["NumericFuns", v"0.2.3" ], + ["NumericFuns", v"0.2.4", "Compat", "*" ], + ["ObjFileBase", v"0.0.4" ], + ["OffsetArrays", v"0.2.13" ], + ["OffsetArrays", v"0.3.0", "Compat", "0.19.0-*" ], + ["Optim", v"0.4.6", "Calculus", "*" ], + ["Optim", v"0.4.6", "Compat", "*" ], + ["Optim", v"0.4.6", "DualNumbers", "*" ], + ["Optim", v"0.4.6", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.4.7", "Calculus", "*" ], + ["Optim", v"0.4.7", "DualNumbers", "0.2.0-*" ], + ["Optim", v"0.4.7", "PositiveFactorizations", "*" ], + ["Optim", v"0.4.7", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.5.0", "Calculus", "*" ], + ["Optim", v"0.5.0", "PositiveFactorizations", "*" ], + ["Optim", v"0.5.0", "Compat", "0.7.16-*" ], + ["Optim", v"0.5.0", "DualNumbers", "0.2.0-*" ], + ["Optim", v"0.5.0", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.6.1", "Calculus", "*" ], + ["Optim", v"0.6.1", "PositiveFactorizations", "*" ], + ["Optim", v"0.6.1", "Compat", "0.8.4-*" ], + ["Optim", v"0.6.1", "ForwardDiff", "0.2.0-0.2" ], + ["Optim", v"0.6.1", "LineSearches", "0.0.1-0" ], + ["Optim", v"0.7.2", "Calculus", "*" ], + ["Optim", v"0.7.2", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.2", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.2", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.2", "LineSearches", "0.1.0-0" ], + ["Optim", v"0.7.4", "Calculus", "*" ], + ["Optim", v"0.7.4", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.4", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.4", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.4", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.5", "Calculus", "*" ], + ["Optim", v"0.7.5", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.5", "Compat", "0.8.4-*" ], + ["Optim", v"0.7.5", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.5", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.7", "Calculus", "*" ], + ["Optim", v"0.7.7", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.7", "Compat", "0.18.0-*" ], + ["Optim", v"0.7.7", "ForwardDiff", "0.3.0-0.3" ], + ["Optim", v"0.7.7", "LineSearches", "0.1.2-0" ], + ["Optim", v"0.7.8", "Calculus", "*" ], + ["Optim", v"0.7.8", "PositiveFactorizations", "*" ], + ["Optim", v"0.7.8", "Compat", "0.18.0-*" ], + ["Optim", v"0.7.8", "ForwardDiff", "0.3.0-0.4" ], + ["Optim", v"0.7.8", "LineSearches", "0.1.2-0" ], + ["Options", v"0.2.6" ], + ["OrdinaryDiffEq", v"0.0.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.1", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.1", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.1", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.1", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.3", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.3", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.3", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.3", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.3", "ParameterizedFunctions", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.3", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.3", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "RecursiveArrayTools", "*" ], + ["OrdinaryDiffEq", v"0.0.5", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.0.5", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.0.5", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.0.5", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.0.5", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.0.5", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.0.5", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.0.5", "Sundials", "0.3.0-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.1.0", "DiffEqBase", "0.0.0-0.6" ], + ["OrdinaryDiffEq", v"0.1.0", "Juno", "*" ], + ["OrdinaryDiffEq", v"0.1.0", "RecursiveArrayTools", "*" ], + ["OrdinaryDiffEq", v"0.1.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.1.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.1.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.1.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.1.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.1.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.1.1", "DiffEqBase", "0.1.2-0.6" ], + ["OrdinaryDiffEq", v"0.1.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.1.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.1.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.1.1", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.1.1", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.1.1", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.5.0", "DiffEqBase", "0.2.0-0.6" ], + ["OrdinaryDiffEq", v"0.5.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.5.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.5.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.5.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.5.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.5.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.5.0", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"0.6.0", "DiffEqBase", "0.4.0-0.6" ], + ["OrdinaryDiffEq", v"0.6.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"0.6.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"0.6.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"0.6.0", "NLsolve", "0.7.3-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"0.6.0", "Ranges", "0.0.1-*" ], + ["OrdinaryDiffEq", v"0.6.0", "RecipesBase", "0.1.0-*" ], + ["OrdinaryDiffEq", v"0.6.0", "RecursiveArrayTools", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.0.2", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.0.2", "DiffEqBase", "0.6.0-0.7" ], + ["OrdinaryDiffEq", v"1.0.2", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.0.2", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.0.2", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.0.2", "RecursiveArrayTools", "0.1.2-*" ], + ["OrdinaryDiffEq", v"1.0.2", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.1.0", "DiffEqBase", "0.7.0-0.7" ], + ["OrdinaryDiffEq", v"1.1.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.1.0", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.1.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.1.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.1.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.1.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.1.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.1.0", "RecursiveArrayTools", "0.1.2-*" ], + ["OrdinaryDiffEq", v"1.1.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.3.1", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.3.1", "DiffEqBase", "0.8.0-0.14" ], + ["OrdinaryDiffEq", v"1.3.1", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.3.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.3.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.3.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.3.1", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.3.1", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.3.1", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.4.1", "Compat", "0.8.8-*" ], + ["OrdinaryDiffEq", v"1.4.1", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.4.1", "DiffEqBase", "0.11.0-0.14" ], + ["OrdinaryDiffEq", v"1.4.1", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.4.1", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.4.1", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.4.1", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.4.1", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.4.1", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.5.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.5.0", "DiffEqBase", "0.11.0-0.14" ], + ["OrdinaryDiffEq", v"1.5.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.5.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.5.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.5.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.5.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.7.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.7.0", "DiffEqBase", "0.13.0-0.14" ], + ["OrdinaryDiffEq", v"1.7.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.7.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.7.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.7.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.7.0", "Roots", "0.2.1-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Calculus", "0.1.15-*" ], + ["OrdinaryDiffEq", v"1.8.0", "DiffEqBase", "0.15.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Iterators", "*" ], + ["OrdinaryDiffEq", v"1.8.0", "Compat", "0.17.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "DataStructures", "0.4.6-*" ], + ["OrdinaryDiffEq", v"1.8.0", "ForwardDiff", "0.2.4-*" ], + ["OrdinaryDiffEq", v"1.8.0", "GenericSVD", "0.0.2-*" ], + ["OrdinaryDiffEq", v"1.8.0", "InplaceOps", "0.0.5-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Juno", "0.2.5-*" ], + ["OrdinaryDiffEq", v"1.8.0", "NLsolve", "0.9.1-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Parameters", "0.5.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "RecursiveArrayTools", "0.2.0-*" ], + ["OrdinaryDiffEq", v"1.8.0", "Roots", "0.2.1-*" ], + ["PDMats", v"0.1.2", "NumericExtensions", "0.5.0-*" ], + ["PDMats", v"0.2.5", "ArrayViews", "0.4.0-*" ], + ["PDMats", v"0.3.0", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.3.1", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.3.6", "ArrayViews", "0.4.8-*" ], + ["PDMats", v"0.4.0", "Compat", "0.7.7-*" ], + ["PDMats", v"0.4.1", "Compat", "0.7.7-*" ], + ["PDMats", v"0.4.2", "Compat", "0.7.7-*" ], + ["PDMats", v"0.5.3", "Compat", "0.9.2-*" ], + ["PDMats", v"0.5.4", "Compat", "0.9.2-*" ], + ["PDMats", v"0.5.5", "Compat", "0.17.0-*" ], + ["PDMats", v"0.5.6", "Compat", "0.18.0-*" ], + ["PDMats", v"0.6.0", "Compat", "0.18.0-*" ], + ["ParameterizedFunctions", v"0.0.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.0.1", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.0.1", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.1.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.1.1", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.1.1", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.2.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.2.2", "DiffEqBase", "0.0.0-0.4" ], + ["ParameterizedFunctions", v"0.2.2", "SymEngine", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.3.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.1", "DiffEqBase", "0.1.0-0.4" ], + ["ParameterizedFunctions", v"0.3.1", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.3.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.2", "DiffEqBase", "0.1.0-0.4" ], + ["ParameterizedFunctions", v"0.3.2", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.3.3", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.3.3", "DiffEqBase", "0.2.0-0.4" ], + ["ParameterizedFunctions", v"0.3.3", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.4.2", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.4.2", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.4.2", "DiffEqBase", "0.2.0-0.4" ], + ["ParameterizedFunctions", v"0.4.2", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"0.5.1", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"0.5.1", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"0.5.1", "DiffEqBase", "0.4.0-0.4" ], + ["ParameterizedFunctions", v"0.5.1", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"1.2.0", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"1.2.0", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"1.2.0", "DiffEqBase", "0.5.0-0.13" ], + ["ParameterizedFunctions", v"1.2.0", "SymEngine", "0.1.2-*" ], + ["ParameterizedFunctions", v"1.3.0", "DataStructures", "0.4.6-*" ], + ["ParameterizedFunctions", v"1.3.0", "DiffEqBase", "0.14.0-*" ], + ["ParameterizedFunctions", v"1.3.0", "SimpleTraits", "0.1.1-*" ], + ["ParameterizedFunctions", v"1.3.0", "SymEngine", "0.1.2-*" ], + ["Parameters", v"0.5.0", "Compat", "0.7.15-*" ], + ["Parameters", v"0.5.0", "DataStructures", "0.4.3-*" ], + ["Parameters", v"0.6.0", "DataStructures", "0.4.3-*" ], + ["Parameters", v"0.7.1", "Compat", "0.17.0-*" ], + ["Parameters", v"0.7.1", "DataStructures", "0.5.2-*" ], + ["Parameters", v"0.7.2", "DataStructures", "0.5.2-*" ], + ["PlotThemes", v"0.1.1", "PlotUtils", "*" ], + ["PlotUtils", v"0.0.1" ], + ["PlotUtils", v"0.3.0", "Colors", "*" ], + ["PlotUtils", v"0.3.0", "Reexport", "*" ], + ["Plots", v"0.1.0", "Colors", "*" ], + ["Plots", v"0.1.0", "FactCheck", "*" ], + ["Plots", v"0.1.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.1.3", "Colors", "*" ], + ["Plots", v"0.1.3", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.3.0", "Colors", "*" ], + ["Plots", v"0.3.0", "Reexport", "*" ], + ["Plots", v"0.3.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.5.1", "Colors", "*" ], + ["Plots", v"0.5.1", "Compat", "*" ], + ["Plots", v"0.5.1", "Reexport", "*" ], + ["Plots", v"0.5.1", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.5.2", "Colors", "*" ], + ["Plots", v"0.5.2", "Compat", "*" ], + ["Plots", v"0.5.2", "Reexport", "*" ], + ["Plots", v"0.5.2", "Requires", "*" ], + ["Plots", v"0.5.2", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.1", "Colors", "*" ], + ["Plots", v"0.6.1", "Compat", "*" ], + ["Plots", v"0.6.1", "FixedSizeArrays", "*" ], + ["Plots", v"0.6.1", "Reexport", "*" ], + ["Plots", v"0.6.1", "Requires", "*" ], + ["Plots", v"0.6.1", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.2", "Colors", "*" ], + ["Plots", v"0.6.2", "Compat", "*" ], + ["Plots", v"0.6.2", "FixedSizeArrays", "*" ], + ["Plots", v"0.6.2", "Reexport", "*" ], + ["Plots", v"0.6.2", "Requires", "*" ], + ["Plots", v"0.6.2", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.6.2", "RecipesBase", "0.0.1-0.0.1" ], + ["Plots", v"0.7.5", "Colors", "*" ], + ["Plots", v"0.7.5", "Compat", "*" ], + ["Plots", v"0.7.5", "FixedSizeArrays", "*" ], + ["Plots", v"0.7.5", "Measures", "*" ], + ["Plots", v"0.7.5", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.7.5", "RecipesBase", "*" ], + ["Plots", v"0.7.5", "Reexport", "*" ], + ["Plots", v"0.8.0", "Compat", "*" ], + ["Plots", v"0.8.0", "FixedSizeArrays", "*" ], + ["Plots", v"0.8.0", "Measures", "*" ], + ["Plots", v"0.8.0", "PlotUtils", "*" ], + ["Plots", v"0.8.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.8.0", "RecipesBase", "*" ], + ["Plots", v"0.8.0", "Reexport", "*" ], + ["Plots", v"0.9.0", "Compat", "*" ], + ["Plots", v"0.9.0", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.0", "Measures", "*" ], + ["Plots", v"0.9.0", "PlotUtils", "*" ], + ["Plots", v"0.9.0", "RecipesBase", "*" ], + ["Plots", v"0.9.0", "Reexport", "*" ], + ["Plots", v"0.9.0", "JSON", "0.0.0-0.8" ], + ["Plots", v"0.9.0", "Showoff", "*" ], + ["Plots", v"0.9.1", "Compat", "*" ], + ["Plots", v"0.9.1", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.1", "Measures", "*" ], + ["Plots", v"0.9.1", "PlotUtils", "*" ], + ["Plots", v"0.9.1", "RecipesBase", "*" ], + ["Plots", v"0.9.1", "Reexport", "*" ], + ["Plots", v"0.9.1", "Showoff", "*" ], + ["Plots", v"0.9.3", "Compat", "*" ], + ["Plots", v"0.9.3", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.3", "Measures", "*" ], + ["Plots", v"0.9.3", "PlotUtils", "*" ], + ["Plots", v"0.9.3", "RecipesBase", "*" ], + ["Plots", v"0.9.3", "Reexport", "*" ], + ["Plots", v"0.9.3", "Showoff", "*" ], + ["Plots", v"0.9.4", "FixedSizeArrays", "*" ], + ["Plots", v"0.9.4", "Measures", "*" ], + ["Plots", v"0.9.4", "PlotUtils", "*" ], + ["Plots", v"0.9.4", "RecipesBase", "*" ], + ["Plots", v"0.9.4", "Reexport", "*" ], + ["Plots", v"0.9.4", "Showoff", "*" ], + ["Plots", v"0.10.3", "FixedSizeArrays", "*" ], + ["Plots", v"0.10.3", "Measures", "*" ], + ["Plots", v"0.10.3", "PlotThemes", "*" ], + ["Plots", v"0.10.3", "PlotUtils", "*" ], + ["Plots", v"0.10.3", "RecipesBase", "*" ], + ["Plots", v"0.10.3", "Reexport", "*" ], + ["Plots", v"0.10.3", "Showoff", "*" ], + ["PolynomialFactors", v"0.0.1", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.1", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.1", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.1", "Primes", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.2", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.2", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.2", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.2", "Polynomials", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.2", "Primes", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.4", "Combinatorics", "0.2.1-*" ], + ["PolynomialFactors", v"0.0.4", "Compat", "0.7.15-*" ], + ["PolynomialFactors", v"0.0.4", "Iterators", "0.1.0-*" ], + ["PolynomialFactors", v"0.0.4", "Polynomials", "0.1.1-*" ], + ["PolynomialFactors", v"0.0.4", "Primes", "0.1.1-*" ], + ["Polynomials", v"0.0.2" ], + ["Polynomials", v"0.0.3" ], + ["Polynomials", v"0.0.4", "Compat", "*" ], + ["Polynomials", v"0.0.5", "Compat", "*" ], + ["Polynomials", v"0.1.0", "Compat", "0.7.15-*" ], + ["Polynomials", v"0.1.1", "Compat", "0.8.0-*" ], + ["Polynomials", v"0.1.5", "Compat", "0.9.4-*" ], + ["PositiveFactorizations", v"0.0.1" ], + ["PositiveFactorizations", v"0.0.3", "Compat", "0.8.4-*" ], + ["PositiveFactorizations", v"0.0.4", "Compat", "0.12.0-*" ], + ["PowerSeries", v"0.1.10" ], + ["PowerSeries", v"0.1.14", "Compat", "0.4.7-*" ], + ["PowerSeries", v"0.2.0" ], + ["Primes", v"0.1.0" ], + ["Primes", v"0.1.1" ], + ["Primes", v"0.1.3", "Compat", "0.9.4-*" ], + ["PyCall", v"0.4.10" ], + ["PyCall", v"0.6.2", "Compat", "0.2.0-*" ], + ["PyCall", v"0.7.3", "Compat", "0.2.0-*" ], + ["PyCall", v"0.7.3", "Dates", "*" ], + ["PyCall", v"0.7.4", "Compat", "0.3.1-*" ], + ["PyCall", v"0.7.4", "Dates", "*" ], + ["PyCall", v"0.7.5", "Compat", "0.3.4-*" ], + ["PyCall", v"0.7.5", "Dates", "*" ], + ["PyCall", v"0.8.1", "Compat", "0.4.0-*" ], + ["PyCall", v"0.8.1", "Dates", "*" ], + ["PyCall", v"1.0.1", "Compat", "0.4.6-*" ], + ["PyCall", v"1.0.1", "Dates", "*" ], + ["PyCall", v"1.0.3", "Compat", "0.7.1-*" ], + ["PyCall", v"1.0.3", "Dates", "*" ], + ["PyCall", v"1.4.0", "Compat", "0.7.1-*" ], + ["PyCall", v"1.4.0", "Conda", "0.1.6-*" ], + ["PyCall", v"1.4.0", "Dates", "*" ], + ["PyCall", v"1.5.0", "Compat", "0.7.15-*" ], + ["PyCall", v"1.5.0", "Conda", "0.1.6-*" ], + ["PyCall", v"1.5.0", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.6.2", "Compat", "0.7.15-*" ], + ["PyCall", v"1.6.2", "Conda", "0.2.0-*" ], + ["PyCall", v"1.6.2", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.7.2", "Compat", "0.8.0-*" ], + ["PyCall", v"1.7.2", "Conda", "0.2.0-*" ], + ["PyCall", v"1.7.2", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.10.0", "Compat", "0.9.5-*" ], + ["PyCall", v"1.10.0", "Conda", "0.2.0-*" ], + ["PyCall", v"1.10.0", "MacroTools", "0.2.0-*" ], + ["PyCall", v"1.12.0", "Compat", "0.18.0-*" ], + ["PyCall", v"1.12.0", "Conda", "0.2.0-*" ], + ["PyCall", v"1.12.0", "MacroTools", "0.2.0-*" ], + ["PyDSTool", v"0.0.1", "DataStructures", "*" ], + ["PyDSTool", v"0.0.1", "PyCall", "*" ], + ["PyDSTool", v"0.0.2", "Conda", "*" ], + ["PyDSTool", v"0.0.2", "DataStructures", "*" ], + ["PyDSTool", v"0.0.2", "PyCall", "*" ], + ["PyDSTool", v"0.1.1", "Conda", "*" ], + ["PyDSTool", v"0.1.1", "DataStructures", "*" ], + ["PyDSTool", v"0.1.1", "DiffEqBase", "0.11.0-*" ], + ["PyDSTool", v"0.1.1", "PyCall", "*" ], + ["PyDSTool", v"0.1.1", "RecipesBase", "*" ], + ["PyDSTool", v"0.1.2", "DataStructures", "*" ], + ["PyDSTool", v"0.1.2", "PyCall", "*" ], + ["PyDSTool", v"0.1.2", "RecipesBase", "*" ], + ["PyDSTool", v"0.1.2", "Conda", "0.2.0-*" ], + ["PyDSTool", v"0.1.2", "DiffEqBase", "0.11.0-*" ], + ["QuadGK", v"0.1.0" ], + ["QuadGK", v"0.1.2", "DataStructures", "0.5.0-*" ], + ["RangeArrays", v"0.1.1" ], + ["RangeArrays", v"0.1.2", "Compat", "0.19.0-*" ], + ["Ranges", v"0.0.1" ], + ["Ratios", v"0.0.3" ], + ["Ratios", v"0.0.4", "Compat", "*" ], + ["Reactive", v"0.2.4", "FactCheck", "*" ], + ["Reactive", v"0.2.4", "Compat", "0.4.0-*" ], + ["Reactive", v"0.3.4", "Compat", "*" ], + ["Reactive", v"0.3.5", "Compat", "0.9.2-*" ], + ["Reactive", v"0.3.6" ], + ["Reactive", v"0.3.7", "DataStructures", "*" ], + ["RecipesBase", v"0.1.0" ], + ["RecursiveArrayTools", v"0.0.1" ], + ["RecursiveArrayTools", v"0.1.1" ], + ["RecursiveArrayTools", v"0.1.2" ], + ["RecursiveArrayTools", v"0.2.0" ], + ["Reexport", v"0.0.2" ], + ["Reexport", v"0.0.3" ], + ["Requires", v"0.2.3", "MacroTools", "*" ], + ["Requires", v"0.4.1" ], + ["ResettableStacks", v"0.1.0" ], + ["Rmath", v"0.1.0", "BinDeps", "*" ], + ["Rmath", v"0.1.2", "BinDeps", "*" ], + ["Rmath", v"0.1.2", "Compat", "0.8.4-*" ], + ["Rmath", v"0.1.6", "BinDeps", "*" ], + ["Rmath", v"0.1.6", "Compat", "0.9.1-*" ], + ["Roots", v"0.1.9", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.9", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.9", "PowerSeries", "0.1.0-*" ], + ["Roots", v"0.1.13", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.13", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.13", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.13", "PowerSeries", "0.1.11-*" ], + ["Roots", v"0.1.18", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.18", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.18", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.18", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.18", "PowerSeries", "0.1.11-*" ], + ["Roots", v"0.1.22", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.22", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.22", "Polynomials", "0.0.3-*" ], + ["Roots", v"0.1.22", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.1.26", "Compat", "0.4.0-*" ], + ["Roots", v"0.1.26", "Docile", "0.4.0-*" ], + ["Roots", v"0.1.26", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.1.26", "ForwardDiff", "0.0.0-0.1" ], + ["Roots", v"0.2.0", "Primes", "*" ], + ["Roots", v"0.2.0", "Compat", "0.4.0-*" ], + ["Roots", v"0.2.0", "Docile", "0.4.0-*" ], + ["Roots", v"0.2.0", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.2.0", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.2.1", "Primes", "*" ], + ["Roots", v"0.2.1", "Compat", "0.4.0-*" ], + ["Roots", v"0.2.1", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.2.1", "Polynomials", "0.0.5-*" ], + ["Roots", v"0.3.0", "Compat", "0.8.0-*" ], + ["Roots", v"0.3.0", "ForwardDiff", "0.2.0-*" ], + ["Roots", v"0.3.0", "PolynomialFactors", "0.0.3-*" ], + ["Roots", v"0.3.0", "Polynomials", "0.0.5-*" ], + ["Rotations", v"0.3.4", "StaticArrays", "0.0.3-0.2" ], + ["Rotations", v"0.3.5", "StaticArrays", "0.3.0-0.3" ], + ["Rotations", v"0.4.0", "StaticArrays", "0.4.0-0.4" ], + ["SHA", v"0.0.2" ], + ["SHA", v"0.0.3" ], + ["SHA", v"0.2.0", "Compat", "0.3.5-*" ], + ["SHA", v"0.2.1", "Compat", "0.7.9-*" ], + ["SHA", v"0.3.1", "Compat", "0.9.4-*" ], + ["SHA", v"0.3.2", "Compat", "0.17.0-*" ], + ["SIUnits", v"0.0.5", "TexExtensions", "*" ], + ["SIUnits", v"0.0.6", "Compat", "*" ], + ["SIUnits", v"0.0.6", "TexExtensions", "*" ], + ["SIUnits", v"0.1.0", "TexExtensions", "*" ], + ["SIUnits", v"0.1.0", "Compat", "0.8.0-*" ], + ["ShowItLikeYouBuildIt", v"0.0.1" ], + ["Showoff", v"0.0.1" ], + ["Showoff", v"0.0.3", "Iterators", "*" ], + ["Showoff", v"0.0.7", "Compat", "*" ], + ["Showoff", v"0.0.7", "Iterators", "*" ], + ["Showoff", v"0.1.0", "Compat", "0.9.5-*" ], + ["Showoff", v"0.1.1", "Compat", "0.18.0-*" ], + ["SimpleTraits", v"0.1.0", "Compat", "*" ], + ["SimpleTraits", v"0.1.1" ], + ["SimpleTraits", v"0.2.0", "MacroTools", "0.3.2-*" ], + ["SimpleTraits", v"0.4.0", "Compat", "0.19.0-*" ], + ["SimpleTraits", v"0.4.0", "MacroTools", "0.3.2-*" ], + ["SortingAlgorithms", v"0.0.3" ], + ["SortingAlgorithms", v"0.0.6", "Compat", "*" ], + ["SortingAlgorithms", v"0.1.0", "Compat", "0.8.4-*" ], + ["SortingAlgorithms", v"0.1.1", "Compat", "0.9.4-*" ], + ["SortingAlgorithms", v"0.1.1", "DataStructures", "0.5.3-*" ], + ["SpecialFunctions", v"0.0.1", "Compat", "0.9.1-*" ], + ["SpecialFunctions", v"0.1.0", "Compat", "0.9.1-*" ], + ["SpecialFunctions", v"0.1.1", "Compat", "0.18.0-*" ], + ["StaticArrays", v"0.0.2" ], + ["StaticArrays", v"0.0.4" ], + ["StaticArrays", v"0.2.1" ], + ["StaticArrays", v"0.3.0" ], + ["StaticArrays", v"0.4.0" ], + ["Stats", v"0.0.1", "StatsBase", "0.3.0-*" ], + ["Stats", v"0.1.0", "StatsBase", "*" ], + ["StatsBase", v"0.2.4", "NumericExtensions", "*" ], + ["StatsBase", v"0.2.9" ], + ["StatsBase", v"0.3.9" ], + ["StatsBase", v"0.4.1" ], + ["StatsBase", v"0.6.8", "ArrayViews", "0.4.6-*" ], + ["StatsBase", v"0.6.9", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.10", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.12", "ArrayViews", "0.4.8-*" ], + ["StatsBase", v"0.6.12", "Compat", "0.2.11-*" ], + ["StatsBase", v"0.6.13", "ArrayViews", "0.4.10-*" ], + ["StatsBase", v"0.6.13", "Compat", "0.3.2-*" ], + ["StatsBase", v"0.6.16", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.6.16", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.7.4", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.7.4", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.7.4", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.1", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.8.1", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.8.1", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.2", "ArrayViews", "0.4.12-*" ], + ["StatsBase", v"0.8.2", "Compat", "0.4.0-*" ], + ["StatsBase", v"0.8.2", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.8.3", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.8.3", "StatsFuns", "0.1.0-*" ], + ["StatsBase", v"0.9.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.9.0", "StatsFuns", "0.3.0-*" ], + ["StatsBase", v"0.10.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.12.0", "Compat", "0.8.4-*" ], + ["StatsBase", v"0.13.0", "Compat", "0.13.0-*" ], + ["StatsBase", v"0.13.0", "DataStructures", "0.5.0-*" ], + ["StatsBase", v"0.13.1", "Compat", "0.18.0-*" ], + ["StatsBase", v"0.13.1", "DataStructures", "0.5.0-*" ], + ["StatsBase", v"0.13.1", "SpecialFunctions", "0.1.0-*" ], + ["StatsFuns", v"0.0.3", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.1.0", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.2.1", "Compat", "0.4.0-*" ], + ["StatsFuns", v"0.2.2", "Compat", "0.7.18-*" ], + ["StatsFuns", v"0.3.0", "Compat", "0.8.4-*" ], + ["StatsFuns", v"0.3.0", "Rmath", "0.1.0-*" ], + ["StatsFuns", v"0.4.0", "Compat", "0.9.1-*" ], + ["StatsFuns", v"0.4.0", "Rmath", "0.1.0-*" ], + ["StatsFuns", v"0.5.0", "SpecialFunctions", "*" ], + ["StatsFuns", v"0.5.0", "Compat", "0.9.1-*" ], + ["StatsFuns", v"0.5.0", "Rmath", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.3", "ParameterizedFunctions", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.3", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.0.4", "RecursiveArrayTools", "*" ], + ["StochasticDiffEq", v"0.0.4", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.4", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.4", "ParameterizedFunctions", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.4", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.0.5", "RecursiveArrayTools", "*" ], + ["StochasticDiffEq", v"0.0.5", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.0.5", "DiffEqBase", "0.0.0-0.7" ], + ["StochasticDiffEq", v"0.0.5", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.2.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.2.0", "DiffEqBase", "0.2.0-0.7" ], + ["StochasticDiffEq", v"0.2.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.2.0", "RecursiveArrayTools", "0.0.2-*" ], + ["StochasticDiffEq", v"0.3.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.3.0", "DataStructures", "*" ], + ["StochasticDiffEq", v"0.3.0", "DiffEqBase", "0.2.0-0.7" ], + ["StochasticDiffEq", v"0.3.0", "Juno", "*" ], + ["StochasticDiffEq", v"0.3.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.3.0", "RecursiveArrayTools", "0.0.2-*" ], + ["StochasticDiffEq", v"0.3.0", "ResettableStacks", "*" ], + ["StochasticDiffEq", v"0.5.0", "ChunkedArrays", "0.1.0-*" ], + ["StochasticDiffEq", v"0.5.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"0.5.0", "DiffEqBase", "0.4.0-0.7" ], + ["StochasticDiffEq", v"0.5.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"0.5.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"0.5.0", "RecursiveArrayTools", "0.1.2-*" ], + ["StochasticDiffEq", v"0.5.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.0.2", "Iterators", "*" ], + ["StochasticDiffEq", v"1.0.2", "Roots", "*" ], + ["StochasticDiffEq", v"1.0.2", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.0.2", "DiffEqBase", "0.8.0-0.14" ], + ["StochasticDiffEq", v"1.0.2", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.0.2", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.0.2", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.0.2", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.1.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.1.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.1.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.1.0", "DiffEqBase", "0.11.0-0.14" ], + ["StochasticDiffEq", v"1.1.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.1.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.1.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.1.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.2.1", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.2.1", "Iterators", "*" ], + ["StochasticDiffEq", v"1.2.1", "Roots", "*" ], + ["StochasticDiffEq", v"1.2.1", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.2.1", "DiffEqBase", "0.11.0-0.14" ], + ["StochasticDiffEq", v"1.2.1", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.2.1", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.2.1", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.2.1", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.3.0", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.3.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.3.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.3.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.3.0", "DiffEqBase", "0.13.0-0.14" ], + ["StochasticDiffEq", v"1.3.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.3.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.3.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.3.0", "ResettableStacks", "0.0.1-*" ], + ["StochasticDiffEq", v"1.4.0", "Compat", "0.17.0-*" ], + ["StochasticDiffEq", v"1.4.0", "DiffEqBase", "0.15.0-*" ], + ["StochasticDiffEq", v"1.4.0", "Iterators", "*" ], + ["StochasticDiffEq", v"1.4.0", "Roots", "*" ], + ["StochasticDiffEq", v"1.4.0", "DataStructures", "0.4.6-*" ], + ["StochasticDiffEq", v"1.4.0", "Juno", "0.2.5-*" ], + ["StochasticDiffEq", v"1.4.0", "Parameters", "0.5.0-*" ], + ["StochasticDiffEq", v"1.4.0", "RecursiveArrayTools", "0.2.0-*" ], + ["StochasticDiffEq", v"1.4.0", "ResettableStacks", "0.0.1-*" ], + ["StokesDiffEq", v"0.0.1", "DiffEqBase", "*" ], + ["StokesDiffEq", v"0.0.1", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.0.1", "VectorizedRoutines", "0.0.1-*" ], + ["StokesDiffEq", v"0.0.2", "DiffEqBase", "*" ], + ["StokesDiffEq", v"0.0.2", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.0.2", "VectorizedRoutines", "0.0.1-*" ], + ["StokesDiffEq", v"0.1.0", "DiffEqBase", "0.4.0-*" ], + ["StokesDiffEq", v"0.1.0", "Parameters", "0.5.0-*" ], + ["StokesDiffEq", v"0.1.0", "VectorizedRoutines", "0.0.2-*" ], + ["StrPack", v"0.0.1" ], + ["StructIO", v"0.0.2" ], + ["Sundials", v"0.0.0" ], + ["Sundials", v"0.1.2", "BinDeps", "*" ], + ["Sundials", v"0.2.0", "BinDeps", "0.3.0-*" ], + ["Sundials", v"0.2.2", "Compat", "*" ], + ["Sundials", v"0.2.2", "BinDeps", "0.3.0-*" ], + ["Sundials", v"0.3.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.3.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.4.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.4.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.4.0", "DiffEqBase", "0.0.0-0.1" ], + ["Sundials", v"0.9.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.9.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.9.0", "DiffEqBase", "0.2.0-0.14" ], + ["Sundials", v"0.10.0", "BinDeps", "0.4.3-*" ], + ["Sundials", v"0.10.0", "Compat", "0.9.0-*" ], + ["Sundials", v"0.10.0", "DiffEqBase", "0.15.0-*" ], + ["SymEngine", v"0.1.0", "BinDeps", "*" ], + ["SymEngine", v"0.1.0", "Conda", "*" ], + ["SymEngine", v"0.1.0", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.0", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.1", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.1", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.1", "Conda", "0.3.0-*" ], + ["SymEngine", v"0.1.1", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.2", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.2", "Compat", "0.8.5-*" ], + ["SymEngine", v"0.1.2", "Conda", "0.4.0-*" ], + ["SymEngine", v"0.1.2", "RecipesBase", "0.0.6-*" ], + ["SymEngine", v"0.1.5", "BinDeps", "0.4.0-*" ], + ["SymEngine", v"0.1.5", "Compat", "0.9.5-*" ], + ["SymEngine", v"0.1.5", "Conda", "0.4.0-*" ], + ["SymEngine", v"0.1.5", "RecipesBase", "0.0.6-*" ], + ["TerminalUI", v"0.0.1", "Reactive", "*" ], + ["TerminalUI", v"0.0.1", "VT100", "*" ], + ["TerminalUI", v"0.0.2", "AbstractTrees", "*" ], + ["TerminalUI", v"0.0.2", "Colors", "*" ], + ["TerminalUI", v"0.0.2", "Compat", "*" ], + ["TerminalUI", v"0.0.2", "FixedPointNumbers", "*" ], + ["TerminalUI", v"0.0.2", "Reactive", "*" ], + ["TerminalUI", v"0.0.2", "VT100", "*" ], + ["TexExtensions", v"0.0.2" ], + ["TexExtensions", v"0.0.3", "Compat", "*" ], + ["TextWrap", v"0.0.0", "Options", "*" ], + ["TextWrap", v"0.1.3" ], + ["TextWrap", v"0.1.4" ], + ["TextWrap", v"0.1.5", "Compat", "0.7.3-*" ], + ["TextWrap", v"0.1.6", "Compat", "0.7.15-*" ], + ["TextWrap", v"0.2.0", "Compat", "0.9.5-*" ], + ["TiledIteration", v"0.0.2", "OffsetArrays", "*" ], + ["URIParser", v"0.0.4", "Compat", "*" ], + ["URIParser", v"0.0.5", "Compat", "0.3.5-*" ], + ["URIParser", v"0.1.0", "HttpCommon", "*" ], + ["URIParser", v"0.1.0", "Compat", "0.3.5-*" ], + ["URIParser", v"0.1.3" ], + ["URIParser", v"0.1.6", "Compat", "0.8.0-*" ], + ["URIParser", v"0.1.8", "Compat", "0.9.5-*" ], + ["VT100", v"0.0.1", "Colors", "*" ], + ["VT100", v"0.0.1", "Compat", "*" ], + ["VT100", v"0.0.1", "FixedPointNumbers", "*" ], + ["VT100", v"0.0.2", "Colors", "*" ], + ["VT100", v"0.0.2", "FixedPointNumbers", "*" ], + ["VT100", v"0.0.2", "Compat", "0.7.15-*" ], + ["VT100", v"0.1.0", "ColorTypes", "0.3.4-*" ], + ["VT100", v"0.1.0", "Compat", "0.17.0-*" ], + ["VT100", v"0.1.0", "FixedPointNumbers", "0.3.0-*" ], + ["VectorizedRoutines", v"0.0.1", "Distributions", "*" ], + ["VectorizedRoutines", v"0.0.1", "StatsFuns", "*" ], + ["VectorizedRoutines", v"0.0.2", "Distributions", "*" ], + ["WebSockets", v"0.0.0", "HttpCommon", "*" ], + ["WebSockets", v"0.0.0", "HttpServer", "*" ], + ["WebSockets", v"0.0.1" ], + ["WebSockets", v"0.0.3", "Codecs", "*" ], + ["WebSockets", v"0.0.3", "HttpCommon", "*" ], + ["WebSockets", v"0.0.3", "HttpServer", "*" ], + ["WebSockets", v"0.0.5", "Codecs", "*" ], + ["WebSockets", v"0.0.5", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.0.5", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.0.6", "Codecs", "*" ], + ["WebSockets", v"0.0.6", "Nettle", "*" ], + ["WebSockets", v"0.0.6", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.0.6", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.0", "Codecs", "*" ], + ["WebSockets", v"0.1.0", "Compat", "*" ], + ["WebSockets", v"0.1.0", "Nettle", "*" ], + ["WebSockets", v"0.1.0", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.1.0", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.2", "Codecs", "*" ], + ["WebSockets", v"0.1.2", "Compat", "*" ], + ["WebSockets", v"0.1.2", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.1.2", "HttpServer", "0.0.4-*" ], + ["WebSockets", v"0.1.2", "Nettle", "0.2.0-*" ], + ["WebSockets", v"0.2.1", "Codecs", "*" ], + ["WebSockets", v"0.2.1", "MbedTLS", "*" ], + ["WebSockets", v"0.2.1", "Compat", "0.7.16-*" ], + ["WebSockets", v"0.2.1", "HttpCommon", "0.0.3-*" ], + ["WebSockets", v"0.2.1", "HttpServer", "0.0.4-*" ], + ["WoodburyMatrices", v"0.0.2" ], + ["WoodburyMatrices", v"0.1.3", "Docile", "*" ], + ["WoodburyMatrices", v"0.1.4", "Compat", "*" ], + ["WoodburyMatrices", v"0.1.4", "Docile", "*" ], + ["WoodburyMatrices", v"0.1.5", "Compat", "*" ], + ["WoodburyMatrices", v"0.1.5", "Docile", "*" ], + ["WoodburyMatrices", v"0.2.1", "Compat", "*" ], + ["WoodburyMatrices", v"0.2.2", "Compat", "0.7.19-*" ], + ["Zlib", v"0.1.9" ], + ["Zlib", v"0.1.12", "Compat", "*" ] +] + +problematic_data = Any[ + ("CoordinateTransformations", v"0.2.0"), + ("Plots", v"0.6.2"), + ("Roots", v"0.1.9"), + ("Roots", v"0.1.13"), + ("Roots", v"0.1.18"), + ("Roots", v"0.1.22"), + ("Roots", v"0.1.26"), +] + +reqs_data = Any[ + ["Atom", "*"], + ["DifferentialEquations", "*"], + ["ImageMagick", "*"], + ["Plots", "*"], +] + +want_data = Dict( + "ASTInterpreter"=>v"0.0.4", + "AbstractTrees"=>v"0.0.4", + "AlgebraicDiffEq"=>v"0.1.0", + "ArgParse"=>v"0.4.0", + "Atom"=>v"0.5.10", + "AxisAlgorithms"=>v"0.1.6", + "AxisArrays"=>v"0.1.2", + "BinDeps"=>v"0.4.7", + "Blink"=>v"0.5.1", + "COFF"=>v"0.0.2", + "CRC"=>v"1.2.0", + "Calculus"=>v"0.2.2", + "CatIndices"=>v"0.0.2", + "ChunkedArrays"=>v"0.1.1", + "CodeTools"=>v"0.4.3", + "Codecs"=>v"0.3.0", + "ColorTypes"=>v"0.4.1", + "ColorVectorSpace"=>v"0.4.2", + "Colors"=>v"0.7.3", + "Combinatorics"=>v"0.4.0", + "Compat"=>v"0.24.0", + "ComputationalResources"=>v"0.0.2", + "Conda"=>v"0.5.3", + "CoordinateTransformations"=>v"0.4.1", + "CustomUnitRanges"=>v"0.0.4", + "DWARF"=>v"0.1.0", + "DataStructures"=>v"0.5.3", + "DelayDiffEq"=>v"0.3.0", + "DiffBase"=>v"0.1.0", + "DiffEqBase"=>v"0.15.0", + "DiffEqBiological"=>v"0.0.1", + "DiffEqCallbacks"=>v"0.0.2", + "DiffEqDevTools"=>v"0.7.0", + "DiffEqFinancial"=>v"0.1.0", + "DiffEqJump"=>v"0.3.0", + "DiffEqMonteCarlo"=>v"0.2.0", + "DiffEqPDEBase"=>v"0.2.0", + "DiffEqParamEstim"=>v"0.2.0", + "DiffEqSensitivity"=>v"0.1.0", + "DifferentialEquations"=>v"1.10.1", + "Distances"=>v"0.4.1", + "Distributions"=>v"0.12.5", + "DualNumbers"=>v"0.3.0", + "ELF"=>v"0.1.0", + "EllipsisNotation"=>v"0.1.0", + "FFTViews"=>v"0.0.2", + "FileIO"=>v"0.3.1", + "FiniteElementDiffEq"=>v"0.3.0", + "FixedPointNumbers"=>v"0.3.6", + "FixedSizeArrays"=>v"0.2.5", + "ForwardDiff"=>v"0.4.2", + "Gallium"=>v"0.0.4", + "GenericSVD"=>v"0.0.2", + "Graphics"=>v"0.2.0", + "Hiccup"=>v"0.1.1", + "HttpCommon"=>v"0.2.7", + "HttpParser"=>v"0.2.0", + "HttpServer"=>v"0.2.0", + "ImageAxes"=>v"0.2.1", + "ImageCore"=>v"0.3.0", + "ImageFiltering"=>v"0.1.4", + "ImageMagick"=>v"0.2.4", + "ImageMetadata"=>v"0.2.3", + "ImageTransformations"=>v"0.2.2", + "Images"=>v"0.9.1", + "IndirectArrays"=>v"0.1.1", + "InplaceOps"=>v"0.1.0", + "Interpolations"=>v"0.5.0", + "IntervalSets"=>v"0.0.5", + "IterativeSolvers"=>v"0.2.2", + "Iterators"=>v"0.3.0", + "JSON"=>v"0.9.0", + "JuliaParser"=>v"0.7.4", + "Juno"=>v"0.2.7", + "LNR"=>v"0.0.2", + "Lazy"=>v"0.11.6", + "LearnBase"=>v"0.1.5", + "LineSearches"=>v"0.1.5", + "LossFunctions"=>v"0.1.0", + "LsqFit"=>v"0.2.0", + "MachO"=>v"0.0.4", + "MacroTools"=>v"0.3.6", + "MappedArrays"=>v"0.0.7", + "MbedTLS"=>v"0.4.5", + "Measures"=>v"0.1.0", + "Media"=>v"0.2.7", + "MultiScaleArrays"=>v"0.1.0", + "Mustache"=>v"0.1.4", + "Mux"=>v"0.2.3", + "NLsolve"=>v"0.9.1", + "NaNMath"=>v"0.2.4", + "ObjFileBase"=>v"0.0.4", + "OffsetArrays"=>v"0.3.0", + "Optim"=>v"0.7.8", + "OrdinaryDiffEq"=>v"1.8.0", + "PDMats"=>v"0.6.0", + "ParameterizedFunctions"=>v"1.3.0", + "Parameters"=>v"0.7.2", + "PlotThemes"=>v"0.1.1", + "PlotUtils"=>v"0.3.0", + "Plots"=>v"0.10.3", + "PolynomialFactors"=>v"0.0.4", + "Polynomials"=>v"0.1.5", + "PositiveFactorizations"=>v"0.0.4", + "Primes"=>v"0.1.3", + "QuadGK"=>v"0.1.2", + "RangeArrays"=>v"0.1.2", + "Ranges"=>v"0.0.1", + "Ratios"=>v"0.0.4", + "Reactive"=>v"0.3.7", + "RecipesBase"=>v"0.1.0", + "RecursiveArrayTools"=>v"0.2.0", + "Reexport"=>v"0.0.3", + "ResettableStacks"=>v"0.1.0", + "Rmath"=>v"0.1.6", + "Roots"=>v"0.3.0", + "Rotations"=>v"0.4.0", + "SHA"=>v"0.3.2", + "SIUnits"=>v"0.1.0", + "ShowItLikeYouBuildIt"=>v"0.0.1", + "Showoff"=>v"0.1.1", + "SimpleTraits"=>v"0.4.0", + "SpecialFunctions"=>v"0.1.1", + "StaticArrays"=>v"0.4.0", + "StatsBase"=>v"0.13.1", + "StatsFuns"=>v"0.5.0", + "StochasticDiffEq"=>v"1.4.0", + "StokesDiffEq"=>v"0.1.0", + "StructIO"=>v"0.0.2", + "Sundials"=>v"0.10.0", + "SymEngine"=>v"0.1.5", + "TerminalUI"=>v"0.0.2", + "TexExtensions"=>v"0.0.3", + "TextWrap"=>v"0.2.0", + "TiledIteration"=>v"0.0.2", + "URIParser"=>v"0.1.8", + "VT100"=>v"0.1.0", + "VectorizedRoutines"=>v"0.0.2", + "WebSockets"=>v"0.2.1", + "WoodburyMatrices"=>v"0.2.2", +) diff --git a/stdlib/Pkg3/test/runtests.jl b/stdlib/Pkg3/test/runtests.jl new file mode 100644 index 0000000000000..efaed7a3285ce --- /dev/null +++ b/stdlib/Pkg3/test/runtests.jl @@ -0,0 +1,6 @@ +module Pkg3Tests + +include("operations.jl") +include("resolve.jl") + +end # module diff --git a/stdlib/SHA/.github/ISSUE_TEMPLATE.md b/stdlib/SHA/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000000..4a6b089cbef18 --- /dev/null +++ b/stdlib/SHA/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,5 @@ +When opening an issue, please ping `@staticfloat`. + +He does not receive emails automatically when new issues are created. +Without this ping, your issue may slip through the cracks! +If no response is garnered within a week, feel free to ping again. diff --git a/stdlib/SHA/.github/PULL_REQUEST_TEMPLATE.md b/stdlib/SHA/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000000000..4a6b089cbef18 --- /dev/null +++ b/stdlib/SHA/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +When opening an issue, please ping `@staticfloat`. + +He does not receive emails automatically when new issues are created. +Without this ping, your issue may slip through the cracks! +If no response is garnered within a week, feel free to ping again. diff --git a/stdlib/SHA/.gitignore b/stdlib/SHA/.gitignore new file mode 100644 index 0000000000000..e43b0f988953a --- /dev/null +++ b/stdlib/SHA/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/stdlib/SHA/.travis.yml b/stdlib/SHA/.travis.yml new file mode 100644 index 0000000000000..5f247a52d8b5e --- /dev/null +++ b/stdlib/SHA/.travis.yml @@ -0,0 +1,15 @@ +language: julia +os: + - linux + - osx +julia: + - 0.6 + - nightly +notifications: + email: false +sudo: false +#script: +# - if [[ -a .git/shallow ]]; then git fetch --unshallow; fi +# - julia -e 'Pkg.clone(pwd()); Pkg.test("SHA", coverage=true)' +after_success: + - julia -e 'cd(Pkg.dir("SHA")); Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())' diff --git a/stdlib/SHA/LICENSE.md b/stdlib/SHA/LICENSE.md new file mode 100644 index 0000000000000..eec075ce6f2ff --- /dev/null +++ b/stdlib/SHA/LICENSE.md @@ -0,0 +1,58 @@ +The SHA.jl package is licensed under the MIT "Expat" License: + +> Copyright (c) 2014: Elliot Saba. +> +> Permission is hereby granted, free of charge, to any person obtaining +> a copy of this software and associated documentation files (the +> "Software"), to deal in the Software without restriction, including +> without limitation the rights to use, copy, modify, merge, publish, +> distribute, sublicense, and/or sell copies of the Software, and to +> permit persons to whom the Software is furnished to do so, subject to +> the following conditions: +> +> The above copyright notice and this permission notice shall be +> included in all copies or substantial portions of the Software. +> +> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +> EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +> MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +> IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +> CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +> TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +> SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +This package was inspired by the SHA2 [source code from Minix](https://github.com/minix3/minix/blob/b6cbf7203b080219de306404f8022a65b7884f33/common/lib/libc/hash/sha2/sha2.c), itself released under the BSD license: + +> sha2.c +> +> Version 1.0.0beta1 +> +> Written by Aaron D. Gifford +> +> Copyright 2000 Aaron D. Gifford. All rights reserved. +> +> Redistribution and use in source and binary forms, with or without +> modification, are permitted provided that the following conditions +> are met: +> +> 1. Redistributions of source code must retain the above copyright +> notice, this list of conditions and the following disclaimer. +> +> 2. Redistributions in binary form must reproduce the above copyright +> notice, this list of conditions and the following disclaimer in the +> documentation and/or other materials provided with the distribution. +> +> 3. Neither the name of the copyright holder nor the names of contributors +> may be used to endorse or promote products derived from this software +> without specific prior written permission. +> +> THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AND CONTRIBUTOR(S) ``AS IS'' AND +> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +> ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) OR CONTRIBUTOR(S) BE LIABLE +> FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +> DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +> OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +> HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +> LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +> OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF diff --git a/stdlib/SHA/Project.toml b/stdlib/SHA/Project.toml new file mode 100644 index 0000000000000..322d348a88c54 --- /dev/null +++ b/stdlib/SHA/Project.toml @@ -0,0 +1,5 @@ +name = "SHA" +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" + +[deps] +Compat = "34da2185-b29b-5c13-b0c7-acf172513d20" diff --git a/stdlib/SHA/README.md b/stdlib/SHA/README.md new file mode 100644 index 0000000000000..85bf4f5fb1e43 --- /dev/null +++ b/stdlib/SHA/README.md @@ -0,0 +1,52 @@ +# SHA + +[![Build Status](https://travis-ci.org/staticfloat/SHA.jl.svg?branch=master)](https://travis-ci.org/staticfloat/SHA.jl) +[![codecov.io](http://codecov.io/github/staticfloat/SHA.jl/coverage.svg?branch=master)](http://codecov.io/github/staticfloat/SHA.jl?branch=master) + +[![SHA](http://pkg.julialang.org/badges/SHA_0.3.svg)](http://pkg.julialang.org/?pkg=SHA&ver=0.3) +[![SHA](http://pkg.julialang.org/badges/SHA_0.4.svg)](http://pkg.julialang.org/?pkg=SHA&ver=0.4) + +Usage is very straightforward: +```julia +julia> using SHA + +julia> bytes2hex(sha256("test")) +"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08" +``` + +Each exported function (at the time of this writing, SHA-1, SHA-2 224, 256, 384 and 512, and SHA-3 224, 256, 384 and 512 functions are implemented) takes in either an `Array{UInt8}`, a `ByteString` or an `IO` object. This makes it trivial to checksum a file: + +```julia +shell> cat /tmp/test.txt +test +julia> using SHA + +julia> open("/tmp/test.txt") do f + sha2_256(f) + end +32-element Array{UInt8,1}: + 0x9f + 0x86 + 0xd0 + 0x81 + 0x88 + 0x4c + 0x7d + 0x65 + ⋮ + 0x5d + 0x6c + 0x15 + 0xb0 + 0xf0 + 0x0a + 0x08 +``` + +Note the lack of a newline at the end of `/tmp/text.txt`. Julia automatically inserts a newline before the `julia>` prompt. + +Due to the colloquial usage of `sha256` to refer to `sha2_256`, convenience functions are provided, mapping `shaxxx()` function calls to `sha2_xxx()`. For SHA-3, no such colloquialisms exist and the user must use the full `sha3_xxx()` names. + +`shaxxx()` takes `AbstractString` and array-like objects (`NTuple` and `Array`) with elements of type `UInt8`. + +Note that, at the time of this writing, the SHA3 code is not optimized, and as such is roughly an order of magnitude slower than SHA2. Pull requests are welcome. diff --git a/stdlib/SHA/REQUIRE b/stdlib/SHA/REQUIRE new file mode 100644 index 0000000000000..d1b65181d5b79 --- /dev/null +++ b/stdlib/SHA/REQUIRE @@ -0,0 +1,2 @@ +julia 0.6 +Compat 0.45 diff --git a/stdlib/SHA/src/SHA.jl b/stdlib/SHA/src/SHA.jl new file mode 100644 index 0000000000000..c8f9aac07fc79 --- /dev/null +++ b/stdlib/SHA/src/SHA.jl @@ -0,0 +1,92 @@ +__precompile__() + +module SHA +using Compat + +# Export convenience functions, context types, update!() and digest!() functions +export sha1, SHA1_CTX, update!, digest! +export sha224, sha256, sha384, sha512 +export sha2_224, sha2_256, sha2_384, sha2_512 +export sha3_224, sha3_256, sha3_384, sha3_512 +export SHA224_CTX, SHA256_CTX, SHA384_CTX, SHA512_CTX +export SHA2_224_CTX, SHA2_256_CTX, SHA2_384_CTX, SHA2_512_CTX +export SHA3_224_CTX, SHA3_256_CTX, SHA3_384_CTX, SHA3_512_CTX +export HMAC_CTX, hmac_sha1 +export hmac_sha224, hmac_sha256, hmac_sha384, hmac_sha512 +export hmac_sha2_224, hmac_sha2_256, hmac_sha2_384, hmac_sha2_512 +export hmac_sha3_224, hmac_sha3_256, hmac_sha3_384, hmac_sha3_512 + + +include("constants.jl") +include("types.jl") +include("base_functions.jl") +include("sha1.jl") +include("sha2.jl") +include("sha3.jl") +include("common.jl") +include("hmac.jl") + +# Compat.jl-like shim for codeunits() on Julia <= 0.6: +if VERSION < v"0.7.0-DEV.3213" + codeunits(x) = x +end + +# Create data types and convenience functions for each hash implemented +for (f, ctx) in [(:sha1, :SHA1_CTX), + (:sha224, :SHA224_CTX), + (:sha256, :SHA256_CTX), + (:sha384, :SHA384_CTX), + (:sha512, :SHA512_CTX), + (:sha2_224, :SHA2_224_CTX), + (:sha2_256, :SHA2_256_CTX), + (:sha2_384, :SHA2_384_CTX), + (:sha2_512, :SHA2_512_CTX), + (:sha3_224, :SHA3_224_CTX), + (:sha3_256, :SHA3_256_CTX), + (:sha3_384, :SHA3_384_CTX), + (:sha3_512, :SHA3_512_CTX),] + g = Symbol(:hmac_, f) + + @eval begin + # Our basic function is to process arrays of bytes + function $f(data::T) where T<:Union{Array{UInt8,1},NTuple{N,UInt8} where N} + ctx = $ctx() + update!(ctx, data) + return digest!(ctx) + end + function $g(key::Vector{UInt8}, data::T) where T<:Union{Array{UInt8,1},NTuple{N,UInt8} where N} + ctx = HMAC_CTX($ctx(), key) + update!(ctx, data) + return digest!(ctx) + end + + # AbstractStrings are a pretty handy thing to be able to crunch through + $f(str::AbstractString) = $f(Vector{UInt8}(codeunits(str))) + $g(key::Vector{UInt8}, str::AbstractString) = $g(key, Vector{UInt8}(str)) + + # Convenience function for IO devices, allows for things like: + # open("test.txt") do f + # sha256(f) + # done + function $f(io::IO, chunk_size=4*1024) + ctx = $ctx() + buff = Vector{UInt8}(uninitialized, chunk_size) + while !eof(io) + num_read = readbytes!(io, buff) + update!(ctx, buff[1:num_read]) + end + return digest!(ctx) + end + function $g(key::Vector{UInt8}, io::IO, chunk_size=4*1024) + ctx = HMAC_CTX($ctx(), key) + buff = Vector{UInt8}(chunk_size) + while !eof(io) + num_read = readbytes!(io, buff) + update!(ctx, buff[1:num_read]) + end + return digest!(ctx) + end + end +end + +end #module SHA diff --git a/stdlib/SHA/src/base_functions.jl b/stdlib/SHA/src/base_functions.jl new file mode 100644 index 0000000000000..f318144beab09 --- /dev/null +++ b/stdlib/SHA/src/base_functions.jl @@ -0,0 +1,40 @@ +# THE SIX LOGICAL FUNCTIONS +# +# Bit shifting and rotation (used by the six SHA-XYZ logical functions: +# +# NOTE: The naming of R and S appears backwards here (R is a SHIFT and +# S is a ROTATION) because the SHA2-256/384/512 description document +# (see http://csrc.nist.gov/cryptval/shs/sha256-384-512.pdf) uses this +# same "backwards" definition. + +# 32-bit Rotate-right (equivalent to S32 in SHA-256) and rotate-left +rrot(b,x,width) = ((x >> b) | (x << (width - b))) +lrot(b,x,width) = ((x << b) | (x >> (width - b))) + +# Shift-right (used in SHA-256, SHA-384, and SHA-512): +R(b,x) = (x >> b) +# 32-bit Rotate-right (used in SHA-256): +S32(b,x) = rrot(b,x,32) +# 64-bit Rotate-right (used in SHA-384 and SHA-512): +S64(b,x) = rrot(b,x,64) +# 64-bit Rotate-left (used in SHA3) +L64(b,x) = lrot(b,x,64) + +# Two of six logical functions used in SHA-256, SHA-384, and SHA-512: +Ch(x,y,z) = ((x & y) ⊻ (~x & z)) +Maj(x,y,z) = ((x & y) ⊻ (x & z) ⊻ (y & z)) + +# Four of six logical functions used in SHA-256: +Sigma0_256(x) = (S32(2, UInt32(x)) ⊻ S32(13, UInt32(x)) ⊻ S32(22, UInt32(x))) +Sigma1_256(x) = (S32(6, UInt32(x)) ⊻ S32(11, UInt32(x)) ⊻ S32(25, UInt32(x))) +sigma0_256(x) = (S32(7, UInt32(x)) ⊻ S32(18, UInt32(x)) ⊻ R(3 , UInt32(x))) +sigma1_256(x) = (S32(17, UInt32(x)) ⊻ S32(19, UInt32(x)) ⊻ R(10, UInt32(x))) + +# Four of six logical functions used in SHA-384 and SHA-512: +Sigma0_512(x) = (S64(28, UInt64(x)) ⊻ S64(34, UInt64(x)) ⊻ S64(39, UInt64(x))) +Sigma1_512(x) = (S64(14, UInt64(x)) ⊻ S64(18, UInt64(x)) ⊻ S64(41, UInt64(x))) +sigma0_512(x) = (S64( 1, UInt64(x)) ⊻ S64( 8, UInt64(x)) ⊻ R( 7, UInt64(x))) +sigma1_512(x) = (S64(19, UInt64(x)) ⊻ S64(61, UInt64(x)) ⊻ R( 6, UInt64(x))) + +# Let's be able to bswap arrays of these types as well +bswap!(x::Vector{<:Integer}) = map!(bswap, x, x) diff --git a/stdlib/SHA/src/common.jl b/stdlib/SHA/src/common.jl new file mode 100644 index 0000000000000..16d177fdbe7e7 --- /dev/null +++ b/stdlib/SHA/src/common.jl @@ -0,0 +1,79 @@ +# Common update and digest functions which work across SHA1 and SHA2 + +# update! takes in variable-length data, buffering it into blocklen()-sized pieces, +# calling transform!() when necessary to update the internal hash state. +function update!(context::T, data::U) where {T<:SHA_CTX, + U<:Union{Array{UInt8,1},NTuple{N,UInt8} where N}} + # We need to do all our arithmetic in the proper bitwidth + UIntXXX = typeof(context.bytecount) + + # Process as many complete blocks as possible + len = convert(UIntXXX, length(data)) + data_idx = convert(UIntXXX, 0) + usedspace = context.bytecount % blocklen(T) + while len - data_idx + usedspace >= blocklen(T) + # Fill up as much of the buffer as we can with the data given us + copyto!(context.buffer, usedspace + 1, data, data_idx + 1, blocklen(T) - usedspace) + + transform!(context) + context.bytecount += blocklen(T) - usedspace + data_idx += blocklen(T) - usedspace + usedspace = convert(UIntXXX, 0) + end + + # There is less than a complete block left, but we need to save the leftovers into context.buffer: + if len > data_idx + copyto!(context.buffer, usedspace + 1, data, data_idx + 1, len - data_idx) + context.bytecount += len - data_idx + end +end + +# Pad the remainder leaving space for the bitcount +function pad_remainder!(context::T) where T<:SHA_CTX + usedspace = context.bytecount % blocklen(T) + # If we have anything in the buffer still, pad and transform that data + if usedspace > 0 + # Begin padding with a 1 bit: + context.buffer[usedspace+1] = 0x80 + usedspace += 1 + + # If we have room for the bitcount, then pad up to the short blocklen + if usedspace <= short_blocklen(T) + for i = 1:(short_blocklen(T) - usedspace) + context.buffer[usedspace + i] = 0x0 + end + else + # Otherwise, pad out this entire block, transform it, then pad up to short blocklen + for i = 1:(blocklen(T) - usedspace) + context.buffer[usedspace + i] = 0x0 + end + transform!(context) + for i = 1:short_blocklen(T) + context.buffer[i] = 0x0 + end + end + else + # If we don't have anything in the buffer, pad an entire shortbuffer + context.buffer[1] = 0x80 + for i = 2:short_blocklen(T) + context.buffer[i] = 0x0 + end + end +end + + +# Clear out any saved data in the buffer, append total bitlength, and return our precious hash! +# Note: SHA3_CTX has a more specialised method +function digest!(context::T) where T<:SHA_CTX + pad_remainder!(context) + # Store the length of the input data (in bits) at the end of the padding + bitcount_idx = div(short_blocklen(T), sizeof(context.bytecount)) + 1 + pbuf = Ptr{typeof(context.bytecount)}(pointer(context.buffer)) + unsafe_store!(pbuf, bswap(context.bytecount * 8), bitcount_idx) + + # Final transform: + transform!(context) + + # Return the digest + return reinterpret(UInt8, bswap!(context.state))[1:digestlen(T)] +end diff --git a/stdlib/SHA/src/constants.jl b/stdlib/SHA/src/constants.jl new file mode 100644 index 0000000000000..37c152e43a23e --- /dev/null +++ b/stdlib/SHA/src/constants.jl @@ -0,0 +1,129 @@ +# SHA initial hash values and constants + +# Hash constant words K for SHA1 +const K1 = UInt32[ + 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 +] + +# Initial hash value H for SHA1 +const SHA1_initial_hash_value = UInt32[ + 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 +] + + + +# Hash constant words K for SHA-256: +const K256 = UInt32[ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +] + +# Initial hash value H for SHA-224: +const SHA2_224_initial_hash_value = UInt32[ + 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, + 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 +] + + +const SHA2_256_initial_hash_value = UInt32[ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, + 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 +] + +# Hash constant words K for SHA-384 and SHA-512: +const K512 = UInt64[ + 0x428a2f98d728ae22, 0x7137449123ef65cd, + 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc, + 0x3956c25bf348b538, 0x59f111f1b605d019, + 0x923f82a4af194f9b, 0xab1c5ed5da6d8118, + 0xd807aa98a3030242, 0x12835b0145706fbe, + 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2, + 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, + 0x9bdc06a725c71235, 0xc19bf174cf692694, + 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, + 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65, + 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, + 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5, + 0x983e5152ee66dfab, 0xa831c66d2db43210, + 0xb00327c898fb213f, 0xbf597fc7beef0ee4, + 0xc6e00bf33da88fc2, 0xd5a79147930aa725, + 0x06ca6351e003826f, 0x142929670a0e6e70, + 0x27b70a8546d22ffc, 0x2e1b21385c26c926, + 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df, + 0x650a73548baf63de, 0x766a0abb3c77b2a8, + 0x81c2c92e47edaee6, 0x92722c851482353b, + 0xa2bfe8a14cf10364, 0xa81a664bbc423001, + 0xc24b8b70d0f89791, 0xc76c51a30654be30, + 0xd192e819d6ef5218, 0xd69906245565a910, + 0xf40e35855771202a, 0x106aa07032bbd1b8, + 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, + 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8, + 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, + 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3, + 0x748f82ee5defb2fc, 0x78a5636f43172f60, + 0x84c87814a1f0ab72, 0x8cc702081a6439ec, + 0x90befffa23631e28, 0xa4506cebde82bde9, + 0xbef9a3f7b2c67915, 0xc67178f2e372532b, + 0xca273eceea26619c, 0xd186b8c721c0c207, + 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178, + 0x06f067aa72176fba, 0x0a637dc5a2c898a6, + 0x113f9804bef90dae, 0x1b710b35131c471b, + 0x28db77f523047d84, 0x32caab7b40c72493, + 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c, + 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, + 0x5fcb6fab3ad6faec, 0x6c44198c4a475817 +] + +# Initial hash value H for SHA-384 +const SHA2_384_initial_hash_value = UInt64[ + 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, + 0x9159015a3070dd17, 0x152fecd8f70e5939, + 0x67332667ffc00b31, 0x8eb44a8768581511, + 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4 +] + +# Initial hash value H for SHA-512 +const SHA2_512_initial_hash_value = UInt64[ + 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, + 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1, + 0x510e527fade682d1, 0x9b05688c2b3e6c1f, + 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179 +] + +# Round constants for SHA3 rounds +const SHA3_ROUND_CONSTS = UInt64[ + 0x0000000000000001, 0x0000000000008082, 0x800000000000808a, + 0x8000000080008000, 0x000000000000808b, 0x0000000080000001, + 0x8000000080008081, 0x8000000000008009, 0x000000000000008a, + 0x0000000000000088, 0x0000000080008009, 0x000000008000000a, + 0x000000008000808b, 0x800000000000008b, 0x8000000000008089, + 0x8000000000008003, 0x8000000000008002, 0x8000000000000080, + 0x000000000000800a, 0x800000008000000a, 0x8000000080008081, + 0x8000000000008080, 0x0000000080000001, 0x8000000080008008 +] + +# Rotation constants for SHA3 rounds +const SHA3_ROTC = UInt64[ + 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 2, 14, + 27, 41, 56, 8, 25, 43, 62, 18, 39, 61, 20, 44 +] + +# Permutation indices for SHA3 rounds (+1'ed so as to work with julia's 1-based indexing) +const SHA3_PILN = Int[ + 11, 8, 12, 18, 19, 4, 6, 17, 9, 22, 25, 5, + 16, 24, 20, 14, 13, 3, 21, 15, 23, 10, 7, 2 +] diff --git a/stdlib/SHA/src/hmac.jl b/stdlib/SHA/src/hmac.jl new file mode 100644 index 0000000000000..1bb21bf146a3a --- /dev/null +++ b/stdlib/SHA/src/hmac.jl @@ -0,0 +1,33 @@ +struct HMAC_CTX{CTX<:SHA_CTX} + context::CTX + outer::Vector{UInt8} + + function HMAC_CTX(ctx::CTX, key::Vector{UInt8}, blocksize::Integer=blocklen(CTX)) where CTX + if length(key) > blocksize + _ctx = CTX() + update!(_ctx, key) + key = digest!(_ctx) + end + + pad = blocksize - length(key) + + if pad > 0 + key = [key; fill(0x00, pad)] + end + + update!(ctx, key .⊻ 0x36) + new{CTX}(ctx, key .⊻ 0x5c) + end +end + +function update!(ctx::HMAC_CTX, data) + update!(ctx.context, data) +end + +function digest!(ctx::HMAC_CTX{CTX}) where CTX + digest = digest!(ctx.context) + _ctx = CTX() + update!(_ctx, ctx.outer) + update!(_ctx, digest) + digest!(_ctx) +end diff --git a/stdlib/SHA/src/sha1.jl b/stdlib/SHA/src/sha1.jl new file mode 100644 index 0000000000000..afbbdf8364904 --- /dev/null +++ b/stdlib/SHA/src/sha1.jl @@ -0,0 +1,93 @@ +# Nonlinear functions, in order to encourage inlining, these sadly are not an array of lambdas +function Round0(b,c,d) + return UInt32((b & c) | (~b & d)) +end + +function Round1And3(b,c,d) + return UInt32(b ⊻ c ⊻ d) +end + +function Round2(b,c,d) + return UInt32((b & c) | (b & d) | (c & d)) +end + +function transform!(context::SHA1_CTX) + # Buffer is 16 elements long, we expand to 80 + pbuf = buffer_pointer(context) + for i in 1:16 + context.W[i] = bswap(unsafe_load(pbuf, i)) + end + + # First round of expansions + for i in 17:32 + @inbounds begin + context.W[i] = lrot(1, context.W[i-3] ⊻ context.W[i-8] ⊻ context.W[i-14] ⊻ context.W[i-16], 32) + end + end + + # Second round of expansions (possibly 4-way SIMD-able) + for i in 33:80 + @inbounds begin + context.W[i] = lrot(2, context.W[i-6] ⊻ context.W[i-16] ⊻ context.W[i-28] ⊻ context.W[i-32], 32) + end + end + + # Initialize registers with the previous intermediate values (our state) + a = context.state[1] + b = context.state[2] + c = context.state[3] + d = context.state[4] + e = context.state[5] + + # Run our rounds, manually separated into the four rounds, unfortunately using an array of lambdas + # really kills performance and causes a huge number of allocations, so we make it easy on the compiler + for i = 1:20 + @inbounds begin + temp = UInt32(lrot(5, a, 32) + Round0(b,c,d) + e + context.W[i] + K1[1]) + e = d + d = c + c = lrot(30, b, 32) + b = a + a = temp + end + end + + for i = 21:40 + @inbounds begin + temp = UInt32(lrot(5, a, 32) + Round1And3(b,c,d) + e + context.W[i] + K1[2]) + e = d + d = c + c = lrot(30, b, 32) + b = a + a = temp + end + end + + for i = 41:60 + @inbounds begin + temp = UInt32(lrot(5, a, 32) + Round2(b,c,d) + e + context.W[i] + K1[3]) + e = d + d = c + c = lrot(30, b, 32) + b = a + a = temp + end + end + + for i = 61:80 + @inbounds begin + temp = UInt32(lrot(5, a, 32) + Round1And3(b,c,d) + e + context.W[i] + K1[4]) + e = d + d = c + c = lrot(30, b, 32) + b = a + a = temp + end + end + + context.state[1] += a + context.state[2] += b + context.state[3] += c + context.state[4] += d + context.state[5] += e +end diff --git a/stdlib/SHA/src/sha2.jl b/stdlib/SHA/src/sha2.jl new file mode 100644 index 0000000000000..741e13f539f87 --- /dev/null +++ b/stdlib/SHA/src/sha2.jl @@ -0,0 +1,134 @@ +function transform!(context::T) where {T<:Union{SHA2_224_CTX,SHA2_256_CTX}} + pbuf = buffer_pointer(context) + # Initialize registers with the previous intermediate values (our state) + a = context.state[1] + b = context.state[2] + c = context.state[3] + d = context.state[4] + e = context.state[5] + f = context.state[6] + g = context.state[7] + h = context.state[8] + + # Run initial rounds + for j = 1:16 + @inbounds begin + # We bitswap every input byte + v = bswap(unsafe_load(pbuf, j)) + unsafe_store!(pbuf, v, j) + + # Apply the SHA-256 compression function to update a..h + T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + v + T2 = Sigma0_256(a) + Maj(a, b, c) + h = g + g = f + f = e + e = UInt32(d + T1) + d = c + c = b + b = a + a = UInt32(T1 + T2) + end + end + + for j = 17:64 + @inbounds begin + # Implicit message block expansion: + s0 = unsafe_load(pbuf, mod1(j + 1, 16)) + s0 = sigma0_256(s0) + s1 = unsafe_load(pbuf, mod1(j + 14, 16)) + s1 = sigma1_256(s1) + + # Apply the SHA-256 compression function to update a..h + v = unsafe_load(pbuf, mod1(j, 16)) + s1 + unsafe_load(pbuf, mod1(j + 9, 16)) + s0 + unsafe_store!(pbuf, v, mod1(j, 16)) + T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + v + T2 = Sigma0_256(a) + Maj(a, b, c) + h = g + g = f + f = e + e = UInt32(d + T1) + d = c + c = b + b = a + a = UInt32(T1 + T2) + end + end + + # Compute the current intermediate hash value + context.state[1] += a + context.state[2] += b + context.state[3] += c + context.state[4] += d + context.state[5] += e + context.state[6] += f + context.state[7] += g + context.state[8] += h +end + + +function transform!(context::Union{SHA2_384_CTX,SHA2_512_CTX}) + pbuf = buffer_pointer(context) + # Initialize registers with the prev. intermediate value + a = context.state[1] + b = context.state[2] + c = context.state[3] + d = context.state[4] + e = context.state[5] + f = context.state[6] + g = context.state[7] + h = context.state[8] + + for j = 1:16 + @inbounds begin + v = bswap(unsafe_load(pbuf, j)) + unsafe_store!(pbuf, v, j) + + # Apply the SHA-512 compression function to update a..h + T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + v + T2 = Sigma0_512(a) + Maj(a, b, c) + h = g + g = f + f = e + e = d + T1 + d = c + c = b + b = a + a = T1 + T2 + end + end + + for j = 17:80 + @inbounds begin + # Implicit message block expansion: + s0 = unsafe_load(pbuf, mod1(j + 1, 16)) + s0 = sigma0_512(s0) + s1 = unsafe_load(pbuf, mod1(j + 14, 16)) + s1 = sigma1_512(s1) + + # Apply the SHA-512 compression function to update a..h + v = unsafe_load(pbuf, mod1(j, 16)) + s1 + unsafe_load(pbuf, mod1(j + 9, 16)) + s0 + unsafe_store!(pbuf, v, mod1(j, 16)) + T1 = h + Sigma1_512(e) + Ch(e, f, g) + K512[j] + v + T2 = Sigma0_512(a) + Maj(a, b, c) + h = g + g = f + f = e + e = d + T1 + d = c + c = b + b = a + a = T1 + T2 + end + end + + # Compute the current intermediate hash value + context.state[1] += a + context.state[2] += b + context.state[3] += c + context.state[4] += d + context.state[5] += e + context.state[6] += f + context.state[7] += g + context.state[8] += h +end diff --git a/stdlib/SHA/src/sha3.jl b/stdlib/SHA/src/sha3.jl new file mode 100644 index 0000000000000..89e15e7403c2f --- /dev/null +++ b/stdlib/SHA/src/sha3.jl @@ -0,0 +1,81 @@ +function transform!(context::T) where {T<:SHA3_CTX} + # First, update state with buffer + pbuf = Ptr{eltype(context.state)}(pointer(context.buffer)) + for idx in 1:div(blocklen(T),8) + context.state[idx] = context.state[idx] ⊻ unsafe_load(pbuf, idx) + end + bc = context.bc + state = context.state + + # We always assume 24 rounds + @inbounds for round in 0:23 + # Theta function + for i in 1:5 + bc[i] = state[i] ⊻ state[i + 5] ⊻ state[i + 10] ⊻ state[i + 15] ⊻ state[i + 20] + end + + for i in 0:4 + temp = bc[rem(i + 4, 5) + 1] ⊻ L64(1, bc[rem(i + 1, 5) + 1]) + j = 0 + while j <= 20 + state[Int(i + j + 1)] = state[i + j + 1] ⊻ temp + j += 5 + end + end + + # Rho Pi + temp = state[2] + for i in 1:24 + j = SHA3_PILN[i] + bc[1] = state[j] + state[j] = L64(SHA3_ROTC[i], temp) + temp = bc[1] + end + + # Chi + j = 0 + while j <= 20 + for i in 1:5 + bc[i] = state[i + j] + end + for i in 0:4 + state[j + i + 1] = state[j + i + 1] ⊻ (~bc[rem(i + 1, 5) + 1] & bc[rem(i + 2, 5) + 1]) + end + j += 5 + end + + # Iota + state[1] = state[1] ⊻ SHA3_ROUND_CONSTS[round+1] + end + + return context.state +end + + + +# Finalize data in the buffer, append total bitlength, and return our precious hash! +function digest!(context::T) where {T<:SHA3_CTX} + usedspace = context.bytecount % blocklen(T) + # If we have anything in the buffer still, pad and transform that data + if usedspace < blocklen(T) - 1 + # Begin padding with a 0x06 + context.buffer[usedspace+1] = 0x06 + # Fill with zeros up until the last byte + context.buffer[usedspace+2:end-1] = 0x00 + # Finish it off with a 0x80 + context.buffer[end] = 0x80 + else + # Otherwise, we have to add on a whole new buffer just for the zeros and 0x80 + context.buffer[end] = 0x06 + transform!(context) + + context.buffer[1:end-1] = 0x0 + context.buffer[end] = 0x80 + end + + # Final transform: + transform!(context) + + # Return the digest + return reinterpret(UInt8, context.state)[1:digestlen(T)] +end diff --git a/stdlib/SHA/src/types.jl b/stdlib/SHA/src/types.jl new file mode 100644 index 0000000000000..68440f2c36319 --- /dev/null +++ b/stdlib/SHA/src/types.jl @@ -0,0 +1,153 @@ +# Type hierarchy to aid in splitting up of SHA2 algorithms +# as SHA224/256 are similar, and SHA-384/512 are similar +abstract type SHA_CTX end +abstract type SHA2_CTX <: SHA_CTX end +abstract type SHA3_CTX <: SHA_CTX end +import Base: copy + +# We derive SHA1_CTX straight from SHA_CTX since it doesn't have a +# family of types like SHA2 or SHA3 do +mutable struct SHA1_CTX <: SHA_CTX + state::Array{UInt32,1} + bytecount::UInt64 + buffer::Array{UInt8,1} + W::Array{UInt32,1} +end + +# SHA2 224/256/384/512-bit Context Structures +mutable struct SHA2_224_CTX <: SHA2_CTX + state::Array{UInt32,1} + bytecount::UInt64 + buffer::Array{UInt8,1} +end + +mutable struct SHA2_256_CTX <: SHA2_CTX + state::Array{UInt32,1} + bytecount::UInt64 + buffer::Array{UInt8,1} +end + +mutable struct SHA2_384_CTX <: SHA2_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} +end + +mutable struct SHA2_512_CTX <: SHA2_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} +end + +# Typealias common nicknames for SHA2 family of functions +const SHA224_CTX = SHA2_224_CTX +const SHA256_CTX = SHA2_256_CTX +const SHA384_CTX = SHA2_384_CTX +const SHA512_CTX = SHA2_512_CTX + + +# SHA3 224/256/384/512-bit context structures +mutable struct SHA3_224_CTX <: SHA3_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} + bc::Array{UInt64,1} +end +mutable struct SHA3_256_CTX <: SHA3_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} + bc::Array{UInt64,1} +end +mutable struct SHA3_384_CTX <: SHA3_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} + bc::Array{UInt64,1} +end +mutable struct SHA3_512_CTX <: SHA3_CTX + state::Array{UInt64,1} + bytecount::UInt128 + buffer::Array{UInt8,1} + bc::Array{UInt64,1} +end + +# Define constants via functions so as not to bloat context objects. Yay dispatch! + +# Digest lengths for SHA1, SHA2 and SHA3. This is easy to figure out from the typename +digestlen(::Type{SHA1_CTX}) = 20 +digestlen(::Type{SHA2_224_CTX}) = 28 +digestlen(::Type{SHA3_224_CTX}) = 28 +digestlen(::Type{SHA2_256_CTX}) = 32 +digestlen(::Type{SHA3_256_CTX}) = 32 +digestlen(::Type{SHA2_384_CTX}) = 48 +digestlen(::Type{SHA3_384_CTX}) = 48 +digestlen(::Type{SHA2_512_CTX}) = 64 +digestlen(::Type{SHA3_512_CTX}) = 64 + +# SHA1 and SHA2 have differing element types for the internal state objects +state_type(::Type{SHA1_CTX}) = UInt32 +state_type(::Type{SHA2_224_CTX}) = UInt32 +state_type(::Type{SHA2_256_CTX}) = UInt32 +state_type(::Type{SHA2_384_CTX}) = UInt64 +state_type(::Type{SHA2_512_CTX}) = UInt64 +state_type(::Type{SHA3_CTX}) = UInt64 + +# blocklen is the number of bytes of data processed by the transform!() function at once +blocklen(::Type{SHA1_CTX}) = UInt64(64) +blocklen(::Type{SHA2_224_CTX}) = UInt64(64) +blocklen(::Type{SHA2_256_CTX}) = UInt64(64) +blocklen(::Type{SHA2_384_CTX}) = UInt64(128) +blocklen(::Type{SHA2_512_CTX}) = UInt64(128) + +blocklen(::Type{SHA3_224_CTX}) = UInt64(25*8 - 2*digestlen(SHA3_224_CTX)) +blocklen(::Type{SHA3_256_CTX}) = UInt64(25*8 - 2*digestlen(SHA3_256_CTX)) +blocklen(::Type{SHA3_384_CTX}) = UInt64(25*8 - 2*digestlen(SHA3_384_CTX)) +blocklen(::Type{SHA3_512_CTX}) = UInt64(25*8 - 2*digestlen(SHA3_512_CTX)) + + +# short_blocklen is the size of a block minus the width of bytecount +short_blocklen(::Type{T}) where {T<:SHA_CTX} = blocklen(T) - 2*sizeof(state_type(T)) + +# Once the "blocklen" methods are defined, we can define our outer constructors for SHA types: +SHA2_224_CTX() = SHA2_224_CTX(copy(SHA2_224_initial_hash_value), 0, zeros(UInt8, blocklen(SHA2_224_CTX))) +SHA2_256_CTX() = SHA2_256_CTX(copy(SHA2_256_initial_hash_value), 0, zeros(UInt8, blocklen(SHA2_256_CTX))) +SHA2_384_CTX() = SHA2_384_CTX(copy(SHA2_384_initial_hash_value), 0, zeros(UInt8, blocklen(SHA2_384_CTX))) +SHA2_512_CTX() = SHA2_512_CTX(copy(SHA2_512_initial_hash_value), 0, zeros(UInt8, blocklen(SHA2_512_CTX))) + +SHA3_224_CTX() = SHA3_224_CTX(zeros(UInt64, 25), 0, zeros(UInt8, blocklen(SHA3_224_CTX)), Vector{UInt64}(uninitialized, 5)) +SHA3_256_CTX() = SHA3_256_CTX(zeros(UInt64, 25), 0, zeros(UInt8, blocklen(SHA3_256_CTX)), Vector{UInt64}(uninitialized, 5)) +SHA3_384_CTX() = SHA3_384_CTX(zeros(UInt64, 25), 0, zeros(UInt8, blocklen(SHA3_384_CTX)), Vector{UInt64}(uninitialized, 5)) +SHA3_512_CTX() = SHA3_512_CTX(zeros(UInt64, 25), 0, zeros(UInt8, blocklen(SHA3_512_CTX)), Vector{UInt64}(uninitialized, 5)) + +# Nickname'd outer constructor methods for SHA2 +const SHA224_CTX = SHA2_224_CTX +const SHA256_CTX = SHA2_256_CTX +const SHA384_CTX = SHA2_384_CTX +const SHA512_CTX = SHA2_512_CTX + +# SHA1 is special; he needs extra workspace +SHA1_CTX() = SHA1_CTX(copy(SHA1_initial_hash_value), 0, zeros(UInt8, blocklen(SHA1_CTX)), Vector{UInt32}(uninitialized, 80)) + + +# Copy functions +copy(ctx::T) where {T<:SHA1_CTX} = T(copy(ctx.state), ctx.bytecount, copy(ctx.buffer), copy(ctx.W)) +copy(ctx::T) where {T<:SHA2_CTX} = T(copy(ctx.state), ctx.bytecount, copy(ctx.buffer)) +copy(ctx::T) where {T<:SHA3_CTX} = T(copy(ctx.state), ctx.bytecount, copy(ctx.buffer), Vector{UInt64}(uninitialized, 5)) + + +# Make printing these types a little friendlier +import Base.show +show(io::IO, ::SHA1_CTX) = write(io, "SHA1 hash state") +show(io::IO, ::SHA2_224_CTX) = write(io, "SHA2 224-bit hash state") +show(io::IO, ::SHA2_256_CTX) = write(io, "SHA2 256-bit hash state") +show(io::IO, ::SHA2_384_CTX) = write(io, "SHA2 384-bit hash state") +show(io::IO, ::SHA2_512_CTX) = write(io, "SHA2 512-bit hash state") +show(io::IO, ::SHA3_224_CTX) = write(io, "SHA3 224-bit hash state") +show(io::IO, ::SHA3_256_CTX) = write(io, "SHA3 256-bit hash state") +show(io::IO, ::SHA3_384_CTX) = write(io, "SHA3 384-bit hash state") +show(io::IO, ::SHA3_512_CTX) = write(io, "SHA3 512-bit hash state") + + +# use our types to define a method to get a pointer to the state buffer +buffer_pointer(ctx::T) where {T<:SHA_CTX} = Ptr{state_type(T)}(pointer(ctx.buffer)) diff --git a/stdlib/SHA/test/perf.jl b/stdlib/SHA/test/perf.jl new file mode 100644 index 0000000000000..c43bda8b36bcd --- /dev/null +++ b/stdlib/SHA/test/perf.jl @@ -0,0 +1,45 @@ +using SHA + +if isempty(ARGS) + error("need file to test sha perf") +elseif !isfile(ARGS[1]) + error("file $(ARGS[1]) does not exist") +end + + +function do_tests(filepath) + # test performance + print("read: ") + @time begin + fh = open(filepath, "r") + bytes = read(fh) + end + GC.gc() + + print("SHA-1: ") + sha1(bytes) + GC.gc() + @time sha1(bytes) + + print("SHA2-256: ") + sha256(bytes) + GC.gc() + @time sha256(bytes) + + print("SHA2-512: ") + sha512(bytes) + GC.gc() + @time sha512(bytes) + + print("SHA3-256: ") + sha3_256(bytes) + GC.gc() + @time sha3_256(bytes) + + print("SHA3-512: ") + sha3_512(bytes) + GC.gc() + @time sha3_512(bytes) +end + +do_tests(ARGS[1]) diff --git a/stdlib/SHA/test/runtests.jl b/stdlib/SHA/test/runtests.jl new file mode 100644 index 0000000000000..5422bd4a87e43 --- /dev/null +++ b/stdlib/SHA/test/runtests.jl @@ -0,0 +1,293 @@ +using SHA +using Compat + +# Define some data we will run our tests on +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 = repmat([0x61], 1000000) +so_many_as_tuple = ntuple((i) -> 0x61, 1000000) +file = ".sha" # Subject to change +fIO = open(file, "w") +write(fIO, '\0') +close(fIO) +data = Any["", "test", lorem, file, so_many_as_array, so_many_as_tuple] + +# Descriptions of the data, the SHA functions we'll run on the data, etc... +data_desc = ["the empty string", "the string \"test\"", "lorem ipsum", + "0 file", "one million a's Array", "one million a's Tuple"] +sha_types = Dict(sha1 => SHA.SHA1_CTX, + sha2_224 => SHA.SHA2_224_CTX, sha2_256 => SHA.SHA2_256_CTX, sha2_384 => SHA.SHA2_384_CTX, sha2_512 => SHA.SHA2_512_CTX, + sha3_224 => SHA.SHA3_224_CTX, sha3_256 => SHA.SHA3_256_CTX, sha3_384 => SHA.SHA3_384_CTX, sha3_512 => SHA.SHA3_512_CTX) +sha_funcs = [sha1, + sha2_224, sha2_256, sha2_384, sha2_512, + sha3_224, sha3_256, sha3_384, sha3_512] +ctxs = [SHA1_CTX, + SHA2_224_CTX, SHA2_256_CTX, SHA2_384_CTX, SHA2_512_CTX, + SHA3_224_CTX, SHA3_256_CTX, SHA3_384_CTX, SHA3_512_CTX] +shws = ["SHA1 hash state", + "SHA2 224-bit hash state", "SHA2 256-bit hash state", "SHA2 384-bit hash state", "SHA2 512-bit hash state", + "SHA3 224-bit hash state", "SHA3 256-bit hash state", "SHA3 384-bit hash state", "SHA3 512-bit hash state"] + +answers = Dict( +sha1 => [ +"da39a3ee5e6b4b0d3255bfef95601890afd80709", +"a94a8fe5ccb19ba61c4c0873d391e987982fbbd3", +"19afa2a4a37462c7b940a6c4c61363d49c3a35f4", +"5ba93c9db0cff93f52b521d7420e43f6eda2784f", +"34aa973cd4c4daa4f61eeb2bdbad27316534016f", +"34aa973cd4c4daa4f61eeb2bdbad27316534016f" +], +sha2_224 => [ +"d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f", +"90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809", +"6a0644abcf1e2cecbec2814443dab5f24b7ad8ebb66c75667ab67959", +"fff9292b4201617bdc4d3053fce02734166a683d7d858a7f5f59b073", +"20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67", +"20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67" +], +sha2_256 => [ +"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", +"9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", +"2c7c3d5f244f1a40069a32224215e0cf9b42485c99d80f357d76f006359c7a18", +"6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d", +"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0", +"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0" +], +sha2_384 => [ +"38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b", +"768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9", +"63980fd0425cd2c3d8a400ee0f2671ef135db03b947ec1af21b6e28f19c16ca272036469541f4d8e336ac6d1da50580f", +"bec021b4f368e3069134e012c2b4307083d3a9bdd206e24e5f0d86e13d6636655933ec2b413465966817a9c208a11717", +"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985", +"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985" +], +sha2_512 => [ +"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e", +"ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff", +"f41d92bc9fc1157a0d1387e67f3d0893b70f7039d3d46d8115b5079d45ad601159398c79c281681e2da09bf7d9f8c23b41d1a0a3c5b528a7f2735933a4353194", +"b8244d028981d693af7b456af8efa4cad63d282e19ff14942c246e50d9351d22704a802a71c3580b6370de4ceb293c324a8423342557d4e5c38438f0e36910ee", +"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b", +"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b" +], +sha3_224 => [ +"6b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7", +"3797bf0afbbfca4a7bbba7602a2b552746876517a7f9b7ce2db0ae7b", +"ea5395370949ad8c7d2ca3e7c045ef3306fe3a3f4740de452ef87a28", +"bdd5167212d2dc69665f5a8875ab87f23d5ce7849132f56371a19096", +"d69335b93325192e516a912e6d19a15cb51c6ed5c15243e7a7fd653c", +"d69335b93325192e516a912e6d19a15cb51c6ed5c15243e7a7fd653c" +], +sha3_256 => [ +"a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a", +"36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80", +"8c8142d2ca964ab307ace567ddd5764f17ebb76eb8ff25543ab54c14fe2ab139", +"5d53469f20fef4f8eab52b88044ede69c77a6a68a60728609fc4a65ff531e7d0", +"5c8875ae474a3634ba4fd55ec85bffd661f32aca75c6d699d0cdcb6c115891c1", +"5c8875ae474a3634ba4fd55ec85bffd661f32aca75c6d699d0cdcb6c115891c1", +], +sha3_384 => [ +"0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004", +"e516dabb23b6e30026863543282780a3ae0dccf05551cf0295178d7ff0f1b41eecb9db3ff219007c4e097260d58621bd", +"eb9fbba3eb916a4efe384b3125f5d03ceb9c5c1b94431ac30fa86c54408b92701ca5d2628cd7113aa5541177ec3ccd1d", +"127677f8b66725bbcb7c3eae9698351ca41e0eb6d66c784bd28dcdb3b5fb12d0c8e840342db03ad1ae180b92e3504933", +"eee9e24d78c1855337983451df97c8ad9eedf256c6334f8e948d252d5e0e76847aa0774ddb90a842190d2c558b4b8340", +"eee9e24d78c1855337983451df97c8ad9eedf256c6334f8e948d252d5e0e76847aa0774ddb90a842190d2c558b4b8340", +], +sha3_512 => [ +"a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26", +"9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14", +"3a4318353396a12dfd20442cfce1d8ad4d7e732e85cc56b01b4cf9057a41c8827c0a03c70812e76ace68d776759225c213b4f581aac0dba5dd43b785b1a33fe5", +"7127aab211f82a18d06cf7578ff49d5089017944139aa60d8bee057811a15fb55a53887600a3eceba004de51105139f32506fe5b53e1913bfa6b32e716fe97da", +"3c3a876da14034ab60627c077bb98f7e120a2a5370212dffb3385a18d4f38859ed311d0a9d5141ce9cc5c66ee689b266a8aa18ace8282a0e0db596c90b0a7b87", +"3c3a876da14034ab60627c077bb98f7e120a2a5370212dffb3385a18d4f38859ed311d0a9d5141ce9cc5c66ee689b266a8aa18ace8282a0e0db596c90b0a7b87", +] +) + +function describe_hash(T::Type{S}) where {S <: SHA.SHA_CTX} + if T <: SHA.SHA1_CTX return "SHA1" end + if T <: SHA.SHA2_CTX return "SHA2-$(SHA.digestlen(T)*8)" end + if T <: SHA.SHA3_CTX return "SHA3-$(SHA.digestlen(T)*8)" end +end + +println("Loaded hash types: $(join(sort([describe_hash(t[2]) for t in sha_types]), ", ", " and "))") + +# First, test processing the data in one go +nerrors = 0 +for idx in 1:length(data) + global nerrors + + desc = data_desc[idx] + print("Testing on $desc$(join(["." for z in 1:(34-length(desc))]))") + nerrors_old = nerrors + for sha_idx in 1:length(sha_funcs) + sha_func = sha_funcs[sha_idx] + + if idx == 4 + open(data[idx]) do f + hash = bytes2hex(sha_func(f)) + end + else + hash = bytes2hex(sha_func(data[idx])) + end + + if hash != answers[sha_func][idx] + print("\n") + warn( + """ + For $(describe_hash(sha_types[sha_func])) expected: + $(answers[sha_func][idx]) + Calculated: + $(hash) + """) + nerrors += 1 + else + print(".") + end + end + println("Done! [$(nerrors - nerrors_old) errors]") +end + +# Do another test on the "so many a's" data where we chunk up the data into +# two chunks, (sized appropriately to AVOID overflow from one update to another) +# in order to test multiple update!() calls +print("Testing on one million a's (chunked properly)") +nerrors_old = nerrors +for sha_idx in 1:length(sha_funcs) + global nerrors + + ctx = sha_types[sha_funcs[sha_idx]]() + SHA.update!(ctx, so_many_as_array[1:2*SHA.blocklen(typeof(ctx))]) + SHA.update!(ctx, so_many_as_array[2*SHA.blocklen(typeof(ctx))+1:end]) + hash = bytes2hex(SHA.digest!(ctx)) + if hash != answers[sha_funcs[sha_idx]][end] + print("\n") + warn( + """ + For $(describe_hash(sha_types[sha_funcs[sha_idx]])) expected: + $(answers[sha_funcs[sha_idx]][end-1]) + Calculated: + $(hash) + """) + nerrors += 1 + else + print(".") + end +end +println("Done! [$(nerrors - nerrors_old) errors]") + +# Do another test on the "so many a's" data where we chunk up the data into +# three chunks, (sized appropriately to CAUSE overflow from one update to another) +# in order to test multiple update!() calls as well as the overflow codepaths +print("Testing on one million a's (chunked clumsily)") +nerrors_old = nerrors +for sha_idx in 1:length(sha_funcs) + global nerrors + ctx = sha_types[sha_funcs[sha_idx]]() + + # Get indices awkwardly placed for the blocklength of this hash type + idx0 = round(Int, 0.3*SHA.blocklen(typeof(ctx))) + idx1 = round(Int, 1.7*SHA.blocklen(typeof(ctx))) + idx2 = round(Int, 2.6*SHA.blocklen(typeof(ctx))) + + # Feed data in according to our dastardly blocking scheme + SHA.update!(ctx, so_many_as_array[0 + 1:1*idx0]) + SHA.update!(ctx, so_many_as_array[1*idx0 + 1:2*idx0]) + SHA.update!(ctx, so_many_as_array[2*idx0 + 1:3*idx0]) + SHA.update!(ctx, so_many_as_array[3*idx0 + 1:4*idx0]) + SHA.update!(ctx, so_many_as_array[4*idx0 + 1:idx1]) + SHA.update!(ctx, so_many_as_array[idx1 + 1:idx2]) + SHA.update!(ctx, so_many_as_array[idx2 + 1:end]) + + # Ensure the hash is the appropriate one + hash = bytes2hex(SHA.digest!(ctx)) + if hash != answers[sha_funcs[sha_idx]][end] + print("\n") + warn( + """ + For $(describe_hash(sha_types[sha_funcs[sha_idx]])) expected: + $(answers[sha_funcs[sha_idx]][end-1]) + Calculated: + $(hash) + """) + nerrors += 1 + else + print(".") + end +end +println("Done! [$(nerrors - nerrors_old) errors]") + +# test hmac correctness using the examples on [wiki](https://en.wikipedia.org/wiki/Hash-based_message_authentication_code#Examples) +print("Testing on the hmac functions") +nerrors_old = nerrors +for (key, msg, fun, hash) in ( + (b"", b"", hmac_sha1, "fbdb1d1b18aa6c08324b7d64b71fb76370690e1d"), + (b"", b"", hmac_sha256, "b613679a0814d9ec772f95d778c35fc5ff1697c493715653c6c712144292c5ad"), + (b"key", b"The quick brown fox jumps over the lazy dog", hmac_sha1, "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"), + (b"key", b"The quick brown fox jumps over the lazy dog", hmac_sha256, "f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8"), +) + global nerrors + digest = bytes2hex(fun(Vector(key), Vector(msg))) + if digest != hash + print("\n") + warn( + """ + For $fun($(String(key)), $(String(msg))) expected: + $hash + Calculated: + $digest + """) + nerrors += 1 + else + print(".") + end +end +println("Done! [$(nerrors - nerrors_old) errors]") + +if VERSION >= v"0.7.0-DEV.1472" + replstr(x) = sprint((io, x) -> show(IOContext(io, :limit => true), MIME("text/plain"), x), x) +else + replstr(x) = sprint((io, x) -> show(IOContext(io, limit=true), MIME("text/plain"), x), x) +end + +for idx in 1:length(ctxs) + global nerrors + # Part #1: copy + print("Testing copy function @ $(ctxs[idx]) ...") + try + copy(ctxs[idx]()) + catch + print("\n") + warn("Some weird copy error happened with $(ctxs[idx])") + nerrors += 1 + end + println("Done! [$(nerrors - nerrors_old) errors]") + + # Part #2: show + print("Testing show function @ $(ctxs[idx]) ...") + if replstr(ctxs[idx]()) != shws[idx] + print("\n") + warn("Some weird show error happened with $(ctxs[idx])") + nerrors += 1 + end + println("Done! [$(nerrors - nerrors_old) errors]") +end + +# test error if eltype of input is not UInt8 +for f in sha_funcs + global nerrors + try + f(UInt32[0x23467, 0x324775]) + warn("Non-UInt8 Arrays should fail") + nerrors += 1 + end +end + + +# Clean up the I/O mess +rm(file) + +if nerrors == 0 + println("ALL OK") +else + println("Failed with $nerrors failures") +end +exit(nerrors)