Commit 0857008a authored by Documenter.jl's avatar Documenter.jl
Browse files

build based on 74bd5833

parent 8dd0b056
v1.3.0 v1.3.1
\ No newline at end of file \ No newline at end of file
v1.3.0 v1.3.1
\ No newline at end of file \ No newline at end of file
v1.3.0 v1.3.1
\ No newline at end of file \ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Working with custom models · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="../.."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../../assets/documenter.js"></script><script src="../../siteinfo.js"></script><script src="../../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../../assets/themeswap.js"></script><link href="../../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../../"><img class="docs-light-only" src="../../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../../">Home</a></li><li><span class="tocitem">User guide</span><ul><li><input class="collapse-toggle" id="menuitem-2-1" type="checkbox"/><label class="tocitem" for="menuitem-2-1"><span class="docs-label">Quickstart tutorials</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../tutorials/">All tutorials</a></li><li><a class="tocitem" href="../../tutorials/1_loading/">Loading and converting model data</a></li><li><a class="tocitem" href="../../tutorials/2_analysis/">Basic analysis of constraint-based models</a></li><li><a class="tocitem" href="../../tutorials/3_hpc/">Distributed processing and HPC environments</a></li><li><a class="tocitem" href="../../tutorials/4_modifying/">Modifying and saving the models</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-2" type="checkbox" checked/><label class="tocitem" for="menuitem-2-2"><span class="docs-label">Advanced tutorials</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../">All advanced tutorials</a></li><li><a class="tocitem" href="../1_variants/">Exploring many model variants</a></li><li class="is-active"><a class="tocitem" href>Working with custom models</a><ul class="internal"><li><a class="tocitem" href="#Writing-the-generic-accessors"><span>Writing the generic accessors</span></a></li><li><a class="tocitem" href="#Writing-generic-model-modifications"><span>Writing generic model modifications</span></a></li></ul></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-3" type="checkbox"/><label class="tocitem" for="menuitem-2-3"><span class="docs-label">Examples and notebooks</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../../notebooks/">All notebooks</a></li><li><a class="tocitem" href="../../notebooks/1_loading_converting_saving/">Loading, converting, and saving models</a></li><li><a class="tocitem" href="../../notebooks/2_finding_balance/">Finding balance and variability of constraint-based models</a></li><li><a class="tocitem" href="../../notebooks/3_basic_stdmodel_usage/">Basic usage of <code>StandardModel</code></a></li><li><a class="tocitem" href="../../notebooks/4_basic_core_coupled_usage/">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><li><a class="tocitem" href="../../notebooks/5_basic_stdmodel_construction/">Model construction and modification</a></li><li><a class="tocitem" href="../../notebooks/6_screening/">Exploring model variants with <code>screen</code></a></li><li><a class="tocitem" href="../../notebooks/7_community_model/">Building and analysing a small community model</a></li><li><a class="tocitem" href="../../notebooks/8_custom_model/">Using a custom model data structure</a></li><li><a class="tocitem" href="../../notebooks/9_max_min_driving_force_analysis/">Maximum-minimum driving force analysis</a></li></ul></li></ul></li><li><span class="tocitem">Types and functions</span><ul><li><a class="tocitem" href="../../functions/">Contents</a></li><li><a class="tocitem" href="../../functions/analysis/">Analysis functions</a></li><li><a class="tocitem" href="../../functions/base/">Base functions</a></li><li><a class="tocitem" href="../../functions/io/">Input and output</a></li><li><a class="tocitem" href="../../functions/reconstruction/">Model construction functions</a></li><li><a class="tocitem" href="../../functions/types/">Types</a></li><li><a class="tocitem" href="../../functions/utils/">Utilities</a></li></ul></li><li><a class="tocitem" href="../../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">User guide</a></li><li><a class="is-disabled">Advanced tutorials</a></li><li class="is-active"><a href>Working with custom models</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Working with custom models</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/lcsb-biocore/COBREXA.jl/blob/master/docs/src/advanced/2_custom_model.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="Working-with-custom-models"><a class="docs-heading-anchor" href="#Working-with-custom-models">Working with custom models</a><a id="Working-with-custom-models-1"></a><a class="docs-heading-anchor-permalink" href="#Working-with-custom-models" title="Permalink"></a></h1><p>It may happen that the intuitive representation of your data does not really match what is supported by a given COBRA package. COBREXA.jl attempts to avoid this problem by providing a flexible framework for containing any data structure that can, somehow, represent the constraint-based model.</p><p>The task of having such a polymorphic model definition can be split into 2 separate concerns:</p><ul><li>How to allow the analysis functions to gather the required information from any user-specified model data structure?</li><li>How to make the reconstruction functions (i.e., reaction or gene deletions) work properly on any data structure?</li></ul><p>To solve the first concern, COBREXA.jl specifies a set of generic accessors that work over the abstract type <a href="../../functions/types/#COBREXA.MetabolicModel"><code>MetabolicModel</code></a>. To use your data structure in a model, you just make it a subtype of <a href="../../functions/types/#COBREXA.MetabolicModel"><code>MetabolicModel</code></a> and overload the required accessors. The accessors are functions that extract some relevant information, such as <a href="../../functions/types/#COBREXA.stoichiometry-Tuple{CoreModel}"><code>stoichiometry</code></a> and <a href="../../functions/types/#COBREXA.bounds-Tuple{CoreModel}"><code>bounds</code></a>, returning a fixed simple data type that can be further used by COBREXA. You may see a complete list of accessors <a href="../../functions/#Base-Types">here</a>.</p><p>A good solution to the second concern is a slightly more involved, as writing generic data modifiers is notoriously hard. Still, there is support for easily making small changes to the model using the modifications system, with functions such as <a href="../../functions/reconstruction/#COBREXA.with_added_reactions-Tuple"><code>with_added_reactions</code></a> and <a href="../../functions/reconstruction/#COBREXA.with_changed_bound-Tuple"><code>with_changed_bound</code></a>.</p><div class="admonition is-success"><header class="admonition-header">Notebook available</header><div class="admonition-body"><p>A better example of using a custom model structure is available <a href="../../notebooks/8_custom_model/">in a separate notebook</a>.</p></div></div><h2 id="Writing-the-generic-accessors"><a class="docs-heading-anchor" href="#Writing-the-generic-accessors">Writing the generic accessors</a><a id="Writing-the-generic-accessors-1"></a><a class="docs-heading-anchor-permalink" href="#Writing-the-generic-accessors" title="Permalink"></a></h2><p>Let&#39;s write a data structure that represents a very small model that contains N metabolites that are converted in a circle through N linear, coupled reactions. (E.g., for N=3, we would have a conversion of metabolites A, B and C ordered as A → B → C → A.) This may be useful for testing purposes; we will use it for a simple demonstration.</p><p>The whole model can thus be specified with a single integer N that represents the length of the reaction cycle:</p><pre><code class="language-julia">struct CircularModel &lt;: MetabolicModel
size::Int
end</code></pre><p>First, define the reactions and metabolites:</p><pre><code class="language-julia">COBREXA.n_reactions(m::CircularModel) = m.size
COBREXA.n_metabolites(m::CircularModel) = m.size
COBREXA.reactions(m::CircularModel) = [&quot;rxn$i&quot; for i in 1:n_reactions(m)]
COBREXA.metabolites(m::CircularModel) = [&quot;met$i&quot; for i in 1:n_metabolites(m)]</code></pre><p>It is useful to re-use the already defined functions, as that improves the code maintainability.</p><p>We can continue with the actual linear model properties:</p><pre><code class="language-julia">function COBREXA.objective(m::CircularModel)
c = spzeros(n_reactions(m))
c[1] = 1 #optimize the first reaction
return c
end
COBREXA.bounds(m::CircularModel) = (
zeros(n_reactions(m)), # lower bounds
ones(n_reactions(m)), # upper bounds
)
function COBREXA.stoichiometry(m::CircularModel)
nr = n_reactions(m)
stoi(i,j) =
i == j ? 1.0 :
(i % nr + 1) == j ? -1.0 :
0.0
sparse([stoi(i,j) for i in 1:nr, j in 1:nr])
end</code></pre><p>You may check that the result now works just as with <a href="../../functions/types/#COBREXA.CoreModel"><code>CoreModel</code></a> and <a href="../../functions/types/#COBREXA.StandardModel"><code>StandardModel</code></a>:</p><pre><code class="language-julia">julia&gt; m = CircularModel(5)
Metabolic model of type CircularModel
1.0 -1.0 ⋅ ⋅ ⋅
⋅ 1.0 -1.0 ⋅ ⋅
⋅ ⋅ 1.0 -1.0 ⋅
⋅ ⋅ ⋅ 1.0 -1.0
-1.0 ⋅ ⋅ ⋅ 1.0
Number of reactions: 5
Number of metabolites: 5
</code></pre><p>This interface is sufficient to run most of the basic analyses, especially the flux balance finding ones:</p><pre><code class="language-julia">julia&gt; flux_balance_analysis_dict(m, Tulip.Optimizer)
Dict{String, Float64} with 5 entries:
&quot;rxn5&quot; =&gt; 1.0
&quot;rxn2&quot; =&gt; 1.0
&quot;rxn1&quot; =&gt; 1.0
&quot;rxn3&quot; =&gt; 1.0
&quot;rxn4&quot; =&gt; 1.0
</code></pre><h2 id="Writing-generic-model-modifications"><a class="docs-heading-anchor" href="#Writing-generic-model-modifications">Writing generic model modifications</a><a id="Writing-generic-model-modifications-1"></a><a class="docs-heading-anchor-permalink" href="#Writing-generic-model-modifications" title="Permalink"></a></h2><p>The custom model structure can also be made compatible with many of the existing variant-generating functions and analysis modifiers.</p><p>The functions prepared for use as &quot;variants&quot; in <a href="../../functions/analysis/#COBREXA.screen-Tuple"><code>screen</code></a>, usually prefixed by <code>with_</code>, have their generic variants that only call simpler, overloadable functions for each specific model. This choice is based on the overloading dispatch system of Julia. For example,<a href="../../functions/reconstruction/#COBREXA.with_removed_metabolites-Tuple"><code>with_removed_metabolites</code></a> is implemented very generically by reducing the problem to some specific <a href="../../functions/reconstruction/#COBREXA.remove_metabolites-Tuple{CoreModel, AbstractVector{Int64}}"><code>remove_metabolites</code></a> functions selected by the dispatch, as follows:</p><pre><code class="language-julia">with_removed_metabolites(args...; kwargs...) =
m -&gt; remove_metabolites(m, args...; kwargs...)</code></pre><p>To be able to use <a href="../../functions/reconstruction/#COBREXA.with_removed_metabolites-Tuple"><code>with_removed_metabolites</code></a> in your model, we can just overload the actual inner function. For the simple circular model, the modification might as well look like this:</p><pre><code class="language-julia">COBREXA.remove_metabolites(m::CircularModel, n::Int) =
return CircularModel(m.size - n)</code></pre><div class="admonition is-danger"><header class="admonition-header">Functions that generate model variants must be pure</header><div class="admonition-body"><p>Notice that the function is &quot;pure&quot;, i.e., does not make any in-place modifications to the original model structure. That property is required for <a href="../../functions/analysis/#COBREXA.screen-Tuple"><code>screen</code></a> and other functions to properly and predictably apply the modifications to the model. To expose potential in-place modifications to your codebase, you should instead overload the &quot;bang&quot; counterpart of remove metabolites, called <a href="../../functions/reconstruction/#COBREXA.remove_metabolites!-Tuple{CoreModel, AbstractVector{Int64}}"><code>remove_metabolites!</code></a>.</p></div></div></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../1_variants/">« Exploring many model variants</a><a class="docs-footer-nextpage" href="../../notebooks/">All notebooks »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Monday 16 May 2022 15:20">Monday 16 May 2022</span>. Using Julia version 1.7.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>All advanced tutorials · COBREXA.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL=".."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="../assets/documenter.js"></script><script src="../siteinfo.js"></script><script src="../../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="../assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="../assets/themeswap.js"></script><link href="../assets/favicon.ico" rel="icon" type="image/x-icon"/></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="../"><img class="docs-light-only" src="../assets/logo.svg" alt="COBREXA.jl logo"/><img class="docs-dark-only" src="../assets/logo-dark.svg" alt="COBREXA.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">COBREXA.jl</span></div><form class="docs-search" action="../search/"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="../">Home</a></li><li><span class="tocitem">User guide</span><ul><li><input class="collapse-toggle" id="menuitem-2-1" type="checkbox"/><label class="tocitem" for="menuitem-2-1"><span class="docs-label">Quickstart tutorials</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../tutorials/">All tutorials</a></li><li><a class="tocitem" href="../tutorials/1_loading/">Loading and converting model data</a></li><li><a class="tocitem" href="../tutorials/2_analysis/">Basic analysis of constraint-based models</a></li><li><a class="tocitem" href="../tutorials/3_hpc/">Distributed processing and HPC environments</a></li><li><a class="tocitem" href="../tutorials/4_modifying/">Modifying and saving the models</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-2" type="checkbox" checked/><label class="tocitem" for="menuitem-2-2"><span class="docs-label">Advanced tutorials</span><i class="docs-chevron"></i></label><ul class="collapsed"><li class="is-active"><a class="tocitem" href>All advanced tutorials</a></li><li><a class="tocitem" href="1_variants/">Exploring many model variants</a></li><li><a class="tocitem" href="2_custom_model/">Working with custom models</a></li></ul></li><li><input class="collapse-toggle" id="menuitem-2-3" type="checkbox"/><label class="tocitem" for="menuitem-2-3"><span class="docs-label">Examples and notebooks</span><i class="docs-chevron"></i></label><ul class="collapsed"><li><a class="tocitem" href="../notebooks/">All notebooks</a></li><li><a class="tocitem" href="../notebooks/1_loading_converting_saving/">Loading, converting, and saving models</a></li><li><a class="tocitem" href="../notebooks/2_finding_balance/">Finding balance and variability of constraint-based models</a></li><li><a class="tocitem" href="../notebooks/3_basic_stdmodel_usage/">Basic usage of <code>StandardModel</code></a></li><li><a class="tocitem" href="../notebooks/4_basic_core_coupled_usage/">Basic usage of <code>CoreModel</code> and <code>CoreModelCoupled</code></a></li><li><a class="tocitem" href="../notebooks/5_basic_stdmodel_construction/">Model construction and modification</a></li><li><a class="tocitem" href="../notebooks/6_screening/">Exploring model variants with <code>screen</code></a></li><li><a class="tocitem" href="../notebooks/7_community_model/">Building and analysing a small community model</a></li><li><a class="tocitem" href="../notebooks/8_custom_model/">Using a custom model data structure</a></li><li><a class="tocitem" href="../notebooks/9_max_min_driving_force_analysis/">Maximum-minimum driving force analysis</a></li></ul></li></ul></li><li><span class="tocitem">Types and functions</span><ul><li><a class="tocitem" href="../functions/">Contents</a></li><li><a class="tocitem" href="../functions/analysis/">Analysis functions</a></li><li><a class="tocitem" href="../functions/base/">Base functions</a></li><li><a class="tocitem" href="../functions/io/">Input and output</a></li><li><a class="tocitem" href="../functions/reconstruction/">Model construction functions</a></li><li><a class="tocitem" href="../functions/types/">Types</a></li><li><a class="tocitem" href="../functions/utils/">Utilities</a></li></ul></li><li><a class="tocitem" href="../howToContribute/">How to contribute</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li><a class="is-disabled">User guide</a></li><li><a class="is-disabled">Advanced tutorials</a></li><li class="is-active"><a href>All advanced tutorials</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>All advanced tutorials</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com/lcsb-biocore/COBREXA.jl/blob/master/docs/src/advanced.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h1 id="COBREXA-Advanced-tutorials"><a class="docs-heading-anchor" href="#COBREXA-Advanced-tutorials">COBREXA Advanced tutorials</a><a id="COBREXA-Advanced-tutorials-1"></a><a class="docs-heading-anchor-permalink" href="#COBREXA-Advanced-tutorials" title="Permalink"></a></h1><ul><li><a href="1_variants/#Exploring-many-model-variants">Exploring many model variants</a></li><ul><li><a href="1_variants/#Variant-specification">Variant specification</a></li><li><a href="1_variants/#Writing-custom-variant-functions">Writing custom variant functions</a></li><li><a href="1_variants/#Passing-extra-arguments-to-the-analysis-function">Passing extra arguments to the analysis function</a></li></ul><li><a href="2_custom_model/#Working-with-custom-models">Working with custom models</a></li><ul><li><a href="2_custom_model/#Writing-the-generic-accessors">Writing the generic accessors</a></li><li><a href="2_custom_model/#Writing-generic-model-modifications">Writing generic model modifications</a></li></ul></ul></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../tutorials/4_modifying/">« Modifying and saving the models</a><a class="docs-footer-nextpage" href="1_variants/">Exploring many model variants »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Monday 16 May 2022 15:20">Monday 16 May 2022</span>. Using Julia version 1.7.0.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
This diff is collapsed.
// Generated by Documenter.jl
requirejs.config({
paths: {
'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia.min',
'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/headroom.min',
'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min',
'highlight-yaml': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/yaml.min',
'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/contrib/auto-render.min',
'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min',
'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.10.3/jQuery.headroom.min',
'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min',
'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/highlight.min',
'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.10/languages/julia-repl.min',
},
shim: {
"highlight-julia": {
"deps": [
"highlight"
]
},
"highlight-yaml": {
"deps": [
"highlight"
]
},
"katex-auto-render": {
"deps": [
"katex"
]
},
"headroom-jquery": {
"deps": [
"jquery",
"headroom"
]
},
"highlight-julia-repl": {
"deps": [
"highlight"
]
}
}
});
////////////////////////////////////////////////////////////////////////////////
require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) {
$(document).ready(function() {
renderMathInElement(
document.body,
{
"delimiters": [
{
"left": "$",
"right": "$",
"display": false
},
{
"left": "$$",
"right": "$$",
"display": true
},
{
"left": "\\[",
"right": "\\]",
"display": true
}
]
}
);
})
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl', 'highlight-yaml'], function($, hljs) {
$(document).ready(function() {
hljs.initHighlighting();
})
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) {
// Manages the top navigation bar (hides it when the user starts scrolling down on the
// mobile).
window.Headroom = Headroom; // work around buggy module loading?
$(document).ready(function() {
$('#documenter .docs-navbar').headroom({
"tolerance": {"up": 10, "down": 10},
});
})
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery'], function($) {
// Modal settings dialog
$(document).ready(function() {
var settings = $('#documenter-settings');
$('#documenter-settings-button').click(function(){
settings.toggleClass('is-active');
});
// Close the dialog if X is clicked
$('#documenter-settings button.delete').click(function(){
settings.removeClass('is-active');
});
// Close dialog if ESC is pressed
$(document).keyup(function(e) {
if (e.keyCode == 27) settings.removeClass('is-active');
});
});
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery'], function($) {
// Manages the showing and hiding of the sidebar.
$(document).ready(function() {
var sidebar = $("#documenter > .docs-sidebar");
var sidebar_button = $("#documenter-sidebar-button")
sidebar_button.click(function(ev) {
ev.preventDefault();
sidebar.toggleClass('visible');
if (sidebar.hasClass('visible')) {
// Makes sure that the current menu item is visible in the sidebar.
$("#documenter .docs-menu a.is-active").focus();
}
});
$("#documenter > .docs-main").bind('click', function(ev) {
if ($(ev.target).is(sidebar_button)) {
return;
}
if (sidebar.hasClass('visible')) {
sidebar.removeClass('visible');
}
});
})
// Resizes the package name / sitename in the sidebar if it is too wide.
// Inspired by: https://github.com/davatron5000/FitText.js
$(document).ready(function() {
e = $("#documenter .docs-autofit");
function resize() {
var L = parseInt(e.css('max-width'), 10);
var L0 = e.width();
if(L0 > L) {
var h0 = parseInt(e.css('font-size'), 10);
e.css('font-size', L * h0 / L0);
// TODO: make sure it survives resizes?
}
}
// call once and then register events
resize();
$(window).resize(resize);
$(window).on('orientationchange', resize);
});
// Scroll the navigation bar to the currently selected menu item
$(document).ready(function() {
var sidebar = $("#documenter .docs-menu").get(0);
var active = $("#documenter .docs-menu .is-active").get(0);
if(typeof active !== 'undefined') {
sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15;
}
})
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery'], function($) {
function set_theme(theme) {
var active = null;
var disabled = [];
for (var i = 0; i < document.styleSheets.length; i++) {
var ss = document.styleSheets[i];
var themename = ss.ownerNode.getAttribute("data-theme-name");
if(themename === null) continue; // ignore non-theme stylesheets
// Find the active theme
if(themename === theme) active = ss;
else disabled.push(ss);
}
if(active !== null) {
active.disabled = false;
if(active.ownerNode.getAttribute("data-theme-primary") === null) {
document.getElementsByTagName('html')[0].className = "theme--" + theme;
} else {
document.getElementsByTagName('html')[0].className = "";
}
disabled.forEach(function(ss){
ss.disabled = true;
});
}
// Store the theme in localStorage
if(typeof(window.localStorage) !== "undefined") {
window.localStorage.setItem("documenter-theme", theme);
} else {
console.error("Browser does not support window.localStorage");
}
}
// Theme picker setup
$(document).ready(function() {
// onchange callback
$('#documenter-themepicker').change(function themepick_callback(ev){
var themename = $('#documenter-themepicker option:selected').attr('value');
set_theme(themename);
});
// Make sure that the themepicker displays the correct theme when the theme is retrieved
// from localStorage
if(typeof(window.localStorage) !== "undefined") {
var theme = window.localStorage.getItem("documenter-theme");
if(theme !== null) {
$('#documenter-themepicker option').each(function(i,e) {
e.selected = (e.value === theme);
})
} else {
$('#documenter-themepicker option').each(function(i,e) {
e.selected = $("html").hasClass(`theme--${e.value}`);
})
}
}
})
})
////////////////////////////////////////////////////////////////////////////////
require(['jquery'], function($) {
// update the version selector with info from the siteinfo.js and ../versions.js files
$(document).ready(function() {
var version_selector = $("#documenter .docs-version-selector");
var version_selector_select = $("#documenter .docs-version-selector select");
version_selector_select.change(function(x) {
target_href = version_selector_select.children("option:selected").get(0).value;
window.location.href = target_href;
});
// add the current version to the selector based on siteinfo.js, but only if the selector is empty
if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) {
var option = $("<option value='#' selected='selected'>" + DOCUMENTER_CURRENT_VERSION + "</option>");
version_selector_select.append(option);
}
if (typeof DOC_VERSIONS !== 'undefined') {
var existing_versions = version_selector_select.children("option");
var existing_versions_texts = existing_versions.map(function(i,x){return x.text});
DOC_VERSIONS.forEach(function(each) {
var version_url = documenterBaseURL + "/../" + each;
var existing_id = $.inArray(each, existing_versions_texts);
// if not already in the version selector, add it as a new option,
// otherwise update the old option with the URL and enable it
if (existing_id == -1) {
var option = $("<option value='" + version_url + "'>" + each + "</option>");
version_selector_select.append(option);
} else {
var option = existing_versions[existing_id];
option.value = version_url;
option.disabled = false;
}
});
}
// only show the version selector if the selector has been populated
if (version_selector_select.children("option").length > 0) {
version_selector.toggleClass("visible");
}
})
})
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 846.7653 134.2581">
<title>new-logo</title>
<g>
<g>
<path d="M22.9476,104.6873l-.52-.5606c.16.2055.3077.4139.47.619Z" style="fill: #fff"/>
<path d="M59.7065,65.0522c-5.46-6.5265-10.9443-13.0325-16.3856-19.5748-.6168-.7417-1.5189-1.3733-1.6189-2.2745,4.9229-1.53,8.0554.508,10.8311,4.3571,3.2147,4.4578,6.9649,8.5336,10.5386,12.7275,1.9831,2.3272,4.0991,2.57,5.8925.477,5.41-6.3128,10.7148-12.716,16.0117-19.1245a3.23,3.23,0,0,0-.527-5.0743c-1.7222-1.3311-3.4422-.9183-4.895.6321-.4621.4931-.8753,1.0324-1.31,1.5511-3.477,4.15-7.048,8.2267-10.3859,12.486-1.4024,1.7894-2.065,1.4794-3.3163-.0943-3.3691-4.2367-6.9889-8.2744-10.3477-12.5191A6.4994,6.4994,0,0,0,48.29,35.7946c-4.3439.2029-8.7046.0606-13.058.0383-1.8593-.01-3.7939-.1773-4.7822,1.8822-1.0176,2.1207.1792,3.6225,1.4853,5.1685,6.7378,7.9753,13.415,16.0014,20.1376,23.9892.8105.963,1.3179,1.6448.2418,2.9135C42.5784,81.2669,32.92,92.8139,22.9476,104.6873l4.86,5.2437Q43.7265,90.8345,59.75,71.8247C62.1394,68.9764,62.1285,67.9473,59.7065,65.0522Z" style="fill: #fff"/>
<path d="M22.8985,104.7457c-.1628-.2051-.3106-.4135-.47-.619l-.0888-.0959.0888.0959C12.1814,90.9519,8.0047,76.396,10.4188,60.0731c5.84-39.49,50.3276-60.7018,84.4288-40.1831,2.8187,1.696,3.9671,1.26,5.9-1.0425,1.8937-2.2559,1.2842-3.0736-.8492-4.3571C84.376,5.1511,67.7089,2.3334,50.2959,7.0381,26.9,13.3593,11.269,28.5207,5.0008,51.911-1.2553,75.2562,4.6283,96.0432,21.44,113.6083c1.4481,1.513,2.1615,1.3608,3.4671-.2086.9638-1.1589,1.9356-2.311,2.9007-3.4687l-4.86-5.2437Z" style="fill: #fff"/>
<g>
<path d="M110.9388,34.0574c-.1509-.2022-.2915-.3753-.4281-.5308Z" style="fill: #fff"/>
<path d="M129.534,62.6547c-1.4-15.6607-7.9424-28.8684-19.013-39.943-1.2578-1.2583-1.9139-.9924-2.9.2632-.921,1.1732-1.87,2.3243-2.8184,3.4762l5.7077,7.0755c.1366.1555.2772.3286.4281.5308,10.5686,14.17,14.2418,29.9968,10.2077,47.1319a56.35,56.35,0,0,1-83.28,36.0708c-3.8282-2.1814-3.7232-2.0831-6.6879,1.0909-1.58,1.6918-1.3387,2.4276.5373,3.6023,12.28,7.6891,25.5586,11.1822,40.0361,9.8383,19.4348-1.804,34.8737-10.7519,46.2745-26.4663C127.2385,92.6282,130.9311,78.286,129.534,62.6547Z" style="fill: #fff"/>
<path d="M100.25,31.9306Q86.6019,48.2941,72.951,64.655c-2.7652,3.3271-2.7563,4.267-.08,7.5243,2.5155,3.0618,5.1154,6.054,7.6575,9.0942,3.3839,4.0469,6.7476,8.11,10.2184,12.285-4.8861,1.57-7.8311-.219-10.46-3.8365-3.345-4.6031-7.1784-8.8584-10.9026-13.1762-2.1625-2.5073-4.1366-2.5012-6.3084.0367-5.2159,6.0954-10.3347,12.2741-15.49,18.4217a3.5477,3.5477,0,0,0-.2684,4.7734c1.0743,1.4726,2.6316,1.5243,4.1986,1.1083,1.0773-.2857,1.6708-1.2781,2.3489-2.0852,3.5454-4.2183,7.147-8.3934,10.566-12.7127,1.3052-1.6489,1.9932-2.0946,3.51-.1444,3.4376,4.4218,7.1407,8.6366,10.72,12.9488.875,1.0543,1.705,2.1548,3.2511,2.1574,5.8045.01,11.6113.0988,17.4127-.0376a3.24,3.24,0,0,0,2.7989-4.8091,12.4815,12.4815,0,0,0-1.8566-2.5727Q90.5786,82.0727,80.8443,70.5541c-1.1532-1.3581-1.4968-2.4177-.1929-3.9632Q94.3948,50.2992,107.9828,33.877c1.1044-1.3357,1.7207-1.27,2.5279-.35l-5.7077-7.0755Q102.5389,29.2011,100.25,31.9306Z" style="fill: #fff"/>
</g>
</g>
<g style="isolation: isolate">
<g style="isolation: isolate">
<path d="M237.3562,96.3639a47.7656,47.7656,0,0,1-22.4785,5.1123,44.5119,44.5119,0,0,1-17.1709-3.4737A47.66,47.66,0,0,1,172.0174,72.64a50.2743,50.2743,0,0,1-4.0635-20.5791,52.7625,52.7625,0,0,1,3.5391-19.3984,48.4194,48.4194,0,0,1,9.83-15.7285A45.1333,45.1333,0,0,1,196.3308,6.4479a47.2024,47.2024,0,0,1,19.0713-3.8008q12.9756,0,21.2989,4.0635A42.8638,42.8638,0,0,1,250.7918,17.59l-9.6992,8.65A36.4858,36.4858,0,0,0,229.82,18.31a34.2769,34.2769,0,0,0-14.1563-2.8184,33.5991,33.5991,0,0,0-13.1728,2.6221,33.218,33.218,0,0,0-10.8789,7.34,34.14,34.14,0,0,0-7.34,11.4033,39.7336,39.7336,0,0,0-2.6865,14.9424,38.62,38.62,0,0,0,3.1455,16.1875,35.8136,35.8136,0,0,0,8.0606,11.4688,33.4053,33.4053,0,0,0,10.8789,6.8808,31.8757,31.8757,0,0,0,11.4687,2.294,38.4139,38.4139,0,0,0,14.418-3.0147,35.4947,35.4947,0,0,0,13.6318-10.2236l9.4375,8.1269A42.4632,42.4632,0,0,1,237.3562,96.3639Z" style="fill: #fff"/>
<path d="M357.7459,52.0611A48.7035,48.7035,0,0,1,353.88,71.526a50.3454,50.3454,0,0,1-10.4864,15.6631,48.4061,48.4061,0,0,1-34.5371,14.2871A49.541,49.541,0,0,1,273.991,87.4508a46.9547,46.9547,0,0,1-10.4863-15.6631,51.3718,51.3718,0,0,1-3.8008-19.9883,50.9375,50.9375,0,0,1,3.67-19.4638A47.923,47.923,0,0,1,273.532,16.7379a46.4358,46.4358,0,0,1,15.4-10.3555A49.3408,49.3408,0,0,1,308.201,2.6471a52.1257,52.1257,0,0,1,20.25,3.8008,46.309,46.309,0,0,1,15.5976,10.4863,47.6582,47.6582,0,0,1,10.0928,15.7285A51.9294,51.9294,0,0,1,357.7459,52.0611Zm-13.6319-.5244a38.6424,38.6424,0,0,0-2.621-14.3515,33.7382,33.7382,0,0,0-7.34-11.4034,34.1226,34.1226,0,0,0-11.3379-7.5371,37.3614,37.3614,0,0,0-14.4834-2.7529A36.0409,36.0409,0,0,0,294.11,18.2447a32.9751,32.9751,0,0,0-11.0752,7.5371,33.7634,33.7634,0,0,0-7.1435,11.4688,40.3994,40.3994,0,0,0-2.5557,14.5488,37.1282,37.1282,0,0,0,2.8828,14.7451,36.6479,36.6479,0,0,0,7.7989,11.6661,35.872,35.872,0,0,0,11.3379,7.6679,33.914,33.914,0,0,0,13.5009,2.752,35.6784,35.6784,0,0,0,13.4346-2.5557,33.23,33.23,0,0,0,11.207-7.4053,36.3015,36.3015,0,0,0,7.7334-11.666A39.383,39.383,0,0,0,344.114,51.5367Z" style="fill: #fff"/>
<path d="M431.6707,73.9059a27.4486,27.4486,0,0,1-1.6377,9.124,23.4666,23.4666,0,0,1-5.1777,8.4043,26.5361,26.5361,0,0,1-9.1748,6.1055,34.8038,34.8038,0,0,1-13.501,2.3632H373.4744V4.22h25.2969a33.91,33.91,0,0,1,11.1416,1.7676,26.3088,26.3088,0,0,1,8.8476,5.0352,22.3892,22.3892,0,0,1,5.7666,7.8505,24.8984,24.8984,0,0,1,2.0323,10.2051q0,8.2426-3.212,13.6074a25.3682,25.3682,0,0,1-7.7988,8.3721,18.9326,18.9326,0,0,1,5.6367,2.8242,25.62,25.62,0,0,1,5.2432,4.9883,24.9167,24.9167,0,0,1,3.8008,6.7627A23.2083,23.2083,0,0,1,431.6707,73.9059ZM412.9275,30.1852q0-6.3663-4.1289-9.9395t-12.2549-3.5742h-9.9619V46.6871h8.7822a22.062,22.062,0,0,0,8.7813-1.4922,14.4281,14.4281,0,0,0,5.374-3.834,12.8559,12.8559,0,0,0,2.6875-5.2617A24.6672,24.6672,0,0,0,412.9275,30.1852ZM418.04,72.8385a12.49,12.49,0,0,0-4.3261-9.9795q-4.3243-3.7178-11.6651-3.72H386.5818V87.4508h14.1563q8.9121,0,13.1074-3.98Q418.0379,79.4942,418.04,72.8385Z" style="fill: #fff"/>
<path d="M498.6492,99.9029l-38.667-44.6953V99.9029H446.8748V4.22h30.9336a31.7321,31.7321,0,0,1,12.124,2.2276,28.7946,28.7946,0,0,1,9.3721,6.0957,26.674,26.674,0,0,1,6.0293,8.9785,28.408,28.408,0,0,1,2.0967,10.8789,26.0136,26.0136,0,0,1-2.2286,10.748,28.3017,28.3017,0,0,1-6.0293,8.7158,28.0128,28.0128,0,0,1-8.7158,5.8331,25.95,25.95,0,0,1-10.289,2.0966l35.2578,40.1084Zm-4.8506-67.957a13.435,13.435,0,0,0-1.1133-5.1572,14.66,14.66,0,0,0-3.4082-4.8946,19.3171,19.3171,0,0,0-5.7021-3.7207,20.0725,20.0725,0,0,0-8.126-1.5019H459.9822V49.44h15.2041q8.9121,0,13.7627-4.8945A17.1446,17.1446,0,0,0,493.7986,31.9459Z" style="fill: #fff"/>
<path d="M526.8269,99.9029V4.22h53.4776V16.6715h-40.37V46.95h39.4531V59.402H539.9344V87.4508h42.8613V99.9029Z" style="fill: #fff"/>
<path d="M659.865,99.9029,638.5008,67.2662q-.6577-.9154-1.3116-2.0322-.6562-1.1118-1.3105-2.1621-.6577-1.1806-1.4414-2.49a23.1,23.1,0,0,0-1.4424,2.49q-.6562,1.05-1.4414,2.2275-.7866,1.1807-1.4414,2.2285l-21.2344,32.375H593.6736L626.8347,49.44l-29.36-45.22h16.1221l18.3506,28.3115c.3476.6123.7207,1.2022,1.1142,1.77q.5889.8539.9824,1.5068a10.7444,10.7444,0,0,1,.918,1.7041q.3926-.7866.917-1.7041a13.6438,13.6438,0,0,1,.9834-1.6377c.3935-.5674.8066-1.2,1.2451-1.9014L656.5887,4.22h15.0732L642.4324,48.7848l33.293,51.1181Z" style="fill: #fff"/>
<path d="M750.4344,99.9029,738.9,68.97H708.36L696.826,99.9029H682.9314L719.6326,4.22h8.3887l36.9619,95.6826ZM724.35,29.7789a2.0064,2.0064,0,0,1-.3272-.8516,5.14,5.14,0,0,0-.1963-.8525c-.0888-.3476-.1767-.6553-.2627-.917-.0879.2617-.1757.5694-.2617.917a4.6993,4.6993,0,0,0-.1972.8525,2.4814,2.4814,0,0,1-.1963.7208l-9.9619,26.87h21.3652Z" style="fill: #fff"/>
<path d="M774.6814,99.9029V85.485h13.6319V99.9029Z" style="fill: #fff"/>
<path d="M813.2654,115.566a13.7725,13.7725,0,0,1-3.84,4.7188,13.3881,13.3881,0,0,1-5.1631,2.4248,24.357,24.357,0,0,1-5.4649.6552q-2.2295,0-3.2763-.0654a19.6425,19.6425,0,0,1-3.1455-.59V111.9615q2.6235.2609,3.4072.3282a13.9945,13.9945,0,0,0,2.2285-.0655,7.2755,7.2755,0,0,0,1.2451-.1318,5.1966,5.1966,0,0,0,1.376-.458,2.7429,2.7429,0,0,0,1.1143-1.1143,4.4647,4.4647,0,0,0,.4589-2.2285V45.3766h12.583V108.03A16.3743,16.3743,0,0,1,813.2654,115.566Zm-11.06-82.6406V17.8512h12.583V32.9254Z" style="fill: #fff"/>
<path d="M830.3855,99.9029V4.22h12.583V99.9029Z" style="fill: #fff"/>
</g>
</g>
<line x1="168.9443" y1="126.2149" x2="492.3165" y2="126.2149" style="fill: #fff;stroke: #fff;stroke-width: 8px"/>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 846.7653 134.2581">
<title>new-logo</title>
<rect y="-230.8359" width="1200.7789" height="359.3167" style="fill: none"/>
<g>
<g>
<path d="M22.9476,104.6873l-.52-.5606c.16.2055.3077.4139.47.619Z" style="fill: none"/>
<path d="M59.7065,65.0522c-5.46-6.5265-10.9443-13.0325-16.3856-19.5748-.6168-.7417-1.5189-1.3733-1.6189-2.2745,4.9229-1.53,8.0554.508,10.8311,4.3571,3.2147,4.4578,6.9649,8.5336,10.5386,12.7275,1.9831,2.3272,4.0991,2.57,5.8925.477,5.41-6.3128,10.7148-12.716,16.0117-19.1245a3.23,3.23,0,0,0-.527-5.0743c-1.7222-1.3311-3.4422-.9183-4.895.6321-.4621.4931-.8753,1.0324-1.31,1.5511-3.477,4.15-7.048,8.2267-10.3859,12.486-1.4024,1.7894-2.065,1.4794-3.3163-.0943-3.3691-4.2367-6.9889-8.2744-10.3477-12.5191A6.4994,6.4994,0,0,0,48.29,35.7946c-4.3439.2029-8.7046.0606-13.058.0383-1.8593-.01-3.7939-.1773-4.7822,1.8822-1.0176,2.1207.1792,3.6225,1.4853,5.1685,6.7378,7.9753,13.415,16.0014,20.1376,23.9892.8105.963,1.3179,1.6448.2418,2.9135C42.5784,81.2669,32.92,92.8139,22.9476,104.6873l4.86,5.2437Q43.7265,90.8345,59.75,71.8247C62.1394,68.9764,62.1285,67.9473,59.7065,65.0522Z" style="fill: #b0b2b0"/>
<path d="M22.8985,104.7457c-.1628-.2051-.3106-.4135-.47-.619l-.0888-.0959.0888.0959C12.1814,90.9519,8.0047,76.396,10.4188,60.0731c5.84-39.49,50.3276-60.7018,84.4288-40.1831,2.8187,1.696,3.9671,1.26,5.9-1.0425,1.8937-2.2559,1.2842-3.0736-.8492-4.3571C84.376,5.1511,67.7089,2.3334,50.2959,7.0381,26.9,13.3593,11.269,28.5207,5.0008,51.911-1.2553,75.2562,4.6283,96.0432,21.44,113.6083c1.4481,1.513,2.1615,1.3608,3.4671-.2086.9638-1.1589,1.9356-2.311,2.9007-3.4687l-4.86-5.2437Z" style="fill: #707175"/>
<g>
<path d="M110.9388,34.0574c-.1509-.2022-.2915-.3753-.4281-.5308Z" style="fill: none"/>
<path d="M129.534,62.6547c-1.4-15.6607-7.9424-28.8684-19.013-39.943-1.2578-1.2583-1.9139-.9924-2.9.2632-.921,1.1732-1.87,2.3243-2.8184,3.4762l5.7077,7.0755c.1366.1555.2772.3286.4281.5308,10.5686,14.17,14.2418,29.9968,10.2077,47.1319a56.35,56.35,0,0,1-83.28,36.0708c-3.8282-2.1814-3.7232-2.0831-6.6879,1.0909-1.58,1.6918-1.3387,2.4276.5373,3.6023,12.28,7.6891,25.5586,11.1822,40.0361,9.8383,19.4348-1.804,34.8737-10.7519,46.2745-26.4663C127.2385,92.6282,130.9311,78.286,129.534,62.6547Z" style="fill: #293078"/>
<path d="M100.25,31.9306Q86.6019,48.2941,72.951,64.655c-2.7652,3.3271-2.7563,4.267-.08,7.5243,2.5155,3.0618,5.1154,6.054,7.6575,9.0942,3.3839,4.0469,6.7476,8.11,10.2184,12.285-4.8861,1.57-7.8311-.219-10.46-3.8365-3.345-4.6031-7.1784-8.8584-10.9026-13.1762-2.1625-2.5073-4.1366-2.5012-6.3084.0367-5.2159,6.0954-10.3347,12.2741-15.49,18.4217a3.5477,3.5477,0,0,0-.2684,4.7734c1.0743,1.4726,2.6316,1.5243,4.1986,1.1083,1.0773-.2857,1.6708-1.2781,2.3489-2.0852,3.5454-4.2183,7.147-8.3934,10.566-12.7127,1.3052-1.6489,1.9932-2.0946,3.51-.1444,3.4376,4.4218,7.1407,8.6366,10.72,12.9488.875,1.0543,1.705,2.1548,3.2511,2.1574,5.8045.01,11.6113.0988,17.4127-.0376a3.24,3.24,0,0,0,2.7989-4.8091,12.4815,12.4815,0,0,0-1.8566-2.5727Q90.5786,82.0727,80.8443,70.5541c-1.1532-1.3581-1.4968-2.4177-.1929-3.9632Q94.3948,50.2992,107.9828,33.877c1.1044-1.3357,1.7207-1.27,2.5279-.35l-5.7077-7.0755Q102.5389,29.2011,100.25,31.9306Z" style="fill: #1ab5e9"/>
</g>
</g>
<g style="isolation: isolate">
<g style="isolation: isolate">
<path d="M237.3556,96.3639a47.766,47.766,0,0,1-22.4786,5.1123,44.5131,44.5131,0,0,1-17.1708-3.4736,47.66,47.66,0,0,1-25.69-25.3623,50.2747,50.2747,0,0,1-4.0635-20.5791,52.7626,52.7626,0,0,1,3.5391-19.3985,48.4207,48.4207,0,0,1,9.83-15.7285A45.1323,45.1323,0,0,1,196.33,6.4479a47.2021,47.2021,0,0,1,19.0713-3.8008q12.9756,0,21.2988,4.0635A42.8652,42.8652,0,0,1,250.7911,17.59l-9.6992,8.65a36.4849,36.4849,0,0,0-11.2725-7.93,34.2784,34.2784,0,0,0-14.1562-2.8184A33.6,33.6,0,0,0,202.49,18.1139a33.219,33.219,0,0,0-10.8789,7.34,34.1389,34.1389,0,0,0-7.34,11.4034,39.7311,39.7311,0,0,0-2.6865,14.9423,38.6183,38.6183,0,0,0,3.1455,16.1875,35.8119,35.8119,0,0,0,8.06,11.4688A33.4077,33.4077,0,0,0,203.67,86.3366a31.8777,31.8777,0,0,0,11.4688,2.2939,38.4132,38.4132,0,0,0,14.4179-3.0146,35.4935,35.4935,0,0,0,13.6319-10.2237l9.4375,8.127A42.464,42.464,0,0,1,237.3556,96.3639Z" style="fill: #6e6f72"/>
<path d="M357.7452,52.0612A48.7013,48.7013,0,0,1,353.879,71.526a50.3456,50.3456,0,0,1-10.4863,15.6631,48.4065,48.4065,0,0,1-34.5371,14.2871A49.54,49.54,0,0,1,273.99,87.4508,46.9547,46.9547,0,0,1,263.504,71.7877a51.371,51.371,0,0,1-3.8008-19.9883,50.9394,50.9394,0,0,1,3.67-19.4638,47.9262,47.9262,0,0,1,10.1582-15.5977,46.435,46.435,0,0,1,15.4-10.3554A49.339,49.339,0,0,1,308.2,2.6471a52.125,52.125,0,0,1,20.25,3.8008,46.307,46.307,0,0,1,15.5976,10.4863,47.6592,47.6592,0,0,1,10.0928,15.7285A51.9275,51.9275,0,0,1,357.7452,52.0612Zm-13.6318-.5244a38.6413,38.6413,0,0,0-2.6211-14.3516,33.7353,33.7353,0,0,0-7.34-11.4033,34.1186,34.1186,0,0,0-11.3379-7.5371,37.36,37.36,0,0,0-14.4833-2.753,36.0388,36.0388,0,0,0-14.2217,2.753,32.9712,32.9712,0,0,0-11.0752,7.5371,33.7607,33.7607,0,0,0-7.1436,11.4687,40.4,40.4,0,0,0-2.5556,14.5488,37.1273,37.1273,0,0,0,2.8828,14.7452,36.6483,36.6483,0,0,0,7.7988,11.666,35.8731,35.8731,0,0,0,11.3379,7.6679,33.9145,33.9145,0,0,0,13.501,2.752A35.6779,35.6779,0,0,0,322.29,86.0748,33.2307,33.2307,0,0,0,333.4972,78.67a36.3052,36.3052,0,0,0,7.7334-11.6661A39.3825,39.3825,0,0,0,344.1134,51.5368Z" style="fill: #6e6f72"/>
<path d="M431.67,73.9059a27.4486,27.4486,0,0,1-1.6377,9.124,23.4629,23.4629,0,0,1-5.1777,8.4043A26.5361,26.5361,0,0,1,415.68,97.54a34.8034,34.8034,0,0,1-13.501,2.3633H373.4737V4.22h25.2969a33.9091,33.9091,0,0,1,11.1416,1.7676,26.312,26.312,0,0,1,8.8477,5.0352,22.3911,22.3911,0,0,1,5.7666,7.8506,24.8979,24.8979,0,0,1,2.0322,10.205q0,8.2428-3.2119,13.6075a25.3661,25.3661,0,0,1-7.7989,8.372,18.9323,18.9323,0,0,1,5.6368,2.8243,25.6161,25.6161,0,0,1,5.2431,4.9882,24.9182,24.9182,0,0,1,3.8008,6.7627A23.2065,23.2065,0,0,1,431.67,73.9059ZM412.9269,30.1852q0-6.3663-4.129-9.9395t-12.2548-3.5742h-9.9619V46.6871h8.7822a22.0616,22.0616,0,0,0,8.7812-1.4921,14.43,14.43,0,0,0,5.3741-3.834,12.8577,12.8577,0,0,0,2.6875-5.2617A24.6736,24.6736,0,0,0,412.9269,30.1852Zm5.1123,42.6533a12.49,12.49,0,0,0-4.3262-9.9795q-4.3242-3.7178-11.6651-3.72H386.5812V87.4508h14.1562q8.9121,0,13.1074-3.98Q418.0372,79.4944,418.0392,72.8385Z" style="fill: #6e6f72"/>
<path d="M498.6485,99.903l-38.667-44.6954V99.903H446.8741V4.22h30.9336a31.7318,31.7318,0,0,1,12.124,2.2276,28.7946,28.7946,0,0,1,9.3721,6.0957,26.674,26.674,0,0,1,6.0293,8.9785A28.408,28.408,0,0,1,507.43,32.401a26.0159,26.0159,0,0,1-2.2285,10.7481,28.3057,28.3057,0,0,1-6.0293,8.7158,28.0165,28.0165,0,0,1-8.7158,5.833,25.9513,25.9513,0,0,1-10.2891,2.0967L515.4249,99.903Zm-4.8506-67.9571a13.4347,13.4347,0,0,0-1.1132-5.1572,14.6618,14.6618,0,0,0-3.4082-4.8945,19.317,19.317,0,0,0-5.7022-3.7207,20.0721,20.0721,0,0,0-8.126-1.502H459.9815V49.44h15.2041q8.9121,0,13.7627-4.8946A17.1442,17.1442,0,0,0,493.7979,31.9459Z" style="fill: #6e6f72"/>
<path d="M526.8263,99.903V4.22h53.4775V16.6715h-40.37V46.95h39.4531V59.402H539.9337V87.4508H582.795V99.903Z" style="fill: #6e6f72"/>
<path d="M659.8644,99.903,638.5,67.2662q-.6577-.9154-1.3115-2.0322-.6562-1.1118-1.3106-2.1621-.6578-1.1806-1.4414-2.49a23.1156,23.1156,0,0,0-1.4424,2.49q-.6562,1.05-1.4414,2.2275-.7866,1.1808-1.4414,2.2286L608.877,99.903H593.6729L626.8341,49.44l-29.36-45.22h16.1221l18.3506,28.3116c.3476.6123.7207,1.2021,1.1142,1.77q.5889.8539.9825,1.5068a10.7521,10.7521,0,0,1,.9179,1.7041q.3927-.7866.917-1.7041a13.6648,13.6648,0,0,1,.9834-1.6377c.3936-.5673.8067-1.2,1.2451-1.9013L656.588,4.22h15.0732l-29.23,44.5645,33.293,51.1182Z" style="fill: #6e6f72"/>
<path d="M750.4337,99.903,738.9,68.97H708.36L696.8253,99.903H682.9308L719.6319,4.22h8.3887L764.9825,99.903ZM724.35,29.7789a2.005,2.005,0,0,1-.3271-.8515,5.1593,5.1593,0,0,0-.1963-.8526c-.0889-.3476-.1768-.6552-.2627-.917-.0879.2618-.1758.5694-.2617.917a4.6984,4.6984,0,0,0-.1973.8526,2.4774,2.4774,0,0,1-.1963.7207l-9.9619,26.87h21.3652Z" style="fill: #6e6f72"/>
<path d="M774.6808,99.903V85.485h13.6318V99.903Z" style="fill: #6e6f72"/>
<path d="M813.2647,115.566a13.7716,13.7716,0,0,1-3.84,4.7188,13.3881,13.3881,0,0,1-5.1631,2.4248,24.3571,24.3571,0,0,1-5.4648.6553q-2.23,0-3.2764-.0655a19.631,19.631,0,0,1-3.1455-.59v-10.748q2.6235.2607,3.4072.3281a14.0041,14.0041,0,0,0,2.2285-.0654,7.2677,7.2677,0,0,0,1.2452-.1319,5.1972,5.1972,0,0,0,1.3759-.458,2.7417,2.7417,0,0,0,1.1143-1.1143,4.4633,4.4633,0,0,0,.459-2.2285V45.3766h12.583V108.03A16.3729,16.3729,0,0,1,813.2647,115.566ZM802.2052,32.9254V17.8512h12.583V32.9254Z" style="fill: #6e6f72"/>
<path d="M830.3849,99.903V4.22h12.583V99.903Z" style="fill: #6e6f72"/>
</g>
</g>
<line x1="168.9443" y1="126.2149" x2="492.3165" y2="126.2149" style="fill: none;stroke: #6e6f72;stroke-width: 8px"/>
</g>
</svg>
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="svg2"
xml:space="preserve"
width="65.818382"
height="64"
viewBox="0 0 65.818382 64"
sodipodi:docname="lcsb.svg"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
id="metadata8"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1166"
id="namedview4"
showgrid="false"
inkscape:zoom="3.1081068"
inkscape:cx="38.608712"
inkscape:cy="40.700017"
inkscape:window-x="0"
inkscape:window-y="2194"
inkscape:window-maximized="1"
inkscape:current-layer="g10"
inkscape:pagecheckerboard="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="lcsb"
transform="scale(1.3333333)"><path
d="m 11.374279,26.438966 c 1.409096,0 2.55128,1.141658 2.55128,2.548522 0,1.406864 -1.142184,2.548522 -2.55128,2.548522 -1.4112257,0 -2.5505702,-1.141658 -2.5505702,-2.548522 0,-1.406864 1.1393445,-2.548522 2.5505702,-2.548522"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path14" /><path
d="m 11.42468,35.862257 c 1.16135,0 2.10477,0.941691 2.10477,2.102495 0.0021,1.160805 -0.94058,2.102496 -2.10477,2.102496 -1.162061,0 -2.1047707,-0.938855 -2.1047707,-2.102496 0,-1.160804 0.9427097,-2.102495 2.1047707,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path16" /><path
d="m 11.394155,44.521134 c 0.951229,0 1.724279,0.772924 1.724279,1.72596 0,0.952328 -0.770211,1.725252 -1.724279,1.725252 -0.954068,0 -1.7278282,-0.772924 -1.7278282,-1.725252 0,-0.953036 0.7737602,-1.72596 1.7278282,-1.72596"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path18" /><path
d="m 2.5512799,26.438966 c 1.408386,0 2.5512799,1.141658 2.5512799,2.548522 0,1.406864 -1.1428939,2.548522 -2.5512799,2.548522 C 1.142184,31.53601 0,30.394352 0,28.987488 0,27.580624 1.142184,26.438966 2.5512799,26.438966"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path20" /><path
d="m 2.5704465,35.862257 c 1.1620604,0 2.1047704,0.941691 2.1047704,2.102495 0,1.160805 -0.94271,2.102496 -2.1047704,2.102496 -1.1649,0 -2.10477048,-0.938855 -2.10477048,-2.102496 0,-1.160804 0.93987048,-2.102495 2.10477048,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path22" /><path
d="m 2.5704465,44.521134 c 0.9540679,0 1.7278283,0.772924 1.7278283,1.72596 0,0.952328 -0.7737604,1.725252 -1.7278283,1.725252 -0.954068,0 -1.72711858,-0.772924 -1.72711858,-1.725252 0,-0.953036 0.77305058,-1.72596 1.72711858,-1.72596"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path24" /><path
d="m 20.247679,35.862257 c 1.16206,0 2.10477,0.941691 2.10477,2.102495 0,1.160805 -0.94271,2.102496 -2.10477,2.102496 -1.164191,0 -2.1069,-0.938855 -2.1069,-2.102496 0,-1.160804 0.942709,-2.102495 2.1069,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path26" /><path
d="m 20.286722,44.521134 c 0.954068,0 1.727828,0.772924 1.727828,1.72596 0,0.952328 -0.77376,1.725252 -1.727828,1.725252 -0.954068,0 -1.727119,-0.772924 -1.727119,-1.725252 0,-0.953036 0.773051,-1.72596 1.727119,-1.72596"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path28" /><path
d="m 29.107591,35.862257 c 1.164899,0 2.107609,0.941691 2.107609,2.102495 0,1.160805 -0.94271,2.102496 -2.107609,2.102496 -1.16206,0 -2.10477,-0.938855 -2.10477,-2.102496 0,-1.160804 0.94271,-2.102495 2.10477,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path30" /><path
d="m 29.096233,44.521134 c 0.954068,0 1.727828,0.772924 1.727828,1.72596 0,0.952328 -0.77376,1.725252 -1.727828,1.725252 -0.953358,0 -1.727119,-0.772924 -1.727119,-1.725252 0,-0.953036 0.773761,-1.72596 1.727119,-1.72596"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path32" /><path
d="m 37.941948,35.862257 c 1.1649,0 2.10761,0.941691 2.10761,2.102495 0,1.160805 -0.94271,2.102496 -2.10761,2.102496 -1.162061,0 -2.104771,-0.938855 -2.104771,-2.102496 0,-1.160804 0.94271,-2.102495 2.104771,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path34" /><path
d="m 37.917102,44.521134 c 0.954068,0 1.727829,0.772924 1.727829,1.72596 0,0.952328 -0.773761,1.725252 -1.727829,1.725252 -0.954068,0 -1.724989,-0.772924 -1.724989,-1.725252 0,-0.953036 0.770921,-1.72596 1.724989,-1.72596"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path36" /><path
d="m 46.784822,35.862257 c 1.164901,0 2.107611,0.941691 2.107611,2.102495 0,1.160805 -0.94271,2.102496 -2.107611,2.102496 -1.161349,0 -2.104769,-0.938855 -2.104769,-2.102496 0,-1.160804 0.94342,-2.102495 2.104769,-2.102495"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path38" /><path
d="m 46.799021,44.551626 c 0.954067,0 1.727118,0.770087 1.727118,1.723124 0,0.953036 -0.773051,1.725251 -1.727118,1.725251 -0.954068,0 -1.727829,-0.772215 -1.727829,-1.725251 0,-0.953037 0.773761,-1.723124 1.727829,-1.723124"
style="fill:#00a4e1;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path40" /><path
d="m 37.925621,21.558199 c -1.409096,0 -2.55128,-1.14095 -2.55128,-2.547813 0,-1.407573 1.142184,-2.548522 2.55128,-2.548522 1.408386,0 2.55128,1.140949 2.55128,2.548522 0,1.406863 -1.142894,2.547813 -2.55128,2.547813"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path42" /><path
d="m 37.87522,12.137744 c -1.164191,0 -2.106901,-0.941691 -2.106901,-2.105332 0,-1.1600947 0.94271,-2.1017861 2.106901,-2.1017861 1.16206,0 2.10477,0.9416914 2.10477,2.1017861 0,1.163641 -0.94271,2.105332 -2.10477,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path44" /><path
d="m 37.905744,3.4760309 c -0.953358,0 -1.727118,-0.7729241 -1.727118,-1.7252516 0,-0.95303659 0.770921,-1.72596063 1.727118,-1.72596063 0.951229,0 1.724989,0.77292404 1.724989,1.72596063 0,0.9523275 -0.770921,1.7252516 -1.724989,1.7252516"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path46" /><path
d="m 46.743651,21.558199 c -1.409097,0 -2.55412,-1.14095 -2.55412,-2.547813 0,-1.407573 1.142184,-2.548522 2.55128,-2.548522 1.411226,0 2.55341,1.140949 2.55341,2.548522 0,1.406863 -1.142184,2.547813 -2.55057,2.547813"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path48" /><path
d="m 46.723774,12.137744 c -1.164191,0 -2.106901,-0.941691 -2.106901,-2.105332 0,-1.1600947 0.94271,-2.1017861 2.106901,-2.1017861 1.162061,0 2.104771,0.9416914 2.104771,2.1017861 0,1.163641 -0.94271,2.105332 -2.104771,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path50" /><path
d="m 46.726614,3.4760309 c -0.954068,0 -1.727119,-0.7729241 -1.727119,-1.7252516 0,-0.95303659 0.773051,-1.72596063 1.727119,-1.72596063 0.954068,0 1.727828,0.77292404 1.727828,1.72596063 0,0.9523275 -0.77376,1.7252516 -1.727828,1.7252516"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path52" /><path
d="m 29.021696,21.558199 c -1.409095,0 -2.551279,-1.14095 -2.551279,-2.547813 0,-1.407573 1.142184,-2.548522 2.551279,-2.548522 1.411226,0 2.55128,1.140949 2.55128,2.548522 0,1.406863 -1.140054,2.547813 -2.55128,2.547813"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path54" /><path
d="m 29.052221,12.137744 c -1.162061,0 -2.104771,-0.941691 -2.104771,-2.105332 0,-1.1600947 0.94271,-2.1017861 2.104771,-2.1017861 1.16419,0 2.10761,0.9416914 2.10761,2.1017861 0,1.163641 -0.94342,2.105332 -2.10761,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path56" /><path
d="m 29.010338,3.4760309 c -0.954067,0 -1.727119,-0.7729241 -1.727119,-1.7252516 0,-0.95303659 0.773052,-1.72596063 1.727119,-1.72596063 0.954068,0 1.727829,0.77292404 1.727829,1.72596063 0,0.9523275 -0.773761,1.7252516 -1.727829,1.7252516"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path58" /><path
d="m 20.237031,21.558199 c -1.409096,0 -2.55128,-1.14095 -2.55128,-2.547813 0,-1.407573 1.142184,-2.548522 2.55128,-2.548522 1.408386,0 2.55128,1.140949 2.55128,2.548522 0,1.406863 -1.142894,2.547813 -2.55128,2.547813"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path60" /><path
d="m 20.192309,12.137744 c -1.161352,0 -2.104771,-0.941691 -2.1069,-2.105332 0,-1.1600947 0.94271,-2.1017861 2.1069,-2.1017861 1.16206,0 2.10477,0.9416914 2.10477,2.1017861 0,1.163641 -0.94271,2.105332 -2.10477,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path62" /><path
d="m 20.200827,3.4760309 c -0.954068,0 -1.727828,-0.7729241 -1.727828,-1.7252516 0,-0.95303659 0.77376,-1.72596063 1.727828,-1.72596063 0.954068,0 1.727829,0.77292404 1.727829,1.72596063 0,0.9523275 -0.773761,1.7252516 -1.727829,1.7252516"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path64" /><path
d="m 11.416161,21.561036 c -1.408386,0 -2.5512796,-1.14095 -2.5512796,-2.55065 0,-1.407573 1.1428936,-2.548522 2.5512796,-2.548522 1.408386,0 2.55128,1.140949 2.55128,2.548522 0,1.406863 -1.142894,2.55065 -2.55128,2.55065"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path66" /><path
d="m 11.349433,12.137744 c -1.16135,0 -2.1047701,-0.941691 -2.1047701,-2.105332 0,-1.1600947 0.9434201,-2.1017861 2.1047701,-2.1017861 1.1649,0 2.10761,0.9416914 2.10761,2.1017861 0,1.163641 -0.94271,2.105332 -2.10761,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path68" /><path
d="m 11.379958,3.4760309 c -0.953358,0 -1.7271187,-0.7729241 -1.7271187,-1.7252516 0,-0.95303659 0.7737607,-1.72596063 1.7271187,-1.72596063 0.954068,0 1.724989,0.77292404 1.724989,1.72596063 0.0028,0.9523275 -0.770921,1.7252516 -1.724989,1.7252516"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path70" /><path
d="m 2.5590885,16.406554 c 1.4090959,0 2.5512799,1.140949 2.5512799,2.547812 0,1.407574 -1.142184,2.548523 -2.5512799,2.548523 -1.408386,0 -2.55057004,-1.140949 -2.55057004,-2.548523 0,-1.406863 1.14218404,-2.547812 2.55057004,-2.547812"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path72" /><path
d="m 2.5150764,12.137744 c -1.1620604,0 -2.1047704,-0.941691 -2.10760988,-2.105332 0,-1.1600947 0.94270998,-2.1017861 2.10760988,-2.1017861 1.1620604,0 2.1047704,0.9416914 2.1047704,2.1017861 0,1.163641 -0.94271,2.105332 -2.1047704,2.105332"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path74" /><path
d="m 2.4987494,3.4483758 c -0.954068,0 -1.72782842,-0.7700876 -1.72782842,-1.7224151 C 0.77092098,0.77292402 1.5446814,0 2.4987494,0 c 0.9533581,0 1.7271185,0.77292402 1.7271185,1.7259607 0,0.9523275 -0.7737604,1.7224151 -1.7271185,1.7224151"
style="fill:#e41f18;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path76" /><path
d="m 30.371873,25.178887 c -2.035203,0 -3.568527,1.406864 -3.568527,3.462558 0,1.055147 0.354936,1.944365 0.981753,2.561995 0.628947,0.61763 1.524805,0.958 2.578255,0.958 0.38546,0 0.99879,-0.02198 1.528355,-0.243222 l 0.127066,-0.05531 -0.08305,-1.343753 -0.274011,0.163803 c -0.258393,0.154585 -0.865334,0.282224 -1.289837,0.282224 -1.228079,0 -2.206993,-0.892054 -2.206993,-2.296081 0,-1.343753 0.875983,-2.293953 2.251715,-2.293953 0.432312,0 0.845457,0.111329 1.21672,0.326897 l 0.269042,0.15813 0.10861,-1.332407 -0.124937,-0.05815 c -0.490522,-0.21344 -1.00092,-0.290733 -1.514157,-0.290733 z m 8.000257,0 c -0.61049,0 -1.1649,0.157421 -1.578045,0.484318 -0.410306,0.329734 -0.66515,0.831071 -0.66515,1.445865 0,0.540337 0.196634,0.947364 0.482003,1.243769 0.288208,0.293569 0.651662,0.482192 0.998079,0.648122 0.349968,0.16664 0.682187,0.310588 0.910057,0.482191 0.227159,0.17444 0.349257,0.343207 0.349257,0.637485 0,0.309879 -0.136296,0.498501 -0.343579,0.639613 -0.205862,0.138275 -0.485552,0.204931 -0.709871,0.204931 -0.415985,0 -0.954068,-0.171604 -1.250795,-0.29357 l -0.244196,-0.09998 -0.132746,1.263625 0.149783,0.04963 c 0.426633,0.138276 0.884501,0.276552 1.366503,0.276552 0.6687,0 1.292678,-0.138276 1.761193,-0.47581 0.468515,-0.341079 0.765242,-0.889217 0.765242,-1.621013 0,-0.567284 -0.194505,-0.999837 -0.479873,-1.318225 -0.28253,-0.318386 -0.648823,-0.52899 -0.99808,-0.70343 -0.349257,-0.177275 -0.687866,-0.321224 -0.917865,-0.479354 -0.229998,-0.160258 -0.344288,-0.304915 -0.346418,-0.537502 0,-0.271587 0.102222,-0.404189 0.271172,-0.504173 0.169659,-0.102111 0.415985,-0.146784 0.648823,-0.146784 0.452188,0 0.66586,0.06949 1.125857,0.249604 l 0.230708,0.09147 0.188116,-1.246606 -0.155462,-0.05247 C 39.331167,25.253343 38.812961,25.178887 38.37213,25.178887 Z m -19.604534,0.110621 v 6.761312 h 3.973153 V 30.85456 H 20.07305 v -5.565052 z m 26.073597,0 v 6.761312 h 1.896779 c 0.66515,0 1.303325,-0.08013 1.796686,-0.360225 0.4962,-0.282224 0.82913,-0.794907 0.82913,-1.534503 0,-0.489991 -0.174628,-0.911199 -0.474194,-1.213278 -0.196635,-0.199258 -0.50472,-0.254568 -0.790089,-0.34037 0.246327,-0.10282 0.518207,-0.182949 0.689996,-0.365898 0.264073,-0.282224 0.408177,-0.670103 0.408177,-1.146622 0,-0.639612 -0.266202,-1.121804 -0.712711,-1.4097 -0.44367,-0.285769 -1.037123,-0.390716 -1.71931,-0.390716 z m 1.303326,1.140948 h 0.765242 c 0.241356,0 0.501879,0.04751 0.682187,0.160967 0.183147,0.11062 0.299565,0.268751 0.299565,0.589976 0,0.418371 -0.127776,0.573665 -0.371973,0.687122 -0.240647,0.110621 -0.626106,0.138275 -1.064807,0.138275 h -0.310214 z m 0,2.720126 h 0.398947 c 0.382622,0 0.770922,0.039 1.037123,0.169476 0.263363,0.132602 0.421665,0.321225 0.421665,0.755906 0,0.371571 -0.129907,0.537501 -0.368424,0.662303 -0.235678,0.124093 -0.601971,0.171604 -0.99879,0.171604 h -0.490521 z"
style="fill:#5f5e5e;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.709487"
id="path78" /></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130.885 130.2272">
<title>new-logo</title>
<rect x="-148.6082" y="-84.2821" width="1200.7789" height="359.3167" style="fill: none"/>
<g>
<path d="M22.0491,101.27l-.52-.5606c.16.2055.3077.4139.4705.6189Z" style="fill: #fff"/>
<path d="M58.8081,61.6343c-5.46-6.5264-10.9444-13.0325-16.3856-19.5747-.6169-.7417-1.519-1.3734-1.619-2.2745,4.9229-1.53,8.0554.5079,10.8311,4.3571C54.8493,48.6,58.6,52.6758,62.1732,56.87c1.9831,2.3272,4.0991,2.57,5.8925.4769,5.41-6.3127,10.7148-12.716,16.0117-19.1244a3.23,3.23,0,0,0-.527-5.0744c-1.7222-1.331-3.4422-.9183-4.895.6321-.4621.4932-.8753,1.0324-1.31,1.5512-3.477,4.15-7.048,8.2267-10.3859,12.486-1.4024,1.7893-2.0649,1.4794-3.3162-.0943-3.3692-4.2367-6.989-8.2745-10.3478-12.5192a6.5,6.5,0,0,0-5.9036-2.8269c-4.3439.203-8.7045.0607-13.058.0384-1.8593-.01-3.7939-.1774-4.7822,1.8822-1.0176,2.1207.1792,3.6225,1.4853,5.1684,6.7378,7.9754,13.415,16.0015,20.1377,23.9893.81.963,1.3178,1.6447.2417,2.9134C41.68,77.8491,32.0211,89.3961,22.0491,101.27l4.86,5.2437Q42.828,87.4166,58.8513,68.4068C61.2409,65.5585,61.23,64.5294,58.8081,61.6343Z" style="fill: #fff"/>
<path d="M22,101.3278c-.1628-.205-.3106-.4134-.4705-.6189l-.0888-.096.0888.096C11.2829,87.5341,7.1062,72.9782,9.52,56.6552c5.84-39.49,50.3276-60.7018,84.4288-40.183,2.8187,1.696,3.9671,1.26,5.9-1.0425,1.8937-2.2559,1.2842-3.0736-.8492-4.3571C83.4775,1.7333,66.81-1.0844,49.3974,3.62,26.0016,9.9414,10.3705,25.1029,4.1023,48.4932-2.1538,71.8383,3.73,92.6254,20.5416,110.19c1.4481,1.5131,2.1615,1.3609,3.4671-.2086.9638-1.1589,1.9356-2.3109,2.9007-3.4686l-4.86-5.2437Z" style="fill: #fff"/>
<g>